/*
Theme Name: Hello Elementor Child KIWATEC
Theme URI: https://kiwatec.local
Description: Child theme base para el rebuild limpio de KIWATEC con Hello Elementor.
Author: Antigravity
Template: hello-elementor
Version: 0.5.2
Text Domain: hello-elementor-child-kiwatec
*/

/* ============================================================
   0. ELEMENTOR GLOBAL COLORS — override Kit 20 (producción)
   ============================================================ */
:root {
  --e-global-color-primary:   #061736;
  --e-global-color-secondary: #53BBC7;
  --e-global-color-text:      #393C61;
  --e-global-color-accent:    #53BBC7;
  --e-global-color-2fabc40:   #1B2A9D;
}

/* ============================================================
   1. DESIGN TOKENS — Fuente de verdad CSS
   ============================================================ */
:root {
  /* Marca */
  --kiwatec-brand-navy:       #262a43;
  --kiwatec-brand-blue:       #445ca6;
  --kiwatec-brand-cyan:       #56bec7;
  --kiwatec-brand-cyan-bright:#32d8d8;

  /* Superficies */
  --kiwatec-surface-base:  #ffffff;
  --kiwatec-surface-soft:  #f7fbff;
  --kiwatec-surface-line:  #dce7f5;

  /* Texto */
  --kiwatec-text-primary: #262a43;
  --kiwatec-text-muted:   #5f6b85;

  /* Estados */
  --kiwatec-success: #4daa7a;
  --kiwatec-warning: #f2b84b;
  --kiwatec-danger:  #e05252;

  /* Radios */
  --kiwatec-radius-sm:   12px;
  --kiwatec-radius-md:   18px;
  --kiwatec-radius-lg:   28px;
  --kiwatec-radius-xl:   36px;
  --kiwatec-radius-pill: 999px;

  /* Sombras */
  --kiwatec-shadow-card: 0 18px 45px rgba(38, 42, 67, 0.08);
  --kiwatec-shadow-lift: 0 24px 56px rgba(68, 92, 166, 0.14);
  --kiwatec-shadow-hov:  0 28px 60px rgba(68, 92, 166, 0.22);

  /* Espaciado */
  --kiwatec-sp-xs:  8px;
  --kiwatec-sp-sm:  12px;
  --kiwatec-sp-md:  16px;
  --kiwatec-sp-lg:  24px;
  --kiwatec-sp-xl:  32px;
  --kiwatec-sp-2xl: 48px;
  --kiwatec-sp-3xl: 64px;
  --kiwatec-sp-4xl: 96px;

  /* Contenedor */
  --kiwatec-max-w: 1200px;

  /* Transiciones */
  --kiwatec-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
  --kiwatec-dur:  180ms;
}

/* ============================================================
   2. RESET & BASE
   ============================================================ */
*, *::before, *::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body {
  font-family: 'Nunito', system-ui, sans-serif;
  color: var(--kiwatec-text-primary);
  background: var(--kiwatec-surface-base);
  line-height: 1.6;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: var(--kiwatec-brand-blue);
  text-decoration: none;
  transition: color var(--kiwatec-dur) var(--kiwatec-ease);
}

a:hover {
  color: var(--kiwatec-brand-cyan);
}

/* ============================================================
   3. TIPOGRAFÍA — Google Fonts cargada en functions.php
   ============================================================ */
h1, h2, h3, h4, h5, h6 {
  font-family: 'Nunito', system-ui, sans-serif;
  color: var(--kiwatec-text-primary);
  line-height: 1.15;
  margin-top: 0;
}

h1 { font-size: clamp(2rem, 5vw, 2.75rem); font-weight: 800; }
h2 { font-size: clamp(1.6rem, 3.5vw, 2.125rem); font-weight: 700; }
h3 { font-size: clamp(1.25rem, 2.5vw, 1.75rem); font-weight: 700; }
h4 { font-size: 1.375rem; font-weight: 700; }
p  { margin: 0 0 1em; }

.kiwatec-display {
  font-size: clamp(2.5rem, 6vw, 3.5rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.01em;
}

.kiwatec-eyebrow {
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kiwatec-brand-cyan);
}

.kiwatec-lead {
  font-size: 1.125rem;
  line-height: 1.7;
  color: var(--kiwatec-text-muted);
}

.kiwatec-text-muted {
  color: var(--kiwatec-text-muted);
}

/* ============================================================
   4. LAYOUT — Contenedor maestro
   ============================================================ */
.kiwatec-container {
  width: 100%;
  max-width: var(--kiwatec-max-w);
  margin-inline: auto;
  padding-inline: var(--kiwatec-sp-lg);
}

/* Compatibilidad con Elementor (inner-section) */
.e-con-inner {
  max-width: var(--kiwatec-max-w) !important;
}

/* ============================================================
   5. COMPONENTES — Cards
   ============================================================ */
.kiwatec-card {
  background: var(--kiwatec-surface-base);
  border: 1px solid var(--kiwatec-surface-line);
  border-radius: var(--kiwatec-radius-lg);
  box-shadow: var(--kiwatec-shadow-card);
  transition: box-shadow var(--kiwatec-dur) var(--kiwatec-ease),
              transform var(--kiwatec-dur) var(--kiwatec-ease);
}

.kiwatec-card:hover {
  box-shadow: var(--kiwatec-shadow-hov);
  transform: translateY(-3px);
}

.kiwatec-card__img {
  border-radius: var(--kiwatec-radius-md) var(--kiwatec-radius-md) 0 0;
  overflow: hidden;
  aspect-ratio: 4/3;
  background: var(--kiwatec-surface-soft);
}

.kiwatec-card__img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: var(--kiwatec-sp-md);
}

.kiwatec-card__body {
  padding: var(--kiwatec-sp-lg);
}

.kiwatec-card__title {
  font-size: 1.125rem;
  font-weight: 700;
  margin-bottom: var(--kiwatec-sp-xs);
  color: var(--kiwatec-text-primary);
}

.kiwatec-card__excerpt {
  font-size: 0.9375rem;
  color: var(--kiwatec-text-muted);
  margin-bottom: var(--kiwatec-sp-md);
}

/* Card solucion — accent lateral izquierdo */
.kiwatec-solution-card {
  background: var(--kiwatec-surface-base);
  border: 1px solid var(--kiwatec-surface-line);
  border-left: 4px solid var(--kiwatec-brand-cyan);
  border-radius: var(--kiwatec-radius-md);
  box-shadow: var(--kiwatec-shadow-card);
  padding: var(--kiwatec-sp-lg);
  display: flex;
  gap: var(--kiwatec-sp-md);
  align-items: flex-start;
  transition: box-shadow var(--kiwatec-dur) var(--kiwatec-ease),
              transform var(--kiwatec-dur) var(--kiwatec-ease);
}

.kiwatec-solution-card:hover {
  box-shadow: var(--kiwatec-shadow-lift);
  transform: translateY(-2px);
}

