/*
 Theme Name: Botica Dental Elva Theme
 Template: hello-elementor
 Description: Tema hijo basado en Hello Elementor
 Author: Alvaro
 Version: 1.0
*/

/* ==============================
   VARIABLES DE COLOR
   ============================== */
:root {
  --color-principal: #028372;   /* Verde principal */
  --color-secundario: #003C3C;  /* Verde oscuro */
  --color-texto: #212121;       /* Texto principal */
  --color-enfasis: #00C853;     /* Verde énfasis */
  --color-texto-sec: #4F4F4F;   /* Texto secundario */
  --color-fondo: #FFFFFF;       /* Fondo base */
  --color-fondo-alt: #E7FFE4;   /* Fondo alternativo */
  --color-bordes: #E0E0E0;      /* Bordes y líneas */
  --color-hover: #026D60;       /* Hover */
  --color-activo: #004D4D;      /* Activo */
  --color-error: #FF5252;       /* Error */
  --color-info: #2979FF;        /* Info / Aviso */
  --color-desactivado: #BDBDBD; /* Estado desactivado */
  --color-exito: #00C853;       /* Éxito */
  --color-warning: #FFC107;     /* Advertencia */
}

/* ==============================
   BASE
   ============================== */
html,
body {
  margin: 0;
  padding: 0;
}

body {
  font-family: "Open Sans", Arial, sans-serif;
  color: var(--color-texto);
  background: var(--color-fondo);
}
body {
    overflow-y: auto;
}

a{
	color: var(--color-principal) !important;
}

.elementor-button span{
	color: var(--color-fondo);
}

ul.products::before  {
  display: none !important;
  content: none !important;
}

.onsale{
	display: none;
}

table{
	margin: 0 !important;
}

/* ==============================
   BANNER INFORMACION
   ============================== */

/* Contenedor principal: oculta el contenido que se sale de la pantalla */
        .elva-info-bar {
            width: 100%;
            overflow: hidden;
            background-color: var(--color-principal);
            padding: 8px;
            position: relative;
            box-sizing: border-box;
        }

        /* El carril (track): Se desplaza horizontalmente */
        .elva-info-track {
            display: flex;
            width: 100%;
            transition: transform 0.7s cubic-bezier(0.45, 0.05, 0.55, 0.95);
            will-change: transform;
        }

        /* Cada mensaje individual: Ocupa exactamente el 100% del ancho visible */
        .elva-info-item {
            flex: 0 0 100%; /* No se encoge, mide siempre el 100% */
            text-align: center;
            color: WHITE;
            font-size: 12px;
            font-weight: 400;
            letter-spacing: 2px;
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 6px;
            box-sizing: border-box;
            padding: 0 20px;
        }
		
		.elva-info-item > div {
			display: flex;
			align-items: center;
			justify-content: center;
			gap: 6px;
			background: white;
			color: var(--color-principal);
			padding: 4px;
    		padding-left: 12px;
			border-radius: 24px;
			cursor: pointer;
		}
	.elva-info-bar .elva-info-item strong{
		font-size:16px !important;
	}
		
		.fa-brands.fa-whatsapp {
			display: flex;
			align-items: center;
			justify-content: center;background: var(--color-principal);
   			color: white;
    		border-radius: 50%;
    		padding: 4px;
		}


        /* Ajustes para móviles */
        @media (max-width: 480px) {
            .elva-info-item {
                font-size: 11px;
                letter-spacing: 0.5px;
            }
        }

/* ==============================
   ENCABEZADO
   ============================== */
.encabezado {
  display: flex;
  grid-template-columns: auto minmax(0, 50vw) auto; /* centro fijo relativo */
  align-items: center;
  gap: 1rem;
  justify-content: space-between;
  max-width: 100%;
  margin: 2vw 6.5vw; /* antes 24px 128px */
  background: var(--color-fondo);
}

.logo img {
  height: 3.5vw; /* antes 56px */
  display: block;
}

/* ==============================
   BUSCADOR
   ============================== */
.contenedor-fibosearch{
	flex:8 !important;
}
.dgwt-wcas-search-wrapp{
	max-width:100% !important;
}

.dgwt-wcas-style-pirx .dgwt-wcas-sf-wrapp {
	padding:0 !important;
}

.dgwt-wcas-style-pirx .dgwt-wcas-sf-wrapp input[type=search].dgwt-wcas-search-input {
	background: #ebf5f4 !important;
}
.dgwt-wcas-style-pirx.dgwt-wcas-search-wrapp.dgwt-wcas-search-focused input[type="search"].dgwt-wcas-search-input:hover, 
.dgwt-wcas-tpd-image {
	background: var(--color-fondo) !important;
}

.dgwt-wcas-style-pirx.dgwt-wcas-search-focused .dgwt-wcas-sf-wrapp input[type=search].dgwt-wcas-search-input{
	border-color: var(--color-principal) !important;
}

.dgwt-wcas-style-pirx.dgwt-wcas-search-filled .dgwt-wcas-sf-wrapp input[type=search].dgwt-wcas-search-input{
	padding-left: 48px !important;
}

.dgwt-wcas-preloader .dgwt-wcas-close{
	right: 0 !important;
}

.dgwt-wcas-style-pirx .dgwt-wcas-sf-wrapp button.dgwt-wcas-search-submit{
	top: 10px !important;
	left: 14px !important;
}

/* ==============================
   COTIZADOR
   ============================== */

/* Contenedor del botón */
#contenedor-cotizador {
    position: relative;
    display: inline-block;
	widows: 100%;
	flex: 1;
}

/* Estilo del círculo de notificación (Badge) */
.badge-cotizacion {
    position: absolute;
    top: -16px;
    right: -16px;
    background-color: var(--color-enfasis);
	border: 3.5px solid;
    color: #ffffff;
    font-size: 12px;
    font-weight: bold;
    height: 32px;
    min-width: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 4px rgba(0,0,0,0.3);
    z-index: 99;
    pointer-events: none;
    transition: transform 0.2s ease-in-out;
}

/* Ocultar si el contador es cero */
.badge-cotizacion:empty,
.badge-cotizacion[data-count="0"] {
    display: none;
}

/* ==============================
   MEGAMENU – BOTICA DENTAL ELVA
   ============================== */

/* 🔒 Oculto por defecto */
#contenedor-menu-categorias {
    position: relative;
    z-index: 9999;
}

/* ==============================
   SCROLL CONTROLADO - ESTRUCTURA PRINCIPAL
   ============================== */

.menu-categorias-lateral {
	background: var(--color-fondo);
    display: none;
    position: absolute;
    top: 100%;
    left: -32%;
    width: 800px;
    border-radius: 32px;
    overflow: hidden;
    z-index: 1000;
    overscroll-behavior: contain !important; /* evita que el body se mueva */
    -webkit-overflow-scrolling: touch !important;
	box-shadow: 0px 0px 32px 8px rgba(0,0,0,0.25);
}

/* 🧊 Cuando el mouse está sobre el menú → el body no se mueve */
.menu-categorias-lateral:hover {
    overscroll-behavior: contain !important;
}

.menu-categorias-lateral.open {
    display: flex;
    margin-top: 34px;
}

/* COLUMNA IZQUIERDA */
.menu-columna {
    width: 40%;
    background: #fff;
    flex-shrink: 0;
	overflow-y: auto !important;
    overscroll-behavior: contain !important;
	scrollbar-width: none;          /* Firefox */
    -ms-overflow-style: none;       /* IE/Edge */
	max-height: calc(73vh - 80px); /* alto dinámico sin romper diseño */

}
.menu-columna::-webkit-scrollbar {
    display: none;                  /* Chrome/Safari */
}

.lista-categorias {
    margin: 0;
    padding: 0;
    list-style: none;
}

.categoria-item {
    padding: 24px;
    font-weight: 600;
    color: #003c3c !important;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
	background:white;
}

