/* ==========================================================================
   GIECSA - Animaciones y Diseño Moderno Premium
   Estilo visual avanzado con Vanilla CSS & Micro-interacciones
   ========================================================================== */

:root {
  --anim-spring: cubic-bezier(0.16, 1, 0.3, 1);
  --anim-smooth: cubic-bezier(0.4, 0, 0.2, 1);
  --anim-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
  
  --giecsa-navy-900: #041233;
  --giecsa-navy-800: #061b49;
  --giecsa-navy-700: #16314e;
  --giecsa-teal-600: #087c8e;
  --giecsa-teal-500: #0da5bd;
  --giecsa-cyan-400: #22d3ee;
  --giecsa-cyan-glow: rgba(13, 165, 189, 0.35);
  
  --card-glass-bg: rgba(255, 255, 255, 0.88);
  --card-glass-border: rgba(220, 229, 236, 0.85);
  --card-hover-border: rgba(13, 165, 189, 0.45);
  --card-hover-shadow: 0 20px 40px -12px rgba(6, 27, 73, 0.16), 0 0 0 1px rgba(13, 165, 189, 0.25);
}

/* Suavizado general y tipografía uniforme */
html {
  scroll-behavior: smooth;
}

body,
input,
select,
textarea,
button,
h1,
h2,
h3,
h4,
p,
span,
a,
label,
table,
th,
td {
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
}

/* Barra de desplazamiento suave */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
::-webkit-scrollbar-track {
  background: #f0f4f8;
}
::-webkit-scrollbar-thumb {
  background: #b5c7d5;
  border-radius: 999px;
}
::-webkit-scrollbar-thumb:hover {
  background: var(--giecsa-teal-600);
}

/* Cabecera pegajosa con efecto Glassmorphism */
header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 255, 255, 0.92) !important;
  backdrop-filter: blur(12px) !important;
  border-bottom: 1px solid rgba(220, 230, 238, 0.8) !important;
  box-shadow: 0 4px 20px rgba(6, 27, 73, 0.05);
  transition: all 0.3s ease;
}

.nav a {
  position: relative;
  font-weight: 500;
  color: var(--giecsa-navy-700) !important;
  transition: color 0.25s ease;
}

.nav a::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 2.5px;
  background: var(--giecsa-teal-600);
  border-radius: 2px;
  transition: width 0.3s var(--anim-spring);
}

.nav a:hover::after,
.nav a[aria-current]::after {
  width: 100%;
}

.nav [aria-current] {
  color: var(--giecsa-teal-600) !important;
  font-weight: 700;
  border-bottom: none !important;
}

/* --------------------------------------------------------------------------
   1. CABECERA Y SECCIÓN INTRODUCCIÓN (HERO REFINADO)
   -------------------------------------------------------------------------- */
.intro {
  position: relative;
  overflow: hidden;
  background: radial-gradient(circle at 90% 15%, rgba(13, 165, 189, 0.14) 0%, transparent 60%),
              linear-gradient(135deg, #ffffff 0%, #f4f8fb 100%) !important;
  border: 1px solid rgba(220, 230, 238, 0.8) !important;
  border-left: 6px solid var(--giecsa-teal-600) !important;
  border-radius: 18px !important;
  box-shadow: 0 10px 30px -10px rgba(6, 27, 73, 0.06) !important;
  transition: all 0.4s var(--anim-spring);
}

.intro:hover {
  box-shadow: 0 16px 40px -10px rgba(6, 27, 73, 0.1) !important;
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(8, 124, 142, 0.08);
  color: var(--giecsa-teal-600) !important;
  padding: 5px 14px;
  border-radius: 999px;
  font-weight: 700;
  letter-spacing: 1.5px;
  border: 1px solid rgba(8, 124, 142, 0.2);
}

.eyebrow::before {
  content: '';
  width: 7px;
  height: 7px;
  background: var(--giecsa-teal-600);
  border-radius: 50%;
  box-shadow: 0 0 8px var(--giecsa-teal-500);
  animation: pulse-dot 2s infinite ease-in-out;
}

@keyframes pulse-dot {
  0%, 100% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.4); opacity: 1; box-shadow: 0 0 12px var(--giecsa-cyan-400); }
}

