/* ==================================================
HEADER
================================================== */

/* 1. Generales */

#header {
  position: sticky;
  top: 0;
  z-index: 1000; /* Aseguramos un z-index alto para que tape los productos al bajar */
  width: 100%;
  background-color: white;
}

.header{
  top: 0;
  width: 100%;
}

.headerTop, .headerBottom{
  width: 100%;
  /* max-width: 1280px; */
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.headerTop{
  height: 100px;
  max-width: 1280px;
}

.containerLogo{
  display: block;
  width: 180px;
  flex-shrink: 0;
}

.headerBottom{
  height: 70px;
  background-color: var(--color-background-gray);
}

.headerTop_logo, .headerTop_products, .headerTop_search, .headerTop_buttons, .headerBottom_menu{
  display: flex;
  /* height: auto; */
}

.headerTop_logo{
  width: 180px;
  margin: 0px 8px 0px 0px;
}

.headerTop_products{
  width: 150px;
}

/* 2. Productos */

.headerTop_products{
    height: 48px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 16px;
    background: var(--color-azul);
    border: 1px solid var(--color-azul);
    border-radius: 12px 12px 12px 12px;
    color: #FFFFFF;
    font-weight: 500;
    margin: 0px 8px;
}

.headerTop_productsImg{
    width: 20px;
}

/* Contenedor relativo para anclar el dropdown */
.headerTop_productsWrapper {
  position: relative;
  display: inline-block;
}

/* El botón Productos (Respetamos tus estilos, solo cambiamos a flex) */
/* .headerTop_products {
  display: flex !important;
  cursor: pointer;
  outline: none;
} */

/* Ventana Flotante del Mega Menú */
.mega-menu-dropdown {
  position: absolute;
  top: calc(100% + 15px); /* Separación estética de la fila del header */
  left: 0;
  width: 1040px; /* Ancho extendido premium para lucir las 4 columnas del modelo */
  background-color: #ffffff;
  border-radius: 8px;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.15);
  border: 1px solid #e2e8f0;
  z-index: 10000;
  display: none; /* Controlado dinámicamente por JS */
  grid-template-columns: 280px 1fr; /* Barra de líneas fija, contenido expansivo */
  overflow: hidden;
}

/* Columna de Líneas (Izquierda) */
.mega-menu-sidebar {
  background-color: #ffffff;
  border-right: 1px solid #eaeaea;
  padding: 12px 0;
  display: flex;
  flex-direction: column;
}

/* Botones de Línea Individuales */
.mega-menu-line-btn {
  width: 100%;
  padding: 14px 20px;
  text-align: left;
  font-size: 0.92rem;
  font-weight: 600;
  color: #333333;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: none;
  background: none;
  transition: all 0.2s ease;
}

.mega-menu-line-btn .arrow-icon {
  font-size: 0.75rem;
  color: #999;
  transition: transform 0.2s;
}

/* Estado activo e interactivo (Fiel al color azul de tu barra en la imagen) */
.mega-menu-line-btn:hover,
.mega-menu-line-btn.active {
  background-color: var(--color-azul); /* Azul corporativo IPASSE */
  color: #ffffff;
}

.mega-menu-line-btn:hover .arrow-icon,
.mega-menu-line-btn.active .arrow-icon {
  color: #ffffff;
  transform: translateX(3px);
}

/* Contenedor del contenido derecho (Gris azulado pálido muy sutil de fondo) */
.mega-menu-content {
  background-color: #f8fafc; 
  padding: 24px;
  min-height: 380px;
}

/* Paneles de Línea */
.mega-menu-panel {
  display: none;
}

.mega-menu-panel.active {
  display: block; /* Solo se muestra el panel de la línea seleccionada */
}

/* Rejilla de 4 Columnas del modelo */
.mega-menu-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr); /* 4 columnas de categorías exactas */
  gap: 24px;
}

.mega-menu-column {
  display: flex;
  flex-direction: column;
}

/* Títulos Azules de las Categorías */
.mega-menu-title {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--color-azul); /* Azul del modelo */
  line-height: 1.3;
  margin-bottom: 12px;
}

/* Listas de Subcategorías */
.mega-menu-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.mega-menu-list a {
  font-size: 0.84rem;
  color: #4a5568; /* Gris carbón legible */
  transition: color 0.15s, padding-left 0.15s;
  display: inline-block;
}

.mega-menu-list a:hover {
  color: var(--color-azul);
  padding-left: 2px; /* Pequeño desplazamiento interactivo */
}


/* 3. Buscador */

.headerTop_search {
  position: relative;
  display: flex;
  align-items: stretch; /* CAMBIO: Hace que tanto el input como el botón ocupen todo el alto disponible */
  width: 100%;
  max-width: 600px;
  height: 48px;         /* CAMBIO: Altura fija obligatoria para todo el bloque */
}