.menu-categorias-lateral .lista-categorias li.categoria-item .contenedor i,
.menu-categorias-lateral .lista-categorias li.categoria-item .contenedor span,
.menu-categorias-lateral .lista-categorias li.categoria-item .flecha {
	color: var(--color-secundario);
}

/* Activo */



.categoria-item:hover,
.categoria-item.active{
	background: var(--color-principal);	
}

.menu-categorias-lateral .lista-categorias li.categoria-item a{
    gap: 12px;
    display: flex;
    align-items: center;
	justify-content: space-between;
}

.menu-categorias-lateral .lista-categorias li.categoria-item:hover .contenedor i,
.menu-categorias-lateral .lista-categorias li.categoria-item:hover .contenedor span,
.menu-categorias-lateral .lista-categorias li.categoria-item:hover .flecha,
.menu-categorias-lateral .lista-categorias li.categoria-item.active .contenedor i,
.menu-categorias-lateral .lista-categorias li.categoria-item.active .contenedor span,
.menu-categorias-lateral .lista-categorias li.categoria-item.active .flecha{
    color: #fff !important;
}

.menu-categorias-lateral .lista-categorias li.categoria-item .contenedor{
display: flex;
    gap: 8px;
	align-items: center;
}



/* ==============================
   PANEL DERECHO
   ============================== */

.menu-panel {
    flex: 1;
    background: transparent;
    opacity: 0;
    visibility: hidden;
    position: relative;
    transition: opacity 0.25s ease, visibility 0.25s ease;
}

/* Mostrar panel activo */
.menu-panel.active {
    opacity: 1;
    visibility: visible;
}

/* Subpaneles */
.panel-subcategorias {
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    padding: 24px;
    background: #fff;
    border-radius: 0 32px 32px 0;
    opacity: 0;
    visibility: hidden;
    transform: translateX(20px);
    transition: all 0.25s ease;
}

/* Mostrar subpanel activo */
.panel-subcategorias.active {
    display: block;
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
}

/* ==============================
   SUBCATEGORÍAS
   ============================== */

.subcat-grid {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 0;
    margin: 0;
    list-style: none;
}

.subcat-grid li a {
    color: var(--color-secundario) !important;
    font-size: 15px;
    transition: color 0.2s;
}

.menu-panel .subcat-grid li a:hover,
.menu-panel .subcat-grid li a:active,
.menu-panel .subcat-grid li a:focus{
    color: var(--color-hover) !important;
}

/* Mantener panel visible mientras el mouse está encima */
.menu-categorias-lateral:hover .panel-subcategorias.active {
    opacity: 1;
    visibility: visible;
}

/* ==============================
   NAVEGACIÓN
   ============================== */
.navegacion {
  background: var(--color-principal);
}

.boton-categoria:hover{
	background: none;
	color: var(--color-secundario) !important;
}

.menu {
  max-width: 100%; /* antes 50vw */
  margin: 0 auto;
  padding: 2vw 0;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 5vw;
  justify-content: center; /* centrado */
}

.menu a,
nav .boton-categoria span, nav .boton-categoria{
  color: var(--color-fondo) !important;
  text-decoration: none;
  font-weight: 700;
  background: none;
  border: 0;
  cursor: pointer;
  font-size: 0.95rem;
	padding: 0;
	 display: flex;
    align-items: center;
    gap: 8px;
}

.menu a:hover,
.boton-categoria:hover {
  text-decoration: underline;
}

/* Sin línea al pasar el mouse */
.menu a,
.menu a:visited,
.boton-categoria {
  text-decoration: none;
}

.menu a:hover,
.menu a:focus,
.boton-categoria:hover,
.boton-categoria:focus {
  text-decoration: none;
  outline: none;
	background-color: transparent  !important;
}

.tiene-flecha > a::after {
  content: " ▾";
  font-weight: 700;
}

/* ==============================
   BREADCRUMB
   ============================== */
.migas {
  background-color: var(--color-fondo-alt);
}

.migas__lista {
  display: flex;
  flex-direction: row;
  gap: 1rem;
  list-style: none;
  justify-content: flex-start;
  padding: 1.5vw 6.5vw;
}

li{
	color:var(--color-secundario);
	font-weight:600;
	font-size: 0.8vw !important;
}


/* ==============================
	CONTENIDO PRODUCTO
============================== */

/* Contenedor del producto */

.content-area{
	background: #f1fbf8;
}

.site-main{
	margin: 0 118px !important;
	max-width: 85% !important;
	padding: 64px 0;
}

.producto-custom {
  display: flex;
  gap: 4vw;
	padding: 48px;
	border-radius: 64px;
	background: var(--color-fondo);
}

/* Galería */
.producto-custom__galeria {
  display: flex;
  gap: 20px;
}