.intro h1 {
  background: linear-gradient(135deg, var(--giecsa-navy-900) 0%, var(--giecsa-navy-700) 65%, var(--giecsa-teal-600) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 800;
  letter-spacing: -0.5px;
}

/* --------------------------------------------------------------------------
   2. BALDOSAS DE CATEGORÍA (AREA TILES)
   -------------------------------------------------------------------------- */
.category-overview {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin: 32px 0 16px;
}

.area-tile {
  position: relative;
  background: var(--card-glass-bg) !important;
  backdrop-filter: blur(8px);
  border: 1px solid var(--card-glass-border) !important;
  border-radius: 16px !important;
  padding: 16px !important;
  cursor: pointer;
  transition: all 0.35s var(--anim-spring) !important;
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  overflow: hidden;
}

.area-tile::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.4) 0%, transparent 60%);
  opacity: 0;
  transition: opacity 0.3s ease;
  pointer-events: none;
}

.area-tile:hover {
  transform: translateY(-5px) scale(1.02) !important;
  border-color: var(--card-hover-border) !important;
  box-shadow: var(--card-hover-shadow) !important;
}

.area-tile:hover::after {
  opacity: 1;
}

.area-tile img {
  width: 50px;
  height: 50px;
  object-fit: contain;
  transition: transform 0.4s var(--anim-spring);
  filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.06));
}

.area-tile:hover img {
  transform: scale(1.15) rotate(3deg);
}

.area-tile[aria-pressed=true] {
  background: linear-gradient(135deg, #e8f5f7 0%, #f4fbfb 100%) !important;
  border-color: var(--giecsa-teal-600) !important;
  box-shadow: 0 0 0 3px rgba(8, 124, 142, 0.2), 0 8px 24px rgba(8, 124, 142, 0.12) !important;
}

/* --------------------------------------------------------------------------
   3. BARRA DE HERRAMIENTAS, FILTROS Y BÚSQUEDA
   -------------------------------------------------------------------------- */
.tools {
  background: rgba(255, 255, 255, 0.85) !important;
  backdrop-filter: blur(12px) !important;
  border: 1px solid rgba(220, 230, 238, 0.9) !important;
  border-radius: 18px !important;
  box-shadow: 0 10px 30px -8px rgba(6, 27, 73, 0.05) !important;
  padding: 28px !important;
  margin: 36px 0 !important;
  transition: box-shadow 0.3s ease;
}

.tools:focus-within {
  box-shadow: 0 14px 40px -8px rgba(8, 124, 142, 0.12) !important;
}

.tools input[type=search],
.tools select {
  transition: all 0.25s var(--anim-smooth) !important;
  background: #ffffff !important;
  border: 1.5px solid #c9d7e3 !important;
  border-radius: 10px !important;
}

.tools input[type=search]:focus,
.tools select:focus {
  border-color: var(--giecsa-teal-600) !important;
  box-shadow: 0 0 0 4px rgba(8, 124, 142, 0.15) !important;
  outline: none !important;
}

.filters {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.filters button {
  position: relative;
  background: #f0f4f7 !important;
  color: var(--giecsa-navy-700) !important;
  border: 1px solid transparent !important;
  border-radius: 999px !important;
  padding: 10px 18px !important;
  font-weight: 500 !important;
  transition: all 0.3s var(--anim-spring) !important;
  overflow: hidden;
}

.filters button:hover {
  background: #e3ecf1 !important;
  transform: translateY(-2px);
}

.filters button.active {
  background: linear-gradient(135deg, var(--giecsa-navy-800) 0%, var(--giecsa-teal-600) 100%) !important;
  color: #ffffff !important;
  box-shadow: 0 6px 16px -3px rgba(8, 124, 142, 0.4) !important;
  border-color: transparent !important;
  font-weight: 700 !important;
  transform: translateY(-2px) scale(1.02);
}

/* --------------------------------------------------------------------------
   4. TARJETAS DE PRODUCTOS (CARDS CON ANIMACIÓN FLUIDA)
   -------------------------------------------------------------------------- */
.grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(310px, 1fr)) !important;
  gap: 26px !important;
}

