@charset "utf-8";
/*
  Archivo: estilos-modernizado-2026-es-comentado.css
  Versión: 2.1.0
  Fecha: 2026-04-25
  Descripción: CSS modernizado, comentado en español y organizado por bloques.
  Compatibilidad: Mantiene las clases existentes del proyecto, especialmente b*, s* y m*.
  Uso recomendado: Reemplazar el CSS anterior y probar en staging antes de publicar, porque producción no perdona ni los puntos y coma.

  ÍNDICE GENERAL
  01. Reset, variables y base global
  02. Compatibilidad legacy y grillas históricas
  03. Tipografía, etiquetas HTML y scrollbars
  04. Componentes generales y utilidades
  05. Bloques, tarjetas y botones
  06. Header, menú, buscador y navegación
  07. Aside, widgets, tablas, sliders y tabs
  08. Formularios
  09. Banners, carruseles y secciones prediseñadas
  10. Editor, popups y elementos administrativos
  11. Footer
  12. Colores, utilidades visuales y tamaños de fuente
  13. Capa moderna 2026 y responsive
*/

/* ============================================================================
   01. RESET, VARIABLES Y BASE GLOBAL
   Define tokens reutilizables, normaliza el modelo de caja y establece bases modernas para tipografía, imágenes y formularios.
   ============================================================================ */
:root {
    /* Paleta y tokens base: cambiar aquí permite ajustar el estilo global sin perseguir colores por todo el archivo, como animal prehistórico. */
    --font-base: 'Source Sans Pro', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --color-primary: #660e80;
    --color-primary-hover: #33cc00;
    --color-accent: #ff9100;
    --color-accent-soft: #fdb112;
    --color-text: #2d2d2d;
    --color-muted: #6f6f6f;
    --color-soft: #f8f9fa;
    --color-surface: #ffffff;
    --color-border: #e7e7e7;
    --color-dark: #3a3a3a;
    --shadow-soft: 0 0.25rem 0.75rem rgba(0, 0, 0, .05);
    --shadow-card: 10px 10px 10px rgba(0, 0, 0, .05);
    --shadow-hover: 5px 3px 16px rgba(0, 0, 0, .18), 5px 3px 64px rgba(0, 0, 0, .08);
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 10px;
    --radius-xl: 18px;
    --radius-pill: 999px;
    --container-max: 1500px;
    --body-max: 2500px;
    --body-min: 330px;
}

/* Modelo de caja universal: evita cálculos absurdos de ancho por padding y borde. */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
    background-color: var(--color-soft);
}

body {
    min-height: 100dvh;
    color: var(--color-text);
    font-family: var(--font-base);
    line-height: 1.45;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

/* Medios fluidos: impide que imágenes y videos revienten el layout. */
img,
picture,
svg,
video,
canvas {
    max-width: 100%;
}

img {
    object-fit: cover;
}

/* Formularios heredan tipografía global para mantener consistencia visual. */
button,
input,
textarea,
select {
    font: inherit;
}

/* ============================================================================
   02. COMPATIBILIDAD LEGACY Y GRILLAS HISTÓRICAS
   Conserva reglas originales para que el HTML actual siga funcionando sin cambios.
   No cambiar nombres de clases ni eliminar reglas de esta zona sin revisar el sitio completo.
   ============================================================================ */

/* ============================================================================
   02.1 GRILLA CON MARGEN B
   Clases b*: columnas históricas con margen aproximado de 1%.
   Se mantienen por compatibilidad y luego son reforzadas por la capa moderna con flex.
   ============================================================================ */
.b1-1, .b1-2, .b1-3, .b2-3, .b1-4, .b2-4, .b3-4, .b1-5, .b2-5, .b3-5, .b4-5, .b1-6, .b2-6, .b3-6, .b4-6, .b5-6 {
	display: block;
	float: left;
	border: none;
	clear: initial;
	margin: 1%;
}
.b1-1 {	width: 98%;}
.b1-2 {	width: 48%;}
.b1-3 {	width: 31.33%;}
.b2-3 {	width: 64.66%;}
.b1-4 {	width: 23%;}
.b2-4 {	width: 48%;}
.b3-4 {	width: 73%;}
.b1-5 {	width: 18%;}
.b2-5 {	width: 38%;}
.b3-5 {	width: 58%;}
.b4-5 {	width: 78%;}
.b1-6 {	width: 14.66%;}
.b2-6 {	width: 32.33%;}
.b3-6 {	width: 48%;}
.b4-6 {	width: 64.66%;}
.b5-6 {	width: 81.33%;}

.s1-1, .s1-2, .s1-3, .s2-3, .s1-4, .s2-4, .s3-4, .s1-5, .s2-5, .s3-5, .s4-5, .s1-6, .s2-6, .s3-6, .s4-6, .s5-6 {
	display: block;
	float: left;
	border: none;
	clear: initial;
	margin: 0%;
}
.s1-1 {	width: 100%;}
.s1-2 {	width: 50%;}
.s1-3 {	width: 33.33%;}
.s2-3 {	width: 66.66%;}
.s1-4 {	width: 25%;}
.s2-4 {	width: 50%;}
.s3-4 {	width: 75%;}
.s1-5 {	width: 20%;}
.s2-5 {	width: 40%;}
.s3-5 {	width: 60%;}
.s4-5 {	width: 80%;}
.s1-6 {	width: 16.66%;}
.s2-6 {	width: 33.32%;}
.s3-6 {	width: 49.98%;}
.s4-6 {	width: 66.64%;}
.s5-6 {	width: 83.3%;}


/* ============================================================================
   02.2 GRILLA CON MARGEN M
   Clases m*: columnas históricas con margen y padding de 0,5%.
   Mantienen la lógica anterior para plantillas ya publicadas.
   ============================================================================ */
.m1-1, .m1-2, .m1-3, .m2-3, .m1-4, .m2-4, .m1-4, .m3-4, .m1-5, .m2-5, .m3-5, .m4-5, .m1-6, .m2-6, .m3-6, .m4-6, .m5-6{
	display: block;
	float: left;
	margin: 0.5%;
	padding: 0.5%;
	border: none;
	clear: initial;
}
.m1-1 {	width: 98%;}
.m1-2 {	width: 48%;}
.m1-3 {	width: 31.33%;}
.m2-3 {	width: 64.66%;}
.m1-4 {	width: 23%;}
.m2-4 {	width: 48%;}
.m3-4 {	width: 73%;}
.m1-5 {	width: 18%;}
.m2-5 {	width: 38%;}
.m3-5 {	width: 58%;}
.m4-5 {	width: 78%;}
.m1-6 {	width: 14.66%;}
.m2-6 {	width: 32.33%;}
.m3-6 {	width: 48%;}
.m4-6 {	width: 64.66%;}
.m5-6 {	width: 81.33%;}




/* ============================================================================
   03. TIPOGRAFÍA GENERAL
   Define comportamiento global de texto. La fuente usa herencia para reducir !important innecesarios.
   ============================================================================ */

body {
    display: grid;
    min-height: 99.6dvh;
    grid-template-rows: auto 1fr auto;
}
body * {
	font-family: inherit;
}

/* ============================================================================
   03.1 ESTILOS DE MATRIZ
   Reglas específicas para secciones tipo matriz o cajas internas.
   ============================================================================ */
h2.descripcion-seccion {
    text-align: center;
    color: #3a3a3a;
    font-size: 30px;
}
section.cajas div div {
	font-size: 13px;
	padding-bottom: 30px;
	display: block;
}
/* ============================================================================
   03.2 CSS BASE
   Reglas base heredadas del proyecto original. Se mantienen explícitas para evitar pérdida de funcionalidad.
   ============================================================================ */


/* ============================================================================
   03.3 SCROLLBAR PARA IFRAME
   Personalización visual de barras de desplazamiento dentro de iframes en navegadores WebKit.
   ============================================================================ */
iframe::-webkit-scrollbar-track {
 -webkit-box-shadow: inset 3px -4px 8px rgba(136, 136, 136, 0.3);
 border-left: 1px solid #d2d2d2;
 background-color: white;
}
iframe::-webkit-scrollbar {
 width: 10px;
 background-color: #fdb52c;

}
iframe::-webkit-scrollbar-thumb {
 background-color: #fdb112;
 -webkit-box-shadow: inset 5px 0px 4px rgba(255, 138, 0, 0.3);

}

/* ============================================================================
   03.4 SCROLLBAR GENERAL DEL SITIO
   Personalización visual de la barra de desplazamiento principal del documento.
   ============================================================================ */
body::-webkit-scrollbar-track {
 -webkit-box-shadow: inset 3px -4px 8px rgba(136, 136, 136, 0.3);
 border-left: 1px solid #d2d2d2;
 background-color: white;
}
body::-webkit-scrollbar {
 width: 15px;
 background-color: #fdb52c;

}
body::-webkit-scrollbar-thumb {
 background-color: #fdb112;
 -webkit-box-shadow: inset 5px 0px 4px rgba(255, 138, 0, 0.3);
}


/* ============================================================================
   03.5 ETIQUETAS HTML BASE
   Estilos generales para html, body, section, títulos, párrafos, enlaces, imágenes e iframes.
   ============================================================================ */
html{
	background-color: var(--color-soft);
}

body{
	display: block;
	margin: 0 auto!important;
	width: 99%;
	min-width: 330px;
	max-width: 2500px;
}
body > section{
	display: inline-block;
	clear: both;
	width: 100%;
	box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, .05);
	margin: 10px 0;
	background-color: white;
	overflow: hidden;
}

section section{
	padding: 0;
}
h1 {
    font-size: 37px;
    margin: 8px 0;
}
p{
	font-weight: 400;
	margin: 0px 0px 4px 0px;
	font-size: 1em!important;
}
a {
    text-decoration: none;
    /* font-weight: 500; */
    color: #3496eb;
    z-index: 9999999999999999;
    cursor: pointer;
}
hr{
    border-color: #d0d0d0!important;
    border-top: none!important;
    border-left: none!important;
    border-right: none!important;
    height: 10px;
    border-style: dashed;
    box-shadow: 0px 1px 0px 0px #efefef;
}

img{
	min-width: 10px;
	min-height: 10px;
}

iframe{
	width: 100%;
	border: none;
}



/* ============================================================================
   04. BARRA DE CARGA
   Controles visuales para barra de progreso usada en cargas o procesos internos.
   ============================================================================ */