.miniaturas {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.miniatura {
  border: 2px solid #02837230;
  padding: 8px;
  cursor: pointer;
  border-radius: 16px;
  transition: all 0.2s ease-in-out;
}

.miniatura img {
  display: block;
  width: 70px;
  height: auto;
}

.miniatura:hover {
  border-color: #00C853; /* Hover verde */
}

.miniatura.active {
  border-color: #028372; /* Seleccionada */
}

.imagen-principal img {
  max-width: 400px;
  height: auto;
  border-radius: 8px;
  transition: transform 0.3s ease;
}

/* Galería de imágenes */
.producto-custom__galeria {
  flex: 1 1 50%;
}

/* Contenido del producto */

.producto-custom__contenido {
  flex: 1 1 45%;
	 display: flex;
    flex-direction: column;
    gap: 48px;
}

.grupo-dato {
  display: flex;
  flex-direction: column; /* vertical */
  gap: 8px; /* separación entre categoría y título */
}

.grupo-cotizador {
  display: flex;
  flex-direction: column;
  gap: 24px; /* separación entre botón y métodos de pago */
}

.producto-categoria a {
	color: var(--color-principal);
}

.producto-categoria a:hover{
	color:var(--color-hover);
}

.producto-titulo {
  font-size: 2vw !important;
  font-weight: 800;
  margin: 0;
  color: var(--color-texto, #212121);
}

/* Contenedor general de precios */
.producto-precio {
  display: flex;
  flex-direction: column;
  gap: 10px; /* separación entre filas */
	font-weight:500;
}

/* Cada fila de precio */
.precio-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 1rem;
  color: #222;
}

/* Etiquetas */
.precio-item .label {
  font-weight: 500;
  color: #444;
}

/* Valores */

/* Precio promocional */
.precio-item .valor.especial {
  color: #009688;
  font-size: 1.1rem;
}

/* Precio regular tachado */
.precio-item .valor.tachado {
  text-decoration: line-through;
  color: #888;
	opacity:0.4;
}

/* Contenedor con separación uniforme */
.grupo-contenido {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.producto-descripcion {
  font-size: 1rem;
  color: #444;
  line-height: 1.6;
}
.descripcion-lista{
	padding:0;
	color: var(--color-secundario);
}

/* Ocultar a partir del 4to item */
.descripcion-lista li:nth-child(n+4) {
  display: none;
}

/* Cuando se expande, mostrar todos */
.producto-descripcion.expanded .descripcion-lista li {
  display: list-item;
}

/* Botón ver más */
.boton-ver-mas {
  background: none !important;
  border: none !important;
  color: var(--color-principal) !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  margin-top: 8px ;
  padding: 0 !important;
	font-size: 12px !important;
}

.boton-ver-mas:hover {
  text-decoration: underline;
}

.producto-pack strong,
.producto-entrega strong {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: 700;
  color: #222;
}

.opciones-entrega {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.opciones-entrega span {
  font-size: 0.95rem;
  color: #333;
}

.opciones-entrega small {
  color: var(--color-principal, #009688);
  font-weight: 600;
  margin-left: 4px;
}

.producto-pack p{
	margin: 0;
}

/* Producto */

.site-main li{
	font-weight: 400;
    font-size: 1vw !important;
}

.galeria-producto {
  display: flex;
  gap: 20px;
  align-items: flex-start;
}

.miniaturas {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.miniatura img {
  width: 96px !important;
	max-width: none;
  border-radius: 8px;
  cursor: pointer;
}

.imagen-principal {
  position: relative;
}

.imagen-principal img {
  max-width: 100%;
  border-radius: 8px;
  display: block;
}

.info-extra {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-top: 15px;
}

.info-nombre {
  background: #00A65A;
  color: white;
  padding: 12px 18px;
  border-radius: 12px;
  font-weight: bold;
  font-size: 16px;
  line-height: 1.4;
}

.info-nombre span {
  font-size: 14px;
  display: block;
}

.info-cantidad {
  background: #CDEB89;
  color: #333;
  padding: 12px 18px;
  border-radius: 12px;
  text-align: center;
  font-size: 14px;
  font-weight: bold;
}

.info-cantidad strong {
  font-size: 22px;
  display: block;
}

/* Contenedor de cantidad + botón */
.producto-boton form {
  display: flex;
  align-items: center;
  gap: 1.5rem; /* espacio entre input y botón */
}

/* Input de cantidad */
.input-cantidad,
.qty {
  width: 8rem !important;
  height: 48px !important;
  font-size: 1.2rem;
  text-align: center !important;
  border: 1px solid var(--color-principal) !important;
	color: var(--color-principal);
  border-radius: 12px !important;
  outline: none !important;
  transition: all 0.3s ease;
	padding: 0.5rem 0.5rem 0.5rem 1.5rem !important; 
}

.input-cantidad:focus,
.qty:focus {
  border-color: var(--color-principal, #00bfa5);
  box-shadow: 0 0 5px rgba(0,191,165,0.5);
}

.boton-whatsapp {
  display: inline-block;
  background-color: #25D366;
  color: #fff !important;
  font-size: 1rem;
  font-weight: bold;
  padding: 1rem;
  border-radius: 16px;
  text-decoration: none;
	text-align: center;
	transition: background 0.3s ease, transform 0.2s ease;
}

.boton-whatsapp:hover {
  background-color: #1ebe5d;
	color: white;
	transform: translateY(-2px);
}

/* Contenedor del bloque de pagos */
.producto-pagos {
  max-width: 100%;   /* 🔹 ajusta al ancho de tu botón + input */
  overflow: hidden;   /* oculta lo que se sale */
  position: relative;
	border-radius:12px;
}

/* Slider interno */
.slider-pagos {
  display: flex;
  gap: 1rem;
  animation: scroll-pagos 15s linear infinite;
}

.slider-pagos img {
  height: 50px;
  width: auto;
  border-radius: 8px;
  flex-shrink: 0; /* evita que se deformen */
}

/* Animación automática */
@keyframes scroll-pagos {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); } /* se mueve a la izquierda */
}

/*Descripcion Larga*/
/* Ocultar solo los títulos/pestañas de WooCommerce */
.woocommerce-tabs ul.tabs {
    display: none !important;
}

/* Opcional: quitar bordes o espacio extra */
.woocommerce-tabs {
    border: none !important;
    margin-top: 0 !important;
}

.woocommerce-Tabs-panel--description h2 {
  display: none !important;
}

/*Acordion*/
.woocommerce-tabs{
	margin-top: 64px !important;
}

 .entry-content {
	background: WHITE;
	 border-radius: 64px;
	 padding:48px;
}

.accordion {
  background: #fff;
	display: flex;
    flex-direction: column;
    gap: 1rem;
}

.accordion-item {
  border-bottom: 1px solid #eee;
}

.accordion-header {
  width: 100%;
  text-align: left;
  padding: 0;
	padding-bottom: 1rem;
  font-size: 1rem;
  font-weight: 600;
  border: none;
  cursor: pointer;
  transition: background 0.3s;
	color: var(--color-texto);
}

.accordion-header:hover, .accordion-header:focus{
	background: NONE;
	color: var(--color-texto);
}

.accordion-content {
  max-height: 0;
  overflow: hidden;
  padding: 0 1rem;
  font-size: 0.95rem;
  line-height: 1.6;
  color: #444;
  transition: max-height 0.3s ease, padding 0.3s ease;
}

.accordion-content.open {
  max-height: 1000px; /* suficiente para expandirse */
  padding: 0px 0px 1rem 1rem;
	color: var(--color-secundario);
}

.accordion-content.open ul{
	padding-left:1rem;
} 

/* Productos Categoria*/

.productos-relacionados, .productos-destacados{
	padding: 64px 128px;
    background: #f1fbf8;
}

.productos-relacionados li, .productos-destacados li{
	list-style: none;
    gap: 32px;
}

.producto-grid li.product{
	border: 1px solid var(--color-hover);
}

.titulo-seccion{
	font-size:32px !important;
	font-weight:600;
}

.productos-relacionados li h2, .productos-destacados li h2{
	font-size: 24px !important;
    color: var(--color-principal);
}


/* ==============================
CATALOGO DE PRODUCTOS
============================== */

/* Estructura general */
.pagina-catalogo {
  padding: 4rem 8rem;
  background: #f5fdfb;
}

.catalogo-contenedor {
  display: flex;
  gap: 1.5rem;
}

/* Filtros */
.filtros-laterales {
  width: 30%;
  background: #ffffff;
  padding: 1rem 1.5rem;
  border-radius: 31px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.05);
  font-size: 15px;
	display: flex;
    flex-direction: column;
    gap: 32px;
}

.filtros-laterales h3 {
  font-size: 1rem !important;
	font-weight: 600;
}

.filtros-laterales ul {
  list-style: none;
  padding-left: 0;
}
.filtros-laterales li {
  margin-bottom: 0.5rem;
}

.filtros-laterales li a:hover{
	color: var(--color-hover) !important;
}

/* Grilla productos */

.productos-listado{
	width: 100%;
	display: flex;
    flex-direction: column;
    justify-content: space-between;
	gap: 1.5rem;
}

.woocommerce-ordering select{
	padding: 16px;
	border-radius: 32px;
	border: none;
	padding-right: 48px;
}

.productos-listado ul.products {
  display: grid;
  gap: 24px;
  padding: 0 !important;
	grid-template-columns: 1fr 1fr 1fr 1fr;
}

.productos-listado ul.products li.product:hover {
  transform: translateY(-4px);
}

/* === PAGINACIÓN CATÁLOGO === */

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  display: inline-block;
  padding: 10px 16px;
  border-radius: 8px;
  border: 1px solid #ccc;
  text-decoration: none;
  color: #01796f;
  font-weight: 600;
  transition: all 0.3s ease;
}

.woocommerce nav.woocommerce-pagination ul li a:hover {
  background-color: #01796f;
  color: #fff;
  border-color: #01796f;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
  background-color: #01796f;
  color: #fff;
  border-color: #01796f;
}

/* Botón cotizar */
.button {
  background-color: var(--color-principal) !important;
  color: #fff !important;
  border-radius: 16px !important;
  font-weight: 600 !important;
  padding: 16px !important;
  display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
  text-align: center !important;
	width:100%;
	transition: background .3s ease;
	border: none !important;
	flex:1;
}

.button:hover{
	background-color: var(--color-hover) !important;
}

/* Búsqueda y orden */

/* === Estilo del contenedor del selector === */
.catalogo-header {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 1.5rem;
}

.paginacion-catalogo {
  padding: 16px;
  background: #fff;
  border-radius: 32px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.page-numbers {
  display: flex;
	justify-content: center;
  gap: 24px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.woocommerce nav.woocommerce-pagination ul li, .page-numbers li {
  display: flex;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span,
.page-numbers li span,
.page-numbers li a{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 16px;
  font-weight: 600;
  text-decoration: none;
  border: 1px solid #e0e0e0;
  color: #333;
  transition: all 0.25s ease;
  background-color: #fff;
	font-size: .8rem;
}

/* Hover */
.woocommerce nav.woocommerce-pagination ul li a:hover, .page-numbers li a:hover {
  background-color: #01796f;
  color: #fff !important;
  border-color: #01796f;
  transform: translateY(-1px);
}

/* Página activa */
.woocommerce nav.woocommerce-pagination ul li span.current, .page-numbers li span {
  background-color: var(--color-principal);
  color: #fff !important;
  border-color: var(--color-principal);
}

/* Flechas */
.woocommerce nav.woocommerce-pagination ul li a.prev,
.woocommerce nav.woocommerce-pagination ul li a.next {
  font-size: 16px;
  font-weight: bold;
}

.woocommerce nav.woocommerce-pagination ul li a.prev:hover,
.woocommerce nav.woocommerce-pagination ul li a.next:hover {
  background-color: #01796f;
  color: #fff !important;
  border-color: #01796f;
}

/* === Estilo visual del select de orden === */
.catalogo-header .orderby {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  font-size: 14px;
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.08);
  cursor: pointer;
  background-image: url("data:image/svg+xml;charset=UTF-8,<svg width='16' height='10' viewBox='0 0 16 10' xmlns='http://www.w3.org/2000/svg'><path d='M1 1l7 7 7-7' stroke='%23000000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat;
  background-position: right 20px center; /* ← mueve la flecha */
  background-size: 12px auto;
  transition: all 0.3s ease;
}

/* === Efecto al enfocar === */
.catalogo-header .orderby:focus {
  outline: none;
  box-shadow: 0 0 0 2px #01796f33;
}

/*Icon*/
.icon {
  font-size: 32px;
  color: var(--e-global-color-primary);
}

/* ===================================== */
/* Shortcode Producto – CORREGIDO COMPLETO */
/* ===================================== */

.slider .slick-list{
	width:100%
}

.slick-track{
    display: flex !important;
    gap: 20px;
	margin: 0 -12px !important;
}

#cat .slick-track{
	width:102% !important;
	margin: 0 -20px !important;
	justify-content: space-between;
}

/* === GRID SOLO PARA CATEGORÍAS / LISTADOS === */
/* Aplica solo si el contenedor tiene clase .productos-listado */
.productos-listado .woocommerce ul.products, .productos-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 20px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

/* Estilo de las tarjetas dentro del listado */
.productos-listado .woocommerce ul.products li.product,
.slick-initialized .slick-slide,
.productos-grid li.product,
.productos-listado ul.products li.product{
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  background: #fff;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
  border: 1px solid transparent;
  border-radius: 32px;
  padding: 16px;
  transition: all 0.3s ease;
  height: 100%;
	gap: 1.5rem;
}

/* Hover con sombra */
.productos-listado .woocommerce ul.products li.product:hover ,
.slick-initialized .slick-slide:hover,
.productos-grid li.product:hover,
.productos-listado ul.products li.product:hover{
  border-color: var(--color-hover, #0f766e);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  transform: translateY(-3px);
}

.productos-listado a,
#productos-destacados ul.products li.product a.woocommerce-LoopProduct-link ,
.productos-destacados a.woocommerce-LoopProduct-link.woocommerce-loop-product__link,
.productos-relacionados a.woocommerce-LoopProduct-link.woocommerce-loop-product__link { 
	display: flex;
    flex-direction: column;
    gap: 24px;
}

/* 3. Título del producto: altura fija, 3 líneas, con salto controlado */
.woocommerce ul.products li.product h2.woocommerce-loop-product__title,
.productos-relacionados li h2, .productos-destacados li h2,
.productos-listado h2{
  font-size: 1rem !important;
  font-weight: 600;
  color: var(--color-texto);
  line-height: 1.2 !important;
  height: 2.4rem !important;             /* 3 líneas de 1.2rem */
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  word-break: break-word !important;     /* Permite cortes de palabra si es muy larga */
	margin: 0;
}

.elementor img  {
	height:auto !important;
	width:100% !important;
}

.bde-subcats-grid {
  display: flex;
  gap: 1.25rem;
}

.bde-subcat-card {
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 32px;
  text-align: center;
  cursor: pointer;
  transition: all 0.3s ease;
  padding: 1rem;
}

.bde-subcat-card:hover {
  border-color: var(--color-activo, #007c70);
  box-shadow: 0 4px 15px rgba(0,0,0,0.1);
  transform: translateY(-3px);
}

.bde-subcat-img img {
  width: 100%;
  height: auto;
  border-radius: 16px !important;
}

.bde-subcat-title {
  font-weight: 700;
  margin-top: 32px;
	margin-bottom: 4px;
  color: var(--color-texto);
	font-size: 1.5rem !important;
}

.bde-subcat-parent {
  color: var(--color-texto-sec);
  font-size: 0.75rem;
	font-weight:500;
}

.price{
	display:flex;
	flex-direction: column;
    color: var(--color-texto);
	margin: 0;

}
.woocommerce ul.products li.product ins {
  text-decoration: none !important;
  border: none !important;
}
/* 🔹 Aplica solo al precio actual (dentro de <ins>) */
ins{
	text-decoration: none !important;
}

.woocommerce ul.products li.product ins .woocommerce-Price-amount,
ins .woocommerce-Price-amount.amount,
.productos-listado ul.products li.product ins .woocommerce-Price-amount{
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    color: var(--color-principal)!important;
}

/* 🔹 Asegura que el precio antiguo (tachado) se mantenga pequeño */
.woocommerce ul.products li.product del .woocommerce-Price-amount,
del .woocommerce-Price-amount.amount,
.productos-listado ul.products li.product del .woocommerce-Price-amount{
    font-size: 0.75rem !important;
    opacity: 0.5;
}
/* ==============================
   COTIZADOR – LAYOUT GENERAL
============================== */

.elva-cotizador {
    padding: 96px 6.5vw;
    display: flex;
    flex-direction: column;
    gap: 64px;
}

.elva-cotizador h2 {
    font-size: 48px !important;
    text-align: center;
    font-weight: 700;
    color: var(--color-principal);
    margin: 0;
}

.elva-cotizador h3 {
    font-size: 24px !important;
    font-weight: 700;
    color: var(--color-principal);
    margin: 0;
}

/* Columnas izquierda / derecha y wrapper de tabla */
.contenedor-izq,
.contenedor-der,
.elva-cotizador-tabla-wrapper {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.elva-cotizador .contenedor-izq,
.elva-cotizador .contenedor-der {
    width: 50%;
}

/* Formularios en columna */
.elva-cotizador .formulario {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* Título + "Limpiar todo" en la tabla */
.elva-cotizador-tabla-wrapper .titulos {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
}

.elva-cotizador-tabla-wrapper a {
    text-align: right;
    color: var(--color-enfasis) !important;
    cursor: pointer;
    font-size: 14px;
}

.elva-cotizador-tabla-wrapper a:hover {
    color: var(--color-principal) !important;
    text-decoration-line: underline !important;
}

/* ============================
   INPUTS FLOTANTES COTIZADOR
   (estructura: .elva-campo > label + input)
============================ */

.elva-campo {
    position: relative;
}

/* ---- INPUT BASE ---- */
.elva-campo input,
.elva-cotizador select {
    width: 100%;
    border: 1.5px solid var(--color-bordes);
    border-radius: 1rem !important;
    background: #ffffff;
    padding: 1rem !important;
    font-size: 1rem;
    color: #00342c; /* verde oscuro Botica */
    transition: border-color 150ms cubic-bezier(0.4, 0, 0.2, 1);
    outline: none;
}

.elva-campo input:hover,
.elva-cotizador select:hover {
    border-color: var(--color-enfasis);
}

/* ---- LABEL BASE ---- */
.elva-campo label {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1rem;
    color: #7a7a7a;
    pointer-events: none;
    background-color: #ffffff;
    padding: 0 .35em;
    transition: 150ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* ============================
   ESTADOS DE INPUT
============================ */

/* 1) FOCUS → borde y label con --color-enfasis */
.elva-campo input:focus {
    border-color: var(--color-enfasis) !important;
}

.elva-campo:has(input:focus) label {
    color: var(--color-enfasis);
}

/* 2) LABEL flotante cuando hay focus o el campo TIENE VALOR */
.elva-campo:has(input:focus) label,
.elva-campo:has(input:not(:placeholder-shown)) label {
    transform: translateY(-235%) scale(0.8);
}

/* 3) Campo con valor pero SIN focus → usa --color-principal */
.elva-campo:has(input:not(:placeholder-shown)):not(:has(input:focus)) label {
    color: var(--color-principal);
}

.elva-campo:has(input:not(:placeholder-shown)):not(:has(input:focus)) input {
    border: 1.5px solid var(--color-principal) !important;
}




/* ==============================
    ENTREGA (Recojo en tienda / Envío)
============================== */

.elva-entrega {
    padding: 32px !important;
    border-radius: 48px;
    border: 1.5px solid var(--color-bordes);
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.elva-entrega h3 {
    font-size: 20px;
    font-weight: 700;
    color: var(--color-principal);
    margin: 0;
}

/* Grupos de tarjetas (Recojo/Envío y Dónde entregamos) */
.elva-entrega-opciones {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.elva-entrega-tipo-lugar {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.elva-entrega-tipo-lugar .lugar {
    display: flex;
    flex-direction: row;
    gap: 20px;
}

/* Contenedor de datos de envío (distrito, dirección, tipo de lugar, etc.) */
.elva-entrega-envio,
.elva-campo-tipo-lugar {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* ============================
    KEYFRAMES
============================ */
/* Animación de entrada: desliza hacia abajo y aparece */
@keyframes elva-slide-fade-in {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Animación de salida: se desvanece y se desliza hacia arriba */
@keyframes elva-slide-fade-out {
    from {
        opacity: 1;
        transform: translateY(0);
    }
    to {
        opacity: 0;
        transform: translateY(-10px);
    }
}

/* --- ENVÍO A DOMICILIO / #elva-entrega-envio --- */
/* Bloque completamente oculto por defecto */
.elva-entrega-envio {
    opacity: 0;
    transform: translateY(-10px);
    display: none; 
    margin-top: 4px;
    transition: none; /* Asegura que solo se usen las animaciones */
}

/* Estado ABIERTO (JS añade la clase .is-open para aparecer) */
.elva-entrega-envio.is-open {
    display: flex;
    /* La animación de entrada (aparecer) */
    animation: elva-slide-fade-in 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; 
}

/* Estado CERRANDO (JS añade la clase .is-closing para desaparecer) */
.elva-entrega-envio.is-closing {
    /* La animación de salida (desaparecer) */
    animation: elva-slide-fade-out 0.4s cubic-bezier(0.55, 0.085, 0.68, 0.53) forwards; 
}

/* --- "Especifica el lugar" (OTROS) / #elva_tipo_lugar_otro_wrapper --- */
/* Bloque completamente oculto por defecto */
#elva_tipo_lugar_otro_wrapper {
    opacity: 0;
    transform: translateY(-10px);
    display: none; 
    overflow: hidden; 
    transition: none;
}

/* Estado ABIERTO (JS añade la clase .is-open para aparecer) */
#elva_tipo_lugar_otro_wrapper.is-open {
    display: flex;
    /* La animación de entrada (aparecer) */
    animation: elva-slide-fade-in 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

/* Estado CERRANDO (JS añade la clase .is-closing para desaparecer) */
#elva_tipo_lugar_otro_wrapper.is-closing {
    /* La animación de salida (desaparecer) */
    animation: elva-slide-fade-out 0.3s cubic-bezier(0.55, 0.085, 0.68, 0.53) forwards;
}



/* ==============================
   ESTILO BASE DE LAS TARJETAS
   (UNIFICADO)
============================== */

.elva-entrega-card,
.elva-entrega-tipo-lugar .lugar label {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 24px;
    width: 100%;
    border-radius: 24px;
    border: 1.5px solid var(--color-bordes);
    background-color: #ffffff;
    color: #1f2933;
    cursor: pointer;
    transition:
        border-color 150ms ease,
        box-shadow 150ms ease,
        background-color 150ms ease,
        color 150ms ease;
}

/* Ocultar radio nativo (ambos casos) */
.elva-entrega-card input[type="radio"],
.elva-entrega-tipo-lugar .lugar label input[type="radio"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

/* Circulito visual del radio */
.elva-entrega-card::before,
.elva-entrega-tipo-lugar .lugar label::before {
    content: "";
    width: 18px;
    height: 18px;
    margin-top: 4px;
    border-radius: 50%;
    border: 2px solid #9ca3af;
    box-sizing: border-box;
    flex-shrink: 0;
}

/* Contenido interno de la card */
.elva-entrega-card-body {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* Iconos Font Awesome en casa / trabajo / otros */
.elva-entrega-tipo-lugar .lugar label i {
    font-size: 1.2rem;
    color: #4b5563;
    margin-left: 4px;
    transition: color 150ms ease;
}

/* Textos dentro de las tarjetas */
.elva-entrega-titulo {
    font-size: 15px;
    font-weight: 700;
    color: var(--color-principal);
}

.elva-entrega-detalle,
.elva-entrega-direccion {
    font-size: 13px;
    color: #555;
}

/* Hover genérico tarjetas */
.elva-entrega-card:hover,
.elva-entrega-tipo-lugar .lugar label:hover {
    border-color: var(--color-enfasis);
}

/* ==============================
   ESTADO SELECCIONADO
============================== */

/* Tarjeta seleccionada (Recojo/Envío + Casa/Trabajo/Otros) */
.elva-entrega-card:has(input:checked),
.elva-entrega-tipo-lugar .lugar label:has(input:checked) {
    border-color: var(--color-enfasis, #1a73e8);
    background-color: color-mix(in srgb, var(--color-fondo-alt) 25%, transparent);
    box-shadow: 0 0 0 3px rgba(26, 115, 232, 0.15);
    color: #111827;
}

/* Circulito relleno cuando está seleccionado */
.elva-entrega-card:has(input:checked)::before,
.elva-entrega-tipo-lugar .lugar label:has(input:checked)::before {
    border-color: var(--color-enfasis, #1a73e8);
    background-color: var(--color-enfasis, #1a73e8);
    box-shadow: inset 0 0 0 4px #ffffff;
}

/* Icono azul cuando está seleccionado (casa/trabajo/otros) */
.elva-entrega-tipo-lugar .lugar label:has(input:checked) i {
    color: var(--color-enfasis, #1a73e8);
}

/* Título "¿Dónde entregamos?" */
.elva-entrega-tipo-label {
    font-weight: 600;
    font-size: 1rem;
    color: #1f2933;
}

/* ==============================
   COSTO ENVÍO (solo texto)
============================== */

.elva-entrega-costos {
    margin-top: 4px;
    font-size: 14px;
    color: #333;
}

/* ==============================
   COTIZADOR – TABLA DE CONTENIDO
============================== */

.elva-cotizador-contenedor-datos,
.elva-cotizador-tabla-cotizador {
    display: flex;
    flex-direction: row;
    gap: 24px;
}

.elva-cotizador-tabla th,
.elva-cotizador-tabla td {
    padding: 16px !important;
    background: #ffffff !important;
    align-content: center;
}

/* Columna 1: Imagen */
.elva-cotizador-tabla th:nth-child(1),
.elva-cotizador-tabla td:nth-child(1) {
    width: 9% !important;
}

/* Columna 2: Producto */
.elva-cotizador-tabla th:nth-child(2),
.elva-cotizador-tabla td:nth-child(2) {
    width: 28% !important;
}

/* 3: Precio unitario */
.elva-cotizador .elva-cotizador-tabla thead th:nth-child(3),
.elva-cotizador .elva-cotizador-tabla tbody td:nth-child(3) {
    width: 15% !important;
    text-align: center;
}

/* 4: Cantidad */
.elva-cotizador .elva-cotizador-tabla thead th:nth-child(4),
.elva-cotizador .elva-cotizador-tabla tbody td:nth-child(4) {
    width: 13% !important;
    text-align: center;
}

/* Columna 5: Total */
.elva-cotizador-tabla th:nth-child(5),
.elva-cotizador-tabla td:nth-child(5) {
    width: 13% !important;
    text-align: center;
}

/* Columna 6: Quitar */
.elva-cotizador-tabla th:nth-child(6),
.elva-cotizador-tabla td:nth-child(6) {
    width: 11% !important;
    text-align: center;
    white-space: nowrap;
}

.elva-cotizador-tabla td a:hover {
    color: var(--color-enfasis);
}

/* ==============================
   COLUMNA "PRODUCTO" (categoria + nombre)
============================== */

.elva-cotizador-tabla td.elva-producto-nombre {
    vertical-align: top;
}

.elva-producto-categoria,
.elva-producto-nombre-texto {
    display: block;
}

.elva-producto-categoria {
    width: 100%;
    margin-bottom: 4px;
    font-size: 10px;
    font-weight: 600;
    color: var(--color-principal);
}

.elva-producto-nombre-texto {
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
}

/* Input de cantidad */
.elva-cotizador-tabla td:nth-child(4) input.elva-cantidad {
    width: 80px !important;
    max-width: 100%;
    text-align: center;
    border-radius: 16px !important;
    padding: 12px !important;
    padding-left: 24px !important;
}

/* ==============================
   RESUMEN – TOTALES
============================== */

.elva-totales-wrapper {
    padding: 32px !important;
    border-radius: 48px;
    border: 1.5px solid var(--color-bordes);
    display: flex;
    flex-direction: column;
    gap: 32px;
    width: 40%;
    height: 100%;
}

.elva-totales,
.elva-botones {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.elva-total-efectivo,
.elva-cargo-tarjeta,
.elva-total-tarjeta {
    display: flex;
    justify-content: space-between;
}

.elva-cargo-tarjeta p {
    margin: 0 !important;
}

.elva-cargo-tarjeta,
.elva-total-tarjeta {
    font-size: 14px;
}

/* ==============================
   BOTONES
============================== */

.cotizador-boton,
.elva-btn-send {
    display: block;
    background-color: var(--color-principal) !important;
    color: #fff !important;
    padding: 16px !important;
    border-radius: 16px !important;
    border: none !important;
    text-align: center !important;
    font-weight: 600 !important;
}

.cotizador-boton:hover,
.elva-btn-send:hover {
    background-color: var(--color-hover) !important;
    color: #fff !important;
}

.elva-btn-pdf {
    display: block;
    color: var(--color-principal) !important;
    padding: 16px !important;
    border-radius: 16px !important;
    border: 1px solid var(--color-principal) !important;
    text-align: center !important;
    font-weight: 600 !important;
}

.elva-btn-pdf:hover {
    background: var(--color-fondo-alt) !important;
}


/* =======================================================
   LIBRO DE RECLAMACIONES – DISEÑO MODERNO
======================================================= */

@media (max-width: 980px){
  #rt_form_libro{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px){
  .wrapper.claim-wong.center{ padding: 24px 12px !important; }
  section.libro-content{ padding: 18px; border-radius: 14px; }
  #rt_form_libro{ grid-template-columns: 1fr; gap: 12px; }
}

#rt_form_libro label{
  display: block;
  margin: 0 0 6px 0;
  font-weight: 700;
  font-size: 13px;
  color: #0f172a;
}

#rt_form_libro input[type="text"],
#rt_form_libro input[type="email"],
#rt_form_libro input[type="number"],
#rt_form_libro input[type="tel"],
#rt_form_libro input[type="date"],
#rt_form_libro select,
#rt_form_libro textarea{
  width: 100%;
  border-radius: 24px;
  border: 1px solid rgba(15, 23, 42, 0.14);
  background: #ffffff;
  padding: 16px;
	margin-top: 8px;
  font-size: 16px;
  color: #0f172a;
  outline: none;
  transition: border-color .18s ease, box-shadow .18s ease;
}

#rt_form_libro select{
	height: 44px;
	padding: 16px !important;
}
#rt_form_libro textarea{ min-height: 120px; resize: vertical; }

#rt_form_libro input:focus,
#rt_form_libro select:focus,
#rt_form_libro textarea:focus{
  border-color: rgba(2, 132, 115, 0.55);
  box-shadow: 0 0 0 4px rgba(2, 132, 115, 0.14);
}

/* Botón submit */
#rt_form_libro button,
#rt_form_libro input[type="submit"]{
  grid-column: 1 / -1;
  border: 0;
  border-radius: 24px;
  padding: 16px;
  font-size: 16px;
  cursor: pointer;
  background: #028372;
  color: #ffffff;
  box-shadow: 0 10px 20px rgba(2, 132, 115, 0.22);
  transition: transform .15s ease, box-shadow .15s ease;
	width:25%;
}

#rt_form_libro button:hover,
#rt_form_libro input[type="submit"]:hover{
  transform: translateY(-1px);
  box-shadow: 0 14px 26px rgba(2, 132, 115, 0.26);
}


/* ==============================
   PIE DE PÁGINA
   ============================== */
.pie {
  background: var(--color-secundario);
  color: var(--color-fondo);
  padding: 6rem 0 1rem;
  font-family: "Open Sans", Arial, sans-serif;
}

.pie__grid {
  margin: 0 6.5rem;
  display: flex;
  justify-content: space-between;
  gap: 3vw;
}

.col--grande {
  width: 27.5rem;
}

/* Títulos */
.titulo-marca {
  color: var(--color-principal);
  font-size: 2vw;
  font-weight: 800;
  line-height: 1.1;
  margin: 0 0 2rem;
  text-transform: uppercase;
}

.titulo {
  color: var(--color-principal);
  font-size: 1.8vw;
  font-weight: 800;
  text-transform: uppercase;
  margin: 0 0 2rem;
}

/* Texto y listas */
.texto {
  font-size: 1rem;
  line-height: 1.7;
  margin: 0;
	font-weight: 500;
}

.lista {
  list-style: none;
  margin: 0;
  padding: 0;
}

.lista li {
  margin: 1vw 0;
}

.lista a,
.dato a {
  color: var(--color-fondo) !important;
  text-decoration: none;
  font-size: 1rem;
}

.lista a:hover,
.dato a:hover {
  color: var(--color-fondo-alt);
  text-decoration: underline;
}

/* Redes sociales */
.redes {
  display: flex;
  gap: 1rem;
  margin-top: 3rem;
	justify-content: space-between;
}

.red {
  width: 3vw;
  height: 3vw;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--color-principal);
  color: var(--color-fondo) !important;
  text-decoration: none;
  font-size: 1.2rem;
  transition: transform .15s ease, opacity .15s ease;
}

.red:hover {
  transform: translateY(-1px);
  opacity: .9;
}

.libro-de-reclamaciones{
	background:white;
	padding: 16px;
	margin-top: 3rem;
	text-align: center;
	height: 68px;
	border-radius: 24px;
	cursor:pointer;
	display: inline-block;
}



/* Línea fina */
.pie__linea {
  width: min(40vw, 60%);
  height: 0.1rem;
  background: rgba(255, 255, 255, .75);
  margin: 8rem auto 0;
}

/* Franja legal */
.pie__legal {
  text-align: center;
  padding-top: 1rem;
  font-size: 1rem;
  color: var(--color-fondo-alt);
}
.pie__legal p{
	margin: 0;
	font-size: 0.75rem;
}

.pie__legal a {
  color: var(--color-fondo);
  font-weight: 700;
  text-decoration: none;
}

.pie__legal a:hover {
  color: var(--color-fondo-alt);
}

/* En desktop todo queda normal */
@media (min-width: 769px) {
    .btn-menu-movil-contenedor {
        display: none;
    }

    .item-menu {
        display: inline-block;
    }
}

/* ==============================
   RESPONSIVE – TABLET Y MÓVIL
   ============================== */

/* === TABLET (max-width: 1024px) === */
@media (max-width: 1024px) {

  /* === ENCABEZADO === */
  .encabezado {
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 24px;
    margin: 48px;
  }

  .logo img {
    height: 56px;
  }

  .buscar {
    order: 3;
    width: 100%;
    max-width: 100%;
  }

  .telefono {
    order: 2;
    justify-content: center;
  }

  .menu {
    gap: 2rem;
    flex-wrap: wrap;
    justify-content: center;
    padding: 1rem 0;
  }

  /* === CATÁLOGO === */
  .pagina-catalogo {
    padding: 64px 48px;
  }

  .catalogo-contenedor {
    flex-direction: column;
    gap: 48px;
  }

  .filtros-laterales {
    width: 100%;
    order: 2;
  }

  .productos-listado {
    order: 1;
  }

  .productos-listado ul.products {
    grid-template-columns: repeat(3, 1fr) !important;
  }

  /* === PRODUCTO === */
  .producto-custom {
    flex-direction: column;
    padding: 48px;
    gap: 48px;
  }

  .producto-custom__galeria,
  .producto-custom__contenido {
    flex: 1 1 100%;
  }

	
  .imagen-principal img {
    max-width: 100%;
  }

  .miniaturas {
    flex-direction: row;
    justify-content: center;
    gap: 16px;
  }

  .miniatura img {
    width: 68px !important;
  }

  .producto-boton form {
    flex-direction: column;
    gap: 16px;
  }

  .boton-cotizador,
  .boton-whatsapp {
    width: 100%;
  }

  .entry-content {
    padding: 48px;
    border-radius: 32px;
  }

  /* === FOOTER === */
  .pie__grid {
    flex-wrap: wrap;
    gap: 48px;
    margin: 0 48px;
  }

  .col--grande {
    width: 100%;
  }

  .titulo,
  .titulo-marca {
    font-size: 1.5rem;
  }
}

/* --- SCROLL HORIZONTAL SOLO EN MÓVIL PARA FILAS DE TARJETAS --- */
@media (max-width: 768px) {
	
/* 🔥 Quitar scroll horizontal de TODA la web */
html, body {
    overflow-x: hidden !important;
}
	
/* 🔥 Cualquier elemento que se desborde hacia los lados quedará oculto */
* {
    max-width: 100% !important;
    box-sizing: border-box;
}

    .scroll-categorias {
        display: flex !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        white-space: nowrap !important;
        gap: 16px;
        padding-bottom: 10px;
        scroll-snap-type: x mandatory; /* scroll suave */
    }

    .scroll-categorias::-webkit-scrollbar {
        display: none; /* esconder scroll */
    }

    .scroll-categorias > div {
        flex: 0 0 auto !important;
        scroll-snap-align: start;
        width: 180px !important; /* tamaño fijo para móviles */
        min-height: 150px;
    }
}


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

    .elva-info-item {
        display: inline-flex;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
        gap: 6px;
        width: 100%;
        text-align: center;
        font-size: 12px;
        letter-spacing: 0.2px;
    }

    .elva-info-item > div {
        display: inline-flex;
        border-radius: 999px;
    }
	
/* =======================
   ENCABEZADO
======================= */
.encabezado {
    flex-direction: column;
    align-items: center;
    gap: 2rem;
    margin: 2rem;
}

.logo img {
    height: 4rem;
}

.buscar {
    order: 3;
    width: 100%;
}

.buscar button {
    font-size: 0.8rem !important;
}

header #boton-cotizador{
	font-size: 16px;
}

.menu {
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    padding: 2rem;
}

.menu a {
    font-size: 1rem;
}

.boton-categoria{
	display:flex;
	gap:12px;
}
	
    /* Mostrar el botón */
    .item-menu {
        display: none;
    }

    .item-menu.activo {
        display: block;
    }

    .btn-menu-movil-contenedor {
        display: block;
        text-align: center;
		width: 100%;
    }

    .btn-menu-movil, 
	.btn-menu-movil:focus, 
	.btn-menu-movil:hover {
        background: #00796b !important;
        color: #fff;
        padding: 16px 24px;
        border: none;
        border-radius: 2rem;
		width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 8px;
		font-size: 16px !important;
    }	
	
	.btn-menu-movil:hover .btn-menu-movil:focus{
		background:var(--color-hover);
	}
	
#contenedor-menu-categorias span, 
#contenedor-menu-categorias .subcat-grid li a,
.subcat-grid em	{
	font-size: 0.8rem;		
}

nav .fa-solid{
	font-size: 12px;
}

/* =======================
   MENÚ LATERAL
======================= */

    /* Mantener SIEMPRE el ancho exacto del menú */
    .menu-categorias-lateral {
        width: 350px !important;
        max-width: 350px !important;
        min-width: 350px !important;

        left: -350px !important; /* oculto exacto */
        transform: translateX(0) !important;
        transition: left .35s ease !important;

        overflow-y: auto !important;
        overflow-x: hidden !important;
        overscroll-behavior: contain !important;
        -webkit-overflow-scrolling: touch !important;
    }

    /* Cuando está abierto → aparece sin deformarse */
    .menu-categorias-lateral.open {
        left: -128px !important;
        margin-top: 1rem !important;
    }

    /* La columna izquierda no se estira, mantiene el diseño */
    .menu-columna {
        width: 60% !important;
        max-width: 350px !important;
    }

    /* El panel derecho NO debe aumentar el ancho */
    .menu-panel {
        max-width: 350px !important;
        overflow: hidden !important;
    }

	
/* Botón categoría */
.boton-categoria {
    width: 100%;
    background: #00796b;
    color: #fff;
    padding: 16px;
    border-radius: 10px;
    font-size: 1.1rem;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    border: none;
}

/* Lista categorías */
.lista-categorias {
    list-style: none;
    padding: 0;
}

/* Subcategorías */
.subcategorias {
    display: none;
    padding-left: 15px;
    margin-top: 10px;
}

.subcategorias.open {
    display: block;
}

.subcategorias li {
    margin-bottom: 12px;
    font-weight: 400;
    font-size: 1rem;
}

.flecha {
    font-size: 1.2rem;
    color: #00796b;
}

/* ============================
   CATEGORÍAS POPULARES – MÓVIL
============================ */
	
    .bde-subcats-grid {
        display: flex !important;
        flex-direction: row !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        gap: 20px !important;
        scroll-snap-type: x mandatory;
        white-space: nowrap !important;
        -webkit-overflow-scrolling: touch;
    }

    /* Ocultar scrollbar */
    .bde-subcats-grid::-webkit-scrollbar {
        display: none !important;
    }

    /* Tarjeta */
    .bde-subcat-card {
        flex: 0 0 75% !important;
        max-width: 75% !important;
        min-width: 75% !important;
        scroll-snap-align: start;
        white-space: normal !important;
    }

    /* Imagen */
    .bde-subcat-img img {
        width: 100% !important;
        height: auto !important;
        object-fit: cover !important;
        border-radius: 12px;
    }

    /* Texto */
    .bde-subcat-title {
        font-size: 1.1rem !important;
        margin-top: 10px !important;
        text-align: center;
    }

    .bde-subcat-parent {
        text-align: center;
        font-size: 0.9rem;
        color: #777;
    }
	
	.migas__lista{
		padding: 1rem 2rem;
		gap: 8px;
	}
	
	.migas__lista li{
		font-size: 0.5rem !important;
	}
	
     /* ====== CONTENEDOR SLIDER ====== */
    #productos-destacados ul.products.slick-slider,
    #productos-destacados .slick-track,
    #productos-destacados .slick-list {
        display: flex !important;
        flex-direction: row !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        white-space: nowrap !important;
        gap: 20px !important;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x mandatory;
        height: auto !important;
    }

    /* ====== ELIMINAR ANCHO DE SLICK ====== */
    #productos-destacados .slick-track {
        width: auto !important;
        transform: none !important;
    }

    /* ====== IMÁGENES ====== */
    #productos-destacados ul.products li.product img {
        width: 100% !important;
        height: auto !important;
        object-fit: contain !important;
    }

    /* ====== BOTÓN ====== */
    #productos-destacados ul.products li.product .button {
        width: 100% !important;
        text-align: center !important;
        margin-top: 10px !important;
    	padding: 12px !important;
		border-radius: 12px !important;
    }

    /* ====== OCULTAR SCROLL ====== */
    #productos-destacados ul.products::-webkit-scrollbar {
        display: none !important;
    }

/* =======================
   CATÁLOGO
======================= */
.pagina-catalogo {
    padding: 2rem;
}

.productos-listado ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
}

.filtros-laterales {
    display: none;
}

.catalogo-header {
    justify-content: center;
}

body.tax-product_cat ul.products  {
		display: grid !important
	}	

    ul.products {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 20px !important;
    }

    /* Cada producto ocupa exactamente la mitad */
    ul.products li.product {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
    }
	
.ordenar-productos, .catalogo-header .orderby {
    width: 100%;
}

.woocommerce-ordering select {
    width: 100%;
    padding: 14px;
    font-size: 14px;
}

body.tax-product_cat .page-numbers li, .product .button,
	.boton-whatsapp{
		font-size: 3.58vw !important;
	}
	
	 .woocommerce-pagination ul.page-numbers {
        overflow-x: auto;
        scrollbar-width: none;
		justify-content: space-between ;
		 gap:16px;
    }
    .woocommerce-pagination ul.page-numbers::-webkit-scrollbar {
        display: none;
    }

    .woocommerce-pagination ul.page-numbers li,
    .woocommerce-pagination ul.page-numbers li a,
    .woocommerce-pagination ul.page-numbers li span {
        min-width: 48px;        /* 🔥 Reduce el tamaño para que entren más */
        height: 48px;
        border-radius: 16px;
    }
	
/* =======================
   PÁGINA PRODUCTO
======================= */

.site-main {
    margin: 0 2rem !important;
    padding: 2rem 0;
    padding-inline: 0 !important;
}

.site-main li {
    font-size: 1rem !important;
    font-weight: 400;
}

.producto-custom {
    padding: 1.5rem;
    border-radius: 32px;
    gap: 32px;
}

.producto-titulo {
    font-size: 1.5rem !important;
}

.producto-descripcion {
    font-size: 0.95rem;
}

.miniaturas {
    justify-content: center;
    gap: 12px;
}

.galeria-producto {
    flex-direction: column;
}

.producto-boton form {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
}

.input-cantidad,
.qty {
    width: 100% !important;
    height: 48px !important;
}

.accordion-header {
    font-size: 1rem !important;
}

.entry-content {
    padding: 1.5rem;
    border-radius: 2rem;
}

.productos-relacionados, .productos-destacados{
	padding: 4rem 2rem;
}
	
/* CONTENEDOR PRINCIPAL DE PRODUCTOS RELACIONADOS / CATEGORÍAS */
.productos-grid,
.productos-relacionados ul.products,
.woocommerce ul.products, .slick-track
	{
    display: flex !important;
    flex-direction: row !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap !important;

    gap: 20px !important;
	border-radius: 2rem;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
}

/* OCULTAR CONTENIDO QUE DESBORDA */
.productos-grid *,
.woocommerce ul.products * {
    overflow: hidden !important;
}

/* CADA TARJETA PRODUCTO */
.productos-grid li.product,
.woocommerce ul.products li.product {
    flex: 0 0 75% !important;
    min-width: 75% !important;
	white-space: normal !important;
    scroll-snap-align: center;
    box-sizing: border-box !important;
}

/* TITULO DE PRODUCTO */
.woocommerce ul.products li.product h2,
.productos-grid li.product h2 {
    font-size: 1rem !important;
    white-space: normal !important;
    line-height: 1.3;
}

.price{
	font-size: 1rem;
}
	
/* IMAGEN */
.woocommerce ul.products li.product img {
    width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
    margin: 0 auto !important;
}

/* OCULTAR SCROLLBAR */
.productos-grid::-webkit-scrollbar,
.woocommerce ul.products::-webkit-scrollbar {
    display: none !important;
}

	
/* =======================
   CATALOGO
======================= */	
	
.elva-cotizador{
	padding:32px;		
}

.elva-cotizador{
	gap:48px;
}

.elva-cotizador-datos,
.elva-cotizador-tabla-wrapper {
	gap:16px;		
}

.elva-cotizador-tabla-cotizador {
	flex-direction: column;
}

.elva-totales-wrapper {
	width:100%;		
}
	
.elva-btn-send, .elva-btn-pdf {
	font-size: 2.917vw !important;
}

.elva-cotizador-contenedor-datos, 
.elva-cotizador-tabla-cotizador,
.elva-entrega-tipo-lugar .lugar{
	flex-direction: column;	
}

.elva-cotizador .contenedor-izq, 
	.elva-cotizador .contenedor-der{
width: 100%;		
}

	#elva_tipo_lugar_otro_wrapper{
		opacity:none;
	}
	

  /* Tabla arriba, resumen abajo */
  .elva-cotizador-tabla-cotizador {
    flex-direction: column;
    gap: 16px;
  }

  /* 👉 Solo la parte de la TABLA scrollea */
  .elva-cotizador-tabla-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch; /* scroll suave en móviles */
  }

  /* La tabla es más ancha que la pantalla,
     así aparece la barra horizontal */
  .elva-cotizador-tabla {
    min-width: 720px;     /* ajusta 650 / 800px según veas cómodo */
  }

  /* El resumen de cotización a ancho completo,
     sin scroll horizontal */
  .elva-totales-wrapper {
    width: 100%;
    overflow: visible;
  }

/*libro de reclamaciones*/
#rt_form_libro input[type="submit"]{
		width: 100%;
	}
	
/* =======================
   FOOTER
======================= */
.pie {
    padding: 48px 0;
}

.pie__grid {
    flex-direction: column;
    gap: 2rem;
    margin: 0 2rem;
}

.titulo-marca {
    font-size: 1.3rem;
}

.titulo,
.titulo-marca {
    font-size: 1.1rem !important;
    text-align: center;
    margin-bottom: 1rem;
}

.texto {
    text-align: justify;
}

.lista {
    text-align: center;
}

.lista a {
    font-size: 0.95rem;
}

.red {
    width: 4rem;
    height: 4rem;
    font-size: 1.5rem;
}

.libro-de-reclamaciones{
	width:100%;
	padding: 24px 0;
	height: 90px;
	}
	
.pie__legal {
    font-size: 0.9rem;
    text-align: center;
    margin: 0 2rem;
}

.pie__linea {
    width: min(40rem, 75%);
}

} /* ← CIERRE CORRECTO DEL MEDIA QUERY */