.product {
  position: relative;
  background: #ffffff !important;
  border: 1px solid var(--card-glass-border) !important;
  border-radius: 18px !important;
  box-shadow: 0 6px 18px -4px rgba(6, 27, 73, 0.06) !important;
  transition: transform 0.4s var(--anim-spring),
              box-shadow 0.4s var(--anim-spring),
              border-color 0.4s var(--anim-spring) !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  will-change: transform, box-shadow;
}

/* Animación de entrada inicial / stagger */
.product.reveal-card {
  animation: cardGlideIn 0.55s var(--anim-spring) both;
}

@keyframes cardGlideIn {
  from {
    opacity: 0;
    transform: translateY(22px) scale(0.97);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.product:hover {
  transform: translateY(-8px) scale(1.015) !important;
  box-shadow: var(--card-hover-shadow) !important;
  border-color: var(--card-hover-border) !important;
  z-index: 2;
}

/* Línea de brillo que recorre la tarjeta al hacer hover */
.product::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 60%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.5), transparent);
  transform: skewX(-25deg);
  transition: none;
  pointer-events: none;
  z-index: 5;
}

.product:hover::before {
  left: 150%;
  transition: left 0.8s ease-in-out;
}

.product-image {
  position: relative;
  background: radial-gradient(circle, #f9fbfd 0%, #edf2f6 100%) !important;
  height: 220px !important;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  border-bottom: 1px solid #eef3f7;
}

.product-image img {
  width: 100%;
  height: 100%;
  object-fit: contain !important;
  padding: 16px;
  transition: transform 0.5s var(--anim-spring) !important;
}

.product:hover .product-image img {
  transform: scale(1.08) translateY(-4px) !important;
}

.product-image span {
  position: absolute;
  bottom: 10px;
  left: 12px;
  background: rgba(255, 255, 255, 0.9) !important;
  backdrop-filter: blur(6px);
  border: 1px solid rgba(0, 0, 0, 0.05);
  padding: 4px 10px !important;
  border-radius: 999px !important;
  font-size: 10px !important;
  font-weight: 600;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
}

.product-content {
  padding: 22px !important;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.tag {
  display: inline-block;
  font-size: 10.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.8px !important;
  color: var(--giecsa-teal-600) !important;
  background: rgba(8, 124, 142, 0.08);
  padding: 3px 10px;
  border-radius: 6px;
  width: fit-content;
  margin-bottom: 8px;
}

.product-content h3 {
  font-size: 17px !important;
  font-weight: 700;
  color: var(--giecsa-navy-800);
  margin: 6px 0 10px !important;
  line-height: 1.4 !important;
  transition: color 0.2s ease;
}

.product:hover .product-content h3 {
  color: var(--giecsa-teal-600);
}

.product-content p {
  color: #56687a !important;
  font-size: 13px !important;
  line-height: 1.65 !important;
  margin-bottom: 20px !important;
}

/* --------------------------------------------------------------------------
   5. BOTONES Y ACCIONES INTERACTIVAS
   -------------------------------------------------------------------------- */
.product-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: auto;
}

.details-product,
.add-product {
  position: relative;
  overflow: hidden;
  border: none !important;
  border-radius: 10px !important;
  padding: 12px 14px !important;
  font-size: 12.5px !important;
  font-weight: 700 !important;
  cursor: pointer;
  transition: all 0.3s var(--anim-spring) !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.details-product {
  background: #1e356c !important;
  color: #ffffff !important;
  box-shadow: 0 4px 14px rgba(30, 53, 108, 0.2);
}

.details-product:hover {
  background: #2a4c9f !important;
  box-shadow: 0 6px 18px rgba(42, 76, 159, 0.35) !important;
  transform: translateY(-2px);
}

.details-product:active,
.add-product:active {
  transform: scale(0.97) !important;
}

.add-product {
  background: #eef6f8 !important;
  color: var(--giecsa-teal-600) !important;
  border: 1px solid rgba(8, 124, 142, 0.25) !important;
}

.add-product:hover {
  background: var(--giecsa-teal-600) !important;
  color: #ffffff !important;
  border-color: transparent !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(8, 124, 142, 0.25);
}

/* --------------------------------------------------------------------------
   6. DIÁLOGOS / MODALES CON ENTRADA CINEMÁTICA Y BLUR
   -------------------------------------------------------------------------- */
dialog {
  border: none !important;
  border-radius: 22px !important;
  padding: 0 !important;
  background: #ffffff !important;
  box-shadow: 0 25px 80px -15px rgba(4, 18, 51, 0.35) !important;
  max-width: min(860px, 94vw) !important;
  overflow: hidden !important;
  transition: transform 0.4s var(--anim-spring), opacity 0.3s ease;
}

dialog::backdrop {
  background: rgba(6, 27, 73, 0.55) !important;
  backdrop-filter: blur(8px) !important;
  animation: backdropFade 0.3s ease both;
}

@keyframes backdropFade {
  from { opacity: 0; }
  to { opacity: 1; }
}

dialog[open] {
  animation: dialogScaleIn 0.4s var(--anim-spring) both;
}

@keyframes dialogScaleIn {
  from {
    opacity: 0;
    transform: scale(0.93) translateY(20px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

.dialog-top {
  background: linear-gradient(135deg, #f7fafc 0%, #edf3f7 100%) !important;
  padding: 20px 28px !important;
  border-bottom: 1px solid #e1e9f0;
}

.detail-layout {
  padding: 28px !important;
}

/* --------------------------------------------------------------------------
   7. BARRA FLOTANTE DE COTIZACIÓN
   -------------------------------------------------------------------------- */
.quote-bar {
  background: rgba(30, 53, 108, 0.94) !important;
  backdrop-filter: blur(14px) !important;
  border: 1px solid rgba(255, 255, 255, 0.22) !important;
  box-shadow: 0 15px 40px -10px rgba(30, 53, 108, 0.3) !important;
  border-radius: 999px !important;
  padding: 10px 24px !important;
  transition: all 0.35s var(--anim-spring) !important;
}

.quote-bar:hover {
  transform: translateX(-50%) translateY(-3px) scale(1.02);
  box-shadow: 0 20px 45px -8px rgba(8, 124, 142, 0.4) !important;
}

#quote-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--giecsa-cyan-400) !important;
  color: #1e356c !important;
  font-weight: 800;
  border-radius: 50%;
  width: 22px;
  height: 22px;
  font-size: 11px;
  margin-left: 6px;
  transition: transform 0.3s var(--anim-bounce);
}

.badge-pop {
  animation: popBadge 0.45s var(--anim-bounce) both;
}

@keyframes popBadge {
  0% { transform: scale(1); }
  50% { transform: scale(1.6); }
  100% { transform: scale(1); }
}

/* --------------------------------------------------------------------------
   8. TOAST NOTIFICACIÓN FLOTANTE ELEGANTE
   -------------------------------------------------------------------------- */
.giecsa-toast {
  position: fixed;
  bottom: 95px;
  left: 50%;
  transform: translateX(-50%) translateY(20px);
  background: linear-gradient(135deg, #1e356c 0%, #087c8d 100%) !important;
  color: #ffffff;
  padding: 12px 22px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  box-shadow: 0 10px 30px rgba(30, 53, 108, 0.25);
  display: flex;
  align-items: center;
  gap: 10px;
  z-index: 9999;
  opacity: 0;
  pointer-events: none;
  transition: all 0.35s var(--anim-spring);
}

.giecsa-toast.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* Efecto Ripple al hacer clic */
.ripple-effect {
  position: absolute;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.45);
  transform: scale(0);
  animation: rippleAnimation 0.6s linear;
  pointer-events: none;
}

@keyframes rippleAnimation {
  to {
    transform: scale(4);
    opacity: 0;
  }
}

/* ==========================================================================
   9. AMPLIACIÓN WIDESCREEN Y TIPOGRAFÍA GENEROSA (EXPERIENCIA INMERSIVA)
   Eliminación de márgenes estrechos tipo anuncio y escalado general de textos
   ========================================================================== */

header .nav {
  max-width: 1720px !important;
  width: 95% !important;
  margin: 0 auto !important;
  padding: 20px 24px !important;
}

main {
  max-width: 1720px !important;
  width: 95% !important;
  margin: 0 auto !important;
  padding: 30px 20px 90px !important;
}

.intro {
  width: 100% !important;
  max-width: 100% !important;
  padding: 42px 48px !important;
  border-radius: 20px !important;
}

.intro h1 {
  font-size: 46px !important;
  line-height: 1.2 !important;
  letter-spacing: -0.5px !important;
  margin: 10px 0 16px !important;
  color: var(--giecsa-navy-900) !important;
}

.intro > p {
  max-width: 1300px !important;
  font-size: 18px !important;
  line-height: 1.8 !important;
  color: #3e5264 !important;
}

.intro .hint {
  font-size: 15.5px !important;
  color: #556c7c !important;
  margin-top: 10px !important;
}

.intro .back {
  font-size: 14.5px !important;
  font-weight: 500 !important;
}

.eyebrow {
  font-size: 13.5px !important;
  padding: 6px 16px !important;
}

/* Área de información y datos */
.catalog-expansion {
  font-size: 14.5px !important;
  padding: 16px 24px !important;
  border-radius: 12px !important;
  margin: 24px 0 !important;
  background: #ffffff !important;
}
.catalog-expansion strong {
  font-size: 15px !important;
}
.catalog-expansion p, .catalog-expansion a {
  font-size: 14px !important;
}

/* Baldosas de Categoría Superiores (4 columnas amplias) */
.category-overview {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 24px !important;
  margin-top: 32px !important;
  width: 100% !important;
}

.area-tile {
  position: relative !important;
  overflow: hidden !important;
  border-radius: 18px !important;
  min-height: 240px !important;
  border: 1px solid rgba(220, 230, 238, 0.9) !important;
  transition: all 0.4s var(--anim-spring), box-shadow 0.4s ease, border-color 0.3s ease !important;
}

.area-tile:hover {
  transform: translateY(-7px) scale(1.02) !important;
  box-shadow: 0 20px 45px -10px rgba(6, 27, 73, 0.16), 0 0 0 1.5px rgba(13, 165, 189, 0.5), 0 0 25px rgba(13, 165, 189, 0.2) !important;
  border-color: var(--giecsa-teal-500) !important;
}

.area-tile img {
  height: 165px !important;
  object-fit: cover !important;
  transition: transform 0.6s var(--anim-spring), filter 0.4s ease !important;
}

.area-tile:hover img {
  transform: scale(1.08) !important;
}

.area-tile > span {
  padding: 20px 22px !important;
}

.area-tile strong {
  font-size: 18.5px !important;
  color: var(--giecsa-navy-900) !important;
}

.area-tile small {
  font-size: 13.5px !important;
  line-height: 1.6 !important;
  color: #586e80 !important;
  margin-top: 6px !important;
}

.area-note {
  font-size: 13px !important;
  margin: 12px 0 32px !important;
  color: #637788 !important;
}

/* Layout del Catálogo (Sidebar + Grilla Ampliada) */
.catalog-layout {
  display: grid !important;
  grid-template-columns: 300px minmax(0, 1fr) !important;
  gap: 36px !important;
  align-items: start !important;
  width: 100% !important;
  margin-top: 32px !important;
}

.tools {
  padding: 28px !important;
  border-radius: 18px !important;
  background: #ffffff !important;
  border: 1px solid rgba(220, 230, 238, 0.9) !important;
  box-shadow: 0 8px 25px -8px rgba(6, 27, 73, 0.05) !important;
  position: sticky !important;
  top: 90px !important;
}

.tools h2 {
  font-size: 21px !important;
  margin-bottom: 22px !important;
  color: var(--giecsa-navy-900) !important;
}

.tools label {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #274059 !important;
  margin-top: 22px !important;
}

.tools input,
.tools select {
  font-size: 14.5px !important;
  padding: 13px 16px !important;
  border-radius: 10px !important;
  border: 1px solid #c2d3e0 !important;
  transition: all 0.25s ease !important;
}

.tools input:focus,
.tools select:focus {
  border-color: var(--giecsa-teal-500) !important;
  box-shadow: 0 0 0 4px var(--giecsa-cyan-glow) !important;
  outline: none !important;
}

.filters {
  gap: 8px !important;
  margin-top: 18px !important;
}

.filters button {
  font-size: 14px !important;
  padding: 13px 18px !important;
  border-radius: 10px !important;
  font-weight: 500 !important;
}

.optional-tools summary {
  font-size: 13px !important;
}

.optional-tools p, .optional-tools label {
  font-size: 13px !important;
}

#estado {
  font-size: 13.5px !important;
  margin-top: 16px !important;
}

/* Cabecera de Resultados y Categorías */
.results-heading h2 {
  font-size: 29px !important;
  color: var(--giecsa-navy-900) !important;
}

.results-heading p {
  font-size: 15.5px !important;
  color: #586e80 !important;
  margin: 8px 0 !important;
}

.category {
  margin-top: 42px !important;
}

.category h2 {
  font-size: 25px !important;
  position: relative !important;
  padding-left: 20px !important;
}

.category h2::before {
  content: '' !important;
  position: absolute !important;
  left: 0 !important;
  top: 4px !important;
  width: 6px !important;
  height: 26px !important;
  background: var(--giecsa-teal-500) !important;
  border-radius: 4px !important;
}

.category-desc {
  font-size: 15px !important;
  color: #556c7d !important;
  margin-bottom: 22px !important;
}

/* Grilla de Productos Ampliada a todo el ancho (3 a 4 columnas fluidas) */
.grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)) !important;
  gap: 26px !important;
  width: 100% !important;
}

/* Tarjetas de Producto con Iluminación en Movimiento */
.product {
  position: relative !important;
  border-radius: 18px !important;
  border: 1px solid rgba(215, 227, 238, 0.9) !important;
  background: #ffffff !important;
  overflow: hidden !important;
  box-shadow: 0 6px 20px -6px rgba(6, 27, 73, 0.05) !important;
  transition: all 0.4s var(--anim-spring), box-shadow 0.4s ease, border-color 0.3s ease !important;
}

/* Foco de luz interactivo que sigue el cursor */
.product::before,
.area-tile::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  border-radius: inherit !important;
  background: radial-gradient(500px circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(13, 165, 189, 0.16), transparent 65%) !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity 0.35s ease !important;
  z-index: 2 !important;
}