.kiwatec-solution-card__icon {
  width: 52px;
  height: 52px;
  flex-shrink: 0;
  border-radius: var(--kiwatec-radius-sm);
  background: var(--kiwatec-surface-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.kiwatec-solution-card__icon img {
  width: 36px;
  height: 36px;
  object-fit: contain;
}

/* Card noticia */
.kiwatec-news-card {
  background: var(--kiwatec-surface-base);
  border: 1px solid var(--kiwatec-surface-line);
  border-radius: var(--kiwatec-radius-lg);
  box-shadow: var(--kiwatec-shadow-card);
  overflow: hidden;
  transition: box-shadow var(--kiwatec-dur) var(--kiwatec-ease),
              transform var(--kiwatec-dur) var(--kiwatec-ease);
}

.kiwatec-news-card:hover {
  box-shadow: var(--kiwatec-shadow-hov);
  transform: translateY(-3px);
}

.kiwatec-news-card__img {
  aspect-ratio: 16/9;
  overflow: hidden;
  background: var(--kiwatec-brand-navy);
}

.kiwatec-news-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.85;
  transition: opacity var(--kiwatec-dur) var(--kiwatec-ease);
}

.kiwatec-news-card:hover .kiwatec-news-card__img img {
  opacity: 1;
}

.kiwatec-news-card__body {
  padding: var(--kiwatec-sp-lg);
}

/* ============================================================
   6. COMPONENTES — Botones
   ============================================================ */
.kiwatec-btn,
.elementor-button.kiwatec-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--kiwatec-sp-xs);
  padding: 0.75em 1.75em;
  border-radius: var(--kiwatec-radius-pill);
  font-family: 'Nunito', system-ui, sans-serif;
  font-weight: 700;
  font-size: 1rem;
  cursor: pointer;
  border: none;
  text-decoration: none;
  transition: background var(--kiwatec-dur) var(--kiwatec-ease),
              box-shadow var(--kiwatec-dur) var(--kiwatec-ease),
              transform var(--kiwatec-dur) var(--kiwatec-ease);
}

.kiwatec-btn--primary {
  background: var(--kiwatec-brand-blue);
  color: #fff;
  box-shadow: 0 6px 20px rgba(68, 92, 166, 0.3);
}

.kiwatec-btn--primary:hover {
  background: var(--kiwatec-brand-cyan-bright);
  box-shadow: 0 8px 28px rgba(50, 216, 216, 0.35);
  transform: translateY(-1px);
  color: var(--kiwatec-brand-navy);
}

.kiwatec-btn--secondary {
  background: transparent;
  color: var(--kiwatec-brand-blue);
  border: 2px solid var(--kiwatec-brand-blue);
}

.kiwatec-btn--secondary:hover {
  background: var(--kiwatec-surface-soft);
  border-color: var(--kiwatec-brand-cyan);
  color: var(--kiwatec-brand-cyan);
}

.kiwatec-btn--ghost {
  background: transparent;
  color: var(--kiwatec-brand-blue);
  padding-left: 0;
  padding-right: 0;
  border-radius: 0;
  border-bottom: 2px solid transparent;
}

.kiwatec-btn--ghost:hover {
  border-bottom-color: var(--kiwatec-brand-cyan);
  color: var(--kiwatec-brand-cyan);
}

/* ============================================================
   7. COMPONENTES — Badges / Pill / Tag
   ============================================================ */
.kiwatec-pill {
  display: inline-block;
  padding: 0.25em 0.875em;
  border-radius: var(--kiwatec-radius-pill);
  font-size: 0.8125rem;
  font-weight: 700;
  background: var(--kiwatec-surface-soft);
  color: var(--kiwatec-brand-navy);
  border: 1px solid var(--kiwatec-surface-line);
}

.kiwatec-pill--cyan {
  background: rgba(86, 190, 199, 0.12);
  color: var(--kiwatec-brand-cyan);
  border-color: rgba(86, 190, 199, 0.3);
}

.kiwatec-pill--blue {
  background: rgba(68, 92, 166, 0.1);
  color: var(--kiwatec-brand-blue);
  border-color: rgba(68, 92, 166, 0.25);
}

/* ============================================================
   8. COMPONENTES — Hero
   ============================================================ */
.kiwatec-hero {
  background: var(--kiwatec-brand-navy);
  color: #fff;
  padding: var(--kiwatec-sp-4xl) 0;
  position: relative;
  overflow: hidden;
}

.kiwatec-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 70% 50%, rgba(86, 190, 199, 0.15) 0%, transparent 60%);
  pointer-events: none;
}

.kiwatec-hero--page {
  padding: var(--kiwatec-sp-3xl) 0;
  background: linear-gradient(135deg, var(--kiwatec-brand-navy) 0%, #1e2d5a 100%);
}

.kiwatec-hero__eyebrow {
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kiwatec-brand-cyan);
  margin-bottom: var(--kiwatec-sp-sm);
}

.kiwatec-hero__title {
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 800;
  color: #fff;
  line-height: 1.1;
  margin-bottom: var(--kiwatec-sp-md);
}

.kiwatec-hero__subtitle {
  font-size: 1.125rem;
  color: rgba(255,255,255,0.75);
  margin-bottom: var(--kiwatec-sp-xl);
  max-width: 42ch;
}

/* ============================================================
   9. HEADER (fallback sin Elementor Template Builder)
   ============================================================ */
.site-header {
  background: var(--kiwatec-surface-base);
  border-bottom: 1px solid var(--kiwatec-surface-line);
  box-shadow: 0 2px 12px rgba(38, 42, 67, 0.06);
  position: sticky;
  top: 0;
  z-index: 1000;
}

/* Elementor Header */
.e-header {
  background: var(--kiwatec-surface-base) !important;
}

/* ============================================================
   10. FOOTER (fallback)
   ============================================================ */
.site-footer {
  background: var(--kiwatec-brand-navy);
  color: rgba(255,255,255,0.75);
  padding: var(--kiwatec-sp-3xl) 0 var(--kiwatec-sp-xl);
}

.site-footer a {
  color: rgba(255,255,255,0.75);
  transition: color var(--kiwatec-dur) var(--kiwatec-ease);
}

.site-footer a:hover {
  color: var(--kiwatec-brand-cyan-bright);
}

.kiwatec-footer-heading {
  color: #fff;
  font-weight: 700;
  font-size: 0.9375rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: var(--kiwatec-sp-md);
}

/* ============================================================
   11. GRIDS — Post loops, products, solutions
   ============================================================ */
.kiwatec-grid--4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--kiwatec-sp-lg);
}

.kiwatec-grid--3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--kiwatec-sp-lg);
}

.kiwatec-grid--2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--kiwatec-sp-xl);
}

@media (max-width: 1023px) {
  .kiwatec-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .kiwatec-grid--3 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 767px) {
  .kiwatec-grid--4,
  .kiwatec-grid--3,
  .kiwatec-grid--2 {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   12. SECCIONES — bloques de contenido
   ============================================================ */
.kiwatec-section {
  padding: var(--kiwatec-sp-4xl) 0;
}

.kiwatec-section--soft {
  background: var(--kiwatec-surface-soft);
}

.kiwatec-section--navy {
  background: var(--kiwatec-brand-navy);
  color: #fff;
}

.kiwatec-section-header {
  text-align: center;
  max-width: 680px;
  margin: 0 auto var(--kiwatec-sp-3xl);
}

.kiwatec-section-header h2 {
  margin-bottom: var(--kiwatec-sp-md);
}

/* ============================================================
   13. ELEMENTOR — Overrides y ajustes de integración
   ============================================================ */

/* Que el body-area de Hello Elementor no tenga márgenes raros */
#page {
  overflow-x: hidden;
}

/* Elementor buttons — hereda pill style si se añade la clase */
.elementor-widget-button .elementor-button {
  transition: all var(--kiwatec-dur) var(--kiwatec-ease) !important;
}

/* Posts widget — estilos para posts de productos/noticias */
.elementor-posts-container .elementor-post__thumbnail__link {
  border-radius: var(--kiwatec-radius-md) var(--kiwatec-radius-md) 0 0;
  overflow: hidden;
}

.elementor-posts-container .elementor-post {
  border-radius: var(--kiwatec-radius-lg);
  box-shadow: var(--kiwatec-shadow-card);
  border: 1px solid var(--kiwatec-surface-line);
  overflow: hidden;
  transition: box-shadow var(--kiwatec-dur) var(--kiwatec-ease),
              transform var(--kiwatec-dur) var(--kiwatec-ease);
}

.elementor-posts-container .elementor-post:hover {
  box-shadow: var(--kiwatec-shadow-hov);
  transform: translateY(-3px);
}

/* Nav Menu widget */
.elementor-nav-menu .elementor-item {
  font-family: 'Nunito', system-ui, sans-serif;
  transition: color var(--kiwatec-dur) var(--kiwatec-ease);
}

.elementor-nav-menu .elementor-item:hover:not(.elementor-item-active) {
  color: var(--kiwatec-brand-blue);
}

/* ============================================================
   14. SINGLE PRODUCTO
   ============================================================ */
.kiwatec-product-gallery {
  border-radius: var(--kiwatec-radius-lg);
  overflow: hidden;
  background: var(--kiwatec-surface-soft);
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--kiwatec-sp-xl);
}

