/*
Theme Name:   3Dimensiones Tandil
Template:     astra
Version:      1.4.2
Description:  Child theme para 3Dimensiones Tandil — estilo mármol blanco
*/

/* ── Variables ─────────────────────────────────────────────────────────────── */
:root {
  --color-bg:        #ffffff;
  --color-bg-soft:   #f8f7f5;
  --color-border:    #e5e3e0;
  --color-text:      #1a1a1a;
  --color-muted:     #666666;
  --color-gold:      #c9a96e;
  --color-gold-dark: #a8843a;
  --color-black:     #1a1a1a;
  --font-heading:    'Playfair Display', Georgia, serif;
  --font-body:       'Jost', system-ui, sans-serif;
  --radius:          2px;
  --transition:      0.2s ease;
}

/* ── Base ───────────────────────────────────────────────────────────────────── */
body {
  font-family: var(--font-body);
  background-color: var(--color-bg);
  color: var(--color-text);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6,
.site-title,
.entry-title,
.woocommerce-loop-product__title,
.product_title {
  font-family: var(--font-heading);
  font-weight: 500;
  letter-spacing: 0.02em;
}

a {
  color: var(--color-text);
  transition: color var(--transition);
}
a:hover {
  color: var(--color-gold);
}

/* ── Home page: contenedor a 100% de ancho ──────────────────────────────────────
   Quitamos el max-width de .ast-container en la home para que todos los bloques
   llenen el viewport. is-layout-constrained en cada bloque centra el contenido interno.
   (Enfoque anterior usaba width:100vw + negative margins → causaba overflow y rompía sticky) */
body.home #content > .ast-container {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.home .entry-content[data-ast-blocks-layout] > * {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* ── Header ─────────────────────────────────────────────────────────────────── */
.site-header,
#masthead {
  background: var(--color-bg) !important;
  border-bottom: none;
  box-shadow: none !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 9999 !important;
}

/* Primary row: logo | search | cart
   Astra usa CSS Grid en .ast-builder-grid-row — lo convertimos a flex */
.ast-desktop .site-primary-header-wrap .ast-builder-grid-row {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  max-width: 100% !important;
  padding: 4px 24px !important;
  gap: 16px !important;
}
/* Left-center group (logo + search): ocupa todo el espacio disponible */
.ast-desktop .site-primary-header-wrap .site-header-primary-section-left-center {
  flex: 1 1 auto !important;
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  min-width: 0 !important;
  overflow: visible !important;
}
/* Logo: ancho fijo */
.ast-desktop .site-primary-header-wrap .site-header-primary-section-left {
  flex: 0 0 auto !important;
  min-width: unset !important;
}
/* Search: llena el espacio restante dentro del grupo left-center */
.ast-desktop .site-primary-header-wrap .site-header-primary-section-center {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}
/* Cart: ancho fijo a la derecha */
.ast-desktop .site-primary-header-wrap .site-header-primary-section-right-center {
  flex: 0 0 auto !important;
}
.ast-desktop .site-primary-header-wrap .site-header-primary-section-right {
  flex: 0 0 auto !important;
  min-width: unset !important;
}
/* Desktop search: siempre visible, ocupa todo el ancho */
.ast-desktop .ast-header-search {
  display: flex !important;
  width: 100% !important;
  flex: 1 1 auto !important;
}
.ast-desktop .ast-header-search .ast-search-menu-icon.slide-search {
  display: flex !important;
  width: 100% !important;
  flex: 1 1 auto !important;
}
.ast-desktop .ast-header-search .slide-search a.astra-search-icon,
.ast-desktop .ast-header-search .slide-search .search-link {
  display: none !important;
}
.ast-desktop .ast-header-search .slide-search .search-form {
  visibility: visible !important;
  opacity: 1 !important;
  position: static !important;
  transform: none !important;
  right: auto !important;
  top: auto !important;
  z-index: auto !important;
  display: flex !important;
  width: 100% !important;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius) !important;
  overflow: hidden !important;
  background: #fff !important;
}
.ast-desktop .ast-header-search .slide-search .search-form label {
  display: flex !important;
  align-items: stretch !important;
  width: 100% !important;
  margin: 0 !important;
  position: static !important;
}
.ast-desktop .ast-header-search .slide-search .search-field {
  flex: 1 !important;
  height: 44px !important;
  width: auto !important;
  padding: 11px 16px !important;
  border: none !important;
  outline: none !important;
  font-size: 0.9rem !important;
  font-family: var(--font-body) !important;
  background: transparent !important;
  color: var(--color-text) !important;
  box-shadow: none !important;
}
.ast-desktop .ast-header-search .slide-search .search-field::placeholder {
  color: #aaa !important;
}
.ast-desktop .ast-header-search .slide-search .ast-search-submit {
  position: static !important;
  transform: none !important;
  background: #1a1a1a !important;
  border: none !important;
  color: #fff !important;
  padding: 0 18px !important;
  height: 44px !important;
  width: auto !important;
  min-width: unset !important;
  min-height: unset !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
  box-shadow: none !important;
}
.ast-desktop .ast-header-search .slide-search .ast-search-submit:hover {
  background: var(--color-gold) !important;
}

/* Below row: nav bar full width, items spaced evenly ─────────────── */
/* display:block solo en desktop — en mobile Astra lo muestra/oculta con JS */
.ast-desktop .ast-below-header-bar {
  background: var(--color-bg) !important;
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  padding: 0 !important;
  display: block !important;
  min-height: 0 !important;
}
/* Astra inyecta line-height:60px via CSS dinámico — override aquí */
.ast-desktop .ast-below-header-bar .main-header-menu > .menu-item {
  line-height: 1.4 !important;
}
.ast-desktop .ast-below-header-wrap {
  display: block !important;
  padding: 0 !important;
}
.ast-desktop .site-below-header-wrap {
  max-width: 100% !important;
  padding: 0 24px !important;
}
.ast-desktop .ast-below-header-bar .ast-builder-grid-row {
  max-width: 100% !important;
  display: flex !important;
  width: 100% !important;
}
.ast-desktop .ast-below-header-bar .site-header-below-section-left {
  width: 100% !important;
  flex: 1 1 auto !important;
  max-width: 100% !important;
}
.ast-desktop .ast-below-header-bar .site-header-below-section-right {
  display: none !important;
}
.ast-desktop .ast-below-header-bar .ast-builder-menu,
.ast-desktop .ast-below-header-bar .ast-main-header-bar-alignment,
.ast-desktop .ast-below-header-bar .main-header-bar-navigation,
.ast-desktop .ast-below-header-bar .site-navigation,
.ast-desktop .ast-below-header-bar .main-navigation {
  width: 100% !important;
}
.ast-desktop .ast-below-header-bar .main-navigation > div {
  width: 100% !important;
}
.ast-desktop .ast-below-header-bar #ast-hf-menu-1,
.ast-desktop .ast-below-header-bar .main-header-menu {
  display: flex !important;
  justify-content: space-evenly !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
  box-shadow: none !important;
}
.ast-desktop .ast-below-header-bar .ast-builder-layout-element,
.ast-desktop .ast-below-header-bar .ast-builder-menu,
.ast-desktop .ast-below-header-bar .ast-main-header-bar-alignment {
  padding: 0 !important;
  margin: 0 !important;
}
.ast-desktop .ast-below-header-bar .menu-link,
.ast-desktop .ast-below-header-bar .main-navigation a {
  font-size: 0.78rem !important;
  letter-spacing: 0.08em !important;
  padding: 2px 8px !important;
  line-height: 1.4 !important;
  display: block !important;
  white-space: nowrap !important;
}
@media (min-width: 922px) and (max-width: 1050px) {
  .ast-desktop .ast-below-header-bar .menu-link,
  .ast-desktop .ast-below-header-bar .main-navigation a {
    font-size: 0.60rem !important;
    letter-spacing: 0.02em !important;
    padding: 2px 3px !important;
  }
}
@media (min-width: 1051px) and (max-width: 1250px) {
  .ast-desktop .ast-below-header-bar .menu-link,
  .ast-desktop .ast-below-header-bar .main-navigation a {
    font-size: 0.70rem !important;
    letter-spacing: 0.04em !important;
    padding: 2px 5px !important;
  }
}
@media (min-width: 1251px) and (max-width: 1400px) {
  .ast-desktop .ast-below-header-bar .menu-link,
  .ast-desktop .ast-below-header-bar .main-navigation a {
    font-size: 0.74rem !important;
    letter-spacing: 0.06em !important;
    padding: 2px 6px !important;
  }
}

/* Logo image size */
.custom-logo,
.astra-logo-img,
img.custom-logo {
  width: 56px !important;
  height: auto !important;
}

/* Hide site title text when logo image is active */
.ast-site-identity .site-title,
.ast-site-identity .site-description {
  display: none !important;
}

.site-title a,
.site-title a:visited {
  font-family: var(--font-heading);
  font-size: 1.6rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-black) !important;
}

.main-navigation a,
.ast-header-break-point .main-navigation a {
  font-family: var(--font-body);
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text) !important;
  font-weight: 500;
}

.main-navigation a:hover {
  color: var(--color-gold) !important;
}

/* Nav underline activo */
.main-navigation .current-menu-item > a,
.main-navigation .current-page-ancestor > a {
  color: var(--color-gold) !important;
}