div#progress-div {
    display: inline-block;
    position: absolute;
    vertical-align: middle;
    max-width: 300px;
    max-height: 20px;
    margin-left: -150px;
    margin-top: 39px;
    width: 100vw;
    height: 100vh;
    object-fit: cover;
    object-position: center center!important;
    background-color: white!important;
    border: 2px solid #0164d7;
    border-radius: 100px;
    top: 50%;
    left: 50%;
    cursor: progress!important;
    padding: 0;
}
#progress-bar {background-color: #12CC1A;height:20px;color: #FFFFFF;width:0%;-webkit-transition: width .3s;-moz-transition: width .3s;transition: width .3s;/* Gradiente histórico conservado por compatibilidad */background: rgb(29,205,254); /* Navegadores antiguos */background: -moz-linear-gradient(left, rgba(29,205,254,1) 0%, rgba(34,208,171,1) 100%); /* Firefox antiguo */background: -webkit-linear-gradient(left, rgba(29,205,254,1) 0%,rgba(34,208,171,1) 100%); /* Chrome y Safari antiguos */background: linear-gradient(to right, rgba(29,205,254,1) 0%,rgba(34,208,171,1) 100%); /* Sintaxis estándar moderna */filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1dcdfe', endColorstr='#22d0ab',GradientType=1 ); /* Internet Explorer antiguo */}
#progress-div {border:#0FA015 1px solid;padding: 5px 0px;margin:30px 0px;border-radius:4px;text-align:center; overflow:hidden;}



/* ============================================================================
   04.1 ESTADOS FOCUS LEGACY
   Focus heredado para elementos interactivos. Más abajo se agrega una capa moderna con :focus-visible.
   ============================================================================ */
.bloque-servicio:focus,
.menu ul li a:focus,
.item-noticia:focus,
.item-producto-destacado:focus,
item-producto:focus,
.item-producto:focus
{
    position: relative;
    background-color: #e4e4e4;
    outline: none;
}

/* ============================================================================
   04.2 UTILIDADES DE MATRIZ
   Utilidades pequeñas para tamaños de texto y bloques de imagen más texto.
   ============================================================================ */
.x2 {
    font-size: 16px;
}
.x3 {
    font-size: 20px;
}
.x4 {
    font-size: 24px;
}
.bloque-imagen-texto {
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, .05);
}

.b1-2.bloque-imagen-texto h2 {
    margin: 0px 0 10px;
}

/* ============================================================================
   04.3 IMAGEN MÁS TEXTO
   Contenedor clásico de imagen recortada con object-fit.
   ============================================================================ */
.imagen img {
	display: inline-block;
	vertical-align: middle;
	max-width: 100%;
	max-height: 100%;
	width: 100vw;
	height: 100vh;
	object-fit: cover;
	background-color: white!important;
}
.imagen {
	display: block;
	max-height: 230px;
	height: 210px;
	overflow: hidden;
}

/* ============================================================================
   04.4 UTILIDADES GENERALES
   Clases auxiliares para flotación, alineación y display. Se mantienen por compatibilidad.
   ============================================================================ */
.float-left {
	float: left!important;
}
.float-right {
	float: right!important;
}
.text-align-center {
	text-align:center;
}
.text-align-left {
	text-align:left;
}
.text-align-right {
	text-align:right;
}
.text-align-justify {
	text-align: justify;
}
.justificar {
	text-align: justify;
}
.display-inline-block {
	display: inline-block;
}






/* ============================================================================
   04.5 POPUP DE DEPÓSITO O EDITOR
   Ventana modal usada por el depósito/editor de imágenes o contenidos.
   ============================================================================ */
.deposito-editor {
    position: fixed;
    background-color: #000000db;
    box-shadow: 0px 0px 0px 190px #00000085, 0px 0px 22px #000000;
    color: white;
    padding: 1%;
    left: 4%;
    right: 5%;
    width: 90%;
    text-align: center;
    height: 85%;
    top: 6%;
    bottom: 5%;
    z-index: 9999999999;
    border-radius: 18px;
}
iframe.iframe-editor {
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    background-color: white;
    border-radius: 10px;
}

span.cerrar-deposito {
    position: absolute;
    right: 0;
    top: 0;
    font-size: 42px;
    background-color: #3c3c3c;
    box-shadow: inset 0px 0px 10px black;
    border: 2px solid gray;
    border-radius: 100px;
    margin-top: -20px;
    margin-right: -27px;
    cursor: pointer;
    transform: rotate(0deg);
    transition: 0.3s;
    z-index: 99;
    width: 40px;
    height: 40px;
    padding: 10px;
    text-align: center;
}
span.cerrar-deposito img {
    width: 70%;
    margin: 6px auto;
    display: block;
}
span.cerrar-deposito:hover {
    transform: rotate(360deg);
}

.deposito-editor .item-deposito-editor:hover {
    box-shadow: 0px 0px 0px 3px orange;
}

.seccion-items-deposito {
    overflow-y: scroll;
    height: 100%;
    color: black;
}


/* ============================================================================
   04.6 CONTENEDORES PRINCIPALES
   Contenedores de ancho completo, centrado y variantes reducidas.
   ============================================================================ */
.contenedor {
	min-height: 1000px;
	display: block;
	float: left;
	width: 100%;
	background-color: white;
}
.centrar {
	display: block;
	width: 100%;
	max-width: 1500px;
	min-width: 200px;
	margin: 0 auto;
}
.centrar-mini {
	width: 94%;
	margin: 0 auto;
	display: block;
	max-width: 1500px;
	min-width: 320px;
}

.centrar-mini-mini {
    width: 60%;
    margin: 0 auto;
    display: block;
    max-width: 1500px;
    min-width: 320px;
}



/* ============================================================================
   04.7 UTILIDADES DE ALTO FIJO
   Clases rápidas para forzar alturas específicas.
   ============================================================================ */
.height-100 {
    height: 100px!important;
}
.height-200 {
    height: 200px!important;
}
.height-300 {
    height: 300px!important;
}
.height-400 {
    height: 400px!important;
}
.height-500 {
    height: 500px!important;
}

/* ============================================================================
   05. BLOQUES Y TARJETAS ESTÁNDAR
   Estilos principales de tarjetas, bloques de contenido, imágenes, textos, precios y metadatos.
   ============================================================================ */
.contenedor-flex {
    display: -ms-flexbox;
    display: flex!important;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap!important;
}

.bloque {
    box-sizing: border-box;
    padding-bottom: 10px;
    transition: 0.1s;
    transition-delay: 0.1s;
    text-decoration: none;
    margin-bottom: 10px;
    background-color: white;
    -webkit-font-smoothing: antialiased;
    border: 1px solid white;
    color: red;
    border-radius: 10px;
    box-shadow: 10px 10px 10px #0000000d;
    border-left: 1px solid #fcfcfc!important;
}
.bloque:hover {
    transition: 0.1s!important;
    background-color: #ffffff!important;
    box-shadow: 5px 3px 16px #0000002e, 5px 3px 264px #00000014;
    position: relative;
    border-radius: 8px;
}
.bloque:hover figure img {
    transition: 0.3s;
}
.bloque figure.imagen-bloque {
    margin: 0;
    width: 100%;
    overflow: hidden;
    display: inline-block;
    border-radius: 10px 10px 0px 0px;
}

.bloque figure.imagen-bloque img {
    margin: 0;
    height: 100vh;
    width: 100vw;
    object-fit: cover;
    object-position: center;
    display: inline-block;
    vertical-align: middle;
    max-width: 100%;
    max-height: 100%;
}

.bloque .contenido-bloque {
    padding: 3%;
}
.bloque .color-producto {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 30px;
}
.bloque .contenido-bloque time {
    font-style: italic;
    font-size: 14px;
    color: gray;
}

.bloque .contenido-bloque h3 {
    margin: 9px 0 10px;
    color: black;
    font-size: 16px;
}

.bloque .contenido-bloque p {
    color: gray;
    clear: both;
    font-size: 13px!important;
    line-height: 17px;
    letter-spacing: -0.2px;
    word-spacing: 2px;
}

.bloque .contenido-bloque  b {
    color: black;
    clear: both;
    display: block;
    font-size: 15px!important;
    line-height: 26px;
}

.bloque .contenido-bloque  i {
    clear: both;
    display: block;
    font-size: 15px!important;
    line-height: 26px;
    color: black;
}

.bloque .contenido-bloque  small {
    color: gray;
    clear: both;
    display: block;
    font-size: 12px!important;
}

.bloque .contenido-bloque  .precio-bloque {
    font-weight: bold;
    font-size: 16px;
    display: block;
    clear: both;
    margin: 10px 0;
    color: #ff9100;
}

.bloque .contenido-bloque  .precio-anterior-bloque {
    font-weight: 400;
    font-size: 14px;
    display: block;
    clear: both;
    text-decoration: line-through;
    color: gray;
    text-decoration-color: #c8c8c8;
    margin: 10px 0;
}

/* ============================================================================
   05.1 BLOQUES HORIZONTALES
   Versión horizontal de tarjetas con imagen y contenido lado a lado.
   ============================================================================ */
.bloque.horizontal a {
    display: inline-block;
}

.bloque.horizontal .imagen-bloque {
    width: 50%;
    margin: 0;
    padding: 0;
    display: inline-block;
    float: left;
}

.bloque.horizontal .contenido-bloque {
    width: 46%;
    margin: 0;
    padding: 2%;
    display: inline-block;
    float: left;
}

.bloque.horizontal {
    padding-bottom: 0;
}

/* ============================================================================
   05.2 BOTONES DE PANEL Y WHATSAPP
   Botones administrativos y acceso directo a WhatsApp.
   ============================================================================ */
.btn-panel {
    background-color: #6f6f6f!important;
    border-bottom: 3px solid #575757;
    color: white!important;
    display: inline-block!important;
    margin-left: 8px!important;
}
.boton.btn-panel {
    margin: 5px 0 5px 0!important;
    color: white!important;
    border-radius: 4px!important;
    padding: 6px 10px 6px!important;
    border-bottom: 2px solid #545454!important;
    font-size: 14px;
    letter-spacing: 0.1px;
}
.bloque .btn-panel {
    z-index:1;
    color: white!important;
    margin-left: 3%!important;
}
a.btn-whatsapp {
    background-color: green;
    border-bottom: 3px solid #175317;
    color: white;
    padding: 7px 20px;
    text-decoration: none;
    margin-bottom: 20px;
    border-radius: 20px;
    margin-top: 20px;
    font-size: 13px;
    display: table;
}

a.btn-whatsapp img {
    width: 20px;
    margin-bottom: -4px;
    outline: none;
}
/* ============================================================================
   06. BARRA DE PANEL EN HEADER
   Barra superior de administración. Actualmente queda oculta, pero se conserva por compatibilidad.
   ============================================================================ */
.header-barra-panel {
    /* display inline-block histórico desactivado */
    /* ancho completo histórico desactivado */
    /* fondo histórico desactivado */
    /* padding histórico desactivado */
    /* margen inferior histórico desactivado */
    /* posición fija histórica desactivada */
    /* posición inferior histórica desactivada */
    /* z-index histórico desactivado */
    display: none;
}

.header-barra-panel a {
    display: inline-block;
    float: right;
    margin-left: 10px;
    margin-right: 15px;
    color: #b5b5b5;
    font-size: 11px;
    transition: 0.3s;
}
.header-barra-panel a:hover {
    color: white;
}