.kiwatec-product-meta-table {
  width: 100%;
  border-collapse: collapse;
}

.kiwatec-product-meta-table th,
.kiwatec-product-meta-table td {
  padding: var(--kiwatec-sp-sm) var(--kiwatec-sp-md);
  text-align: left;
  border-bottom: 1px solid var(--kiwatec-surface-line);
  font-size: 0.9375rem;
}

.kiwatec-product-meta-table th {
  font-weight: 700;
  color: var(--kiwatec-text-muted);
  width: 40%;
  background: var(--kiwatec-surface-soft);
}

/* ============================================================
   15. FORMULARIO CONTACTO
   ============================================================ */
.kiwatec-form-wrap {
  background: var(--kiwatec-surface-base);
  border: 1px solid var(--kiwatec-surface-line);
  border-radius: var(--kiwatec-radius-xl);
  box-shadow: var(--kiwatec-shadow-lift);
  padding: var(--kiwatec-sp-3xl);
}

.elementor-field-group .elementor-field {
  border: 1px solid var(--kiwatec-surface-line) !important;
  border-radius: var(--kiwatec-radius-sm) !important;
  font-family: 'Nunito', system-ui, sans-serif !important;
  font-size: 1rem !important;
  padding: 0.75em 1em !important;
  transition: border-color var(--kiwatec-dur) var(--kiwatec-ease),
              box-shadow var(--kiwatec-dur) var(--kiwatec-ease) !important;
}

.elementor-field-group .elementor-field:focus {
  border-color: var(--kiwatec-brand-cyan) !important;
  box-shadow: 0 0 0 3px rgba(86, 190, 199, 0.2) !important;
  outline: none !important;
}

/* ============================================================
   16. CTA BAND
   ============================================================ */
.kiwatec-cta-band {
  background: linear-gradient(135deg, var(--kiwatec-brand-blue) 0%, var(--kiwatec-brand-navy) 100%);
  padding: var(--kiwatec-sp-3xl) 0;
  text-align: center;
  color: #fff;
}

.kiwatec-cta-band h2 {
  color: #fff;
  margin-bottom: var(--kiwatec-sp-lg);
}

/* ============================================================
   17. PARTNERS LOGOS STRIP
   ============================================================ */
.kiwatec-partners-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--kiwatec-sp-xl);
  padding: var(--kiwatec-sp-2xl) 0;
}

.kiwatec-partners-strip img {
  height: 40px;
  width: auto;
  object-fit: contain;
  filter: grayscale(1) opacity(0.6);
  transition: filter var(--kiwatec-dur) var(--kiwatec-ease);
}

.kiwatec-partners-strip img:hover {
  filter: grayscale(0) opacity(1);
}

/* ============================================================
   18. ACCESIBILIDAD
   ============================================================ */
:focus-visible {
  outline: 2px solid var(--kiwatec-brand-cyan);
  outline-offset: 3px;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* ============================================================
   19. RESPONSIVE — Ajustes globales
   ============================================================ */
@media (max-width: 1023px) {
  :root {
    --kiwatec-sp-4xl: 72px;
    --kiwatec-sp-3xl: 48px;
  }
}

@media (max-width: 767px) {
  :root {
    --kiwatec-sp-4xl: 56px;
    --kiwatec-sp-3xl: 40px;
    --kiwatec-sp-xl:  24px;
  }

  .kiwatec-form-wrap {
    padding: var(--kiwatec-sp-xl);
  }

  h1 { font-size: 2rem; }
  h2 { font-size: 1.625rem; }
}

/* ============================================================
   NAV LOGO FIX — kw-nav HTML widget en canvas pages
   La img global tiene max-width:100%; el .logo en flex
   colapsa a 0px sin flex-shrink:0 + width:auto en la img.
   ============================================================ */
nav.kw-nav a.logo { flex-shrink: 0; }
nav.kw-nav a.logo img { height: 34px; width: auto; max-width: none; }

/* ============================================================
   LIBERAR EL CONTAINER DE 1140px — Aplica a:
   1. TB Header y Footer (Template Builder)
   2. Canvas pages (Home/Sol/Nos/Con/Not — elementor_canvas)
   3. Páginas Productos + Partners (body.kw-productos/kw-partners)
   En todos los casos el contenido gestiona su propio max-width
   internamente (.nav-in, .ft-in, .kw-section__inner, etc.)
   ============================================================ */
.elementor-location-header .elementor-container,
.elementor-location-footer .elementor-container,
body.elementor-template-canvas .elementor-container,
body.kw-productos .elementor-container,
body.kw-partners .elementor-container {
    max-width: 100% !important;
    padding-inline: 0;
}

/* En mobile el admin-bar empuja el sticky nav 46px extra */
@media (max-width: 782px) {
  .admin-bar nav.kw-nav { top: 46px; }
}

/* ============================================================
   ENTRY-TITLE — Ocultar el título por defecto de Hello Elementor
   Para páginas construidas con Elementor (template default),
   Hello Elementor renderiza un <h1 class="entry-title"> encima
   del contenido. Lo ocultamos porque el diseño Elementor ya
   incluye el título dentro del contenido (hero section).
   ============================================================ */
.elementor-page .entry-title,
.elementor-page .entry-header {
    display: none !important;
}


/* ============================================================
   KIWATEC HEADER
   ============================================================ */
.kw-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--kiwatec-surface-line);
  box-shadow: 0 2px 16px rgba(38, 42, 67, 0.06);
  transition: box-shadow var(--kiwatec-dur) var(--kiwatec-ease);
}

.kw-header__inner {
  max-width: var(--kiwatec-max-w);
  margin: 0 auto;
  padding: 0 var(--kiwatec-sp-lg);
  display: flex;
  align-items: center;
  gap: var(--kiwatec-sp-xl);
  height: 72px;
}

.kw-header__logo {
  text-decoration: none;
  flex-shrink: 0;
}

.kw-header__logo-text {
  font-family: 'Nunito', sans-serif;
  font-weight: 800;
  font-size: 1.5rem;
  letter-spacing: -0.02em;
  color: var(--kiwatec-brand-navy);
}

.kw-header__nav {
  flex: 1;
  display: flex;
  justify-content: center;
}

.kw-nav {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: var(--kiwatec-sp-lg);
}

.kw-nav li a {
  text-decoration: none;
  color: var(--kiwatec-text-muted);
  font-size: 0.9375rem;
  font-weight: 600;
  padding: var(--kiwatec-sp-xs) 0;
  border-bottom: 2px solid transparent;
  transition: all var(--kiwatec-dur) var(--kiwatec-ease);
}