.headerTop_searchInput {
  flex: 1;
  height: 100%;         /* CAMBIO: Ocupa los 48px completos sin desbordarse */
  padding: 1px 2px 1px 24px;
  border: 1px solid var(--color-azul);
  border-radius: 12px 0px 0px 12px;
  outline: none;
}

.headerTop_searchButton {
  width: 76px;
  height: 100%;         /* CAMBIO: Ocupa los 48px completos eliminando el achicamiento */
  background: var(--color-azul);
  display: flex;
  justify-content: center;
  align-items: center;
  border: 1px solid var(--color-azul);
  border-left: none;    /* OPTIMIZACIÓN: Evita la línea doble en el centro */
  border-radius: 0px 12px 12px 0px;
  cursor: pointer;
}

.headerTop_searchImg{
    width:22px;
}


/* 2. Ventana flotante expandida y centrada matemáticamente */
.search-suggestions-box {
  position: absolute;
  top: calc(100% + 6px); /* Pequeña separación estética del input */
  left: 50%;
  transform: translateX(-50%); /* Centrado perfecto respecto al buscador */
  width: 100%;
  min-width: 560px; /* Ancho amplio para que las tarjetas no se aplasten */
  background-color: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
  z-index: 9999;
  display: none; /* Oculto por defecto: solo parpadea el cursor inicial */
  padding: 18px;
  box-sizing: border-box;
}

/* 3. Rejilla interna para organizar las 3 sugerencias en columnas */
.suggestions-products-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 3 columnas verticales simétricas */
  gap: 16px;
  margin-bottom: 16px;
}

/* 4. Tarjeta vertical individual (El cuadro del modelo) */
.suggestion-product-card {
  background-color: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 16px 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
  box-sizing: border-box;
  height: 100%;
}

.suggestion-product-card:hover {
  transform: translateY(-3px);
  border-color: var(--color-azul); /* Azul IPASSE al pasar el cursor */
  box-shadow: 0 6px 15px rgba(0, 74, 143, 0.08);
}

/* 5. Contenedor de la Imagen del Producto (Más Grande) */
.suggestion-card-img-box {
  width: 100%;
  height: 140px; /* Altura generosa para destacar la fotografía del producto */
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
  background-color: #ffffff;
}

.suggestion-card-img-box img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain; /* Mantiene la proporción original de tus productos sin deformar */
}

/* 6. Nombre del Producto ubicado DEBAJO de la imagen */
.suggestion-card-name {
  font-size: 0.82rem;
  font-weight: 700;
  color: #1a1a1a;
  text-align: left;       /* Mantiene la alineación original del modelo */
  line-height: 1.4;
  width: 100%;
  
  /* CORRECCIÓN DIRECTA AQUÍ: Eliminamos el truncado de líneas */
  display: block;         /* Cambia de -webkit-box a bloque normal */
  white-space: normal;    /* Permite que el texto salte de línea de forma natural */
  overflow: visible;      /* Asegura que no se esconda ninguna palabra */
}

/* 7. Enlace Inferior del pie: "Ver todos los XX productos" */
.suggestion-view-all-link {
  display: block;
  text-align: center;
  color: var(--color-azul);
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
  padding: 8px 0 4px 0;
  cursor: pointer;
  transition: color 0.2s;
}

.suggestion-view-all-link:hover {
  color: #002d59;
  text-decoration: underline;
}




/* 4. Botones */

.headerTop_buttons{
  width: 256px;
  padding: 0px 0px 0px 8px;
  justify-content: space-between;
}

.headerTop_buttonsLink{
    display: flex;
    flex-direction: column;
    align-items: center;
}

.headerTop_buttonsImg{
    flex: 1;           /* ocupa el espacio disponible */
    width: auto;
    max-width: 20px;
}

.headerTop_buttonsTextMini{
  line-height: 12px;
  font-size: 12px;
}

/* 5. Navegador */

.headerBottom_menu{
  width: 100%;
  max-width: 1280px;
  justify-content: space-between;
  align-items: center;
  margin: 0 auto;
}

.headerBottom_menu a{
  margin: 0px 24px;
  font-weight: 600;
}

@media(max-width:1200px){
  .headerTop_buttonsTextMini{
    display: none;
  }

  .headerTop_buttons {
  width: auto;             /* Deja de medir 256px fijos y se acopla a su contenido */
  gap: 24px;               /* Añade una separación uniforme de 24px entre los iconos */
  padding: 0 0 0 16px;     /* Colchón de separación respecto al buscador */
  }

  .headerTop_buttonsLink {
    justify-content: center;
  }
}

@media (max-width: 900px) {
  
  /* 1. OCULTAMOS EL MENÚ DE TEXTO POR COMPLETO */
  .headerBottom_menu {
    display: none; /* Desaparecen los enlaces de Inicio, Nosotros, etc. */
  }

  /* 3. EXTRACCIÓN Y ESTIRAMIENTO DEL BUSCADOR AL 90% */
  .headerTop_search {
    position: absolute;
    margin: 174px 0 0 0;
    left: 50%;
    transform: translateX(-50%);
    max-width: 90%;
  }
  
  .headerTop_buttons {
    display: none;
  }
}