.product:hover::before,
.area-tile:hover::before {
  opacity: 1 !important;
}

.product:hover {
  transform: translateY(-8px) scale(1.015) !important;
  box-shadow: 0 24px 55px -12px rgba(6, 27, 73, 0.16), 0 0 0 1.5px rgba(13, 165, 189, 0.55), 0 0 35px rgba(13, 165, 189, 0.22) !important;
  border-color: rgba(13, 165, 189, 0.6) !important;
}

/* Visualización de Imágenes: Halo de luz de fondo y reflejo en movimiento */
.product-image {
  position: relative !important;
  height: 235px !important;
  background: radial-gradient(circle at 50% 50%, rgba(13, 165, 189, 0.09) 0%, #f4f7fa 72%) !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-bottom: 1px solid rgba(220, 230, 238, 0.7) !important;
}

/* Haz de luz reflectante (Specular beam sweep) al hacer hover */
.product-image::after,
.area-tile::after {
  content: '' !important;
  position: absolute !important;
  top: 0 !important;
  left: -150% !important;
  width: 75% !important;
  height: 100% !important;
  background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.5) 45%, rgba(13, 165, 189, 0.25) 70%, transparent 100%) !important;
  transform: skewX(-25deg) !important;
  transition: left 0.85s cubic-bezier(0.16, 1, 0.3, 1) !important;
  pointer-events: none !important;
  z-index: 3 !important;
}