.header-barra-panel a img {
    opacity: 0.8;
    transition: 0.3s;
}

.header-barra-panel a:hover img {
    opacity: 1;
}
span.top-header-fecha {
    color: white;
}
header .top-header .texto-top-header {
    font-size: 13px;
    padding: 11px;
    margin-right:15px;
    color: white;
}
header .top-header .texto-top-header img {
    margin-right: 4px;
    width: 23px;
    margin-bottom: -5px;
}




/* ============================================================================
   06.1 BARRA DE CARRITO
   Estilos asociados a botones y datos del carrito en el encabezado.
   ============================================================================ */
.barraCarrito {
    background-color: #f9f9f9!important;
    color: white;
}
.barraCarrito .botones-carrito > * {
    color: black!important;
    font-size: 13px!important;
    font-weight: bold;
}
header .dato-contacto-header a img {
    margin-right: 4px;
    width: 23px;
    margin-bottom: -5px;
}


header .texto-top-header a {
    margin-right: 15px;
    width: 23px;
    margin-bottom: -5px;
}

header .texto-top-header a img {
    margin-right: 4px;
    width: 23px;
    margin-bottom: -5px;
}

header li.dato-contacto-header {
    display: inline-block;
    margin-right: 5px;
    padding: 9px 4px;
    
}






/* ============================================================================
   11.1 BOTÓN DE ACCESO A PANEL EN FOOTER
   Acceso administrativo ubicado en el pie de página.
   ============================================================================ */
a.btn-acceso-panel {background-color: #6f6f6f!important;border-bottom: 3px solid #575757;color: white!important;display: inline-block!important;margin-bottom: 4px;}

a.btn-acceso-panel:hover {
    background-color: #33cc00;
}


/* ============================================================================
   11.2 BOTÓN VOLVER ARRIBA
   Botón flotante para volver al inicio de la página.
   ============================================================================ */
.boton-top {
	position: fixed;
	bottom: 120px;
	right: 24px;
	border-radius: 100px;
	width: 20px;
	height: 20px;
	background-color: #ffa500;
	padding: 10px;
	text-align: center;
	color: white;
	font-size: 25px;
	z-index: 9;
	line-height: 13px;
}
.boton-top img {
	width: 90%;
	margin-top: 0px;
}
.boton-top:hover {
	background-color: #ffb733;
	cursor:pointer;
}
/* ============================================================================
   11.3 BOTÓN FLOTANTE WHATSAPP
   Acceso flotante a WhatsApp con mensaje emergente.
   ============================================================================ */
a.boton-whatsapp-footer {
    position: fixed;
    right: 20px;
    bottom: 60px;
    width: 50px;
    height: 50px;
    background: url(/custom/img/iconos-sociales/icono-whatsapp.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    z-index: 9;
    cursor:pointer;
    transition:1s;
    animation-duration: 3s;
}
a.boton-whatsapp-footer:hover {
    transform: scale(1.2)!important;
    transition:0.3s;
}
span.boton-whatsapp-footer-mensaje {
    display: inline-block;
    max-width: 100px;
    margin-left: -70px;
    color: black;
    background-color: #c0ff95;
    padding: 5px 10px;
    border-radius: 10px;
    margin-top: 14px;
    opacity: 0;
    transition: 0.3s;
    font-size: 11px;
    pointer-events: none;
}

a.boton-whatsapp-footer:hover span.boton-whatsapp-footer-mensaje {
    opacity: 1;
    transition: 1s;
}
/* ============================================================================
   04.8 IMAGEN QR FLOTANTE
   QR opcional fijo en pantalla con ampliación al pasar el cursor.
   ============================================================================ */
span.qr-imagen {
    position: fixed;
    right: 3%;
    bottom: 27%;
    z-index: 9;
    display: none;
}

span.qr-imagen img {
    width: 65px;
    transition: 0.3s;
    border-radius: 10px;
    image-rendering: auto;
    image-rendering: pixelated;
}
span.qr-imagen:hover img {
    width: 140px;
}

/* ============================================================================
   09. TIPOS DE SECCIONES
   Ajustes generales para secciones prediseñadas del sitio.
   ============================================================================ */
section.presentacion1 {
    padding: 0px 0 40px;
}




/* ============================================================================
   07. SLIDER OWL GENERAL
   Ajustes generales de navegación para carruseles Owl Carousel.
   ============================================================================ */
.owl-stage-outer.owl-height {
    height: auto!important;
}
.owl-theme .owl-nav [class*=owl-] {
    background-color: transparent!important;
}

.owl-theme .owl-nav [class*=owl-] img {
    width: 50px;
    opacity: 0.5;
    transition: 0.3s;
}

.owl-theme .owl-nav [class*=owl-]:hover {
    background-color: transparent!important;
}

.owl-theme .owl-nav [class*=owl-]:hover img {
    opacity: 1;
    transition: 0.1s;
}


/* ============================================================================
   06.2 BUSCADOR GRANDE EN HEADER
   Resultados y listado desplegable del buscador ubicado en encabezado.
   ============================================================================ */
.resulados-buscador-inicio.buscador-inicio-header {
    position: relative;
    margin-top: 0px!important;
    margin-left: 0!important;
    background-color: #d8d8d8;
    max-width: calc(100% - 40px);
    padding: 0px 0px;
    z-index: 2;
    box-shadow: 12px 12px 12px #00000059;
    border-radius: 0px 0px 10px 10px;
}
.listado-resultados-buscador-header {
    position: absolute;
    background-color: #ffffff!important;
    width: calc(100% - 0px);
    padding: 20px;
    background-color: white;
    border-radius: 0px 0px 10px 10px;
    box-shadow: 2px 4px 4px #0000005c;
}






/* ============================================================================
   06.3 HEADER MODELO 1
   Estructura principal del encabezado, logo, menú, submenús y top-header.
   ============================================================================ */

header * {
	-webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none; 
}
span.top-header-fecha {
	font-family: monospace;
	font-size: 10px;
	display: inline-block;
	float: left;
}
header > .top-header {z-index: 99999;background-color: #dbdbdb;float: left;width: 100%;}
header > .top-header .top-header-fecha {color: #ffffff;padding: 9px;font-size: 13px;font-weight: 500;padding-left: 20px;}
header > .top-header .top-header-boton {display: inline-block;text-decoration: none;color: white;background-color: #660e80;padding: 4px 14px 5px 20px;margin-top: 6px;margin-bottom: 0px;font-size: 12px;border-radius: 8px;min-width: 51px;max-width: 84%;text-align: center;float: right;margin-left: 2px;font-weight: 600;}
header > .top-header .top-header-boton img {
	outline: none;
}
header .top-header a {
    font-size: 13px;
}
header > .top-header .top-header-boton:hover {
	background-color: #33cc00;
}
header {
	width: 100%;
	display: inline-block;
	background-color: white;
	box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, .05);
	position: relative;
	margin-bottom: -1px;
}
header .logo {
    text-align: center;
}
header .logo img {
	max-width: 100%;
	min-height: 80px;
	max-height: 80px;
}
header .boton-movil {
	display: none;
}

header .top-header-info ul {
	margin: 0;
	padding: 0;
	text-align: right;
}
header .top-header-info ul {
}
header .top-header-info ul li {
	display: inline-block;
	font-size: 12px;
}
header .top-header-info ul li a {
	display: inline;
	width: 100%;
}
header .top-header-info ul li a {
	text-decoration: none;
	margin-left: 11px;
	text-align: right;
	color: #5a5a5a;
	font-weight: 600;
	font-size: 13px;
}
header .top-header-info ul li a img {
    margin-bottom: -5px;
    height: 20px;
}

header nav ul {
	margin: 0;
	padding: 0;
	text-align: right;
	display: inline-block;
	float: right;
	z-index: 9!important;
	width: 100%;
}
header nav > ul > li {
	display: inline-block;
}
header nav > ul > li > a{
	padding: 11px 5px!important;
	margin: 0px 3px;
	min-width: 40px;
	color: white!important;
}

header nav ul li a {
	text-decoration: none;
	padding: 7px;
	background-color: #fbfbfb;
	color: grey;
	cursor: pointer;
	display: inline-block;
	font-weight: 400;
	font-size: 16px;
	letter-spacing: 0px;
	text-align: center;
}
header nav ul li ul {
	position: absolute;
	display: none;
	width: 250px;
	border-radius: 10px;
	z-index: 2;
	box-shadow: 5px 10px 5px 0px #0000000f;
}
header nav ul li ul li {
	display: block;
	width: 100%;
}
header nav ul li ul li a {
	display: block;
	width: 96%;
	padding: 10px 2%;
	text-align: left;
	border-bottom: 1px solid #f1f1f1;
	font-size: 12px!important;
	border-radius: 0;
	border-bottom: 1px solid #e2e2e2;
	background-color: white;
	box-shadow: 4px 4px 3px #0000003d;
}
header nav > ul > li:hover > ul {
	display: block;
}
header nav ul .boton-buscar img {
	outline: none!important;
	height: 13px;
}

header nav ul li ul li:hover ul {
    display: block;
}

header nav ul li ul li ul {
    margin-left: 30px;
    width: calc(100% - 32px);
}


/* ============================================================================
   06.4 SELECT DE MENÚ MÓVIL
   Selector móvil heredado para navegación responsive.
   ============================================================================ */
header select.menu-header-movil {
	display: none;
}
li.dato-contacto-header {
    margin-bottom: 0px!important;
    display: block;
}

/* ============================================================================
   06.5 BOTÓN Y FORMULARIO BUSCADOR EN HEADER
   Buscador pequeño integrado en el menú del encabezado.
   ============================================================================ */
header .boton-buscar .buscador {
	display: inline-block;
	position: relative;
	width: 160px;
	height: 30px;
	pointer-events: none;
	transition: 0.3s;
	animation-delay: 2s!important;
	z-index: 1;
	margin-top: -4px;
	margin-bottom: 0px;
}

header .boton-buscar .buscador form {
	width: 160px;
	margin: 0;
	display: block;
	border-radius: 3px;
	position: relative;
	z-index: 9;
	margin-bottom: 0!important;
	padding: 9px 2px;
}
header .boton-buscar:hover .buscador {
	display: inline-block;
	pointer-events: auto;
	opacity: 1;
	animation-delay: 0s;
	transition: 0.3s;
	opacity: 1;
}

/* ============================================================================
   06.3 HEADER MODELO 1
   Estructura principal del encabezado, logo, menú, submenús y top-header.
   ============================================================================ */
#header1 nav > ul > li > a{
	padding: 23px 5px!important;
	margin: 0px 3px;
	min-width: 40px;
}


/* ============================================================================
   06.6 HEADER MODELO 2
   Variantes de alineación para el segundo modelo de encabezado.
   ============================================================================ */
#header2 > div {
    display: block;
    text-align: center;
}

#header2 .top-header-info ul {
    text-align: center;
}

#header2 nav ul {
    text-align: center!important;
    float: none;
}
#header2 li.dato-contacto-header {
    float: left;
    
}
/* ============================================================================
   06.7 HEADER MODELO 3
   Variantes de alineación para el tercer modelo de encabezado.
   ============================================================================ */