/* ==================================================
HERO / CAROUSEL
================================================== */

/* El contenedor principal ahora corta el contenido sobrante */
.hero {
  position: relative;     /* Crucial para que las flechas se posicionen respecto al hero */
  width: 100%;            /* O el ancho que tengas definido */
  overflow: hidden;       /* FUSIONADO: Oculta los banners laterales */
}

/* La pista se desplaza en bloque igual que antes */
.hero_sliderTrack {
  display: flex;
  width: 300%;            /* 300% porque tienes exactamente 3 slides */
  transition: transform 0.5s ease-in-out; /* Tu animación actual de transición */
}

/* Cada diapositiva mantiene su proporción */
.hero_slide {
  width: 100%;            /* Ocupa el 100% disponible dentro de la pista */
}

.hero_image {
  width: 100%;
  display: block;
}

/* Estilos exactos según el modelo de la imagen */
.hero_arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  
  /* Tamaño compacto idéntico a la imagen */
  width: 60px;             
  height: 60px;            
  
  /* Centrado del icono */
  display: flex;
  justify-content: center;
  align-items: center;
  
  /* Color amarillo brillante del modelo */
  background-color: #fcd000; 
  border: none;
  border-radius: 50%; 
  cursor: pointer;
  
  /* Sin sombras pesadas para mantenerlo plano como la imagen */
  box-shadow: none; 
  transition: background-color 0.2s ease, transform 0.1s ease;
}

/* Efecto hover sutil */
.hero_arrow:hover {
  background-color: #e5bd00;
}

/* Reducción sutil al hacer clic */
.hero_arrow:active {
  transform: translateY(-50%) scale(0.95);
}

/* Icono interno negro y estilizado */
.hero_arrow svg {
  width: 40px;   /* Un poco más pequeño para dejar aire alrededor */
  height: 40px;
}

/* POSICIONAMIENTO TRASPASANDO EL BORDE Lateral (Efecto de la imagen) */
.hero_arrow--left { 
  left: 50px; /* Ajusta este valor si quieres que salga más o menos del borde */
}

.hero_arrow--right { 
  right: 50px; /* Ajusta este valor si quieres que salga más o menos del borde */
}





/* ==================================================
   CATEGORÍAS
================================================== */

.categories{
  padding: 90px 0 70px;
  background: var(--color-white);
  display: flex;
  justify-content: center;
}

.container{
  width: 1280px;
}

.categories-grid{
  display: grid;
  grid-template-columns:repeat(4,250px);
  justify-content: space-between;
}

.category-card{
  width: 250px;  
  display: flex;
  align-items: center;
  min-height: 140px;
  padding: 24px 0px;
  background: var(--color-white);
  border: 1px solid #ECECEC;
  border-radius: 18px;
  text-decoration: none;
  transition: all .25s ease;
}

.category-card:hover{
    transform:translateY(-3px);
    border-color:#DDDDDD;
    box-shadow:0 10px 28px rgba(0,0,0,.08);
}

.category-image{
    width:42%;
    display:flex;
    justify-content:center;
    align-items:center;
    flex-shrink:0;
}

.category-image img{
    width:86px;
    height:86px;
    object-fit:contain;
    display:block;
}

.category-content{
    width:58%;
    display:flex;
    align-items:center;
    padding-left:8px;
}

.category-content span{
    color:var(--color-text);
    font-size:16px;
    font-weight:600;
    line-height:1.45;
}

@media(max-width:1100px){
    .categories-grid{
        grid-template-columns:repeat(3,250px);
        justify-content: space-evenly;
        row-gap: 30px;
    }
}

@media(max-width:850px){
    .categories{
        padding:50px 0px 50px 0px;
    }

    .categories-grid{
        grid-template-columns: repeat(2,250px);
    }
}

@media(max-width:580px){
    .categories{
        padding:30px 0px 30px 0px;
    }

    .categories-grid{
        grid-template-columns: repeat(1,250px);
    }
}

/* ==================================================
FOOTER
================================================== */

/* Variables generales del Footer */
:root {
  --footer-bg: #222222;        /* Gris oscuro de fondo */
  --footer-text: #cccccc;      /* Gris claro para los enlaces */
  --footer-text-hover: #ffffff;/* Blanco para interactividad */
}

.footer {
  background-color: var(--footer-bg);
  color: var(--footer-text);
  width: 100%;
}

/* Distribución en 3 columnas asimétricas */
.footer_container {
  max-width: 1280px;
  margin: 0 auto;
  padding: 24px 0px;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr; /* Proporciones fieles a la imagen */
  gap: 50px;
}

.footer_column {
  display: flex;
  flex-direction: column;
}