/* ── Hero / Banner ──────────────────────────────────────────────────────────── */
.ast-hero-section,
.ast-banner,
.entry-content .wp-block-cover {
  background-color: var(--color-bg-soft);
}

/* Hero responsive: ver add_action('wp_head') en functions.php (inline para sobrevivir minificación de LiteSpeed) */

/* ── Botones ────────────────────────────────────────────────────────────────── */
.ast-btn,
button,
input[type="submit"],
input[type="button"],
.button,
a.button,
.wp-block-button__link {
  background: var(--color-black) !important;
  color: #fff !important;
  border: 1px solid var(--color-black) !important;
  border-radius: var(--radius) !important;
  font-family: var(--font-body) !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  padding: 12px 28px !important;
  transition: all var(--transition) !important;
}

.ast-btn:hover,
button:hover,
input[type="submit"]:hover,
.button:hover,
a.button:hover {
  background: var(--color-gold) !important;
  border-color: var(--color-gold) !important;
  color: #fff !important;
}

/* Botón secundario / outline */
.button.alt,
a.button.alt,
.wc-backward {
  background: transparent !important;
  color: var(--color-black) !important;
  border: 1px solid var(--color-black) !important;
}
.button.alt:hover,
a.button.alt:hover {
  background: var(--color-black) !important;
  color: #fff !important;
}

/* ── WooCommerce — Tienda ───────────────────────────────────────────────────── */
.woocommerce ul.products {
  gap: 24px !important;
}

.woocommerce ul.products li.product {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  transition: box-shadow var(--transition), transform var(--transition);
  overflow: hidden;
}

.woocommerce ul.products li.product:hover {
  box-shadow: 0 8px 32px rgba(0,0,0,0.08);
  transform: translateY(-2px);
}

.woocommerce ul.products li.product a img {
  margin: 0 !important;
  display: block;
  width: 100%;
  height: auto !important;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  object-position: center;
  background: #ffffff;
  padding: 0;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: 0.88rem !important;
  padding: 12px 16px 4px !important;
  font-weight: 500;
}
@media (min-width: 922px) and (max-width: 1199px) {
  .woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: 0.80rem !important;
  }
}
@media (max-width: 921px) {
  .woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: 0.75rem !important;
    padding: 10px 12px 4px !important;
  }
}

.woocommerce ul.products li.product .price {
  padding: 0 16px 8px !important;
  color: var(--color-text) !important;
  font-size: 0.95rem;
}

.woocommerce ul.products li.product .button {
  margin: 0 16px 16px !important;
  width: calc(100% - 32px) !important;
  text-align: center !important;
}

/* Precio tachado / oferta */
.woocommerce ul.products li.product .price del {
  color: var(--color-muted);
  font-size: 0.85em;
}
.woocommerce ul.products li.product .price ins {
  text-decoration: none;
  font-weight: 600;
  color: var(--color-gold-dark);
}

/* Categoría centrada en la card de tienda */
.woocommerce ul.products li.product .ast-woo-product-category,
.woocommerce ul.products li.product .ast-woo-product-category a {
  display: block;
  text-align: center !important;
  width: 100%;
}

/* Badge sale */
.woocommerce span.onsale {
  background: var(--color-gold) !important;
  border-radius: var(--radius) !important;
  font-family: var(--font-body) !important;
  font-size: 0.7rem !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  min-height: auto !important;
  min-width: auto !important;
  padding: 4px 8px !important;
  line-height: 1.4 !important;
}

/* ── Página de producto ─────────────────────────────────────────────────────── */
.woocommerce div.product .product_title {
  font-size: 2.2rem;
  font-weight: 500;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-size: 1.5rem !important;
  color: var(--color-text) !important;
}

.woocommerce div.product .woocommerce-product-details__short-description {
  color: var(--color-muted);
  line-height: 1.7;
  font-size: 0.95rem;
}

.woocommerce div.product form.cart .single_add_to_cart_button {
  font-size: 0.8rem !important;
  padding: 14px 40px !important;
}

/* Tabs de producto */
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-family: var(--font-body);
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--color-muted);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--color-text);
  border-bottom: 2px solid var(--color-gold);
}

/* Variation swatches */
.woo-variation-swatches .variable-items-wrapper .variable-item {
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius) !important;
}
.woo-variation-swatches .variable-items-wrapper .variable-item.selected,
.woo-variation-swatches .variable-items-wrapper .variable-item:hover {
  border-color: var(--color-gold) !important;
  box-shadow: 0 0 0 2px var(--color-gold) !important;
}

/* ── Carrito y Checkout ─────────────────────────────────────────────────────── */
.woocommerce-cart table.cart,
.woocommerce-checkout .woocommerce {
  font-family: var(--font-body);
}

.woocommerce table.shop_table th {
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--color-muted);
  border-color: var(--color-border) !important;
}

.woocommerce table.shop_table td {
  border-color: var(--color-border) !important;
}

/* ── Footer ─────────────────────────────────────────────────────────────────── */
.site-footer,
#colophon {
  background: var(--color-bg-soft) !important;
  border-top: 1px solid var(--color-border);
  color: var(--color-muted);
  font-size: 0.85rem;
}

.site-footer a {
  color: var(--color-muted);
}
.site-footer a:hover {
  color: var(--color-gold);
}

/* ── Separador dorado decorativo ────────────────────────────────────────────── */
.gold-divider {
  width: 60px;
  height: 2px;
  background: var(--color-gold);
  margin: 12px auto 24px;
}

/* ── WhatsApp flotante ──────────────────────────────────────────────────────── */
.whatsapp-float {
  position: fixed;
  bottom: 28px;
  right: 28px;
  width: 56px;
  height: 56px;
  background: #25D366;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 16px rgba(37,211,102,0.4);
  z-index: 9999;
  transition: transform var(--transition), box-shadow var(--transition);
  text-decoration: none;
}
.whatsapp-float:hover {
  transform: scale(1.08);
  box-shadow: 0 6px 24px rgba(37,211,102,0.5);
}
.whatsapp-float svg {
  width: 30px;
  height: 30px;
  fill: #fff;
}

/* ── Overrides de colores Astra (paleta nueva) ──────────────────────────────── */
/* Asegura que los CSS vars de Astra apunten al nuevo esquema */
:root {
  --ast-global-color-0: #c9a96e;
  --ast-global-color-1: #a8843a;
  --ast-global-color-2: #1a1a1a;
  --ast-global-color-3: #444444;
  --ast-global-color-4: #ffffff;
  --ast-global-color-5: #ffffff;
  --ast-global-color-6: #f8f7f5;
  --ast-global-color-7: #1a1a1a;
  --ast-global-color-8: #666666;
}

/* Fondo del body — asegura blanco aunque Astra genere inline style */
body,
.ast-page-builder-template,
.hfeed {
  background-color: #ffffff !important;
  background-image: none !important;
}

/* ── Página de tienda: título en español ────────────────────────────────────── */
.woocommerce-products-header__title.page-title {
  font-family: var(--font-heading);
  font-size: 2.5rem;
  font-weight: 400;
  letter-spacing: 0.04em;
}

/* ── Breadcrumb ──────────────────────────────────────────────────────────────── */
.woocommerce .woocommerce-breadcrumb {
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  color: var(--color-muted);
}

/* ── Páginas de contenido (Nosotros, Contacto) ─────────────────────────────── */
.about-section,
.entry-content {
  padding: 48px 20px;
}

.entry-content h1,
.entry-content h2,
.entry-content h3 {
  font-family: var(--font-heading);
}

.entry-content p {
  color: var(--color-muted);
  line-height: 1.8;
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
}

.entry-content a {
  color: var(--color-gold);
  border-bottom: 1px solid var(--color-gold);
  text-decoration: none;
}

/* ── Sidebar de la tienda ────────────────────────────────────────────────────── */
.woocommerce-sidebar .widget-title,
.widget-title {
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--color-border);
  padding-bottom: 8px;
  margin-bottom: 16px;
}

/* Price filter slider */
.widget_price_filter .price_slider_wrapper .ui-slider {
  background: var(--color-border);
}
.widget_price_filter .price_slider_wrapper .ui-slider .ui-slider-range {
  background: var(--color-gold);
}
.widget_price_filter .price_slider_wrapper .ui-slider .ui-slider-handle {
  background: var(--color-black);
  border-color: var(--color-black);
}

/* ── Resultados de búsqueda y paginación ────────────────────────────────────── */
.woocommerce-result-count {
  font-size: 0.8rem;
  color: var(--color-muted);
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  color: var(--color-text);
  border-color: var(--color-border) !important;
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--color-black) !important;
  color: #fff !important;
  border-color: var(--color-black) !important;
}

/* ── Notices de WooCommerce ──────────────────────────────────────────────────── */
.woocommerce-message,
.woocommerce-info {
  border-top-color: var(--color-gold) !important;
}

/* Mensaje "agregado al carrito": texto a la izquierda, botón a la derecha.
   En HTML el botón viene primero — usamos order:99 para mandarlo al final. */
.woocommerce-message {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  flex-wrap: nowrap !important;
}
.woocommerce-message .button.wc-forward {
  order: 99 !important;
  margin-left: auto !important;
  float: none !important;
  flex-shrink: 0 !important;
  white-space: nowrap !important;
}
@media (max-width: 544px) {
  .woocommerce-message {
    flex-direction: column !important;
    align-items: stretch !important;
    flex-wrap: wrap !important;
  }
  .woocommerce-message .button.wc-forward {
    order: 99 !important;
    margin-left: 0 !important;
    text-align: center !important;
    width: 100% !important;
  }
}