#header3 .logo a {
    text-align: center!important;
    float: initial;
}

#header3 ul {
    text-align: center!important;
}

#header3 .top-header {
    text-align: center;
}

#header3 .header-nav.borrar-movil {
    margin: 0!important;
}




/* ============================================================================
   06.8 ICONOS DE REDES SOCIALES
   Tamaños de iconos sociales según clase x1, x2, x3 y x4.
   ============================================================================ */

.iconos-sociales a {
    display: inline-block;
}

.iconos-sociales.x1 a img {
    height: 10px;
}
.iconos-sociales.x2 a img {
    height: 20px;
}
.iconos-sociales.x3 a img {
    height: 30px;
}
.iconos-sociales.x4 a img {
    height: 40px;
}


/* ============================================================================
   06.9 ENLACES DE REDES SOCIALES
   Links sociales con icono y texto alineado.
   ============================================================================ */
a.display-inline-block.enlace-redsocial {
    display: inline-block;
    width: 100%;
    text-align: left;
    font-size: 14px;
    margin-bottom: 10px;
}

a.display-inline-block.enlace-redsocial img {
    margin-bottom: -8px;
    margin-right: 5px;
}


/* ============================================================================
   06.10 HEADER FIJO O COMPACTO
   Reglas para compactar el header al fijarlo o al activar la clase header-fixed.
   ============================================================================ */
header {
    top: 0;
    z-index: 10;
}
body {
    /* padding superior histórico desactivado */
}
header * {
    transition:0.3s;
}
.header-fixed {
    /* posición fija histórica desactivada */
    top: 0;
    left: 0;
    z-index: 99;
}
.header-fixed .top-header-info {
    height: 0;
    visibility: hidden;
    opacity: 0;
    position: absolute;
    transition: 0.3s;
}
.header-fixed .logo {
    margin: 0;
    margin-top: 6px;
}
.header-fixed .desplegar {
    margin: 0;
    margin-top: 10px;
}
.header-fixed  nav > ul li a {
    font-size: 11px;
}
.header-fixed .logo img {
    max-width: 195px;
}
.header-fixed  .header-nav-categorias {
    background-color: #4a4a4a0f!important;
    padding: 0px;
    font-size: 12px;
}
.header-fixed .header-nav-categorias a {
    font-size: 11px;
}

/* ============================================================================
   07. ASIDE, WIDGETS Y NAVEGACIÓN LATERAL
   Inicio de componentes laterales, widgets y menús de apoyo.
   ============================================================================ */
/* ============================================================================
   07.1 BARRA LATERAL Y WIDGETS
   Títulos, cajas y enlaces asociados a widgets laterales.
   ============================================================================ */
aside {
}
.widget {
	margin-bottom: 10px;
}
h4.titulo-widget {
	background-color: #660e80;
	border-radius: 8px 8px 0px 0px;
	color: white;
	padding: 10px;
	margin: 0;
}

.cajas > div > div {
	min-height: 10px;
	background-color: #dfdfdf;
	margin-bottom: 10px;
	outline: 1px solid #cecece;
}
.ver-categorias {
    display: block;
    text-align: center;
    background-color: #575757;
    margin: 10px 0px 20px;
    padding: 10px 0px;
    float: left;
    width: 100%;
    border-bottom: 4px solid #3a3a3a;
    font-weight: bold;
    color: white;
    cursor: pointer;
    transition: 0.3s;
    border-radius: 8px;
}
.ver-categorias:hover {
    background-color: #898989;
}

/* ============================================================================
   07.2 MENÚ LATERAL TIPO ACORDEÓN
   Menú lateral desplegable usado para categorías o navegación secundaria.
   ============================================================================ */
div#accordion-menu h3 {
	margin: 0;
	display: inline-block;
	width: 90%;
	background-color: #e4e4e4;
	border-bottom: 1px solid #bdbdbd;
	padding: 10px 5%;
	cursor: pointer;
	font-size: 16px;
}
div#accordion-menu h3 a {
    color: #060606;
    text-decoration: none;
}
div#accordion-menu h3:hover {
	background-color: #bdbdbd;
}
div#accordion-menu .flecha-menu {
	font-size: 10px;
}
div#accordion-menu nav ul li {
	list-style: none;
}
div#accordion-menu nav ul li a {
	display: inline-block;
	width: 90%;
	text-align: left;
	text-decoration: none;
	background-color: #f1f1f1;
	border-top: 1px solid gray;
	padding: 10px 5%;
}
div#accordion-menu nav ul {
	margin: 0;
	padding: 0;
}
#accordion-menu div {
	padding: 0;
}

/* ============================================================================
   07.3 TABLAS HTML
   Estilos base para tablas reales, filas, encabezados y celdas.
   ============================================================================ */
table h4 {
    margin: 0;
}

table h3 {
    margin: 0;
}
table.tabla-inicial {
    border-collapse: collapse;
    width: 100%;
}

tabl.tabla-iniciale td, table.tabla-inicial td, table.tabla-inicial th {
    border: 1px solid #ddd;
    padding: 8px;
}

table.tabla-inicial tr:nth-child(even){
	background-color: #f2f2f2;
}
table.tabla-inicial tr:hover {
	background-color: #ddd;
}
table.tabla-inicial tr:first-child {
    padding-top: 12px;
    padding-bottom: 12px;
    text-align: left;
    background-color: #868686;
    color: white;
}
td {
    padding: 6px 10px;
    font-size: 16px;
}
/* ============================================================================
   07.3.1 TABLA CON BORDE DOBLE
   Bordes para tablas con líneas completas.
   ============================================================================ */
table.tabla-borde-doble,table.tabla-borde-doble th,table.tabla-borde-doble td {
   border: 1px solid black;
}
/* ============================================================================
   07.3.2 TABLA CON BORDE SIMPLE
   Bordes simples para estructura tabular básica.
   ============================================================================ */
table.tabla-borde-simple {
    border-collapse: collapse;
}
table.tabla-borde-simple, table.tabla-borde-simple tr, table.tabla-borde-simple th {
    border: 1px solid black;
}

/* ============================================================================
   07.3.3 TABLA CON PADDING
   Aumenta espaciado interno en celdas.
   ============================================================================ */
table.tabla-padding th,table.tabla-padding td {
    padding: 15px;
    text-align: left;
}

/* ============================================================================
   07.3.4 TABLA CON LÍNEAS HORIZONTALES
   Solo marca divisiones horizontales.
   ============================================================================ */
table.tabla-borde-horizontal th,table.tabla-borde-horizontal td {
    border-bottom: 1px solid #ddd;
}

/* ============================================================================
   07.3.5 FILAS ALTERNADAS EN TABLAS
   Aplica fondo alternado a filas pares.
   ============================================================================ */
table.tabla-lineas-horizontal tr:nth-child(even) {
	background-color: #f2f2f2;
}

/* ============================================================================
   07.3.6 CONTENIDO INTERNO DE TABLAS
   Ajustes de títulos dentro de tablas.
   ============================================================================ */
h3 {
    margin-bottom: 5px;
    margin-top: 0;
    font-size: 15px;
}





/* ============================================================================
   07.4 SLIDERS Y CARRUSELES LEGACY
   Reglas heredadas para sliders principales. Se conservan porque dependen de clases usadas por Owl Carousel.
   ============================================================================ */
.slider1 .item {
	padding: 0!important;
}
.slider1 .item img {
	display: inline-block;
	vertical-align: middle;
	max-width: 100%;
	max-height: 100%;
	width: 100vw;
	height: 100vh;
	object-fit: cover;
	background-color: transparent!important;
}
.slider2 .item {
	height: 310px!important;
	padding: 0!important;
}
.slider2 .item img {
	display: inline-block;
	vertical-align: middle;
	max-width: 100%;
	max-height: 100%;
	width: 100vw;
	height: 100vh;
	object-fit: cover;
	background-color: white!important;
}

/* ============================================================================
   07.4.1 BOTONES DEL SLIDER
   Posicionamiento de flechas centrales en carruseles.
   ============================================================================ */
.botones-centro .owl-nav {
	height: 0;
	position: absolute;
	width: 100%;
	top: 0;
	margin-top: 0!important;
}
.botones-centro .owl-nav .owl-prev, .botones-centro .owl-nav .owl-next {
	text-align: center;
	display: inline-block;
	padding: 0px!important;
	height: 100%!important;
	align-items: center;
	display: flex!important;
	width: 40px;
	margin: 14% 20px!important;
	text-align: center!important;
}
.botones-centro .owl-nav .owl-prev {
	float: left;
	/* margen izquierdo histórico desactivado */
}
.botones-centro .owl-nav .owl-next {
	float: right;
	/* display inline-block histórico desactivado */
	/* posición relativa histórica desactivada */
}
/* ============================================================================
   07.4.2 OCULTAR PUNTOS DEL SLIDER
   Permite ocultar dots de Owl Carousel con la clase sin-puntos.
   ============================================================================ */
.sin-puntos .owl-dots {
	display: none;
}

/* ============================================================================
   07.5 TABLA SIMULADA CON DIVS
   Estructura tipo tabla hecha con divs. Más abajo se moderniza con grid.
   ============================================================================ */
.tabla {
    outline: 1px solid gray;
    float: left;
    width: 100%;
}
.tabla .tr {
    display: block;
    margin-bottom: 0;
    float: left;
    width: 100%;
}

.tabla .tr .td {
    padding: 2%;
    width: 46%;
    margin: 0;
    float: left;
    border-right: 1px solid gray;
    margin-right: -1px;
}

/* ============================================================================
   08. FORMULARIOS
   Campos, botones, placeholders, textarea, subida de archivos y alertas de formulario.
   ============================================================================ */