/* Encabezados de secciones */
.footer_title {
  color: #ffffff;
  font-weight: 600;
  margin: 16px 0px;
}

.footer_title--sm {
  margin-top: 32px;
  margin-bottom: 16px;
}

/* Listas comunes */
.footer_contactList, 
.footer_linksList {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer_contactList li,
.footer_linksList li {
  padding: 4px 0px;
  line-height: 1.15;
}

.footer_linksList a,
.footer_contactList a {
  color: var(--footer-text);
  text-decoration: none;
  transition: color 0.2s ease;
}

.footer_linksList a:hover,
.footer_contactList a:hover {
  color: var(--footer-text-hover);
}

/* Elementos con icono al costado en contáctanos */
.footer_contactList li {
  display: flex;
  align-items: center;
  gap: 10px;
}

.footer_contactList img {
  width: 24px;
  /* height: 16px; */
}

/* Redes sociales */
.footer_socials {
  display: flex;
  gap: 12px;
}

.footer_socials img {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  transition: opacity 0.2s ease;
}

.footer_socials img:hover {
  opacity: 0.8;
}

/* Logotipos de métodos de pago */
.footer_payments {
  display: flex;
  height: 36px;
  /* align-items: center; */
  /* gap: 15px; */
  /* padding: 0px 16px 0px 0px; */
}

.footer_payments img {
  height: 100%; /* Altura uniforme para tarjetas */
  width: auto;
  padding: 0px 16px 0px 0px;
  filter: grayscale(100%) opacity(70%); /* Efecto monocromo del modelo */
  transition: filter 0.2s ease;
}

.footer_payments img:hover {
  filter: grayscale(0%) opacity(100%);
}

/* Barra inferior del footer */
.footer_bar {
  border-top: 1px solid #333333;
  padding: 20px 0;
}

.footer_barContent {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 30px;
  color: #888888;
}

.footer_barContent p {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ADAPTACIÓN MÓVIL (Responsivo) */
@media (max-width: 768px) {
  .footer_container {
    grid-template-columns: 1fr; /* Pasa de 3 columnas a una sola fila por sección */
    gap: 30px;
    text-align: center;
  }
  
  .footer_contactList li {
    justify-content: center;
  }
  
  .footer_socials, 
  .footer_payments,
  .footer_column--center {
    align-items: center;
    justify-content: center;
  }
  
  .footer_barContent {
    flex-direction: column;
    gap: 15px;
    text-align: center;
  }
}

/* =========================================================================
   BOTÓN FLOTANTE DE WHATSAPP GLOBAL
   ========================================================================= */
.whatsapp-btn-float {
  position: fixed;
  bottom: 24px;       /* Separación fija desde el borde inferior de la pantalla */
  right: 24px;        /* Separación fija desde el borde derecho de la pantalla */
  width: 60px;
  height: 60px;
  background-color: #25d366; /* Verde oficial de WhatsApp */
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
  z-index: 99999;     /* Un nivel exageradamente alto para que flote sobre mapas o sliders */
  transition: transform 0.2s ease, background-color 0.2s ease;
}

/* Efecto Hover interactivo */
.whatsapp-btn-float:hover {
  background-color: #20ba5a;
  transform: scale(1.08) translateY(-2px); /* Se agranda sutilmente y sube */
}

/* Reducción sutil al hacer clic con el dedo o mouse */
.whatsapp-btn-float:active {
  transform: scale(0.95);
}

/* Icono interno del botón */
.whatsapp-btn-icon {
  width: 34px;        /* Proporción limpia para dejar aire dentro del círculo verde */
  height: 34px;
}







/* Layout General del Catálogo */
.catalog-page {
  padding: 40px 0;
  background-color: #f9f9f9;
  display: flex;
  justify-content: center; /* Centra el contenido horizontalmente */
  width: 100%;
}

.catalog-layout {
  display: grid;
  grid-template-columns: 280px 1fr; /* Mantiene filtros a la izquierda y productos a la derecha */
  gap: 30px;
  width: 100%;
  max-width: 1280px;        /* Restringe el ancho máximo solicitado */
  margin: 0 auto;           /* Centra el bloque automáticamente si la pantalla es más grande */
  padding: 0 20px;          /* Colchón de seguridad para que no choque en pantallas medianas */
  box-sizing: border-box;   /* Evita que el padding sume tamaño extra al ancho */
}

/* Barra Lateral de Filtros */
.sidebar-filters {
  background-color: #ffffff;
  padding: 24px;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
  height: fit-content;
}

.filters-main-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #333;
  margin-bottom: 20px;
  border-bottom: 2px solid #eaeaea;
  padding-bottom: 10px;
}

.filter-group {
  margin-bottom: 24px;
}

.filter-title {
  font-size: 1rem;
  font-weight: 600;
  color: #444;
  margin-bottom: 12px;
}

.filter-option {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.9rem;
  color: #666;
  margin-bottom: 8px;
  cursor: pointer;
}

/* Área Superior de la Rejilla */
.products-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  background-color: #fff;
  padding: 15px 20px;
  border-radius: 8px;
}