/* ── Burger reset global (fuera del media query para anular button { bg:black }) */
.menu-toggle,
button.menu-toggle,
.ast-mobile-menu-buttons,
#ast-mobile-header .menu-toggle,
.ast-header-break-point .menu-toggle,
[data-section="section-header-mobile-trigger"],
#ast-hf-mobile-trigger,
.ast-mobile-header-wrap .menu-toggle {
  background: transparent !important;
  background-color: transparent !important;
  border: 1px solid #1a1a1a !important;
  color: #1a1a1a !important;
  box-shadow: none !important;
  padding: 6px 10px !important;
  font-size: initial !important;
  letter-spacing: initial !important;
  text-transform: initial !important;
}

.menu-toggle svg,
.ast-mobile-menu-buttons svg,
#ast-hf-mobile-trigger svg {
  fill: #1a1a1a !important;
  color: #1a1a1a !important;
  width: 22px !important;
  height: 22px !important;
}

.menu-toggle .menu-toggle-icon span {
  background: #1a1a1a !important;
  display: block !important;
  height: 2px !important;
  margin: 5px 0 !important;
}

/* ── Mobile ─────────────────────────────────────────────────────────────────── */
/* ── Mobile header search: siempre visible como barra inline ──────────────── */
@media (max-width: 921px) {
  /* El centro del header mobile toma todo el espacio disponible */
  .ast-header-break-point .site-primary-header-wrap .ast-builder-grid-row {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
  }
  .ast-header-break-point .site-primary-header-wrap .site-header-primary-section-center {
    flex: 1 !important;
    min-width: 0 !important;
  }
  /* Forzar search visible como input inline (no icono slideout) */
  .ast-header-break-point #ast-mobile-header .slide-search .search-link,
  .ast-header-break-point #ast-mobile-header .slide-search a.astra-search-icon {
    display: none !important;
  }
  .ast-header-break-point #ast-mobile-header .slide-search .search-form {
    visibility: visible !important;
    opacity: 1 !important;
    position: static !important;
    transform: none !important;
    right: auto !important;
    top: auto !important;
    z-index: auto !important;
    display: block !important;
    width: 100% !important;
  }
  .ast-header-break-point #ast-mobile-header .ast-header-search {
    flex: 1 !important;
    min-width: 0 !important;
    width: 100% !important;
  }
  .ast-header-break-point #ast-mobile-header .ast-search-menu-icon {
    width: 100% !important;
  }
  .ast-header-break-point #ast-mobile-header .slide-search .search-form {
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius) !important;
    overflow: hidden !important;
    background: #fff !important;
  }
  .ast-header-break-point #ast-mobile-header .search-form label {
    display: flex !important;
    align-items: stretch !important;
    position: static !important;
    width: 100% !important;
    margin: 0 !important;
  }
  .ast-header-break-point #ast-mobile-header .search-field {
    flex: 1 !important;
    height: 44px !important;
    padding: 11px 16px !important;
    border: none !important;
    border-radius: 0 !important;
    font-size: 0.88rem !important;
    font-family: var(--font-body) !important;
    background: transparent !important;
    color: var(--color-text) !important;
    outline: none !important;
    box-shadow: none !important;
  }
  .ast-header-break-point #ast-mobile-header .search-field::placeholder {
    color: #aaa !important;
  }
  .ast-header-break-point #ast-mobile-header .ast-search-submit {
    position: static !important;
    transform: none !important;
    right: auto !important;
    top: auto !important;
    background: #1a1a1a !important;
    border: none !important;
    color: #fff !important;
    padding: 0 16px !important;
    height: 44px !important;
    min-width: unset !important;
    min-height: unset !important;
    width: auto !important;
    flex-shrink: 0 !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: none !important;
  }
  .ast-header-break-point #ast-mobile-header .ast-search-submit:hover {
    background: var(--color-gold) !important;
  }
  /* Logo mobile: mismo tamaño que desktop */
  .ast-header-break-point #ast-mobile-header .header-widget-area-inner img {
    width: 50px !important;
    height: auto !important;
  }

  /* ── Menú hamburguesa: ocultar nav por defecto, mostrar solo cuando está abierto ── */
  .ast-header-break-point #ast-mobile-header .ast-below-header-wrap {
    display: none !important;
  }
  body.ast-main-header-nav-open #ast-mobile-header .ast-below-header-wrap {
    display: block !important;
  }
}

@media (max-width: 921px) {

  /* ── Todo el header mobile: fondo blanco ────────────────────────────────── */
  .site-header,
  #masthead,
  .ast-mobile-header-wrap,
  .main-header-bar,
  .ast-primary-header-bar,
  .ast-above-header-bar,
  .ast-below-header-bar,
  .ast-header-break-point .site-header,
  .ast-header-break-point .main-header-bar,
  .ast-header-break-point .ast-primary-header-bar,
  #ast-hf-row-1,
  #ast-hf-mobile-trigger-wrap,
  .ast-header-break-point .ast-flex.main-header-container,
  .ast-header-break-point .ast-flex.main-header-container > div,
  .ast-header-break-point .main-header-container-wrap {
    background: #ffffff !important;
    background-color: #ffffff !important;
    background-image: none !important;
  }

  /* ── Menú mobile off-canvas / popup ─────────────────────────────────────── */
  .ast-off-canvas-menu,
  #ast-mobile-popup,
  .ast-mobile-popup-drawer,
  .main-navigation.toggled,
  .main-navigation .menu {
    background: #ffffff !important;
  }

  .main-navigation .menu li a,
  .main-navigation a,
  .ast-mobile-popup-drawer .menu li a {
    color: #1a1a1a !important;
    border-bottom: 1px solid var(--color-border) !important;
    padding: 14px 20px !important;
  }

  /* ── Botón cerrar popup (X) ─────────────────────────────────────────────── */
  .menu-toggle-close,
  button.menu-toggle-close {
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    color: #1a1a1a !important;
    padding: 8px !important;
    width: 40px !important;
    height: 40px !important;
    min-width: unset !important;
    min-height: unset !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    font-size: 1.4rem !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
  }
  .menu-toggle-close:hover,
  button.menu-toggle-close:hover {
    background: var(--color-bg-soft) !important;
    color: var(--color-gold) !important;
  }
  .menu-toggle-close svg,
  button.menu-toggle-close svg {
    width: 20px !important;
    height: 20px !important;
    fill: currentColor !important;
  }

  /* ── Toggle submenú: ocultar .dropdown-menu-toggle (navega, no expande) ──── */
  .ast-mobile-popup-drawer .dropdown-menu-toggle,
  .ast-mobile-popup-content .dropdown-menu-toggle,
  .ast-mobile-header-content .dropdown-menu-toggle {
    display: none !important;
  }

  /* ── .ast-menu-toggle: reset visual + centrado del ícono ────────────────── */
  .ast-mobile-popup-drawer .ast-menu-toggle,
  .ast-mobile-popup-content .ast-menu-toggle,
  .ast-mobile-header-content .ast-menu-toggle {
    background: transparent !important;
    background-color: transparent !important;
    border: 1px solid var(--color-border) !important;
    box-shadow: none !important;
    width: 32px !important;
    height: 32px !important;
    padding: 0 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  .ast-mobile-popup-drawer .ast-menu-toggle:hover,
  .ast-mobile-popup-content .ast-menu-toggle:hover {
    background: var(--color-bg-soft) !important;
    border-color: var(--color-gold) !important;
  }
  /* el .ast-icon puede tener position:absolute de Astra — lo reseteamos */
  .ast-mobile-popup-drawer .ast-menu-toggle .ast-icon,
  .ast-mobile-popup-content .ast-menu-toggle .ast-icon {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
  }
  .ast-mobile-popup-drawer .ast-menu-toggle svg,
  .ast-mobile-popup-content .ast-menu-toggle svg {
    fill: #1a1a1a !important;
    width: 14px !important;
    height: 14px !important;
    display: block !important;
  }

  /* Logo / título del sitio en mobile */
  .site-title a {
    font-size: 1.2rem !important;
    color: #1a1a1a !important;
  }

  /* Hero — ajustar tamaños para mobile */
  .wp-block-cover h1 {
    font-size: 2rem !important;
    letter-spacing: 0.03em !important;
  }

  .wp-block-cover p {
    font-size: 0.95rem !important;
  }

  .wp-block-cover {
    min-height: 400px !important;
  }

  /* Botones del hero en mobile — stack vertical */
  .wp-block-cover .wp-block-buttons {
    flex-direction: column !important;
    align-items: center !important;
    gap: 12px !important;
  }

  .wp-block-cover .wp-block-button a {
    width: 100% !important;
    max-width: 280px !important;
    text-align: center !important;
  }

  /* Grilla de productos — 2 columnas en mobile */
  .woocommerce ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  /* Página de producto — imagen y detalle en columna */
  .woocommerce div.product .woocommerce-product-gallery,
  .woocommerce div.product .summary {
    float: none !important;
    width: 100% !important;
  }

  .woocommerce div.product .product_title {
    font-size: 1.5rem !important;
  }

  /* Footer horizontal — stack en mobile */
  .site-footer .footer-widget-area {
    text-align: center !important;
  }
}

/* Extra pequeño: 1 columna de productos */
@media (max-width: 480px) {
  .woocommerce ul.products {
    grid-template-columns: 1fr !important;
  }

  .wp-block-cover h1 {
    font-size: 1.7rem !important;
  }
}

/* ── Features bar (homepage barra negra) ────────────────────────────────────── */
.wp-block-columns.has-background {
  margin: 0 !important;
}

/* ── Finish cards (acabados) ──────────────────────────────────────────���──────── */
.wp-block-column {
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

/* ── Separador de sección dorado ───────────────────────────���─────────────────── */
.wp-block-separator.is-style-wide {
  border-color: var(--color-gold) !important;
  background-color: var(--color-gold) !important;
  height: 2px !important;
  opacity: 1 !important;
}

/* ── Input y select de WooCommerce ───────────────────────────────────────────── */
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="password"],
.woocommerce input[type="number"],
.woocommerce textarea,
.woocommerce select {
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius) !important;
  font-family: var(--font-body) !important;
  font-size: 0.9rem !important;
  padding: 10px 14px !important;
  color: var(--color-text) !important;
  background: #fff !important;
}