.kw-nav li a:hover,
.kw-nav li.current-menu-item > a,
.kw-nav li.current_page_item > a {
  color: var(--kiwatec-brand-blue);
  border-bottom-color: var(--kiwatec-brand-cyan);
}

.kw-header__cta {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  padding: 10px 24px;
  background: var(--kiwatec-brand-blue);
  color: #fff;
  font-size: 0.875rem;
  font-weight: 700;
  text-decoration: none;
  border-radius: var(--kiwatec-radius-pill);
  transition: all var(--kiwatec-dur) var(--kiwatec-ease);
  box-shadow: 0 4px 16px rgba(68, 92, 166, 0.25);
}

.kw-header__cta:hover {
  background: var(--kiwatec-brand-navy);
  transform: translateY(-1px);
  box-shadow: 0 6px 24px rgba(68, 92, 166, 0.35);
}

.kw-header__toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  padding: 8px;
  cursor: pointer;
}

.kw-header__toggle span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--kiwatec-brand-navy);
  border-radius: 2px;
  transition: transform 0.3s ease;
}

/* WP Admin bar offset */
.admin-bar .kw-header {
  top: 32px;
}

@media (max-width: 782px) {
  .admin-bar .kw-header {
    top: 46px;
  }
}

/* ============================================================
   HERO SECTION
   ============================================================ */
.kw-hero {
  background: linear-gradient(135deg, var(--kiwatec-brand-navy) 0%, #1a2040 50%, #2a3366 100%);
  padding: var(--kiwatec-sp-4xl) 0;
  position: relative;
  overflow: hidden;
  min-height: 480px;
  display: flex;
  align-items: center;
}

.kw-hero__inner {
  max-width: var(--kiwatec-max-w);
  margin: 0 auto;
  padding: 0 var(--kiwatec-sp-lg);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--kiwatec-sp-3xl);
  align-items: center;
  position: relative;
  z-index: 1;
}

.kw-eyebrow {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--kiwatec-brand-cyan);
  margin-bottom: var(--kiwatec-sp-md);
}

.kw-eyebrow--light {
  color: var(--kiwatec-brand-cyan-bright);
}

.kw-hero__title {
  font-size: 2.75rem;
  font-weight: 800;
  color: #fff;
  line-height: 1.15;
  margin: 0 0 var(--kiwatec-sp-lg);
  letter-spacing: -0.02em;
}

.kw-hero__subtitle {
  font-size: 1.125rem;
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.65;
  margin: 0 0 var(--kiwatec-sp-xl);
  max-width: 520px;
}

.kw-hero__actions {
  display: flex;
  gap: var(--kiwatec-sp-md);
  flex-wrap: wrap;
}

.kw-hero__visual {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.kw-hero__shape {
  width: 360px;
  height: 360px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(86, 190, 199, 0.25) 0%, transparent 70%);
  border: 2px solid rgba(86, 190, 199, 0.15);
  animation: pulse-glow 4s ease-in-out infinite;
}

.kw-hero__shape::before {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  width: 200px; height: 200px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(86, 190, 199, 0.35) 0%, transparent 70%);
}

.kw-hero__shape::after {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  width: 80px; height: 80px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: var(--kiwatec-brand-cyan);
  box-shadow: 0 0 60px rgba(86, 190, 199, 0.5);
}

@keyframes pulse-glow {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.05); opacity: 0.8; }
}

/* ============================================================
   BUTTONS
   ============================================================ */
.kw-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 32px;
  border-radius: var(--kiwatec-radius-pill);
  font-family: 'Nunito', sans-serif;
  font-size: 0.9375rem;
  font-weight: 700;
  text-decoration: none;
  transition: all var(--kiwatec-dur) var(--kiwatec-ease);
  cursor: pointer;
  border: 2px solid transparent;
}

.kw-btn--primary {
  background: var(--kiwatec-brand-cyan);
  color: var(--kiwatec-brand-navy);
  box-shadow: 0 4px 20px rgba(86, 190, 199, 0.3);
}

.kw-btn--primary:hover {
  background: var(--kiwatec-brand-cyan-bright);
  transform: translateY(-2px);
  box-shadow: 0 6px 28px rgba(86, 190, 199, 0.4);
}

.kw-btn--ghost {
  background: transparent;
  color: #fff;
  border-color: rgba(255, 255, 255, 0.3);
}

.kw-btn--ghost:hover {
  border-color: #fff;
  background: rgba(255, 255, 255, 0.08);
}

.kw-btn--outline-light {
  background: transparent;
  color: var(--kiwatec-brand-cyan);
  border-color: var(--kiwatec-brand-cyan);
}

.kw-btn--outline-light:hover {
  background: var(--kiwatec-brand-cyan);
  color: var(--kiwatec-brand-navy);
}

.kw-btn--lg {
  padding: 18px 40px;
  font-size: 1.0625rem;
}

/* ============================================================
   SECTIONS
   ============================================================ */
.kw-section {
  padding: var(--kiwatec-sp-4xl) 0;
}

.kw-section--light {
  background: var(--kiwatec-surface-soft);
}

.kw-section--dark {
  background: var(--kiwatec-brand-navy);
}

.kw-section__inner {
  max-width: var(--kiwatec-max-w);
  margin: 0 auto;
  padding: 0 var(--kiwatec-sp-lg);
}

.kw-section__title {
  font-size: 2.25rem;
  font-weight: 800;
  color: var(--kiwatec-text-primary);
  margin: 0 0 var(--kiwatec-sp-md);
  letter-spacing: -0.02em;
}

.kw-section__title--light {
  color: #fff;
}

.kw-section__subtitle {
  font-size: 1.0625rem;
  color: var(--kiwatec-text-muted);
  line-height: 1.65;
  margin: 0 0 var(--kiwatec-sp-2xl);
  max-width: 620px;
}

.kw-section__subtitle--light {
  color: rgba(255, 255, 255, 0.65);
}

.kw-section__cta {
  text-align: center;
  margin-top: var(--kiwatec-sp-2xl);
}

/* ============================================================
   SOLUTION CARDS GRID
   ============================================================ */
.kw-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--kiwatec-sp-lg);
}

.kw-card {
  background: #fff;
  border-radius: var(--kiwatec-radius-md);
  padding: var(--kiwatec-sp-xl);
  box-shadow: var(--kiwatec-shadow-card);
  border: 1px solid var(--kiwatec-surface-line);
  transition: all 0.3s var(--kiwatec-ease);
}

.kw-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--kiwatec-shadow-hov);
  border-color: var(--kiwatec-brand-cyan);
}

.kw-card__icon {
  width: 56px;
  height: 56px;
  border-radius: var(--kiwatec-radius-sm);
  background: linear-gradient(135deg, rgba(68, 92, 166, 0.08) 0%, rgba(86, 190, 199, 0.12) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--kiwatec-brand-blue);
  margin-bottom: var(--kiwatec-sp-lg);
}

.kw-card:hover .kw-card__icon {
  background: linear-gradient(135deg, var(--kiwatec-brand-blue) 0%, var(--kiwatec-brand-cyan) 100%);
  color: #fff;
}

.kw-card__title {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--kiwatec-text-primary);
  margin: 0 0 var(--kiwatec-sp-sm);
}

.kw-card__excerpt {
  font-size: 0.9375rem;
  color: var(--kiwatec-text-muted);
  line-height: 1.6;
  margin: 0 0 var(--kiwatec-sp-md);
}

.kw-card__link {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--kiwatec-brand-blue);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: color var(--kiwatec-dur) var(--kiwatec-ease);
}

.kw-card__link:hover {
  color: var(--kiwatec-brand-cyan);
}