.product:hover .product-image::after,
.area-tile:hover::after {
  left: 200% !important;
}

/* Imagen con levitación 3D suave y sombra de profundidad */
.product-image img {
  width: 86% !important;
  height: 86% !important;
  object-fit: contain !important;
  transition: transform 0.55s var(--anim-spring), filter 0.45s ease !important;
  filter: drop-shadow(0 6px 14px rgba(6, 27, 73, 0.08)) !important;
}

.product:hover .product-image img {
  transform: scale(1.09) translateY(-6px) !important;
  filter: drop-shadow(0 18px 28px rgba(6, 27, 73, 0.18)) !important;
}

/* Badge de referencia con efecto glassmorphism flotante */
.product-image span {
  position: absolute !important;
  bottom: 12px !important;
  left: 14px !important;
  backdrop-filter: blur(10px) !important;
  background: rgba(255, 255, 255, 0.88) !important;
  border: 1px solid rgba(255, 255, 255, 0.7) !important;
  color: #16314e !important;
  box-shadow: 0 4px 14px rgba(6, 27, 73, 0.08) !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  padding: 5px 12px !important;
  border-radius: 999px !important;
  transition: all 0.35s var(--anim-spring) !important;
  z-index: 4 !important;
}

.product:hover .product-image span {
  background: rgba(255, 255, 255, 0.98) !important;
  color: var(--giecsa-teal-600) !important;
  transform: translateY(-3px) scale(1.04) !important;
  box-shadow: 0 6px 18px rgba(13, 165, 189, 0.25) !important;
}