section > form {
	width: 100%;
}
input, textarea, select {
	margin: 4px 1% 4px 0;
	padding: 9px 2%;
	border-radius: 9px;
	border: none;
	background-color: #e4e4e4;
	border: 2px solid #e7e7e7;
	font-size: 16px;
	font-weight: 500;
	margin-bottom: 10px;
	width: 96%;
	letter-spacing: 0.5px;
}
input[type="checkbox"] {
    display: inline-block;
    width: auto;
}
input::-webkit-input-placeholder { /* Chrome, Opera y Safari */
  color: #8c8c8c;
  
}
input::-moz-placeholder { /* Firefox 19 o superior */
  color: #d2d2d2;
}
input:-ms-input-placeholder { /* Internet Explorer 10 o superior */
  color: #d2d2d2;
}
input:-moz-placeholder { /* Firefox 18 o anterior */
  color: #d2d2d2;
}
textarea {
	min-width: 250px;
	min-height: 130px;
	font-size: 15px;
	max-width: 100%;
	max-height: 500px;
}
button, input[type="button"] {
	padding: 8px 12px;
	border-radius: 6px;
	border: none;
	min-width: 110px;
	font-size: 14px;
	cursor: pointer;
	font-weight: 500;
	margin: 0px 5px 5px 0px;
}
button:hover, input[type="button"]:hover {
	background-color:#b2b2b2;
	opacity: 0.8;
}
button.oscuro {
	background-color: orange;
	color: white;
}
input:focus, textarea:focus {
	outline:1px solid red;
}
input[type="file"] {
	font-size: 9px;
	width: 0px;
	height: 30px;
	padding: 0;
	margin: 0;
	cursor: pointer;
}
input[type="file"]:focus {
	outline:none;
}
input[type="file"]:after {
	content: "Subir archivos";
	background-color: #dddddd;
	position: absolute;
	margin-top: -20px;
	padding: 8px 26px;
	border-radius: 100px;
	border: none;
	min-width: 90px;
	font-size: 13px;
}
input[type="file"]:hover:after {
	background-color: #c4c4c4;
}
input[type="file"]:before {
	content: "nombre del archivo";
	background-color: #f7f7f7;
	position: absolute;
	margin-top: 0px;
	margin-left: 127px;
	padding: 4px 26px;
	border-radius: 100px;
	border: none;
	min-width: 90px;
	font-size: 13px;
	border: 1px solid #e8e8e8;
}
a.boton.mensaje-enviar-nuevamente {
    background-color: green;
    color: white;
}
span.alerta-formulario {
    color: #d00000;
    background-color: #ffcfd8;
    border: 1px solid #ffc5c5;
    display: block;
    padding: 10px;
    border-radius: 4px;
    font-style: italic;
    font-size: 14px;
}
/* ============================================================================
   05.3 BOTONES GENERALES
   Botones base, WhatsApp, carrito, acciones de oferta y destacar.
   ============================================================================ */
.boton {
	padding: 9px 10px;
	background-color: #e0e0e0;
	display: inline-block;
	border-radius: 4px;
	cursor:pointer;
	font-size: 14px;
	text-decoration: none;
	color: #2d2d2d;
	font-weight: 400;
	min-width: 60px;
	text-align: center;
	margin-bottom: 8px;
	margin-right: 10px;
}
.boton:hover {
	opacity: 0.8;
}

a.boton.boton-whatsapp {
    background: url(/custom/img/iconos-sociales/icono-whatsapp.svg);
    background-size: 25px;
    background-position: 10px center;
    background-repeat: no-repeat;
    padding-left: 40px;
    background-color: green;
    color: white;
    font-size: 14px;
}
a.boton.boton-whatsapp:hover {
    background: url(/custom/img/iconos-sociales/icono-whatsapp.svg);
    background-size: 25px;
    background-position: 10px center;
    background-repeat: no-repeat;
    padding-left: 41px;
    background-color: white;
    color: green;
	outline:1px solid green;
}
.btn-carrito {
    background-color: #55df51!important;
    color: #151414;
    display: inline-block;
    font-weight: 400;
    border-radius: 4px;
    min-width: 110px;
}
.btn-carrito-individual {
    background-color: #55df51;
}
a.boton.btn-carrito {
    background: url(/custom/img/carrito.svg);
    background-position: 7px 8px;
    background-repeat: no-repeat;
    background-size: 21px;
    padding-left: 33px;
}
.btn-carrito-eliminar {
    background: url(/custom/img/borrar.svg);
    background-position: 7px 5px;
    background-repeat: no-repeat;
    background-size: 21px;
    padding-left: 33px;
    background-color: #e7e7e7;
}

a.boton.en-oferta {
    background: url(/panel/img/iconos/oferta.svg);
    background-position: 6px 6px;
    background-repeat: no-repeat;
    background-size: 19px;
    padding-left: 33px;
}

a.boton.en-destacar {
    background: url(/panel/img/iconos/destacar.svg);
    background-position: 6px 6px;
    background-repeat: no-repeat;
    background-size: 19px;
    padding-left: 33px;
}
/* ============================================================================
   08.2 BUSCADOR EN BODY Y HEADER
   Ajustes del formulario de búsqueda en zona de contenido y encabezado.
   ============================================================================ */
header form.buscador-grande button {
    font-size: 10px;
}
header form.buscador-grande input {
    display: inline-block;
    float: left;
    overflow: hidden;
    width: 72%!important;
    min-width: 0;
    height: 20px;
    padding: 5px 2% 5px 6%!important;
    border: none;
    margin: 0;
    border-radius: 2px 0px 0px 2px;
    font-size: 13px!important;
}

/* ============================================================================
   08.3 FORMULARIO BUSCADOR DEL HEADER
   Campo y botón de búsqueda dentro del header.
   ============================================================================ */
header form.buscador-grande button {
    display: inline-block;
    float: right;
    width: 20%!important;
    overflow: hidden;
    min-width: 0;
    height: 30px;
    padding: 5px 0!important;
    border: none;
    margin: 0;
    border-radius: 0px 2px 2px 0px;
}
body div form.buscador-grande-header input {
    padding: 7px 4% 10px 4%!important;
    font-size: 16px!important;
}
body div form.buscador-grande-header button {
    padding: 18px 4% 19px 4%!important;
    font-size: 16px!important;
}
header span.texto-resultado {
    margin: 8px;
    display: block;
}

/* ============================================================================
   08.4 FORMULARIO BUSCADOR GENERAL
   Buscador grande con input, botón, resultados e imágenes.
   ============================================================================ */
form.buscador-grande {
	margin-top: 4px;
}
form.buscador-grande input {
    padding: 15px 5%;
    font-size: 19px;
    width: 70%;
    display: inline-block;
    float: left;
    overflow: hidden;
    min-width: 0;
    height: 20px;
    border: none;
    margin: 0;
    border-radius: 6px 0px 0px 6px;
    font-size: 21px;
}
form.buscador-grande button {
    padding: 25px 2%;
    min-width: 18%;
    font-size: 16px;
    height: 30px;
    background: url(/custom/img/buscar.svg) #e2e2e2;
    background-size: 15px!important;
    background-repeat: no-repeat!important;;
    background-position: center!important;
    border-radius: 0px 6px 6px 0px!important;
    transition: 0.3s!important;
}
form.buscador-grande button:hover {
    background-color: #cdcdcd;
}

form.buscador-grande a.item-resulado-buscador-inicio {
    display: block;
    max-width: 600px;
    transition: 0.3s;
    color: black!important;
}
form.buscador-grande tr:hover {
    background-color: #bdbdbd;
    color: black;
}
form.buscador-grande a.item-resulado-buscador-inicio figure {
    margin: 0;
    width: 30px;
    height: 30px;
    overflow: hidden;
    display: inline-block;
    border-radius: 10px;
    margin: 0px 10px -5px 0px;
    border: 1px solid #dbdbdb;
}
form.buscador-grande a.item-resulado-buscador-inicio figure img {
    margin: 0;
    height: 100vh;
    width: 100vw;
    object-fit: contain;
    object-position: center;
    display: inline-block;
    vertical-align: middle;
    max-width: 100%;
    max-height: 100%;
    filter: contrast(1) saturate(1.5);
}

/* ============================================================================
   07.6 TABS VERTICALES
   Sistema de pestañas verticales basado en jQuery UI.
   ============================================================================ */
.tabs-menu-vertical .ui-tabs-nav {
	margin: 0;
	padding: 0;
	width: 20%;
	float: left;
}
.tabs-menu-vertical .ui-tabs-nav li {
	list-style:none;
}
.tabs-menu-vertical .ui-state-active a {
	background-color: #f7f7f7!important;
	color: black!important;
}
.tabs-menu-vertical .ui-tabs-nav li a {
	display: block;
	width: 96%;
	padding: 10px 2%;
	text-decoration:none;
	background-color: #c1c1c1;
	border-bottom: 1px solid #a5a5a5;
	color: #696969;
	font-weight: 600;
}
.tabs-menu-vertical .ui-tabs-nav li a:focus {
	color:red;
}
.tabs-menu-vertical .ui-tabs-nav li a:hover {
	background-color: #d9d9d9;
}
.tabs-menu-vertical > div {
	display: block;
	width: 76%;
	float: left;
	padding: 0 2%;
	margin-bottom: 30px;
	background-color: #f7f7f7;
}


/* ============================================================================
   09.1 BANNER GRANDE
   Banner principal con botones, información superpuesta y soporte para carrusel.
   ============================================================================ */
.botones-banner-inicio {
    position: absolute;
    width: 100%;
    height: 341px;
    z-index: 9;
    top: 0;
}
.botones-banner-inicio-movil {
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 9;
    top: 0;
}




.slider-css-1 .botones-banner-inicio-movil {
    top: 0;
    margin-top: 0!important;
}

.slider-css-1 .botones-banner-inicio {
    top: 50%;
    margin-top: 20px!important;
    height: 0px;
    overflow: initial!important;
}




section.banner-grande {
	display: block;
	min-height: 180px;
	background-color: gray;
	width: 100%;
	padding-top: 280px;
}
section.banner-grande .info-banner {
	margin-left: 10%;
	display: inline-block;
	margin-top: 0;
	padding: 10px;
	border-left: 4px solid #656565;
	color: white;
}
.banner-grande .info-banner h1 {
	margin-top: 0;
}
.owl-carousel .item {
	background: #ffffff;
}
.owl-theme .owl-nav [class*=owl-] {
	background-color: orange;
}
/* ============================================================================
   09.2 CARRUSEL 1
   Carrusel con imágenes ajustadas al alto y ancho del contenedor.
   ============================================================================ */
.owl-carousel .item {
    background-color: white;
}
.carrusel1 .owl-item img {
	display: inline-block;
	vertical-align: middle;
	max-width: 100%;
	max-height: 100%;
	width: 100vw;
	height: 100vh;
	object-fit: cover;
	object-position: top center;
	background-color: white!important;
}
.carrusel1 .owl-carousel .owl-item .item {
	padding: 0;
	background: white;
}
/* ============================================================================
   09.3 CARRUSEL 2
   Segundo estilo de carrusel con recorte de imágenes.
   ============================================================================ */
.carrusel2 .owl-item img {
	display: inline-block;
	vertical-align: middle;
	max-width: 100%;
	max-height: 100%;
	width: 100vw;
	height: 100vh;
	object-fit: cover;
	background-color: white!important;
}
.carrusel2 .owl-carousel .owl-item .item {
	padding: 0;
}
/* ============================================================================
   07.7 TABS HORIZONTALES
   Pestañas horizontales con estados activos y hover.
   ============================================================================ */