/* ============================================================
   PRODUCTS GRID
   ============================================================ */
.kw-products-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: var(--kiwatec-sp-lg);
}

.kw-product-card {
  background: rgba(255, 255, 255, 0.06);
  border-radius: var(--kiwatec-radius-md);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.08);
  transition: all 0.3s var(--kiwatec-ease);
}

.kw-product-card:hover {
  transform: translateY(-4px);
  border-color: var(--kiwatec-brand-cyan);
  background: rgba(255, 255, 255, 0.1);
}

.kw-product-card__image {
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.04);
}

.kw-product-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s var(--kiwatec-ease);
}

.kw-product-card:hover .kw-product-card__image img {
  transform: scale(1.05);
}

.kw-product-card__image--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.2);
}

.kw-product-card__body {
  padding: var(--kiwatec-sp-lg);
}

.kw-product-card__sku {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kiwatec-brand-cyan);
  margin-bottom: var(--kiwatec-sp-xs);
}

.kw-product-card__title {
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
  margin: 0 0 var(--kiwatec-sp-xs);
}

.kw-product-card__excerpt {
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.5;
  margin: 0 0 var(--kiwatec-sp-md);
}

.kw-empty-state {
  grid-column: 1 / -1;
  text-align: center;
  padding: var(--kiwatec-sp-2xl);
  color: rgba(255, 255, 255, 0.45);
  font-size: 0.9375rem;
}

.kw-empty-state a {
  color: var(--kiwatec-brand-cyan);
  text-decoration: none;
  font-weight: 700;
}

/* ============================================================
   CTA SECTION
   ============================================================ */
.kw-cta-section {
  background: linear-gradient(135deg, var(--kiwatec-brand-blue) 0%, var(--kiwatec-brand-cyan) 100%);
  padding: var(--kiwatec-sp-4xl) 0;
  text-align: center;
}

.kw-cta-section__inner {
  max-width: 640px;
  margin: 0 auto;
  padding: 0 var(--kiwatec-sp-lg);
}

.kw-cta-section__title {
  font-size: 2.25rem;
  font-weight: 800;
  color: #fff;
  margin: 0 0 var(--kiwatec-sp-md);
}

.kw-cta-section__subtitle {
  font-size: 1.125rem;
  color: rgba(255, 255, 255, 0.85);
  margin: 0 0 var(--kiwatec-sp-xl);
}

.kw-cta-section .kw-btn--primary {
  background: #fff;
  color: var(--kiwatec-brand-blue);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

.kw-cta-section .kw-btn--primary:hover {
  background: var(--kiwatec-brand-navy);
  color: #fff;
}

/* ============================================================
   FOOTER
   ============================================================ */
.kw-footer {
  background: var(--kiwatec-brand-navy);
  color: rgba(255, 255, 255, 0.7);
  padding: var(--kiwatec-sp-3xl) 0 0;
}

.kw-footer__inner {
  max-width: var(--kiwatec-max-w);
  margin: 0 auto;
  padding: 0 var(--kiwatec-sp-lg);
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: var(--kiwatec-sp-2xl);
}

.kw-footer__logo {
  text-decoration: none;
  display: inline-block;
  margin-bottom: var(--kiwatec-sp-md);
}

.kw-footer__logo-text {
  font-family: 'Nunito', sans-serif;
  font-weight: 800;
  font-size: 1.375rem;
  color: #fff;
  letter-spacing: -0.02em;
}

.kw-footer__desc {
  font-size: 0.9375rem;
  line-height: 1.65;
  margin: 0;
  max-width: 280px;
}

.kw-footer__heading {
  font-size: 0.8125rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
  margin: 0 0 var(--kiwatec-sp-lg);
}

.kw-footer__links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--kiwatec-sp-sm);
}

.kw-footer__links a,
.kw-footer__links span {
  font-size: 0.9375rem;
  color: rgba(255, 255, 255, 0.6);
  text-decoration: none;
  transition: color var(--kiwatec-dur) var(--kiwatec-ease);
}

.kw-footer__links a:hover {
  color: var(--kiwatec-brand-cyan);
}

/* ============================================================
   TEMPLATE 1332 — Ficha de Producto (Elementor Single Template)
   Fallback dark background for "Funciones Principales" section
   which uses a background slideshow (Swiper). Without the
   slideshow the section content (white text) becomes invisible.
   This solid color matches the Kiwatec dark navy palette and
   displays BELOW the slideshow when it loads in production.
   ============================================================ */
.elementor-1332 .elementor-element.elementor-element-1c5f242 {
  background-color: #0E2434;
}

/* CTA "Contactanos" section — also has background slideshow + white text */
.elementor-1332 .elementor-element.elementor-element-f9c17bf {
  background-color: #0E2434;
}

.kw-footer__links--contact li {
  display: flex;
  align-items: center;
  gap: var(--kiwatec-sp-xs);
}

.kw-footer__links--contact svg {
  flex-shrink: 0;
  opacity: 0.5;
}

.kw-footer__bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  margin-top: var(--kiwatec-sp-2xl);
  padding: var(--kiwatec-sp-lg) 0;
}

.kw-footer__bottom-inner {
  max-width: var(--kiwatec-max-w);
  margin: 0 auto;
  padding: 0 var(--kiwatec-sp-lg);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.kw-footer__bottom p {
  margin: 0;
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.35);
}

.kw-footer__bottom-links {
  display: flex;
  gap: var(--kiwatec-sp-lg);
}

.kw-footer__bottom-links a {
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.35);
  text-decoration: none;
  transition: color var(--kiwatec-dur) var(--kiwatec-ease);
}

.kw-footer__bottom-links a:hover {
  color: var(--kiwatec-brand-cyan);
}

/* ============================================================
   SITE CONTENT (between header and footer)
   ============================================================ */
.kw-site-content {
  min-height: 40vh;
}

/* ============================================================
   RESPONSIVE — TABLET
   ============================================================ */