.woocommerce input:focus,
.woocommerce textarea:focus,
.woocommerce select:focus {
  border-color: var(--color-gold) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(201,169,110,0.12) !important;
}

/* ── Checkout steps / headings ───────────────────────────────────────────────── */
.woocommerce-checkout h3,
.woocommerce-checkout h2.woocommerce-billing-fields__field-wrapper {
  font-family: var(--font-heading);
  font-size: 1.2rem;
  letter-spacing: 0.04em;
  margin-bottom: 20px;
}

/* ── Order received ────────────────────────────────────────────────────────��─── */
.woocommerce-order-received .entry-title,
.woocommerce-thankyou-section h2 {
  font-family: var(--font-heading);
  color: var(--color-text);
}

/* ── Account pages ───────────────────────────────────────────────────────────── */
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
  font-family: var(--font-body);
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 500;
}

/* ── Rating stars ────────────────────────────────────────────────────────────── */
.woocommerce .star-rating span::before,
.woocommerce .star-rating::before {
  color: var(--color-gold) !important;
}

/* ── Product gallery ─────────────────────────────────────────────────────────── */
.woocommerce div.product div.images .woocommerce-product-gallery__image img {
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
}
.flex-control-thumbs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.flex-control-thumbs li {
  list-style: none;
  margin: 0;
  width: calc(25% - 6px) !important;
}
.flex-control-thumbs li img {
  border: 2px solid transparent;
  border-radius: 4px;
  cursor: pointer;
  transition: border-color 0.15s;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
}
.flex-control-thumbs li img.flex-active,
.flex-control-thumbs li img:hover {
  border-color: var(--color-gold);
  opacity: 1 !important;
}

/* ── Breadcrumbs ─────────────────────────────────────────────────────────────── */
.ast-breadcrumbs-wrapper,
.astra-breadcrumbs {
  font-family: var(--font-body);
  font-size: 0.78rem;
  letter-spacing: 0.03em;
  color: var(--color-muted);
  margin-bottom: 16px;
}
.ast-breadcrumbs-wrapper a,
.astra-breadcrumbs a {
  color: var(--color-muted);
  text-decoration: none;
}
.ast-breadcrumbs-wrapper a:hover,
.astra-breadcrumbs a:hover {
  color: var(--color-gold);
}

/* ── Skeletons off — reduce CLS ─────────────────────────────────────────────── */
.ast-loading {
  display: none !important;
}

/* ── Block cover text shadow ─────────────────────────────────────────────────── */
.wp-block-cover .wp-block-cover__inner-container h1,
.wp-block-cover .wp-block-cover__inner-container p {
  text-shadow: 0 2px 12px rgba(0,0,0,0.35);
}

/* ── Woo category title ─────────────────────────────────────────────────────── */
.woocommerce-products-header {
  margin-bottom: 32px;
}

/* ── Shop page — filter bar ──────────────────────────────────────────────────── */
.woocommerce-ordering select,
.woocommerce-result-count {
  font-family: var(--font-body);
  font-size: 0.82rem;
  letter-spacing: 0.06em;
}

.woocommerce-ordering select {
  border: 1px solid var(--color-border);
  padding: 8px 12px;
  border-radius: var(--radius);
  background: #fff;
  color: var(--color-text);
}

/* ── Product card — badge "Impresión 3D" ─────────────────────────────────────── */
.woocommerce ul.products li.product {
  position: relative;
}

/* ── Product card — image zoom on hover ──────────────────────────────────────── */
.woocommerce ul.products li.product a img {
  transition: transform 0.35s ease !important;
}
.woocommerce ul.products li.product:hover a img {
  transform: scale(1.04);
}

/* ── Product card — hover overlay button ─────────────────────────────────────── */
.woocommerce ul.products li.product .woocommerce-loop-product__link {
  display: block;
  position: relative;
}
.woocommerce ul.products li.product .product-card-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(26,26,26,0.78);
  color: #fff;
  text-align: center;
  padding: 10px;
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  opacity: 0;
  transition: opacity 0.22s ease;
  pointer-events: none;
}
.woocommerce ul.products li.product:hover .product-card-overlay {
  opacity: 1;
}

/* ── Shop — short description below title ───────────────────────────────────── */
.woocommerce ul.products li.product .woocommerce-product-details__short-description {
  padding: 0 16px 8px;
  font-size: 0.8rem;
  color: var(--color-muted);
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ── Category archive header ─────────────────────────────────────────────────── */
.woocommerce-products-header__title.page-title {
  font-family: var(--font-heading);
  font-size: 2rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  margin-bottom: 8px;
}

.woocommerce-products-header .term-description {
  color: var(--color-muted);
  font-size: 0.9rem;
  max-width: 600px;
}

/* ── Single product — price section ──────────────────────────────────────────── */
.woocommerce div.product .summary .price {
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  padding: 16px 0;
  margin: 16px 0;
}

/* ── Single product — add to cart section ────────────────────────────────────── */
.woocommerce div.product form.cart {
  margin-top: 20px;
}

.woocommerce div.product form.cart .quantity {
  margin-right: 12px;
}

.woocommerce div.product form.cart .quantity input {
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius) !important;
  font-size: 1rem !important;
  width: 72px !important;
  text-align: center !important;
  padding: 10px !important;
}

/* ── Single product — product meta ──────────────────────────────────────────── */
.woocommerce div.product .product_meta {
  font-size: 0.8rem;
  color: var(--color-muted);
  margin-top: 20px;
  letter-spacing: 0.04em;
}

.woocommerce div.product .product_meta a {
  color: var(--color-gold);
}

/* ── Single product — related products heading ───────────────────────────────── */
.related.products h2,
.up-sells h2 {
  font-family: var(--font-heading);
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  border-bottom: 1px solid var(--color-border);
  padding-bottom: 12px;
  margin-bottom: 28px;
}

/* ── Breadcrumb ────────────────────────────────────────────────────────────────── */
.woocommerce .woocommerce-breadcrumb,
.ast-breadcrumbs-wrapper {
  font-size: 0.78rem !important;
  color: var(--color-muted) !important;
  letter-spacing: 0.06em !important;
  margin-bottom: 24px !important;
}

.woocommerce .woocommerce-breadcrumb a,
.ast-breadcrumbs-wrapper a {
  color: var(--color-muted) !important;
}

.woocommerce .woocommerce-breadcrumb a:hover,
.ast-breadcrumbs-wrapper a:hover {
  color: var(--color-gold) !important;
}

/* ── Cart page ───────────────────────────────────────────────────────────────── */
.woocommerce-cart .cart-collaterals h2.woocommerce-Price-amount {
  font-family: var(--font-heading);
}

.woocommerce .cart_totals {
  background: var(--color-bg-soft);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: 24px;
}

.woocommerce .cart_totals h2 {
  font-family: var(--font-heading);
  font-size: 1.2rem;
  letter-spacing: 0.04em;
  margin-bottom: 16px;
}

/* ── Cart: ocultar botón "Actualizar carrito" (auto-update via JS)
   Usamos position:absolute fuera de pantalla en lugar de display:none
   para que jQuery's :visible check de WC lo siga considerando accesible. ── */
.woocommerce-cart-form button[name="update_cart"],
.woocommerce-cart .actions .button[name="update_cart"] {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  pointer-events: none !important;
}

/* ── Checkout page ────────────────────────────────────────────────────────────── */

/* Checkout columns: Astra float layout (left: col2-set + right: order_review).
   Total debe ser ≤ 100%: 52% col + 2% margin-right + 44% review = 98%. */
@media (min-width: 922px) {
  .woocommerce-checkout .col2-set {
    width: 52% !important;
    margin-right: 2% !important;
  }
  .woocommerce-checkout #order_review_heading,
  .woocommerce-checkout #order_review {
    width: 44% !important;
  }
}

/* "Tu pedido" — toda la sección con fondo gris uniforme */
#order_review,
#order_review_heading ~ #order_review {
  background: var(--color-bg-soft) !important;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius) !important;
  padding: 16px !important;
}
#order_review .shop_table {
  background: transparent;
  border: none;
  border-radius: 0;
}
#order_review table.shop_table tbody tr,
#order_review table.shop_table tfoot tr {
  background: transparent !important;
}
#order_review table.shop_table th,
#order_review table.shop_table td {
  background: transparent !important;
  border-color: var(--color-border) !important;
}
#order_review_heading {
  margin-top: 0 !important;
}