ul.ui-tabs-nav {
    padding: 0;
    margin: 0;
    margin-bottom: 0;
    border-bottom: 1px solid #dbdbdb;
}
div#tabsH {
	margin-bottom: 40px;
	padding: 10px 10px 30px;
	display: inline-block;
	margin-bottom: 60px;
	width: 98%;
}
.tabs-menu-horizontal .ui-tabs-nav {
	margin: 0;
	padding: 0;
	margin-bottom: 11px;
}
#tabsH .ui-tabs-nav li {
	list-style: none;
	display: inline-block;
}
#tabsH .ui-tabs-nav li a {
	display: inline-block;
	text-decoration: none;
	color: #c1c1c1;
	background-color: #ededed;
	padding: 10px;
	color: #c3bfbf;
	border-radius: 4px 4px 0px 0px;
	font-weight: 600;
}
#tabsH .ui-state-active a {
	background-color: #dbdbdb!important;
	color: #5d5d5d!important;
}
.ui-tabs-nav li a:focus {
    outline: none;
}
#tabsH .ui-tabs-nav li a:hover {
	background-color: #d9d9d9;
	color: gray;
}
div#tabsH > div {
    border: 2px solid #dbdbdb;
}

/* ============================================================================
   07.8 ACORDEÓN GENERAL
   Acordeón principal con títulos interactivos y contenido desplegable.
   ============================================================================ */
div#accordion h3 {
	display: block;
	width: 96%;
	padding: 10px 2%;
	text-decoration: none;
	background-color: #f2f2f2;
	border-bottom: 1px solid #dfdada;
	color: #000000;
	margin: 0;
	cursor: pointer;
}
div#accordion h3.ui-state-active {
	background-color: #f7f7f7;
	color: black;
}
div#accordion h3.ui-state-active:hover {
	background-color: #fcfcfc;
}
div#accordion h3:hover {
	background-color: #ececec;
}
.ui-accordion-content {
	padding: 2%;
	box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, .05);
	border: 1px solid #f1f1f1;
}


/* ============================================================================
   09.4 LOGOS DE CLIENTES
   Manejo visual de logos con escala de grises y hover.
   ============================================================================ */
section.clientes1 .logo-cliente img {
	display: inline-block;
	width: 100%;
	max-width: 200px;
	min-width: 80px;
	-webkit-filter: grayscale(90%); /* Safari 6.0 a 9.0 */
	filter: grayscale(91%) brightness(110%)!important;
}
section.clientes1 .logo-cliente img:hover {
	-webkit-filter: grayscale(0%);
	filter: grayscale(0%)!important;
}
section.clientes2 .logo-cliente img {
	display: inline-block;
	width: 100%;
	max-width: 200px;
	min-width: 80px;
}

/* ============================================================================
   09.5 SECCIONES PREDISEÑADAS
   Inicio de bloques específicos como servicios y presentaciones.
   ============================================================================ */

/* ============================================================================
   09.5.1 SERVICIOS MODELO 1
   Bloques de servicio con imagen superior.
   ============================================================================ */
section.servicio1 .bloque-servicio .imagen img {
	display: inline-block;
	vertical-align: middle;
	max-width: 100%;
	max-height: 100%;
	width: 100vw;
	height: 100vh;
	object-fit: cover;
	background-color: white!important;
}
section.servicio1 .bloque-servicio .imagen {
	display: block;
	max-height: 230px;
	height: 210px;
	overflow: hidden;
	margin-bottom: 20px;
}

/* ============================================================================
   09.5.2 SERVICIOS MODELO 2
   Variante de servicios con separación superior.
   ============================================================================ */
section.servicio2 .bloque-servicio .imagen img {
	display: inline-block;
	vertical-align: middle;
	max-width: 100%;
	max-height: 100%;
	width: 100vw;
	height: 100vh;
	object-fit: cover;
	background-color: white!important;
}
section.servicio2 .bloque-servicio .imagen {
	display: block;
	max-height: 230px;
	height: 210px;
	overflow: hidden;
	margin-bottom: 20px;
	padding-top: 10px;
}

/* ============================================================================
   09.6 PRESENTACIÓN DE EMPRESA
   Estilos para secciones de presentación corporativa.
   ============================================================================ */
/* ============================================================================
   09.6.1 BLOQUES DE PRESENTACIÓN
   Imágenes y contenedores usados en presentaciones tipo empresa.
   ============================================================================ */

.presentacion1 .imagen img {
	display: inline-block;
	vertical-align: middle;
	max-width: 100%;
	max-height: 100%;
	width: 100vw;
	height: 100vh;
	object-fit: cover;
	background-color: white!important;
}
.presentacion1 .imagen {
	display: block;
	max-height: 230px;
	height: 210px;
	overflow: hidden;
	margin-bottom: 20px;
}
.presentacion3 .imagen img {
	display: inline-block;
	vertical-align: middle;
	max-width: 100%;
	max-height: 100%;
	width: 100vw;
	height: 100vh;
	object-fit: cover;
	background-color: white!important;
}
.presentacion3 .imagen {
	display: block;
	max-height: 230px;
	height: 210px;
	overflow: hidden;
	margin-bottom: 20px;
}

/* ============================================================================
   07.9 WIDGETS DE ASIDE Y MENÚ DE CATEGORÍAS
   Menús laterales, categorías, niveles y contadores de productos.
   ============================================================================ */
.widget {
	float: left;
	display: inline-block;
	min-height: 30px;
	width: 100%;
}
nav.widget.menu ul {
	margin: 0;
	padding: 0;
}
nav.widget.menu ul li {
	list-style: none;
}
li.categoria-actual a {
    background-color: #660e80!important;
    color: white!important;
}
nav.widget.menu ul li a {
	text-decoration: none;
	display: inline-block;
	background-color: #f9f9f9;
	width: 96%;
	text-align: left;
	padding: 10px 2%;
	color: black;
	border-bottom: 1px solid #efefef;
	font-size: 12px;
	border-radius: unset;
}
nav.widget.menu span.cantidad-productos {
    text-align: right;
    display: inline-block;
    float: right;
}
nav.widget.menu > ul > li > a {
    font-weight: bold;
    background-color: #fdfdfd;
    background-color: #f1f1f1;
    box-shadow: 0px 0px 0px #00000033;
    transition: 0.8s;
    transition: 0.9s!important;
}
nav.widget.menu ul li a:hover {
	background-color: #f1f1f1;
	box-shadow: 14px 14px 24px #00000033;
	z-index: 9999999999;
	position: relative;
	transform: scale(1.02, 1.02) translateX(-1%) translateY(-1%);
	transition: 0.2s!important;
}



a.nivel2, a.nivel3, a.nivel4 {
    font-weight: normal!important;
    font-size: 12px!important;
}

a.nivel1 {
    background-color: #f8f8f8!important;
}
a.nivel2 {
    padding-left: 10%!important;
    width: 88%!important;
    padding-right: 2%!important;
}
a.nivel3 {
    padding-left: 20%!important;
    width: 78%!important;
    padding-right: 2%!important;
}
span.signo-menu-a {
    margin-right: 5px;
    margin-left: 6px;
}


/* ============================================================================
   09.7 SECCIÓN DE CONTACTO
   Datos de contacto, títulos y enlaces destacados dentro de la sección de contacto.
   ============================================================================ */
section.seccion-contacto {
    padding: 100px 0;
}

section.seccion-contacto h1 {
    text-align: center;
    color: #004d93;
    padding: 30px;
}
.text-align-left.datos-de-contacto a {
    font-size: 22px;
    margin-bottom: 0px;
    display: block;
    color: #005fb5;
}

.text-align-left.datos-de-contacto a img {
    width: 31px;
    margin-bottom: -4px;
    margin-right: 10px;
}
.datos-de-contacto h3 {
    margin-bottom: 30px;
    margin-top: 20px;
    color: #004d93;
    font-size: 30px;
}


/* ============================================================================
   10. ESTILOS DEL EDITOR Y ADMINISTRACIÓN
   Clases de ocultamiento, notificaciones, controles de edición y manejo visual del editor.
   ============================================================================ */
.ocultar-web {
    display: none!important;
    opacity: 0!important;
    font-size: 0!important;
    max-width: 0!important;
    max-height: 0!important;
    min-width: 0!important;
    min-height: 0!important;
    overflow: hidden!important;
    height: 0!important;
    width: 0!important;
    position: absolute!important;
}
.btn-verde {
	background-color: #00c300;
	color: white;
	font-weight: bold;
	text-rendering: optimizeLegibility;
	outline: none;
	transition: 0.1s;
}
.notificacion {
	display: block;
	text-align: center;
	background-color: gray;
	padding: 10px;
	border-radius: 20px;
	margin-bottom: 20px;
	color: white;
	float: left;
	width: 95%;
}
.notificacion.ok {
	background-color: #dfffdf;
	color: #00a772;
}
.notificacion.error {
	background-color: #ffdfdf;
	color: #f13030;
}
.item-noticia {
	transition: 0.3s;
	transform: translate(1px, 1px);
}
.item-noticia:hover span.estilo-noticia {
	opacity: 1;
}
span.cambiar-estilo {
	display: inline-block;
	background-color: #3a3a3a;
	border-radius: 3px;
	color: white;
	padding: 5px 10px;
	font-size: 10px;
	margin-bottom: 6px;
	cursor: pointer;
}
span.cambiar-estilo:hover {
	background-color: black;
}
span.estilo-noticia {
	display: block;
	background-color: #ffffffa3;
	border-bottom: 1px solid gray;
	padding: 10px 10px 5px 11px;
	position: absolute;
	z-index: 13;
	float: right;
	border-radius: 0px 4px 4px 0px;
	opacity: 0;
	transition: 0.3s;
}
/* ============================================================================
   10.1 EDITOR DE NOTICIAS
   Controles para mover bloques, subir imágenes y mostrar instrucciones visuales.
   ============================================================================ */
.article-content.editor-noticia.descripcion > .b1-1 {
	min-height: 40px;
	padding-top: 40px;
}
small.mover-bloques {
	display: block;
	position: absolute;
	-webkit-user-select: none;  /* Chrome y Safari */
	-moz-user-select: none;     /* Firefox */
	-ms-user-select: none;      /* Internet Explorer 10 o superior */
	user-select: none;          /* Estándar actual */
	padding-bottom: 0;
	height: 0;
	overflow: hidden;
	transition: 0.3s;
	margin-bottom: 7px;
}
.article-content.editor-noticia.descripcion:hover .b1-1 .mover-bloques {
	height: auto!important;
	padding: 6px;
	margin-top: -42px;
	transition: 0s;
}
small.mover-bloques button {
	min-width: auto!important;
	-webkit-user-select: none;  /* Chrome y Safari */
	-moz-user-select: none;     /* Firefox */
	-ms-user-select: none;      /* Internet Explorer 10 o superior */
	user-select: none;          /* Estándar actual */
	padding: 8px 15px;
	border-radius: 4px;
	margin: 2px;
	background-color: gray;
	color: white;
}
small.mover-bloques button:hover {
	background-color: black;
}
.subirImagenInstruccion:after {
	content: "Click aquí para subir una imágen";
	display: block;
	color: orange;
	font-size: 45px;
	padding: 16% 5%;
	text-align: center;
	font-weight: bold;
}
.loadImagenInstruccion:after {
	content: url('../img/load.gif');
	display: block;
	color: orange;
	font-size: 45px;
	padding: 16% 5%;
	text-align: center;
	font-weight: bold;
}
button.guardar-imagen {
	animation-iteration-count: infinite;
}
/* ============================================================================
   10.2 OPINIONES O COMENTARIOS
   Bloques simples para opiniones asociadas a noticias o contenidos.
   ============================================================================ */