.products-count {
  font-size: 0.95rem;
  color: #555;
}

.products-sort {
  padding: 6px 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 0.9rem;
}

/* Cuadrícula de Tarjetas de Producto */
.products-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.product-card {
  background-color: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.product-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 6px 15px rgba(0,0,0,0.1);
}

.product-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background-color: #ff4d4d;
  color: #fff;
  padding: 4px 8px;
  font-size: 0.75rem;
  font-weight: 700;
  border-radius: 4px;
}

.product-image {
  height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background-color: #fff;
}

.product-image img {
  max-height: 100%;
  max-width: 100%;
  object-fit: contain;
}

.product-info {
  padding: 16px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  border-top: 1px solid #f0f0f0;
}

.product-code {
  font-size: 0.75rem;
  color: #999;
  margin-bottom: 6px;
}

.product-name {
  font-size: 0.9rem;
  font-weight: 600;
  color: #333;
  line-height: 1.4;
  margin-bottom: 16px;
  flex-grow: 1;
}

.product-action-box {
  margin-top: auto;
}

.btn-view-product {
  display: block;
  text-align: center;
  background-color: #0056b3; /* Modifica por el azul/color corporativo de IPASSE */
  color: #ffffff;
  padding: 10px;
  border-radius: 4px;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
  transition: background-color 0.2s;
}

.btn-view-product:hover {
  background-color: #004085;
}

/* 2. Estilos para el contenedor y botón de "Mostrar más" */
.load-more-container {
  display: flex;
  justify-content: center;
  margin-top: 30px;
  width: 100%;
}