.product-content {
  padding: 24px !important;
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  position: relative !important;
  z-index: 3 !important;
}

.product .tag {
  font-size: 12.5px !important;
  letter-spacing: 0.8px !important;
  font-weight: 700 !important;
  color: var(--giecsa-teal-600) !important;
}

.origin-badge {
  font-size: 11.5px !important;
  padding: 4px 10px !important;
  border-radius: 6px !important;
  font-weight: 600 !important;
}

.product-content h3 {
  font-size: 19px !important;
  line-height: 1.4 !important;
  margin: 12px 0 10px !important;
  color: var(--giecsa-navy-900) !important;
  transition: color 0.25s ease !important;
}

.product:hover .product-content h3 {
  color: var(--giecsa-teal-600) !important;
}

.product-content > p {
  font-size: 14.5px !important;
  line-height: 1.7 !important;
  color: #516577 !important;
  margin-bottom: 18px !important;
}

.product-family {
  font-size: 12.5px !important;
  color: #6a7f91 !important;
}

.product-actions {
  gap: 10px !important;
  margin-top: auto !important;
}

.product-actions button {
  position: relative !important;
  overflow: hidden !important;
  min-height: 46px !important;
  font-size: 13.5px !important;
  font-weight: 600 !important;
  border-radius: 10px !important;
}