.opinion-noticia {
    display: block;
    border: 1px solid gray;
    padding: 10px;
}
.opinion-noticia h3 {
    color: purple;
    margin: 0;
}
/* ============================================================================
   10.3 IMÁGENES DEL SERVIDOR
   Elementos para listar, detectar y eliminar imágenes desde depósito o galería.
   ============================================================================ */
.item-imagen-deposito {
	display: inline-block;
	margin-bottom: 20px;
	padding: 6px;
}
.carpeta-detect .imagen-detect {
	margin: 2px 5px;
	border: 1px solid gray;
	height: 57px;
	transition: 0.3s;
	animation-delay: 1s;
}
a.delete-imagen-galeria {
	display: block;
	background-color: red;
	color: white;
	text-decoration: none;
	font-size: 10px;
	clear: both;
	border-radius: 10px;
	z-index: 1;
	text-align: center;
}

/* ============================================================================
   10.4 POPUP GENERAL
   Modal genérico con botón de cierre giratorio.
   ============================================================================ */
.contenedor-popup {
    position: fixed;
    background-color: #ffffff;
    box-shadow: 0px 0px 0px 190px #00000085, 0px 0px 22px #000000;
    color: black;
    padding: 1%;
    left: 4%;
    right: 5%;
    width: 90%;
    height: 85%;
    top: 6%;
    bottom: 5%;
    z-index: 999999999;
    border-radius: 18px;
}
span.cerrar-popup {
    position: absolute;
    right: 0;
    top: 0;
    font-size: 42px;
    background-color: #3c3c3c;
    box-shadow: inset 0px 0px 10px black;
    border: 2px solid gray;
    border-radius: 100px;
    margin-top: -20px;
    margin-right: -27px;
    cursor: pointer;
    transform: rotate(0deg);
    transition: 0.3s;
    z-index: 99;
    width: 40px;
    height: 40px;
    padding: 10px;
    text-align: center;
}
span.cerrar-popup img {
    width: 70%;
    margin: 6px auto;
    display: block;
}
span.cerrar-popup:hover {
    transform: rotate(360deg);
}


/* ============================================================================
   11. FOOTER
   Inicio del pie de página y sus variantes internas.
   ============================================================================ */
/* ============================================================================
   11.4 FOOTER PRINCIPAL
   Estructura, logo, enlaces, datos de contacto, bottom-footer y estilos internos del pie de página.
   ============================================================================ */
footer {
	background-size: 300px;
	background-position: 110px -49px!important;
	background-color: #3a3a3a;
	box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, .05);
	display: block;
	float: left;
	width: 100%;
	padding: 0%;
	margin-top: -1px;
}
footer ul {
	margin: 0;
	padding: 0;
}
footer li {
	text-align: left;
    list-style: inherit;
    color: white;
    margin-bottom: 8px;
}
footer .boton {
    border-bottom: none;
    border-radius: 2px;
    padding: 6px 10px 8px 10px;
    font-size: 11px;
}
footer h3 {
	color: white;
	text-align: left;
	font-size: 20px;
}
footer h4 {
	color: white;
	margin: 3px 0;
	font-size: 13px;
	margin-top: 15px;
}
footer span.logo {
	display: block;
	max-height: 150px;
	height: 90px;
	overflow: hidden;
	margin-bottom: 0;
	width: 100%;
}
footer .logo img {
	display: inline-block;
	vertical-align: middle;
	max-width: 100%;
	max-height: 100%;
	width: 100vw;
	height: 100vh;
	object-fit: contain!important;
}
footer p {
	color: white;
	margin: 4px;
	font-size: 14px;
}
footer a {
	color: #ffffff;
	margin: 4px 0;
	font-size: 15px;
	text-decoration: none;
}
footer a:hover {
    color: #e3e3e3;
}
footer iframe {
    max-height: 300px!important;
    min-height: 300px!important;
}
footer embed {
    max-height: 300px!important;
    min-height: 300px!important;
}
footer img.logo-footer {
	max-width: 120px;
}
footer .top-footer {
	border-bottom: 1px solid #007eff;
	background-color: #004cff;
	display: none;
}

footer li.dato-contacto-footer a img {
    width: 22px;
    margin-bottom: -7px;
    margin-right: 5px;
}

footer li.dato-contacto-footer.borrar-movil {
    list-style: none;
}


footer .botom-footer {
	border-top: 1px solid #f97300;
	background: url(/custom/img/boton-header.png);
	background-color: #ff7b00;
	margin-top: 10px;
	padding: 7px 1%;
}
footer .acceso-panel-footer {
	display: inline-block;
	font-size: 12px;
	text-decoration: none;
}
footer .b1-1.links-footer a {
	color: orange;
	text-decoration: none;
	margin-top: 28px;
	display: inline-block;
	font-weight: 100;
	margin: 10px;
}
footer .b1-1.links-footer {
	color: white;
	font-weight: bold;
}
footer .botom-footer a {
	text-decoration: none;
	font-size: 12px;
	color: orange;
	float: right;
	margin-right: 10px;
}
footer .botom-footer p {
	color: #ffedc3;
	display: inline-block;
	font-size: 12px;
	margin: 0 auto;
	letter-spacing: 2px;
}
footer .bottom-footer {
	background-color: #171717;
	margin-bottom: -3px;
	display: inline-block;
	width: 100%;
}




/* ============================================================================
   12.1 UTILIDADES DE COLOR
   Clases helper para aplicar colores de fondo o texto. Usan !important porque son utilidades de sobreescritura.
   ============================================================================ */