.woocommerce-checkout #payment {
  background: var(--color-bg-soft) !important;
  border-radius: var(--radius) !important;
}

.woocommerce-checkout #payment .payment_methods li label {
  font-size: 0.9rem;
  font-family: var(--font-body);
}

/* ── Notices/alerts ────────────────────────────────────────────────────────────── */
.woocommerce-message,
.woocommerce-info {
  border-top-color: var(--color-gold) !important;
  font-family: var(--font-body) !important;
  font-size: 0.9rem !important;
}

.woocommerce-error {
  font-family: var(--font-body) !important;
  font-size: 0.9rem !important;
}

/* ── Pagination ─────────────────────────────────────────────────────────────────── */
.woocommerce nav.woocommerce-pagination ul {
  border: none !important;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius) !important;
  font-family: var(--font-body) !important;
  font-size: 0.82rem !important;
  color: var(--color-text) !important;
  padding: 8px 14px !important;
  margin: 0 2px !important;
  transition: all var(--transition) !important;
}

.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--color-black) !important;
  border-color: var(--color-black) !important;
  color: #fff !important;
}

/* ── WhatsApp floating button ────────────────────────────────────────────────── */
.whatsapp-float {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 9999;
  background: #25D366;
  color: #fff;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 16px rgba(37,211,102,0.4);
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  font-size: 26px;
  line-height: 1;
}

.whatsapp-float:hover {
  transform: scale(1.1);
  box-shadow: 0 6px 24px rgba(37,211,102,0.5);
  color: #fff;
}

@media (max-width: 768px) {
  .whatsapp-float {
    bottom: 16px;
    right: 16px;
    width: 50px;
    height: 50px;
    font-size: 22px;
  }
}

/* ── Product page FAQ accordion ─────────────────────────────────────────────── */
.product-faq {
  margin-top: 64px;
  padding-top: 48px;
  border-top: 1px solid var(--color-border);
  max-width: 760px;
}

.product-faq h2 {
  font-family: var(--font-heading);
  font-size: 1.8rem;
  font-weight: 400;
  margin-bottom: 32px;
  color: var(--color-text);
}

.faq-item {
  border-bottom: 1px solid var(--color-border);
}

.faq-question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  background: none;
  border: none;
  padding: 18px 0;
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--color-text);
  cursor: pointer;
  text-align: left;
  gap: 16px;
}

.faq-question:hover {
  color: var(--color-gold);
}

.faq-question[aria-expanded="true"] .faq-icon {
  transform: rotate(180deg);
}

.faq-icon {
  flex-shrink: 0;
  transition: transform 0.25s ease;
  stroke: var(--color-gold);
}

.faq-answer {
  padding: 0 0 18px 0;
}

.faq-answer p {
  font-family: var(--font-body);
  font-size: 0.88rem;
  line-height: 1.8;
  color: var(--color-muted);
  margin: 0;
}

/* ── Recently viewed products ───────────────────────────────────────────────── */
.recently-viewed-products {
  margin-top: 60px;
  padding-top: 48px;
  border-top: 1px solid var(--color-border);
}

.recently-viewed-products h2 {
  font-family: var(--font-heading);
  font-size: 1.6rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  margin-bottom: 32px;
  color: var(--color-text);
}

/* ── Sticky add-to-cart bar ─────────────────────────────────────────────────── */
.sticky-cart-bar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  background: #fff;
  border-bottom: 1px solid var(--color-border);
  box-shadow: 0 2px 20px rgba(0,0,0,0.1);
  transform: translateY(-100%);
  transition: transform 0.3s ease;
  padding: 10px 24px;
}

.sticky-cart-bar.visible {
  transform: translateY(0);
}

.sticky-cart-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 16px;
}

.sticky-cart-title {
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 500;
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sticky-cart-price {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-text);
  white-space: nowrap;
}

.sticky-add-to-cart-btn {
  white-space: nowrap;
  padding: 9px 22px !important;
  font-size: 0.82rem !important;
}

@media (max-width: 600px) {
  .sticky-cart-title { display: none; }
  .sticky-cart-inner { gap: 12px; }
}

/* ── Variation swatches (button type) ───────────────────────────────────────── */
.variable-items-wrapper {
  display: flex !important;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
}

.variable-items-wrapper .variable-item {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  padding: 6px 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--color-text);
  cursor: pointer;
  transition: all 0.15s ease;
  background: #fff;
  user-select: none;
}

.variable-items-wrapper .variable-item:hover,
.variable-items-wrapper .variable-item.selected,
.variable-items-wrapper .variable-item.active {
  border-color: var(--color-gold);
  background: var(--color-gold);
  color: #fff;
}

.variable-items-wrapper .variable-item.no-stock {
  opacity: 0.4;
  cursor: not-allowed;
  text-decoration: line-through;
}

/* Form row labels */
.woocommerce-variation-add-to-cart .woocommerce-variation-price {
  font-family: var(--font-body);
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--color-text);
  margin: 12px 0;
}

/* ── Product badges ─────────────────────────────────────────────────────────── */
.woocommerce-badge {
  display: inline-block;
  padding: 4px 10px;
  font-family: var(--font-body);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-radius: 2px;
  line-height: 1;
  margin-top: 4px;
}

.badge-new {
  background: var(--color-gold);
  color: #fff;
}

ul.products li.product .onsale {
  background: #e74c3c;
  color: #fff;
  font-family: var(--font-body);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-radius: 2px;
  padding: 5px 10px;
  min-height: auto;
  min-width: auto;
  line-height: 1;
}

/* ── Quantity +/- buttons ───────────────────────────────────────────────────── */
.quantity.qty-enhanced {
  display: flex !important;
  align-items: center;
  gap: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  overflow: hidden;
  width: auto !important;
}

.qty-btn {
  background: #f5f5f3;
  border: none;
  width: 38px;
  height: 46px;
  font-size: 1.1rem;
  font-weight: 400;
  color: var(--color-text);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s ease;
  flex-shrink: 0;
}

.qty-btn:hover {
  background: var(--color-gold);
  color: #fff;
}

.qty-enhanced input.qty {
  border: none !important;
  border-left: 1px solid var(--color-border) !important;
  border-right: 1px solid var(--color-border) !important;
  border-radius: 0 !important;
  text-align: center !important;
  width: 56px !important;
  height: 46px !important;
  padding: 0 !important;
  font-family: var(--font-body) !important;
  font-size: 0.95rem !important;
  -moz-appearance: textfield !important;
}

.qty-enhanced input.qty::-webkit-inner-spin-button,
.qty-enhanced input.qty::-webkit-outer-spin-button {
  -webkit-appearance: none;
}