/* Efecto de brillo reflejado al pasar el cursor sobre botones */
.product-actions button::after {
  content: '' !important;
  position: absolute !important;
  top: 0 !important;
  left: -130% !important;
  width: 60% !important;
  height: 100% !important;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent) !important;
  transform: skewX(-20deg) !important;
  transition: left 0.6s ease !important;
}

.product-actions button:hover::after {
  left: 190% !important;
}

/* Sección de Contacto Ampliada */
.contact {
  border-radius: 18px !important;
  padding: 38px 46px !important;
  margin-top: 50px !important;
  background: linear-gradient(135deg, #ffffff 0%, #f0f6fa 100%) !important;
  border: 1px solid rgba(220, 230, 238, 0.9) !important;
  border-left: 6px solid var(--giecsa-teal-500) !important;
}

.contact h2 {
  font-size: 26px !important;
  color: var(--giecsa-navy-900) !important;
}

.contact p {
  font-size: 16px !important;
  color: #44596b !important;
}

.contact .quote {
  font-size: 15px !important;
  font-weight: 600 !important;
  padding: 14px 28px !important;
  border-radius: 10px !important;
}

/* Modal Detalle Dialog Ampliado */
dialog#detail-dialog {
  max-width: min(1200px, 95vw) !important;
  width: min(1200px, 95vw) !important;
  border-radius: 20px !important;
}

.detail-layout {
  grid-template-columns: 1fr 1.3fr !important;
  gap: 36px !important;
  padding: 32px !important;
}