/* Color rojo */
.bg-color-red{ background-color:red!important;}
.bg-color-red-light{background-color: #ffa0a0!important;}
.bg-color-red-dark{ background-color:#c90000!important;}
/* Color azul */
.bg-color-blue{background-color: #2350ff!important;}
.bg-color-blue-light{background-color: #a4b7ff!important;}
.bg-color-blue-dark{background-color: #23479c!important;}
/* Color verde */
.bg-color-green{background-color: #25ab25!important;}
.bg-color-green-light{background-color: #8dff8d!important;}
.bg-color-green-dark{background-color: green!important;}
/* Color magenta */
.bg-color-magenta{background-color: #f70cf7!important;}
.bg-color-magenta-light{background-color: #ffbaff!important;}
.bg-color-magenta-dark{background-color: #980e98!important;}
/* Color cian */
.bg-color-cyan{background-color: #00e4e4!important;}
.bg-color-cyan-light{background-color: #afffff!important;}
.bg-color-cyan-dark{background-color: #047d7d!important;}
/* Color amarillo */
.bg-color-yellow{background-color: yellow!important;}
.bg-color-yellow-light{background-color: #ffff83!important;}
.bg-color-yellow-dark{background-color: #a9a900!important;}
/* Color naranjo */
.bg-color-orange{background-color: orange!important;}
.bg-color-orange-light{background-color: #ffce74!important;}
.bg-color-orange-dark{background-color: #bf7c00!important;}
/* Color púrpura */
.bg-color-purple{background-color: #8e198e!important;}
.bg-color-purple-light{background-color: #da9ada!important;}
.bg-color-purple-dark{background-color: #3e003e!important;}
/* Color rosado */
.bg-color-pink{background-color: #ff8bc4!important;}
.bg-color-pink-light{background-color: #ffdae0!important;}
.bg-color-pink-dark{background-color: #bf4183!important;}
/* Escala neutra */
.bg-color-black{background-color: black!important;}
.bg-color-gray-light{background-color: gainsboro!important;}
.bg-color-gray{background-color: gray!important;}
.bg-color-gray-dark{background-color: #444444!important;}
.bg-color-white{background-color: white!important;}
.bg-color-transparent{background-color: transparent!important;}


/* ============================================================================
   12.2 UTILIDADES DE COLOR DE TEXTO
   Clases helper para aplicar color de texto rápido. Usan !important para funcionar como utilidades de sobreescritura.
   ============================================================================ */
/* Color rojo */
.color-red{ color:red!important;}
.color-red-light{color: #ffa0a0!important;}
.color-red-dark{ color:#c90000!important;}
/* Color azul */
.color-blue{color: #2350ff!important;}
.color-blue-light{color: #a4b7ff!important;}
.color-blue-dark{color: #23479c!important;}
/* Color verde */
.color-green{color: #01f700!important;}
.color-green-light{color: #8dff8d!important;}
.color-green-dark{color: #017500!important;}
/* Color magenta */
.color-magenta{color: #f70cf7!important;}
.color-magenta-light{color: #ffbaff!important;}
.color-magenta-dark{color: #980e98!important;}
/* Color cian */
.color-cyan{color: #00e4e4!important;}
.color-cyan-light{color: #afffff!important;}
.color-cyan-dark{color: #047d7d!important;}
/* Color amarillo */
.color-yellow{color: yellow!important;}
.color-yellow-light{color: #ffff83!important;}
.color-yellow-dark{color: #a9a900!important;}
/* Color naranjo */
.color-orange{color: orange!important;}
.color-orange-light{color: #ffce74!important;}
.color-orange-dark{color: #bf7c00!important;}
/* Color púrpura */
.color-purple{color: #8e198e!important;}
.color-purple-light{color: #da9ada!important;}
.color-purple-dark{color: #3e003e!important;}
/* Color rosado */
.color-pink{color: #ff8bc4!important;}
.color-pink-light{color: #ffdae0!important;}
.color-pink-dark{color: #a90421!important;}
/* Escala neutra */
.color-black{color: black!important;}
.color-gray-light{color: gainsboro!important;}
.color-gray{color: gray!important;}
.color-gray-dark{color: #444444!important;}
.color-white{color: white!important;}

/* ============================================================================
   12.3 UTILIDADES DE TAMAÑO DE FUENTE
   Clases helper para tamaños de texto específicos.
   ============================================================================ */
.font-size-0 {font-size: 0px;}
.font-size-4 {font-size: 4px;}
.font-size-8 {font-size: 8px;}
.font-size-9 {font-size: 9px;}
.font-size-10 {font-size: 10px;}
.font-size-11 {font-size: 11px;}
.font-size-12 {font-size: 12px;}
.font-size-14 {font-size: 14px;}
.font-size-16 {font-size: 16px;}
.font-size-18 {font-size: 18px;}
.font-size-20 {font-size: 20px;}
.font-size-22 {font-size: 22px;}
.font-size-24 {font-size: 24px;}
.font-size-26 {font-size: 26px;}
.font-size-28 {font-size: 28px;}
.font-size-36 {font-size: 36px;}
.font-size-48 {font-size: 48px;}
.font-size-72 {font-size: 72px;}

/* ============================================================================
   13. CAPA MODERNA 2026
   Capa final que actualiza layouts antiguos con flex, grid, responsive, accesibilidad y mejoras visuales.
   Se coloca al final para sobrescribir reglas legacy de forma controlada.
   ============================================================================ */

/* ============================================================================
   13.1 BODY Y LAYOUT BASE MODERNO
   Convierte el cuerpo en layout flexible vertical para mantener footer al fondo cuando corresponde.
   ============================================================================ */
body {
    display: flex;
    flex-direction: column;
    min-height: 100dvh;
    background-color: transparent;
}

body > main,
body > .contenedor {
    flex: 1 0 auto;
}

footer {
    flex-shrink: 0;
}

/* ============================================================================
   13.2 GRILLA MODERNA PARA CLASES B, S Y M
   Activa flex en contenedores que tengan columnas históricas como hijos directos.
   Esto evita modificar el HTML y reduce dependencia de floats.
   ============================================================================ */
:where(section, article, aside, footer, header, .contenedor, .centrar, .centrar-mini, .centrar-mini-mini, .contenedor-flex, .article-content, .cajas, .seccion-contacto):has(> :is(
    .b1-1, .b1-2, .b1-3, .b2-3, .b1-4, .b2-4, .b3-4, .b1-5, .b2-5, .b3-5, .b4-5, .b1-6, .b2-6, .b3-6, .b4-6, .b5-6,
    .s1-1, .s1-2, .s1-3, .s2-3, .s1-4, .s2-4, .s3-4, .s1-5, .s2-5, .s3-5, .s4-5, .s1-6, .s2-6, .s3-6, .s4-6, .s5-6,
    .m1-1, .m1-2, .m1-3, .m2-3, .m1-4, .m2-4, .m3-4, .m1-5, .m2-5, .m3-5, .m4-5, .m1-6, .m2-6, .m3-6, .m4-6, .m5-6
)) {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
}

.b1-1, .b1-2, .b1-3, .b2-3, .b1-4, .b2-4, .b3-4, .b1-5, .b2-5, .b3-5, .b4-5, .b1-6, .b2-6, .b3-6, .b4-6, .b5-6,
.s1-1, .s1-2, .s1-3, .s2-3, .s1-4, .s2-4, .s3-4, .s1-5, .s2-5, .s3-5, .s4-5, .s1-6, .s2-6, .s3-6, .s4-6, .s5-6,
.m1-1, .m1-2, .m1-3, .m2-3, .m1-4, .m2-4, .m3-4, .m1-5, .m2-5, .m3-5, .m4-5, .m1-6, .m2-6, .m3-6, .m4-6, .m5-6 {
    float: none;
    flex: 0 0 auto;
    min-width: 0;
    vertical-align: top;
}

.contenedor-flex {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
}

.centrar,
.centrar-mini,
.centrar-mini-mini {
    margin-inline: auto;
    max-width: var(--container-max);
}

/* ============================================================================
   13.3 IMÁGENES MODERNAS
   Normaliza object-fit, alto, ancho y aspect-ratio en imágenes repetidas del sitio.
   ============================================================================ */
.imagen img,
.slider1 .item img,
.slider2 .item img,
.carrusel1 .owl-item img,
.carrusel2 .owl-item img,
section.servicio1 .bloque-servicio .imagen img,
section.servicio2 .bloque-servicio .imagen img,
.presentacion1 .imagen img,
.presentacion3 .imagen img,
.bloque figure.imagen-bloque img,
footer .logo img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: cover;
    object-position: center;
}

footer .logo img {
    object-fit: contain;
}

.bloque figure.imagen-bloque,
.imagen,
section.servicio1 .bloque-servicio .imagen,
section.servicio2 .bloque-servicio .imagen,
.presentacion1 .imagen,
.presentacion3 .imagen {
    aspect-ratio: 16 / 9;
}

/* ============================================================================
   13.4 BLOQUES MODERNIZADOS
   Refuerza tarjetas con sombras, transiciones y layout horizontal con flex.
   ============================================================================ */
.bloque {
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-card);
    transition: background-color .2s ease, box-shadow .2s ease, transform .2s ease, border-radius .2s ease;
}

.bloque:hover {
    box-shadow: var(--shadow-hover);
}

.bloque.horizontal {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
}

.bloque.horizontal .imagen-bloque,
.bloque.horizontal .contenido-bloque {
    float: none;
}

.bloque.horizontal .imagen-bloque {
    width: 50%;
}

.bloque.horizontal .contenido-bloque {
    width: 50%;
}

/* ============================================================================
   13.5 HEADER MODERNIZADO
   Ajusta el encabezado con flex sin eliminar la estructura original.
   ============================================================================ */
header {
    display: block;
    position: relative;
    top: 0;
    z-index: 10;
}

header > .top-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

header nav ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    float: none;
}

header nav > ul > li {
    position: relative;
}

header nav ul li ul {
    left: 0;
}

#header2 nav ul,
#header3 ul {
    justify-content: center;
}

/* ============================================================================
   13.6 BUSCADOR MODERNIZADO
   Convierte formularios de búsqueda a flex para evitar floats.
   ============================================================================ */
form.buscador-grande {
    display: flex;
    align-items: stretch;
}

form.buscador-grande input,
header form.buscador-grande input {
    float: none;
    min-width: 0;
}

form.buscador-grande button,
header form.buscador-grande button {
    float: none;
    min-width: 0;
}

/* ============================================================================
   13.7 TABLAS FALSAS Y TABS MODERNOS
   Actualiza tablas simuladas con grid y pestañas verticales con flex.
   ============================================================================ */
.tabla {
    display: grid;
    float: none;
}

.tabla .tr {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    float: none;
}

.tabla .tr .td {
    float: none;
    width: auto;
}

.tabs-menu-vertical {
    display: flex;
    flex-wrap: wrap;
}

.tabs-menu-vertical .ui-tabs-nav,
.tabs-menu-vertical > div {
    float: none;
}

/* ============================================================================
   13.8 ACCESIBILIDAD Y FOCUS MODERNO
   Mejora estados de foco visibles para teclado sin saturar la interacción con mouse.
   ============================================================================ */
:focus-visible {
    outline: 2px solid rgba(102, 14, 128, .45);
    outline-offset: 2px;
}

.bloque-servicio:focus,
.menu ul li a:focus,
.item-noticia:focus,
.item-producto-destacado:focus,
.item-producto:focus {
    outline: 2px solid rgba(102, 14, 128, .35);
    outline-offset: 2px;
}

/* ============================================================================
   13.9 FORMULARIOS MODERNIZADOS
   Refuerza colores, placeholders y resize de textarea.
   ============================================================================ */
input,
textarea,
select {
    color: var(--color-text);
    border-color: var(--color-border);
}

input::placeholder,
textarea::placeholder {
    color: #8c8c8c;
}

textarea {
    resize: vertical;
}

/* ============================================================================
   13.10 MOVIMIENTO REDUCIDO
   Respeta usuarios que prefieren menos animación desde configuración del sistema.
   ============================================================================ */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

/* ============================================================================
   13.11 RESPONSIVE MODERNO
   Media queries para escritorio pequeño, tablet y móvil.
   ============================================================================ */
@media (max-width: 1024px) {
    body {
        width: 100%;
    }

    .centrar-mini-mini {
        width: 80%;
    }

    header nav ul {
        justify-content: center;
        text-align: center;
    }

    .tabs-menu-vertical .ui-tabs-nav,
    .tabs-menu-vertical > div {
        width: 100%;
    }
}

@media (max-width: 768px) {
    .b1-2, .b1-3, .b2-3, .b1-4, .b2-4, .b3-4, .b1-5, .b2-5, .b3-5, .b4-5, .b1-6, .b2-6, .b3-6, .b4-6, .b5-6,
    .s1-2, .s1-3, .s2-3, .s1-4, .s2-4, .s3-4, .s1-5, .s2-5, .s3-5, .s4-5, .s1-6, .s2-6, .s3-6, .s4-6, .s5-6,
    .m1-2, .m1-3, .m2-3, .m1-4, .m2-4, .m3-4, .m1-5, .m2-5, .m3-5, .m4-5, .m1-6, .m2-6, .m3-6, .m4-6, .m5-6 {
        width: 98%;
    }

    .centrar,
    .centrar-mini,
    .centrar-mini-mini {
        width: 94%;
        min-width: 0;
    }

    .bloque.horizontal {
        display: block;
    }

    .bloque.horizontal .imagen-bloque,
    .bloque.horizontal .contenido-bloque {
        width: 100%;
    }

    header nav ul {
        justify-content: center;
    }

    header nav > ul > li > a,
    #header1 nav > ul > li > a {
        padding: 12px 6px !important;
    }

    header nav ul li ul {
        position: static;
        width: 100%;
        box-shadow: none;
    }

    form.buscador-grande input,
    form.buscador-grande button,
    header form.buscador-grande input,
    header form.buscador-grande button {
        height: 42px;
        font-size: 14px !important;
    }

    .tabla .tr {
        grid-template-columns: 1fr;
    }

    .tabla .tr .td {
        border-right: none;
        border-bottom: 1px solid gray;
    }

    section.seccion-contacto {
        padding: 50px 0;
    }

    .datos-de-contacto h3 {
        font-size: 24px;
    }
}

@media (max-width: 480px) {
    body {
        min-width: 320px;
    }

    h1 {
        font-size: 28px;
    }

    .b1-1, .b1-2, .b1-3, .b2-3, .b1-4, .b2-4, .b3-4, .b1-5, .b2-5, .b3-5, .b4-5, .b1-6, .b2-6, .b3-6, .b4-6, .b5-6,
    .s1-1, .s1-2, .s1-3, .s2-3, .s1-4, .s2-4, .s3-4, .s1-5, .s2-5, .s3-5, .s4-5, .s1-6, .s2-6, .s3-6, .s4-6, .s5-6,
    .m1-1, .m1-2, .m1-3, .m2-3, .m1-4, .m2-4, .m3-4, .m1-5, .m2-5, .m3-5, .m4-5, .m1-6, .m2-6, .m3-6, .m4-6, .m5-6 {
        width: 98%;
        margin-right: 1%;
        margin-left: 1%;
    }

    input,
    textarea,
    select {
        width: 100%;
        margin-right: 0;
        padding-right: 12px;
        padding-left: 12px;
    }

    footer .botom-footer a {
        display: block;
        float: none;
        margin: 8px 0 0;
    }

    .boton-top {
        right: 16px;
        bottom: 110px;
    }

    a.boton-whatsapp-footer {
        right: 16px;
        bottom: 50px;
    }
}