.btn-load-more {
  background-color: #ffffff;
  color: #0056b3; /* Usa tu color corporativo azul */
  border: 2px solid #0056b3;
  padding: 12px 30px;
  font-size: 1rem;
  font-weight: 600;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.btn-load-more:hover {
  background-color: #0056b3;
  color: #ffffff;
}

/* Ocultar el botón cuando ya no hay más productos que mostrar */
.btn-load-more.hidden {
  display: none;
}

/* Asegurar que en pantallas medianas o laptops baje a 2 o 3 columnas si no caben */
@media (max-width: 1200px) {
  .products-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 900px) {
  .products-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Vista Adaptable (Móviles) */
@media (max-width: 768px) {
  .catalog-layout {
    grid-template-columns: 1fr;
  }
}





/* Layout Principal del Detalle */
.product-detail-page {
  padding: 60px 0 100px 0; /* 60px de espacio arriba y 100px abajo respecto al footer */
  background-color: #ffffff;
  display: flex;
  justify-content: center;
  width: 100%;
  box-sizing: border-box;
}

.detail-container {
  display: grid;
  grid-template-columns: 420px 1fr;
  gap: 60px;
  width: 100%;
  max-width: 1280px;
  margin: 64px auto;        /* Añade 20px de margen arriba y abajo para aislamiento extra */
  padding: 0 20px;
  box-sizing: border-box;
}

/* Estilos Bloque Izquierdo */
.detail-main-image-box {
  width: 100%;
  height: 380px;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  box-sizing: border-box;
  background-color: #fff;
}

.detail-main-img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.detail-disclaimer {
  font-size: 0.8rem;
  color: #888;
  margin: 12px 0 25px 0;
}

.btn-pdf-sheet {
  display: block;
  text-align: center;
  background-color: #0056b3; /* Azul corporativo */
  color: #ffffff;
  padding: 14px;
  border-radius: 25px; /* Bordes redondeados tipo píldora como la imagen */
  font-size: 1.05rem;
  font-weight: 700;
  text-decoration: none;
  transition: background-color 0.2s;
  box-shadow: 0 4px 6px rgba(0, 86, 179, 0.15);
}

.btn-pdf-sheet:hover {
  background-color: #003d82;
}

/* Estilos Bloque Derecho (Tabla) */
.detail-section-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: #004085;
  margin-bottom: 25px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.detail-tech-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
}

.detail-tech-table th {
  background-color: #004085; /* Azul oscuro encabezado */
  color: #ffffff;
  text-align: left;
  padding: 12px 16px;
  font-weight: 700;
  font-size: 0.9rem;
  letter-spacing: 0.5px;
}

.detail-tech-table td {
  padding: 12px 16px;
  color: #333333;
  border-bottom: 1px solid #e2e8f0;
}

/* Columna de Atributos en Negrita */
.detail-tech-table tbody tr td:first-child {
  font-weight: 700;
  width: 30%;
}

/* Filas intercaladas gris y blanco */
.detail-tech-table tbody tr:nth-child(even) {
  background-color: #f8f9fa;
}

.detail-tech-table tbody tr:nth-child(odd) {
  background-color: #ffffff;
}

/* Responsive para pantallas compactas */
@media (max-width: 850px) {
  .detail-container {
    grid-template-columns: 1fr;
    gap: 40px;
  }
}


/* Protege la ocultación si el usuario viene redirigido desde otra página */
.product-card.js-search-hidden {
  display: none !important;
}


/* =========================================================================
   PÁGINA: PREGUNTAS FRECUENTES
   ========================================================================= */

.faq-page {
  width: 100%;
  background-color: #ffffff;
  padding-bottom: 90px; /* Separación amplia antes de llegar al footer */
}

/* Banner superior con fondo azul del modelo que cruza de extremo a extremo */
.faq-hero-banner {
  width: 100%;
  background-color: var(--color-azul); /* El color azul corporativo IPASSE */
  height: 120px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 60px;
}

/* Título Blanco Centrado */
.faq-main-title {
  color: #ffffff;
  font-size: 2.2rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.5px;
}

/* Distribución del contenido central restringido a 1280px */
.faq-content-layout {
  display: flex;
  flex-direction: column;
  gap: 36px; /* Separación uniforme y limpia entre cada bloque de pregunta */
  margin: 0 auto;
}

/* Cada bloque de pregunta/respuesta */
.faq-item {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* Estilo exacto para las preguntas en negrita de tu foto */
.faq-question {
  font-size: 1.02rem;
  font-weight: 700;
  color: #1a1a1a;
  line-height: 1.4;
}

/* Estilo exacto para las respuestas grisáceas y legibles de tu foto */
.faq-answer {
  font-size: 0.95rem;
  font-weight: 500;
  color: #555555; /* Color atenuado idéntico al de tu captura */
  line-height: 1.65; /* Interlineado amplio solicitado para una lectura descansada */
  text-align: justify; /* Alineación limpia en bloque */
}

/* Enlaces interactivos empotrados en las respuestas */
.faq-link {
  color: var(--color-azul);
  font-weight: 700;
  display: inline; /* Crucial para que fluya de forma natural dentro del párrafo */
  text-decoration: none;
  transition: color 0.2s ease;
}

.faq-link:hover {
  color: #002c59;
  text-decoration: underline;
}

/* Adaptación para pantallas de tabletas y celulares */
@media (max-width: 768px) {
  .faq-hero-banner {
    height: 100px;
    margin-bottom: 40px;
  }
  .faq-main-title {
    font-size: 1.7rem;
  }
  .faq-content-layout {
    gap: 28px;
  }
  .faq-answer {
    font-size: 0.9rem;
    text-align: left; /* En celulares es más legible alineado a la izquierda */
  }
}


/* =========================================================================
   PÁGINA: SOBRE NOSOTROS (ANCHO FIJO DE 600PX POR COLUMNA)
   ========================================================================= */

.about-page {
  width: 100%;
  background-color: #ffffff;
  padding-bottom: 100px;
}

/* Banner superior azul de extremo a extremo */
.about-hero-banner {
  width: 100%;
  background-color: #004A8F;
  height: 120px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 60px;
}

.about-main-title {
  color: #ffffff;
  font-size: 2.2rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.5px;
}

/* Contenedor maestro restringido a los 1280px corporativos */
.about-layout {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 100px;
}

/* Estructura común por nivel: Activamos Flexbox con Space-Between */
.about-level {
  display: flex;
  align-items: center;
  justify-content: space-between; /* CORRECCIÓN CRÍTICA: Empuja los bloques a los extremos creando la franja vacía al centro */
  width: 100%;
}

/* Invierte la orientación de las columnas automáticamente en el Nivel 2 */
.about-level:nth-child(even) {
  flex-direction: row-reverse;
}

/* REQUERIMIENTO: Columna de Texto con ancho fijo estricto de 600px */
.about-text-column {
  width: 600px;  
  display: flex;
  flex-direction: column;
  gap: 24px;
  flex-shrink: 0; /* Prohíbe que el navegador deforme o achique los 600px */
}

.about-title {
  font-size: 1.75rem;
  font-weight: 700;
  color: #1a1a1a;
  line-height: 1.3;
}

.about-paragraphs {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.about-paragraphs p {
  font-size: 0.95rem;
  font-weight: 500;
  color: #4a5568;
  line-height: 1.6;
  text-align: justify;
}

/* REQUERIMIENTO: Columna de Imagen con ancho fijo estricto de 600px */
.about-image-column {
  width: 600px;
  flex-shrink: 0; /* Prohíbe que el navegador deforme o achique los 600px */
}

/* Marco contenedor de la fotografía */
.about-img-frame {
  width: 100%;
  height: 400px; /* Mantiene la altura proporcional del modelo */
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}

.about-img-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* =========================================================================
   VISTA RESPONSIVA ADAPTABLE PARA PANTALLAS PEQUEÑAS
   ========================================================================= */
@media (max-width: 1240px) {
  /* Cuando la pantalla mide menos de 1240px, los dos bloques de 600px ya no caben de lado a lado. 
     Por seguridad, liberamos los anchos fijos y dejamos un espacio intermedio de 40px */
  .about-text-column,
  .about-image-column {
    width: 48%; 
    min-width: auto;
  }
  .about-level {
    gap: 40px;
  }
}

@media (max-width: 950px) {
  .about-hero-banner {
    height: 100px;
    margin-bottom: 40px;
  }
  .about-main-title {
    font-size: 1.7rem;
  }
  .about-layout {
    gap: 60px;
  }
  /* En tablets y celulares, se rompe el flujo lateral y pasa a una sola fila vertical cómoda */
  .about-level, 
  .about-level:nth-child(even) {
    flex-direction: column; 
    gap: 30px;
  }
  .about-text-column, 
  .about-image-column {
    width: 100%; /* Toma todo el ancho del celular */
    max-width: 600px; /* Pero no permite que se estire feo más allá de su tamaño original */
  }
  .about-img-frame {
    height: 300px;
  }
  .about-title {
    font-size: 1.5rem;
  }
}


/* =========================================================================
   PÁGINA: CONTÁCTANOS - PARTE 1 (BANNER, HORARIOS Y FORMULARIO)
   ========================================================================= */

.contact-page {
  width: 100%;
  background-color: #ffffff;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Banner superior con fondo azul corporativo que cruza al 100% */
.contact-hero-banner {
  width: 100%;
  background-color: #004A8F; /* Azul oficial de IPASSE */
  height: 120px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 60px; /* Separación limpia antes de abrir el contenedor de 1280px */
}

/* Título Blanco Centrado en el Banner */
.contact-main-title {
  color: #ffffff;
  font-size: 2.2rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.5px;
}

/* Títulos principales negros de cada sección */
.contact-section-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: #1a1a1a;
  margin-bottom: 24px;
}

/* ------------------------------------------------=========================
   REJILLA SUPERIOR: HORARIOS (IZQUIERDA) Y FORMULARIO (DERECHA)
   ------------------------------------------------------------------------- */
.contact-top-layout {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto 60px auto;
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  gap: 80px; /* Espaciado elástico intermedio */
  box-sizing: border-box;
}

/* Bloque del Horario de Atención (40% de ancho) */
.contact-info-block {
  width: 40%;
}

.contact-schedule-box {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-top: 10px;
}

.contact-schedule-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  margin-top: 3px;
}

.contact-schedule-text p {
  font-size: 0.95rem;
  font-weight: 500;
  color: #555555;
  line-height: 1.6;
}

/* Bloque del Formulario de Contacto (60% de ancho restringido) */
.contact-form-block {
  width: 60%;
  max-width: 550px;
}

.contact-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* Entradas de texto con los bordes redondeados y azul corporativo */
.contact-input,
.contact-textarea {
  width: 100%;
  border: 1px solid #004A8F; 
  border-radius: 8px;
  padding: 12px 16px;
  font-size: 0.92rem;
  color: #333333;
  box-sizing: border-box;
  outline: none;
  background-color: #ffffff;
  font-family: inherit;
}

.contact-textarea {
  height: 140px; /* Altura cómoda solicitada en tu captura */
  resize: none;   /* Bloquea deformaciones del recuadro */
}

.contact-input::placeholder,
.contact-textarea::placeholder {
  color: #999999;
}

/* Botón de envío azul plano (Acoplado de forma directa sin términos) */
.btn-submit-contact {
  align-self: flex-start; /* Alineación estricta a la izquierda como en tu imagen */
  background-color: #004A8F;
  color: #ffffff;
  padding: 12px 32px;
  font-size: 0.95rem;
  font-weight: 700;
  border: none;
  border-radius: 24px;   /* Formato plano redondeado tipo píldora */
  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.1s ease;
  margin-top: 12px;      /* Respiro visual limpio con la caja superior */
}

.btn-submit-contact:hover {
  background-color: #002d59;
}

.btn-submit-contact:active {
  transform: scale(0.98);
}

/* =========================================================================
   PÁGINA: CONTÁCTANOS - PARTE 2 (UBÍCANOS, MAPA GRANDE Y RESPONSIVO)
   ========================================================================= */

/* Sección Inferior del Mapa con fondo celeste muy pálido sutil */
.contact-map-section {
  width: 100%;
  background-color: #f0f7ff; 
  padding: 80px 0; /* Más aire superior e inferior para lucir el mapa ampliado */
  display: flex;
  justify-content: center;
}

/* El contenedor elástico que alinea los dos bloques lado a lado de extremo a extremo */
.contact-bottom-layout {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  gap: 60px; /* Franja vacía simétrica de separación en el medio */
  align-items: stretch; /* Fuerza a que ambas columnas se estiren juntas verticalmente */
  box-sizing: border-box;
}

/* Columna de Direcciones Izquierda (40% de ancho del total) */
.contact-addresses-block {
  width: 40%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start; /* Alinea los textos al tope inicial */
}

/* Bloques individuales de cada tienda de la Av. Argentina */
.address-item {
  margin-bottom: 24px; /* Separación simétrica vertical entre tus locales */
}

.address-item:last-child {
  margin-bottom: 0; /* Elimina el margen residual en la última dirección */
}

.address-item h3 {
  font-size: 1.05rem;
  font-weight: 700;
  color: #1a1a1a;
  margin-bottom: 6px;
}

.address-item p {
  font-size: 0.88rem;
  color: #555555;
  line-height: 1.4;
}

/* Caja Contenedora Rígida del Mapa a la derecha (60% de ancho y Mayor Tamaño) */
.contact-map-frame {
  width: 60%;
  height: 450px; /* Tamaño grande y premium fiel a tus requerimientos visuales */
  border-radius: 12px; /* Esquinas redondeadas suaves corporativas */
  overflow: hidden; /* Recorta y oculta los desbordes nativos del iframe */
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08); /* Sombra difuminada muy leve */
  position: relative; /* Base firme para el camuflaje interno del banner de Google */
  background-color: #eaeaea;
}

/* El mapa real de My Maps estirado y camuflado de la barra gris */
.contact-map-frame iframe {
  position: absolute;
  top: -46px; /* Sube el mapa 46px hacia arriba para esconder la barra de título de Google */
  left: 0;
  width: 100%;
  height: calc(100% + 46px); /* Compensa matemáticamente el tamaño recortado del tope */
  border: 0;
}

/* =========================================================================
   VISTA RESPONSIVA ADAPTABLE (MÓVILES Y TABLETS)
   ========================================================================= */
@media (max-width: 900px) {
  .contact-top-layout,
  .contact-bottom-layout {
    flex-direction: column; /* Pasa suavemente de columnas a bloques verticales en pantallas chicas */
    gap: 40px;
    align-items: center;
  }
  
  .contact-info-block,
  .contact-form-block,
  .contact-addresses-block,
  .contact-map-frame {
    width: 100%; /* Toman todo el ancho disponible del celular */
    max-width: 100%;
  }
  
  .contact-map-frame {
    height: 320px; /* Reducción de tamaño del mapa en móviles para comodidad táctil */
  }
  
  .btn-submit-contact {
    width: 100%; /* Botón ancho completo en móviles para fácil pulsación con el dedo */
    text-align: center;
  }
  
  .contact-hero-banner {
    height: 100px;
    margin-bottom: 40px;
  }
  
  .contact-main-title {
    font-size: 1.7rem;
  }
}





/* =========================================================================
   CATÁLOGO: COMPACTACIÓN DE FILTROS EN MÓVILES (< 800PX)
   ========================================================================= */

/* Comportamiento base en computadoras (No hace nada especial) */
.sidebar-toggle-header {
  cursor: default;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.sidebar-arrow-indicator {
  display: none; /* Oculto en pantallas grandes */
}

/* -------------------------------------------------------------------------
   TRANSFORMACIÓN EN ACORDEÓN DESGLOSABLE MÓVIL
   ------------------------------------------------------------------------- */
@media (max-width: 768px) {
  
  .sidebar-filters {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    overflow: hidden;
    background-color: #ffffff;
    margin-bottom: 24px; /* Separación respecto a la grilla de productos */
    padding: 0 !important; /* Limpiamos paddings viejos para el diseño tipo cassette */
  }

  /* Barra Cliqueable Superior */
  .sidebar-toggle-header {
    padding: 16px 20px;
    background-color: #f8fafc; /* Fondo gris claro suave */
    cursor: pointer;
    user-select: none;
    transition: background-color 0.2s;
  }

  .sidebar-toggle-header:hover {
    background-color: #f1f5f9;
  }

  .sidebar-toggle-header .filters-main-title {
    margin-bottom: 0 !important; /* Quitamos el margen inferior original en móviles */
    font-size: 1.15rem;
  }

  /* Flecha interactiva a la derecha */
  .sidebar-arrow-indicator {
    display: inline-block;
    font-size: 0.85rem;
    color: #004A8F;
    font-weight: 700;
    transition: transform 0.25s ease;
  }

  /* CONTENEDOR DE CASILLAS: Oculto por defecto en celulares */
  .sidebar-filters-content {
    display: none; /* Se activará mediante JavaScript */
    padding: 20px;
    border-top: 1px solid #e2e8f0;
    flex-direction: column;
    gap: 20px;
  }

  /* CLASES DE ESTADO ACTIVO (Inyectadas por JavaScript al pulsar) */
  .sidebar-filters.is-expanded .sidebar-filters-content {
    display: flex; /* Revela todas las casillas e interacciones en cascada */
  }

  .sidebar-filters.is-expanded .sidebar-arrow-indicator {
    transform: rotate(90deg); /* La flecha rota apuntando hacia abajo al abrirse */
  }
}