.detail-layout h2 {
  font-size: 30px !important;
  line-height: 1.3 !important;
  color: var(--giecsa-navy-900) !important;
}

.detail-layout p {
  font-size: 15.5px !important;
  line-height: 1.8 !important;
  color: #4a5e70 !important;
}

.detail-metrics strong {
  font-size: 14.5px !important;
}

.sheet-tabs button {
  font-size: 14.5px !important;
  padding: 14px 18px !important;
  font-weight: 600 !important;
}

#detail-table {
  font-size: 14px !important;
}

#detail-table th, #detail-table td {
  padding: 13px 16px !important;
}

/* Barra flotante de cotización y Toast */
.quote-bar {
  font-size: 14.5px !important;
  padding: 14px 30px !important;
}

.quote-bar > span {
  font-size: 14px !important;
}

#quote-open {
  font-size: 14px !important;
  padding: 11px 20px !important;
}

#quote-count {
  font-size: 12.5px !important;
  width: 25px !important;
  height: 25px !important;
}

/* Adaptabilidad Responsive */
.intro-contact{margin-top:26px;position:relative;z-index:1}
.intro .intro-whatsapp{display:inline-flex!important;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:13px 20px!important;border-radius:10px;background:#087c5a!important;color:white!important;text-decoration:none!important;font-size:14px!important;font-weight:700!important;box-shadow:0 4px 14px #087c5a20;max-width:100%;transition:background .18s}
.intro .intro-whatsapp:hover{background:#066547!important}
.intro .intro-whatsapp svg{width:24px;height:24px;flex:none}
.intro .intro-whatsapp span{color:inherit!important;font-size:inherit!important;line-height:1.5}
.intro .intro-whatsapp:focus-visible{outline:3px solid #087c8e;outline-offset:4px}
@media(max-width:540px){.intro .intro-whatsapp{width:100%;font-size:12px!important;padding:12px!important;gap:9px}}
@media(prefers-reduced-motion:reduce){.intro .intro-whatsapp{transition:none}}
.product-content h3{display:block!important;overflow:visible!important;-webkit-line-clamp:unset!important;min-height:0!important;overflow-wrap:anywhere}
.catalog-list-view .grid{grid-template-columns:1fr!important}
.catalog-list-view .product{display:grid!important;grid-template-columns:150px minmax(0,1fr)!important}
.catalog-list-view .product-image{height:auto!important;min-height:180px!important;display:flex;align-items:center;justify-content:center}
.catalog-list-view .product-image img{width:100%!important;height:180px!important;object-fit:contain!important;transform:none!important}
.detail-layout>div{min-width:0}
.sheet-tabs{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.sheet-tabs button{font-size:13px!important;padding:12px 6px!important;overflow-wrap:normal;word-break:normal;min-width:0}
.dialog-top button{flex-shrink:0}
@media(max-width:850px){.detail-layout{grid-template-columns:1fr!important;gap:22px!important;padding:22px!important}.detail-layout h2{font-size:25px!important}.detail-layout img{height:210px!important}.detail-layout>div:first-child{max-width:100%;width:100%}}
@media(max-width:540px){.catalog-list-view .product{grid-template-columns:95px minmax(0,1fr)!important}.catalog-list-view .product-image img{height:130px!important}.detail-layout{padding:16px!important}.sheet-tabs{display:flex!important;flex-wrap:wrap!important}.sheet-tabs button{flex:1 1 100px;font-size:12px!important}.visual-controls,.visual-ficha-actions{flex-wrap:wrap}.tools{max-height:none!important;overflow:visible!important}}
@media (max-width: 1100px) {
  .catalog-layout {
    grid-template-columns: 1fr !important;
  }
  .category-overview {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 640px) {
  main {
    width: 98% !important;
    padding: 16px 12px 80px !important;
  }
  .intro {
    padding: 24px 20px !important;
  }
  .intro h1 {
    font-size: 32px !important;
  }
  .category-overview {
    grid-template-columns: 1fr !important;
  }
  .grid {
    grid-template-columns: 1fr !important;
  }
}