@media (max-width: 991px) {
  .kw-hero__inner {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .kw-hero__visual {
    display: none;
  }

  .kw-hero__subtitle {
    margin-inline: auto;
  }

  .kw-hero__actions {
    justify-content: center;
  }

  .kw-footer__inner {
    grid-template-columns: 1fr 1fr;
  }
}

/* ============================================================
   RESPONSIVE — MOBILE
   ============================================================ */
@media (max-width: 767px) {
  .kw-header__inner {
    height: 60px;
    padding: 0 var(--kiwatec-sp-md);
  }

  .kw-header__nav {
    display: none;
    position: fixed;
    top: 60px;
    left: 0;
    right: 0;
    bottom: 0;
    background: #fff;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 99;
  }

  .kw-header__nav.is-open {
    display: flex;
  }

  .admin-bar .kw-header__nav {
    top: 106px;
  }

  .kw-nav {
    flex-direction: column;
    gap: var(--kiwatec-sp-xl);
    text-align: center;
  }

  .kw-nav li a {
    font-size: 1.25rem;
  }

  .kw-header__cta {
    display: none;
  }

  .kw-header__toggle {
    display: flex;
  }

  .kw-hero {
    padding: var(--kiwatec-sp-2xl) 0;
    min-height: auto;
  }

  .kw-hero__title {
    font-size: 2rem;
  }

  .kw-cards-grid {
    grid-template-columns: 1fr;
  }

  .kw-products-grid {
    grid-template-columns: 1fr 1fr;
  }

  .kw-footer__inner {
    grid-template-columns: 1fr;
  }

  .kw-footer__bottom-inner {
    flex-direction: column;
    gap: var(--kiwatec-sp-sm);
    text-align: center;
  }

  .kw-cta-section__title {
    font-size: 1.75rem;
  }
}

@media (max-width: 480px) {
  .kw-products-grid {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   PÁGINA SOLUCIONES (ID 37) — Sistema de Diseño Kiwatec
   Referencia visual: Home.html + SOLUCIONES/code.html
   Scope: body.elementor-page-37  (solo afecta esta página)
   Tokens: --kw-* locales dentro del scope de la página
   ============================================================ */

.elementor-page-37 {
  --kw-navy:       #0a1628;
  --kw-blue:       #1a56db;
  --kw-blue-h:     #1447c7;
  --kw-blue-soft:  #6a8fdc;
  --kw-off:        #f3f6fb;
  --kw-border:     #e4e9f0;
  --kw-txt:        #1e293b;
  --kw-muted:      #64748b;
  --kw-shadow:     0 2px 18px rgba(10,22,40,0.07);
  --kw-shadow-h:   0 6px 28px rgba(26,86,219,0.14);
  background-color: var(--kw-off);
}

/* ─── HERO ─────────────────────────────────────────────────── */
.elementor-page-37 .elementor-element-46cce2c {
  min-height: 420px !important;
  border-radius: 0 0 44px 44px !important;
  overflow: hidden;
}

/* Título "Soluciones" */
.elementor-page-37 .elementor-element-f1b7663 .elementor-heading-title {
  font-size: clamp(40px, 5.5vw, 62px) !important;
  font-weight: 900 !important;
  letter-spacing: -0.025em !important;
  line-height: 1.04 !important;
  text-shadow: 0 2px 16px rgba(0,0,0,0.28) !important;
}

/* Subtítulo del hero */
.elementor-page-37 .elementor-element-b92677c .elementor-heading-title {
  font-size: 15px !important;
  font-weight: 600 !important;
  color: rgba(255,255,255,0.88) !important;
  line-height: 1.65 !important;
  text-shadow: 0 1px 8px rgba(0,0,0,0.35) !important;
}

/* ─── SECCIÓN DE TABS ───────────────────────────────────────── */
.elementor-page-37 .elementor-element-54554e00,
.elementor-page-37 .elementor-element-443c61c {
  background-color: var(--kw-off) !important;
}

/* Encabezado de tabs: barra con todos los botones */
.elementor-page-37 .e-n-tabs-heading {
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 22px 20px !important;
  background: #ffffff !important;
  border-bottom: 1px solid var(--kw-border) !important;
  box-shadow: 0 2px 12px rgba(10,22,40,0.05) !important;
}

/* Cada botón de tab — estado inactivo */
.elementor-page-37 .e-n-tab-title {
  border-radius: 50px !important;
  padding: 9px 22px !important;
  border: 1.5px solid var(--kw-border) !important;
  background: #ffffff !important;
  color: var(--kw-muted) !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  transition: all 0.2s ease !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  box-shadow: none !important;
  text-decoration: none !important;
}

/* Hover sobre tab inactivo */
.elementor-page-37 .e-n-tab-title:not([aria-selected="true"]):hover {
  border-color: var(--kw-blue) !important;
  color: var(--kw-blue) !important;
  background: #eff6ff !important;
}

/* Tab activo */
.elementor-page-37 .e-n-tab-title[aria-selected="true"],
.elementor-page-37 .e-n-tab-title.e-active {
  background-color: var(--kw-blue) !important;
  border-color: var(--kw-blue) !important;
  color: #ffffff !important;
  box-shadow: 0 4px 14px rgba(26,86,219,0.32) !important;
}

/* Texto interior del tab activo */
.elementor-page-37 .e-n-tab-title[aria-selected="true"] *,
.elementor-page-37 .e-n-tab-title.e-active * {
  color: #ffffff !important;
}

/* ─── PANEL DE CADA TAB ─────────────────────────────────────── */
/* Cada panel = solución con imagen + texto + productos */
.elementor-page-37 .e-n-tabs-content > .e-con {
  background: transparent !important;
  padding: 32px 24px !important;
}

/* Columna con la IMAGEN de la solución (primer hijo del panel) */
.elementor-page-37 .e-n-tabs-content > .e-con > .e-con:first-child {
  border-radius: 54px 6px 30px 6px !important;
  overflow: hidden !important;
  box-shadow: var(--kw-shadow) !important;
}

/* Columna de TEXTO (segundo hijo del panel) */
.elementor-page-37 .e-n-tabs-content > .e-con > .e-con:nth-child(2) {
  padding: 16px 24px !important;
  background: #ffffff !important;
  border-radius: 6px 70px 6px 70px !important;
  border: 2px solid var(--kw-blue-soft) !important;
  box-shadow: var(--kw-shadow) !important;
  transition: border-color 0.22s, box-shadow 0.22s !important;
}

.elementor-page-37 .e-n-tabs-content > .e-con > .e-con:nth-child(2):hover {
  border-color: var(--kw-blue) !important;
  box-shadow: var(--kw-shadow-h) !important;
}

/* Título de la solución (primer heading dentro de la columna de texto) */
.elementor-page-37 .e-n-tabs-content > .e-con > .e-con:nth-child(2) .elementor-widget-heading:first-child .elementor-heading-title {
  color: var(--kw-blue) !important;
  font-weight: 800 !important;
  font-size: clamp(20px, 2.4vw, 28px) !important;
  letter-spacing: -0.01em !important;
  line-height: 1.2 !important;
}

/* Descripción de la solución (segundo heading en la columna de texto) */
.elementor-page-37 .e-n-tabs-content > .e-con > .e-con:nth-child(2) .elementor-widget-heading:last-child .elementor-heading-title,
.elementor-page-37 .e-n-tabs-content > .e-con > .e-con:nth-child(2) .elementor-widget-heading:nth-child(2) .elementor-heading-title {
  color: #3b4a63 !important;
  font-weight: 500 !important;
  font-size: 14.5px !important;
  line-height: 1.72 !important;
}

/* ─── SECCIÓN DE PRODUCTOS DENTRO DE CADA TAB ──────────────── */
/* Tercer hijo del panel = "Productos recomendados" */
.elementor-page-37 .e-n-tabs-content > .e-con > .e-con:nth-child(3) {
  background: #ffffff !important;
  border: 2px solid var(--kw-border) !important;
  border-radius: 24px 6px 24px 6px !important;
  box-shadow: 0 2px 14px rgba(10,22,40,0.05) !important;
  padding: 28px !important;
  margin-top: 16px !important;
}

/* Título "Productos recomendados" */
.elementor-page-37 .e-n-tabs-content > .e-con > .e-con:nth-child(3) > .elementor-widget-heading .elementor-heading-title {
  color: var(--kw-navy) !important;
  font-weight: 900 !important;
  font-size: clamp(18px, 2vw, 23px) !important;
  letter-spacing: -0.01em !important;
  text-align: center !important;
}

/* ─── TARJETAS DE PRODUCTO (JetListing template 1130) ───────── */
/* Estilo asimétrico: esquinas grandes top-left + bottom-right */
.elementor-page-37 .jet-listing-grid__item {
  background: #ffffff !important;
  border: 2px solid var(--kw-blue-soft) !important;
  border-radius: 70px 6px 70px 6px !important;
  box-shadow: var(--kw-shadow) !important;
  overflow: hidden !important;
  transition: border-color 0.22s ease, box-shadow 0.22s ease, transform 0.22s ease !important;
}

.elementor-page-37 .jet-listing-grid__item:hover {
  border-color: var(--kw-blue) !important;
  box-shadow: var(--kw-shadow-h) !important;
  transform: translateY(-3px) !important;
}

/* Nombre del producto dentro de la tarjeta */
.elementor-page-37 .jet-listing-grid__item .jet-listing-dynamic-field__content {
  font-weight: 800 !important;
  color: var(--kw-navy) !important;
  font-size: 13px !important;
  text-align: center !important;
}

/* ─── SECCIÓN CTA (2cffbb2) ─────────────────────────────────── */
.elementor-page-37 .elementor-element-2cffbb2 {
  background-color: var(--kw-navy) !important;
  padding-top: 64px !important;
  padding-bottom: 64px !important;
}

/* Texto de la CTA */
.elementor-page-37 .elementor-element-239fdd4 .elementor-heading-title {
  color: #ffffff !important;
  font-weight: 800 !important;
  font-size: clamp(18px, 2.2vw, 26px) !important;
  letter-spacing: -0.01em !important;
  text-align: center !important;
  line-height: 1.45 !important;
}

/* Botón CTA — estilo asimétrico de marca */
.elementor-page-37 .elementor-element-93a1083 .elementor-button {
  background-color: var(--kw-blue) !important;
  color: #ffffff !important;
  border-radius: 24px 4px 24px 4px !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  padding: 13px 38px !important;
  border: none !important;
  box-shadow: 0 4px 14px rgba(26,86,219,0.4) !important;
  letter-spacing: 0.01em !important;
  transition: background-color 0.2s, box-shadow 0.2s, transform 0.2s !important;
}

.elementor-page-37 .elementor-element-93a1083 .elementor-button:hover {
  background-color: var(--kw-blue-h) !important;
  box-shadow: 0 6px 22px rgba(26,86,219,0.5) !important;
  transform: translateY(-1px) !important;
}

/* Centrar el wrapper del botón */
.elementor-page-37 .elementor-element-93a1083,
.elementor-page-37 .elementor-element-93a1083 .elementor-button-wrapper {
  text-align: center !important;
}

/* ─── RESPONSIVE — Soluciones ─────────────────────────────── */
@media (max-width: 768px) {
  .elementor-page-37 .elementor-element-46cce2c {
    min-height: 300px !important;
    border-radius: 0 0 28px 28px !important;
  }

  .elementor-page-37 .e-n-tabs-heading {
    gap: 6px !important;
    padding: 16px 12px !important;
  }

  .elementor-page-37 .e-n-tab-title {
    padding: 8px 16px !important;
    font-size: 12px !important;
  }

  .elementor-page-37 .e-n-tabs-content > .e-con {
    padding: 20px 12px !important;
  }

  .elementor-page-37 .e-n-tabs-content > .e-con > .e-con:nth-child(2) {
    border-radius: 6px 40px 6px 40px !important;
    padding: 16px !important;
  }

  .elementor-page-37 .e-n-tabs-content > .e-con > .e-con:nth-child(3) {
    padding: 18px !important;
    border-radius: 16px 4px 16px 4px !important;
  }

  .elementor-page-37 .jet-listing-grid__item {
    border-radius: 40px 4px 40px 4px !important;
  }

  .elementor-page-37 .elementor-element-2cffbb2 {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
}

/* ============================================================
   20. TB 1332 — DETALLE DE PRODUCTO — Identidad corporativa
   Aplica en frontend + editor Elementor Pro (.elementor-1332)
   Colors: navy #061736  cyan #53BBC7  text #393C61  blue #1B2A9D
   ============================================================ */

/* ---- PORTADA / HERO (b5f3b3b) ----
   El hero actual tiene min-height:20vh y solo muestra "Ficha del Producto".
   Lo convertimos en un eyebrow corporativo en cyan sobre dark navy.
   ----------------------------------------------------------- */
.elementor-1332 .elementor-element.elementor-element-b5f3b3b {
  --min-height: 100px !important;
  border-radius: 0 !important;
  padding-top: 28px !important;
  padding-bottom: 0 !important;
}
/* Quitar el overlay gradient que oscurece el fondo navy */
.elementor-1332 .elementor-element.elementor-element-b5f3b3b::before {
  display: none !important;
}
/* "Ficha del Producto" → etiqueta eyebrow estilo corporativo */
.elementor-1332 .elementor-element.elementor-element-e0730ba .elementor-heading-title {
  display: inline-block !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 4px !important;
  text-transform: uppercase !important;
  color: #53BBC7 !important;
  padding: 6px 20px !important;
  background: rgba(83, 187, 199, 0.12) !important;
  border: 1px solid rgba(83, 187, 199, 0.35) !important;
  border-radius: 50px !important;
}

/* ---- SECCIÓN INFO DE PRODUCTO (7f249ae) ----
   FONDO BLANCO igual a producción. Solo el hero es oscuro.
   ----------------------------------------------------------- */
.elementor-1332 .elementor-element.elementor-element-7f249ae {
  background: #FFFFFF !important;
  padding-top: 48px !important;
  padding-bottom: 72px !important;
  border-radius: 0 !important;
}

/* Nombre del producto → dark navy grande */
.elementor-1332 .elementor-element.elementor-element-35aca3b .jet-listing-dynamic-field__content {
  color: #061736 !important;
  font-size: 36px !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
}

/* Icono de categoría → cyan */
.elementor-1332 .elementor-element.elementor-element-6c4a313 .jet-listing-dynamic-field__content,
.elementor-1332 .elementor-element.elementor-element-6c4a313 .jet-listing-dynamic-field__icon {
  color: #53BBC7 !important;
}
.elementor-1332 .elementor-element.elementor-element-6c4a313 .jet-listing-dynamic-field__icon :is(svg, path) {
  fill: #53BBC7 !important;
}

/* Nombre de categoría → texto oscuro */
.elementor-1332 .elementor-element.elementor-element-c4845c6 .jet-listing-dynamic-field__content {
  color: #393C61 !important;
  font-size: 13px !important;
}

/* Fabricante/Marca → navy oscuro */
.elementor-1332 .elementor-element.elementor-element-ba57a72 .jet-listing-dynamic-field__content,
.elementor-1332 .elementor-element.elementor-element-f574b18 .jet-listing-dynamic-field__content {
  color: #061736 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
}

/* Descripción breve → gris legible */
.elementor-1332 .elementor-element.elementor-element-5d64fa4 .jet-listing-dynamic-field__content {
  color: #4B5568 !important;
  font-size: 15px !important;
  line-height: 1.7 !important;
}

/* Divider → línea sutil sobre fondo blanco */
.elementor-1332 .elementor-element.elementor-element-fa57a34 {
  --divider-color: #E4EAF4 !important;
}
.elementor-1332 .elementor-element.elementor-element-fa57a34 .elementor-divider-separator {
  width: 100% !important;
}

/* Label "Solución" pequeño → gris */
.elementor-1332 .elementor-element.elementor-element-367d4e7 .elementor-heading-title {
  color: #9CA3AF !important;
  font-size: 10px !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
}

/* Imagen principal del producto — tarjeta clara con sombra */
.elementor-1332 .elementor-element.elementor-element-389b159 .jet-listing-dynamic-image a {
  background: #F8FAFD !important;
  border-radius: 20px !important;
  padding: 20px !important;
  display: flex !important;
  justify-content: center !important;
  border: 1px solid #E4EAF4 !important;
}
.elementor-1332 .elementor-element.elementor-element-389b159 img {
  border-radius: 12px !important;
  box-shadow: 0 8px 32px rgba(6, 23, 54, 0.1) !important;
}

/* Thumbnails gallery — borde claro */
.elementor-1332 .elementor-element.elementor-element-ebcce2c img {
  border-radius: 10px !important;
  border: 2px solid #E4EAF4 !important;
  background: #F8FAFD !important;
  padding: 3px !important;
  transition: border-color 0.2s !important;
}
.elementor-1332 .elementor-element.elementor-element-ebcce2c img:hover {
  border-color: #53BBC7 !important;
}

/* WhatsApp link → verde sobre blanco */
.elementor-1332 .elementor-element.elementor-element-5c96d0c .jet-listing-dynamic-link__link {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 10px 22px !important;
  background: rgba(46, 204, 64, 0.07) !important;
  border-radius: 50px !important;
  border: 1.5px solid rgba(46, 204, 64, 0.35) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #1a9e2a !important;
  text-decoration: none !important;
  transition: all 0.2s !important;
}
.elementor-1332 .elementor-element.elementor-element-5c96d0c .jet-listing-dynamic-link__link:hover {
  background: rgba(46, 204, 64, 0.14) !important;
}
.elementor-1332 .elementor-element.elementor-element-5c96d0c .jet-listing-dynamic-link__icon {
  color: #1a9e2a !important;
  font-size: 20px !important;
}
.elementor-1332 .elementor-element.elementor-element-5c96d0c .jet-listing-dynamic-link__icon :is(svg, path) {
  fill: #1a9e2a !important;
}

/* Botón "Solicita cotización" → navy sólido pill (igual a producción) */
.elementor-1332 .elementor-element.elementor-element-8d83e21 .elementor-button {
  background-color: #061736 !important;
  border-radius: 50px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  padding: 14px 36px !important;
  color: #FFFFFF !important;
  fill: #FFFFFF !important;
  box-shadow: 0 6px 20px rgba(6, 23, 54, 0.22) !important;
  transition: all 0.22s !important;
}
.elementor-1332 .elementor-element.elementor-element-8d83e21 .elementor-button:hover {
  background-color: #0c2150 !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 8px 28px rgba(6, 23, 54, 0.35) !important;
}

/* ---- FUNCIONES PRINCIPALES (1c5f242) ----
   Ya tiene fondo dark navy. Solo afinamos heading y añadimos
   tarjetas sutiles a cada feature.
   ----------------------------------------------------------- */
.elementor-1332 .elementor-element.elementor-element-5465574 .elementor-heading-title {
  font-size: 28px !important;
  font-weight: 800 !important;
  letter-spacing: -0.3px !important;
  color: #FFFFFF !important;
}
/* Card de cada feature del repeater */
.elementor-1332 .jet-listing-dynamic-repeater__item {
  background: rgba(255, 255, 255, 0.05) !important;
  border-radius: 16px !important;
  border: 1px solid rgba(83, 187, 199, 0.15) !important;
  padding: 22px 16px !important;
  transition: background 0.22s, border-color 0.22s !important;
}
.elementor-1332 .jet-listing-dynamic-repeater__item:hover {
  background: rgba(83, 187, 199, 0.09) !important;
  border-color: rgba(83, 187, 199, 0.38) !important;
}

/* ---- TABS / DETALLES (4082dbe, f8c5e37) ----
   Fondo blanco suave, tabs con identidad corporativa navy/cyan.
   ----------------------------------------------------------- */
.elementor-1332 .elementor-element.elementor-element-4082dbe {
  background-color: #F8FAFD !important;
  padding-top: 60px !important;
  padding-bottom: 60px !important;
}
/* Tab activo → dark navy */
.elementor-1332 .e-n-tabs .e-n-tab-title[aria-selected="true"] {
  background-color: #061736 !important;
  color: #FFFFFF !important;
  border-color: #061736 !important;
  box-shadow: 0 4px 16px rgba(6, 23, 54, 0.25) !important;
}
/* Tab inactivo → contorno navy */
.elementor-1332 .e-n-tabs .e-n-tab-title[aria-selected="false"] {
  background-color: transparent !important;
  color: #061736 !important;
  border: 2px solid #061736 !important;
}
/* Tab inactivo hover → cyan corporativo */
.elementor-1332 .e-n-tabs .e-n-tab-title[aria-selected="false"]:hover {
  background-color: #53BBC7 !important;
  border-color: #53BBC7 !important;
  color: #FFFFFF !important;
}

/* ---- PRODUCTOS RECOMENDADOS (2e27f21) ---- */
.elementor-1332 .elementor-element.elementor-element-2e27f21 {
  background-color: #FFFFFF !important;
  padding-top: 60px !important;
  padding-bottom: 60px !important;
}
.elementor-1332 .elementor-element.elementor-element-3e23bed .elementor-heading-title {
  color: #061736 !important;
  font-size: 28px !important;
  font-weight: 800 !important;
  letter-spacing: -0.3px !important;
}
/* Cards de productos relacionados */
.elementor-1332 .elementor-element.elementor-element-2e27f21 .jet-listing-grid__item {
  background: #FFFFFF !important;
  border-radius: 16px !important;
  border: 1px solid #E4EAF4 !important;
  overflow: hidden !important;
  box-shadow: 0 2px 12px rgba(6, 23, 54, 0.07) !important;
  transition: box-shadow 0.25s, transform 0.25s !important;
}
.elementor-1332 .elementor-element.elementor-element-2e27f21 .jet-listing-grid__item:hover {
  box-shadow: 0 8px 32px rgba(6, 23, 54, 0.14) !important;
  transform: translateY(-3px) !important;
}

/* ---- CTA CONTACTO (f9c17bf) ---- */
.elementor-1332 .elementor-element.elementor-element-f9c17bf {
  background: linear-gradient(135deg, #061736 0%, #1B2A9D 100%) !important;
  border-radius: 24px !important;
}
.elementor-1332 .elementor-element.elementor-element-d5e38b5 .elementor-heading-title {
  font-size: 26px !important;
  font-weight: 800 !important;
  color: #FFFFFF !important;
  line-height: 1.3 !important;
}
.elementor-1332 .elementor-element.elementor-element-6fa19bd .elementor-button {
  background: #FFFFFF !important;
  color: #061736 !important;
  border-radius: 50px !important;
  font-family: "Poppins - Kiwatec", Sans-serif !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  padding: 14px 40px !important;
  border: none !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18) !important;
  transition: all 0.22s !important;
}
.elementor-1332 .elementor-element.elementor-element-6fa19bd .elementor-button:hover {
  background: #53BBC7 !important;
  color: #FFFFFF !important;
}

/* ---- RESPONSIVE MÓVIL (TB 1332) ---- */
@media (max-width: 767px) {
  /* Tabs nav horizontal scroll en mobile — evita que los botones salten a 2da línea */
  .elementor-1332 .e-n-tabs-heading {
    overflow-x: auto !important;
    flex-wrap: nowrap !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 4px !important;
  }
  .elementor-1332 .e-n-tabs-heading::-webkit-scrollbar {
    display: none;
  }

  .elementor-1332 .elementor-element.elementor-element-35aca3b .jet-listing-dynamic-field__content {
    font-size: 26px !important;
  }
  .elementor-1332 .elementor-element.elementor-element-7f249ae {
    padding-bottom: 48px !important;
  }
  .elementor-1332 .elementor-element.elementor-element-5465574 .elementor-heading-title {
    font-size: 22px !important;
  }
  .elementor-1332 .elementor-element.elementor-element-3e23bed .elementor-heading-title {
    font-size: 22px !important;
  }
  .elementor-1332 .elementor-element.elementor-element-d5e38b5 .elementor-heading-title {
    font-size: 20px !important;
  }
  .elementor-1332 .elementor-element.elementor-element-f9c17bf {
    border-radius: 16px !important;
  }
}