/* ── Medios de pago ─────────────────────────────────────────────────────────── */
.tdt-payment-methods {
  margin-top: 12px;
  font-family: var(--font-body);
  font-size: 0.82rem;
  color: var(--color-text);
}
.tdt-pm-label {
  display: block;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #999;
  margin-bottom: 8px;
}
.tdt-pm-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  background: #f2f0ed;
  border-radius: var(--radius);
  padding: 10px 12px;
}
.tdt-pm-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  height: 28px;
  padding: 0 10px;
  border-radius: 5px;
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #fff;
  cursor: default;
  transition: opacity 0.15s;
}
.tdt-pm-chip:hover { opacity: 0.85; }
.tdt-pm-chip--mp     { background: #009ee3 !important; padding: 0 8px; }
.tdt-pm-chip--visa   { background: #1a1f71 !important; padding: 0 8px; }
.tdt-pm-chip--mc     { background: #fff !important; border: 1px solid #d8d5d0 !important; padding: 0 6px; height: 30px; }
.tdt-pm-chip--amex   { background: #007bc1 !important; padding: 0 8px; }
.tdt-pm-chip--naranja{ background: #ff5200 !important; padding: 0 8px; }
.tdt-pm-chip--cbu    { background: #2e2e2e !important; padding: 0 10px; gap: 5px; }
.tdt-pm-note {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  margin-bottom: 0;
  font-size: 0.8rem;
  color: #666;
  line-height: 1.4;
}
.tdt-pm-note strong { color: var(--color-text); }

/* ── Shipping estimator (CP calculator) ─────────────────────────────────────── */
.tdt-shipping-calc {
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: 12px 16px;
  margin-top: 12px;
  font-family: var(--font-body);
  font-size: 0.82rem;
}
.tdt-sc-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #888;
  margin-bottom: 10px;
}
.tdt-sc-label svg {
  stroke: var(--color-gold);
  flex-shrink: 0;
}
.tdt-sc-row {
  display: flex;
  gap: 8px;
}
.tdt-sc-input {
  flex: 1;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius) !important;
  padding: 8px 12px !important;
  font-size: 0.85rem !important;
  font-family: var(--font-body) !important;
  background: #fff !important;
  outline: none !important;
  min-width: 0;
}
.tdt-sc-input:focus {
  border-color: var(--color-gold) !important;
}
.tdt-sc-btn {
  background: #1a1a1a !important;
  color: #fff !important;
  border: none !important;
  border-radius: var(--radius) !important;
  padding: 8px 16px !important;
  font-size: 0.82rem !important;
  font-family: var(--font-body) !important;
  cursor: pointer !important;
  white-space: nowrap;
  flex-shrink: 0;
}
.tdt-sc-btn:hover { background: var(--color-gold) !important; }
.tdt-sc-btn:disabled { opacity: 0.6 !important; cursor: default !important; }
.tdt-sc-result {
  margin-top: 8px;
  font-size: 0.83rem;
  line-height: 1.5;
}
.tdt-sc-ok strong { color: var(--color-text); }
.tdt-sc-ok small  { color: #999; font-size: 0.78rem; }
.tdt-sc-error     { color: #c0392b; }
.tdt-sc-cart { margin-top: 16px; }

/* ── WC native shipping calculator in cart (CP-only style) ──────────────────── */
.woocommerce-cart .shipping-calculator-button {
  color: var(--color-gold) !important;
  border-bottom: 1px dashed var(--color-gold) !important;
  font-size: 0.82rem !important;
  text-decoration: none !important;
  cursor: pointer;
}
.woocommerce-cart .shipping-calculator-form {
  margin-top: 12px;
}
.woocommerce-cart .shipping-calculator-form p {
  margin-bottom: 8px;
}
.woocommerce-cart .shipping-calculator-form input[type="text"],
.woocommerce-cart .shipping-calculator-form input[name="calc_shipping_postcode"] {
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius) !important;
  padding: 8px 12px !important;
  font-size: 0.85rem !important;
  font-family: var(--font-body) !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
.woocommerce-cart .shipping-calculator-form input:focus {
  border-color: var(--color-gold) !important;
  outline: none !important;
}
.woocommerce-cart .shipping-calculator-form button[type="submit"] {
  margin-top: 8px !important;
  width: 100% !important;
  background: #1a1a1a !important;
  color: #fff !important;
  border: none !important;
  border-radius: var(--radius) !important;
  padding: 10px !important;
  font-size: 0.82rem !important;
  font-family: var(--font-body) !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
}
.woocommerce-cart .shipping-calculator-form button[type="submit"]:hover {
  background: var(--color-gold) !important;
}
/* Hide country row — locked to AR via JS, stays in form for correct submission */
.woocommerce-cart .shipping-calculator-form .country_to_state,
.woocommerce-cart .shipping-calculator-form p:has(select[name="calc_shipping_country"]) {
  display: none !important;
}
/* Hide the "Enviar a X" destination text when no useful postcode */
.woocommerce-shipping-destination { font-size: 0.8rem; color: #888; }

/* ── Product page trust badges ──────────────────────────────────────────────── */
.product-trust-badges {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 16px;
  margin-top: 20px;
  padding: 16px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: #fafaf9;
}

.trust-badge {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-body);
  font-size: 0.78rem;
  color: var(--color-muted);
}

.trust-badge svg {
  flex-shrink: 0;
  color: var(--color-gold);
  stroke: var(--color-gold);
}

/* ── Homepage category grid ─────────────────────────────────────────────────── */
ul.product-categories {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

/* Sidebar: lista vertical, sin grid */
.widget_product_categories ul.product-categories,
.sidebar ul.product-categories,
#secondary ul.product-categories {
  display: block !important;
  grid-template-columns: unset !important;
  gap: 0 !important;
}
.widget_product_categories ul.product-categories li,
.sidebar ul.product-categories li,
#secondary ul.product-categories li {
  padding: 2px 0 !important;
  text-align: left !important;
}
.widget_product_categories ul.product-categories li a,
.sidebar ul.product-categories li a,
#secondary ul.product-categories li a {
  display: inline !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  font-size: 0.9rem !important;
  color: var(--color-text) !important;
}
.widget_product_categories ul.product-categories li a:hover,
.sidebar ul.product-categories li a:hover,
#secondary ul.product-categories li a:hover {
  color: var(--color-gold) !important;
  border: none !important;
  box-shadow: none !important;
}
.widget_product_categories ul.product-categories li a img,
.sidebar ul.product-categories li a img,
#secondary ul.product-categories li a img {
  display: none !important;
}

ul.product-categories li.product-category {
  text-align: center;
}

ul.product-categories li.product-category a {
  display: block;
  text-decoration: none;
  color: var(--color-text);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  overflow: hidden;
  transition: box-shadow 0.25s ease, border-color 0.25s ease;
}

ul.product-categories li.product-category a:hover {
  border-color: var(--color-gold);
  box-shadow: 0 4px 24px rgba(201,169,110,0.15);
}

ul.product-categories li.product-category a img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}

ul.product-categories li.product-category a:hover img {
  transform: scale(1.04);
}

ul.product-categories li.product-category .woocommerce-loop-category__title {
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  padding: 14px 12px;
  margin: 0;
  color: var(--color-text);
}

ul.product-categories li.product-category .woocommerce-loop-category__title mark {
  background: none;
  color: var(--color-muted);
  font-size: 0.78rem;
  font-family: var(--font-body);
  font-weight: 400;
}

@media (max-width: 768px) {
  ul.product-categories {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
  ul.product-categories li.product-category a img {
    height: 140px;
  }
}

@media (max-width: 480px) {
  ul.product-categories {
    grid-template-columns: 1fr;
  }
}

/* ── WhatsApp button on product pages ───────────────────────────────────────── */
.wc-whatsapp-btn {
  display: inline-flex !important;
  align-items: center;
  margin-top: 16px !important;
  background: #25D366 !important;
  color: #fff !important;
  border: none !important;
  border-radius: var(--radius) !important;
  padding: 12px 20px !important;
  font-size: 0.9rem !important;
  font-family: var(--font-body) !important;
  font-weight: 500 !important;
  letter-spacing: 0.04em !important;
  text-decoration: none !important;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.15s ease;
  margin-top: 8px;
  width: 100%;
  justify-content: center;
}

.wc-whatsapp-btn:hover {
  background: #1ebe5d !important;
  color: #fff !important;
  transform: translateY(-1px);
}

.wc-whatsapp-btn svg {
  fill: #fff;
}

/* ── Astra breadcrumbs ──────────────────────────────────────────────────────── */
.ast-breadcrumbs-wrapper {
  padding: 10px 0 4px;
  border-bottom: 1px solid var(--color-border);
  margin-bottom: 0;
}

.ast-breadcrumbs,
.ast-breadcrumbs * {
  font-family: var(--font-body) !important;
  font-size: 0.75rem !important;
  color: var(--color-muted) !important;
}

.ast-breadcrumbs a {
  color: var(--color-muted) !important;
  text-decoration: none !important;
}

.ast-breadcrumbs a:hover {
  color: var(--color-gold) !important;
}

.ast-breadcrumbs .trail-end {
  color: var(--color-text) !important;
  font-weight: 500 !important;
}

/* ── Product social sharing ─────────────────────────────────────────────────── */
.product-share {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 20px;
  flex-wrap: wrap;
}

.product-share-label {
  font-family: var(--font-body);
  font-size: 0.75rem;
  color: var(--color-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.share-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 12px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 500;
  text-decoration: none;
  transition: all 0.15s ease;
}

.share-wa {
  color: #25D366;
  border-color: #c3eecf;
  background: #f0fdf4;
}
.share-wa:hover { background: #25D366; color: #fff; border-color: #25D366; }

.share-fb {
  color: #1877f2;
  border-color: #c3d9fd;
  background: #eff5ff;
}
.share-fb:hover { background: #1877f2; color: #fff; border-color: #1877f2; }

.share-copy {
  color: var(--color-muted);
  background: #f5f5f3;
}
.share-copy:hover { background: var(--color-text); color: #fff; border-color: var(--color-text); }

/* ── Product page shipping note ─────────────────────────────────────────────── */
.product-shipping-note {
  font-family: var(--font-body);
  font-size: 0.78rem;
  color: var(--color-muted);
  margin: 8px 0 0;
  padding: 8px 12px;
  background: #f8fdf8;
  border-left: 3px solid #7bc67e;
  border-radius: 0 var(--radius) var(--radius) 0;
}

/* ── Miscellaneous UX polishes ───────────────────────────────────────────────── */

/* Back to top of shop on mobile */
.woocommerce-pagination {
  text-align: center;
  margin-top: 48px;
}

/* Smooth image loading — product gallery mantiene fondo suave; shop thumbnails blanco */
.woocommerce-product-gallery img {
  background: #f5f5f3;
}
ul.products li.product .attachment-woocommerce_thumbnail {
  background: #ffffff;
}

/* Single product tabs polish */
.woocommerce-tabs .tabs li a {
  font-family: var(--font-body);
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.woocommerce-tabs .tabs li.active a {
  color: var(--color-text);
  border-top-color: var(--color-gold);
}

/* Shipping/returns info tab */
.woocommerce-tabs #tab-additional_information table {
  font-family: var(--font-body);
  font-size: 0.88rem;
  border-collapse: collapse;
  width: 100%;
}

.woocommerce-tabs #tab-additional_information table th {
  text-align: left;
  padding: 8px 16px 8px 0;
  color: var(--color-muted);
  font-weight: 500;
  text-transform: uppercase;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  border-bottom: 1px solid var(--color-border);
}

.woocommerce-tabs #tab-additional_information table td {
  padding: 8px 0;
  border-bottom: 1px solid var(--color-border);
}

/* Reviews form styling */
#review_form .comment-form-rating label {
  font-family: var(--font-body);
  font-size: 0.85rem;
}

#respond p.comment-notes {
  font-size: 0.82rem;
  color: var(--color-muted);
}

/* Cart empty page */
.woocommerce-cart .cart-empty {
  font-family: var(--font-heading);
  font-size: 1.4rem;
  font-weight: 400;
  text-align: center;
  padding: 60px 0 20px;
}

.woocommerce-cart .return-to-shop {
  text-align: center;
  margin-top: 24px;
}

/* Skip link for accessibility */
.skip-link {
  position: absolute;
  top: -100%;
  left: 0;
  z-index: 99999;
}

.skip-link:focus {
  top: 0;
  background: var(--color-gold);
  color: #fff;
  padding: 8px 16px;
}

/* Footer text link color */
.ast-footer-widget-area a {
  color: var(--color-text);
  text-decoration: underline;
  text-decoration-color: var(--color-border);
  transition: color 0.2s ease;
}

.ast-footer-widget-area a:hover {
  color: var(--color-gold);
}

.ast-footer-widget-area ul {
  line-height: 2;
}

.ast-footer-widget-area .widget-title {
  font-family: var(--font-heading);
  font-size: 0.85rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--color-text);
  margin-bottom: 16px;
}

/* Mobile menu improvements */
@media (max-width: 921px) {
  .site-header-primary-section-right .ast-button-wrap {
    margin-top: 0;
  }
}

/* Print styles for product pages */
@media print {
  .whatsapp-float,
  .back-to-top,
  .sticky-cart-bar,
  .wc-whatsapp-btn,
  .product-trust-badges { display: none !important; }
}

@media (max-width: 768px) {
  .back-to-top {
    bottom: 82px;
    right: 16px;
    width: 36px;
    height: 36px;
  }
  .tdt-buy-now-btn {
    margin-left: 0;
    margin-top: 8px;
    width: 100%;
  }
}

/* Category archive header */
.woocommerce-products-header__title {
  font-family: var(--font-heading) !important;
  font-size: 2rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.04em;
}

.term-description {
  font-family: var(--font-body);
  font-size: 0.88rem;
  line-height: 1.8;
  color: var(--color-muted);
  max-width: 600px;
  margin-top: 8px;
}

/* ── Announcement bar (v1.2.8) ───────────────────────────────────────────────── */
.announcement-bar {
  background: var(--color-black);
  color: #fff;
  text-align: center;
  padding: 10px 48px 10px 16px;
  font-family: var(--font-body);
  font-size: 0.82rem;
  letter-spacing: 0.02em;
  position: relative;
  z-index: 10000;
}
.announcement-bar strong {
  color: var(--color-gold);
}
.announcement-close {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: transparent;
  border: none;
  color: rgba(255,255,255,0.6);
  font-size: 14px;
  cursor: pointer;
  padding: 4px 8px;
  line-height: 1;
}
.announcement-close:hover {
  color: #fff;
}
@media (max-width: 480px) {
  .announcement-bar {
    font-size: 0.75rem;
    padding: 8px 40px 8px 12px;
  }
}

/* ── Footer payment bar (v1.2.8) ────────────────────────────────────────────── */
.footer-payment-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px;
  padding: 14px 20px;
  background: #1a1a1a;
  font-family: var(--font-body);
  font-size: 0.78rem;
  color: rgba(255,255,255,0.65);
}
.footer-payment-label {
  color: rgba(255,255,255,0.5);
  font-size: 0.75rem;
}
.footer-payment-icons {
  display: flex;
  gap: 6px;
  align-items: center;
}
.pay-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 3px 8px;
  border-radius: 4px;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.pay-mp       { background: #009ee3; color: #fff; }
.pay-visa     { background: #1a1f71; color: #fff; }
.pay-mc       { background: #eb001b; color: #fff; }
.pay-transfer { background: #5a8a3c; color: #fff; }
.footer-payment-sep { color: rgba(255,255,255,0.2); }
.footer-copyright { color: rgba(255,255,255,0.4); font-size: 0.72rem; }
.footer-social-links {
  display: flex;
  gap: 8px;
  align-items: center;
}
.footer-social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.8) !important;
  text-decoration: none !important;
  transition: background 0.2s, color 0.2s;
}
.footer-social-link:hover {
  background: var(--color-gold) !important;
  color: #fff !important;
}

/* ── Product availability text (v1.3.3) ─────────────────────────────────────── */
.woocommerce div.product .stock.in-stock {
  color: #3a8a3a !important;
  font-size: 0.82rem !important;
  font-family: var(--font-body) !important;
  font-weight: 500 !important;
}

/* ── Cart coupon reminder (v1.2.8) ──────────────────────────────────────────── */
.cart-coupon-reminder {
  background: linear-gradient(135deg, #fff8ee 0%, #fdf3e3 100%);
  border: 1px solid #f0d9a8;
  border-left: 4px solid var(--color-gold);
  border-radius: 6px;
  padding: 14px 20px;
  margin-bottom: 24px;
  font-family: var(--font-body);
  font-size: 0.88rem;
  color: var(--color-black);
  line-height: 1.6;
}
.cart-coupon-reminder strong {
  color: #7a5c1e;
}

/* ── Checkout trust row (v1.2.8) ────────────────────────────────────────────── */
.checkout-trust-row {
  display: flex;
  gap: 20px;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  background: #f8f5f0;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  padding: 12px 20px;
  margin-bottom: 24px;
  font-family: var(--font-body);
  font-size: 0.82rem;
  color: var(--color-muted);
}
.checkout-trust-row span {
  display: flex;
  align-items: center;
  gap: 6px;
}
.checkout-trust-row svg {
  color: var(--color-gold);
  flex-shrink: 0;
}
@media (max-width: 600px) {
  .checkout-trust-row {
    flex-direction: column;
    gap: 10px;
    text-align: center;
  }
}

/* ── AJAX Live Search (v1.2.9) ──────────────────────────────────────────────── */
.ls-results-box {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: 6px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.12);
  z-index: 99999;
  max-height: 380px;
  overflow-y: auto;
}
.ls-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  text-decoration: none;
  color: var(--color-black);
  border-bottom: 1px solid var(--color-border);
  transition: background 0.15s;
  font-family: var(--font-body);
}
.ls-item:last-child { border-bottom: none; }
.ls-item:hover { background: var(--color-bg-soft); }
.ls-item img {
  width: 44px;
  height: 44px;
  object-fit: cover;
  border-radius: 3px;
  flex-shrink: 0;
}
.ls-name {
  flex: 1;
  font-size: 0.85rem;
  line-height: 1.4;
}
.ls-price {
  font-size: 0.8rem;
  color: var(--color-gold);
  font-weight: 600;
  white-space: nowrap;
}
.ls-no-results {
  padding: 16px;
  font-family: var(--font-body);
  font-size: 0.85rem;
  color: var(--color-muted);
  text-align: center;
}
.ls-no-results a { color: var(--color-gold); }
.ls-see-all {
  display: block;
  padding: 10px 14px;
  font-family: var(--font-body);
  font-size: 0.8rem;
  color: var(--color-gold);
  text-align: center;
  border-top: 1px solid var(--color-border);
  text-decoration: none;
  background: var(--color-bg-soft);
}
.ls-see-all:hover { background: #ede9e3; }

/* ── Shop page search bar ────────────────────────────────────────────────────── */
.tdt-shop-search {
  margin-bottom: 28px;
  width: 100%;
}
.tdt-shop-search-form {
  display: flex;
  width: 100%;
  gap: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  overflow: hidden;
  background: #fff;
  position: relative;
}
.tdt-shop-search-input {
  flex: 1;
  border: none !important;
  outline: none !important;
  padding: 11px 16px !important;
  font-size: 0.88rem !important;
  font-family: var(--font-body) !important;
  background: transparent !important;
  color: var(--color-text) !important;
  min-width: 0;
}
.tdt-shop-search-input::placeholder { color: #aaa; }
.tdt-shop-search-input:focus { box-shadow: none !important; }
.tdt-shop-search-btn {
  border: none !important;
  background: #1a1a1a !important;
  color: #fff !important;
  padding: 0 18px !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  transition: background 0.15s !important;
  flex-shrink: 0;
}
.tdt-shop-search-btn:hover { background: var(--color-gold) !important; }

/* ── Desktop header search: mismo estilo que la tienda ─────────────────────── */
#ast-desktop-header .slide-search .search-form,
.main-header-bar .slide-search .search-form,
.ast-desktop-header .slide-search .search-form {
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius) !important;
  overflow: hidden !important;
  background: #fff !important;
  display: flex !important;
  box-shadow: none !important;
}
#ast-desktop-header .slide-search .search-form label,
.main-header-bar .slide-search .search-form label {
  display: flex !important;
  align-items: stretch !important;
  width: 100% !important;
  margin: 0 !important;
}
#ast-desktop-header .slide-search .search-field,
.main-header-bar .slide-search .search-field {
  flex: 1 !important;
  height: 42px !important;
  padding: 10px 16px !important;
  border: none !important;
  outline: none !important;
  font-size: 0.88rem !important;
  font-family: var(--font-body) !important;
  background: transparent !important;
  color: var(--color-text) !important;
  box-shadow: none !important;
  min-width: 220px !important;
}
#ast-desktop-header .slide-search .search-field::placeholder,
.main-header-bar .slide-search .search-field::placeholder {
  color: #aaa !important;
}
#ast-desktop-header .slide-search .ast-search-submit,
.main-header-bar .slide-search .ast-search-submit {
  position: static !important;
  transform: none !important;
  background: #1a1a1a !important;
  border: none !important;
  color: #fff !important;
  padding: 0 16px !important;
  height: 42px !important;
  width: auto !important;
  min-width: unset !important;
  min-height: unset !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
  box-shadow: none !important;
}
#ast-desktop-header .slide-search .ast-search-submit:hover,
.main-header-bar .slide-search .ast-search-submit:hover {
  background: var(--color-gold) !important;
}

/* ── Size guide hint ─────────────────────────────────────────────────────────── */
.product-size-guide-hint {
  font-family: var(--font-body);
  font-size: 0.78rem;
  color: var(--color-muted);
  margin-top: 8px;
}
.product-size-guide-hint a {
  color: var(--color-gold);
  text-decoration: none;
}
.product-size-guide-hint a:hover {
  text-decoration: underline;
}

/* ── Comprar ahora button (v1.3.0) ──────────────────────────────────────────── */
.tdt-buy-now-btn {
  background: var(--color-gold) !important;
  color: #fff !important;
  border-color: var(--color-gold) !important;
  margin-left: 8px;
}
.tdt-buy-now-btn:hover {
  background: #a8843a !important;
  border-color: #a8843a !important;
  color: #fff !important;
}

/* ── Back-to-top button ─────────────────────────────────────────────────────── */
.back-to-top {
  position: fixed;
  bottom: 96px;
  right: 28px;
  width: 42px;
  height: 42px;
  background: #fff;
  border: 1.5px solid var(--color-border);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 12px rgba(0,0,0,0.10);
  z-index: 9998;
  cursor: pointer;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.25s, transform 0.25s, box-shadow 0.2s;
  pointer-events: none;
  color: var(--color-black);
}
.back-to-top.visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.back-to-top:hover {
  background: var(--color-gold) !important;
  border-color: var(--color-gold) !important;
  color: #fff !important;
  box-shadow: 0 4px 16px rgba(201,169,110,0.35);
}

/* ── Shop cuota badge (v1.3.1) ──────────────────────────────────────────────── */
.shop-cuota-badge {
  display: block;
  padding: 3px 16px 6px;
  font-family: var(--font-body);
  font-size: 0.72rem;
  color: #1a5fa8;
  line-height: 1.3;
}

/* ── Empty cart suggestions (v1.3.3) ────────────────────────────────────────── */
.cart-empty-suggestions {
  margin-top: 48px;
  padding-top: 32px;
  border-top: 1px solid var(--color-border);
}
.cart-empty-suggestions h3 {
  font-family: var(--font-heading);
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  margin-bottom: 24px;
  text-align: center;
}
.cart-empty-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.cart-empty-item {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: var(--color-text);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  overflow: hidden;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.cart-empty-item:hover {
  border-color: var(--color-gold);
  box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}
.cart-empty-item img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}
.cart-empty-name {
  padding: 10px 12px 4px;
  font-size: 0.82rem;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.cart-empty-price {
  padding: 0 12px 12px;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--color-gold);
}
@media (max-width: 768px) {
  .cart-empty-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ── Product tab: Envío y devoluciones (v1.3.3) ─────────────────────────────── */
.tdt-shipping-tab {
  padding: 8px 0;
}
.tdt-tab-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
}
.tdt-tab-col h4 {
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  margin: 0 0 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--color-border);
}
.tdt-tab-col ul {
  list-style: none;
  padding: 0;
  margin: 0 0 12px;
}
.tdt-tab-col ul li {
  padding: 5px 0;
  font-size: 0.9rem;
  color: var(--color-text);
  border-bottom: 1px solid var(--color-border);
}
.tdt-tab-col ul li:last-child { border-bottom: none; }
.tdt-tab-col p { font-size: 0.88rem; color: var(--color-muted); line-height: 1.6; margin: 0 0 10px; }
.tdt-tab-note { font-style: italic; }
@media (max-width: 768px) {
  .tdt-tab-cols { grid-template-columns: 1fr; gap: 24px; }
}

/* ── Add-to-cart toast (v1.3.3) ─────────────────────────────────────────────── */
.tdt-cart-toast {
  position: fixed;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%) translateY(120px);
  background: #1a1a1a;
  color: #fff;
  padding: 12px 24px;
  border-radius: 4px;
  font-family: var(--font-body);
  font-size: 0.85rem;
  z-index: 100000;
  transition: transform 0.3s cubic-bezier(.25,.8,.25,1), opacity 0.3s ease;
  opacity: 0;
  pointer-events: none;
  white-space: nowrap;
  box-shadow: 0 4px 20px rgba(0,0,0,0.25);
}
.tdt-cart-toast.visible {
  transform: translateX(-50%) translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.tdt-cart-toast a {
  color: var(--color-gold);
  text-decoration: none;
  font-weight: 500;
}
.tdt-cart-toast a:hover { text-decoration: underline; }
@media (max-width: 480px) {
  .tdt-cart-toast {
    white-space: normal;
    max-width: calc(100vw - 32px);
    text-align: center;
  }
}

/* ── Fix: override global button { !important } for UI components (v1.3.1) ──── */
/* The global button selector uses !important which leaks into component buttons */

.faq-question,
.faq-question:focus,
.faq-question:active {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  color: var(--color-text) !important;
  font-size: 0.95rem !important;
  font-weight: 500 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  padding: 18px 0 !important;
  box-shadow: none !important;
}
.faq-question:hover {
  background: transparent !important;
  color: var(--color-gold) !important;
}

.qty-btn {
  background: #f5f5f3 !important;
  border: none !important;
  color: var(--color-text) !important;
  font-size: 1.2rem !important;
  font-weight: 400 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  padding: 0 !important;
  width: 38px !important;
  height: 46px !important;
}
.qty-btn:hover {
  background: var(--color-gold) !important;
  color: #fff !important;
}

.back-to-top {
  background: #fff !important;
  border: 1.5px solid var(--color-border) !important;
  color: var(--color-black) !important;
  font-size: inherit !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  padding: 0 !important;
}

.announcement-close {
  background: transparent !important;
  border: none !important;
  color: rgba(255,255,255,0.6) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  padding: 4px 8px !important;
  box-shadow: none !important;
}
.announcement-close:hover {
  background: transparent !important;
  color: #fff !important;
}

/* ── Cart table: quitar border-bottom dorado de .entry-content a ─────────── */
.woocommerce-cart table.cart a,
.woocommerce-cart table.cart a:hover {
  border-bottom: none !important;
  text-decoration: none !important;
}
.woocommerce-cart table.cart td.product-thumbnail a {
  display: block;
  line-height: 0;
}
.woocommerce-cart table.cart td.product-thumbnail img {
  display: block;
}

/* ── Cart cross-sells ─────────────────────────────────────────────────────── */
.woocommerce-cart .cart-collaterals {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
}
.woocommerce-cart .cart_totals {
  order: 1 !important;
  width: 100% !important;
  max-width: none !important;
  float: none !important;
  margin-bottom: 48px;
}
.woocommerce-cart .cart_totals table {
  width: 100% !important;
}
.woocommerce-cart .cross-sells {
  order: 2 !important;
  width: 100% !important;
  max-width: none !important;
  float: none !important;
}
.woocommerce-cart .cross-sells h2 {
  font-size: 1.3rem;
  margin-bottom: 24px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--color-border);
}
.woocommerce-cart .cross-sells ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 20px !important;
}
.woocommerce-cart .cross-sells ul.products li.product {
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
}
@media (max-width: 921px) {
  .woocommerce-cart .cart_totals {
    width: 100% !important;
  }
  .woocommerce-cart .cross-sells ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* ── Cart categories section ──────────────────────────────────────────────── */
.tdt-cart-categories {
  margin-top: 64px;
  padding-top: 48px;
  border-top: 1px solid var(--color-border);
}
.tdt-cart-categories h2 {
  font-size: 1.4rem;
  margin-bottom: 32px;
}
.tdt-cart-categories ul.product-categories {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 24px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.tdt-cart-categories ul.product-categories li {
  margin: 0 !important;
}
.tdt-cart-categories ul.product-categories li a img {
  aspect-ratio: 4 / 3 !important;
  object-fit: cover;
  width: 100%;
}
.tdt-cart-categories ul.product-categories li a:hover {
  border-color: var(--color-gold);
}
@media (max-width: 921px) {
  .tdt-cart-categories ul.product-categories {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}
@media (max-width: 544px) {
  .tdt-cart-categories ul.product-categories {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* ── Tienda: mínimo 2 columnas en mobile ─────────────────────────────────────── */
@media (max-width: 544px) {
  .woocommerce ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    columns: unset !important;
  }
  .woocommerce ul.products li.product {
    width: auto !important;
    float: none !important;
  }
}

/* ── Carrito drawer — botón de cerrar ────────────────────────────────────────── */
.astra-cart-drawer-close {
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  min-height: 36px !important;
  padding: 6px !important;
  font-size: 1.1rem !important;
  line-height: 1 !important;
  border-radius: 4px !important;
  flex-shrink: 0;
}

