/*
 Theme Name:   Hello Elementor LAB NAVE
 Theme URI:    https://labnave.com
 Description:  Child theme de Hello Elementor para LAB NAVE. Incluye optimizaciones de rendimiento, tipografía, accesibilidad y correcciones de SEO.
 Author:       Antigravity AI
 Author URI:   https://labnave.com
 Template:     hello-elementor
 Version:      1.1.0
 Text Domain:  hello-elementor-labnave
 Tags:         elementor, performance, labnave
*/

/* ================================================
   1. FUENTES – Inter local en WOFF2
   ================================================ */
@font-face {
  font-family: 'Inter';
  src: url('./assets/fonts/inter-variable.woff2') format('woff2');
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
}

@font-face {
  font-family: 'Plus Jakarta Sans';
  src: url('./assets/fonts/plus-jakarta-sans-latin.woff2') format('woff2');
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
}

@font-face {
  font-family: 'Manrope';
  src: url('./assets/fonts/manrope-variable.woff2') format('woff2');
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
}

/* ================================================
   2. VARIABLES CSS DEL SISTEMA DE DISEÑO LAB NAVE
   ================================================ */
:root {
  /* Colores */
  --labnave-black:    #0a0a0a;
  --labnave-white:    #ffffff;
  --labnave-accent:   #e8ff00;   /* Amarillo/verde LAB NAVE */
  --labnave-gray-100: #f5f5f5;
  --labnave-gray-200: #e0e0e0;
  --labnave-gray-500: #9e9e9e;
  --labnave-gray-700: #424242;
  --labnave-gray-900: #1a1a1a;

  /* Tipografía */
  --font-sans:    'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-size-xs: clamp(0.75rem, 1.5vw, 0.875rem);
  --font-size-sm: clamp(0.875rem, 1.8vw, 1rem);
  --font-size-md: clamp(1rem, 2vw, 1.125rem);
  --font-size-lg: clamp(1.25rem, 2.5vw, 1.5rem);
  --font-size-xl: clamp(1.5rem, 3vw, 2rem);
  --font-size-2xl: clamp(2rem, 4vw, 3rem);
  --font-size-3xl: clamp(2.5rem, 5vw, 4rem);

  /* Espaciado */
  --space-xs: 0.5rem;
  --space-sm: 1rem;
  --space-md: 1.5rem;
  --space-lg: 2rem;
  --space-xl: 3rem;
  --space-2xl: 5rem;

  /* Bordes */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 16px;
  --radius-full: 9999px;

  /* Sombras */
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.12);
  --shadow-md: 0 4px 16px rgba(0,0,0,0.1);
  --shadow-lg: 0 8px 32px rgba(0,0,0,0.15);

  /* Transiciones */
  --transition-fast: 150ms ease;
  --transition-base: 250ms ease;
  --transition-slow: 400ms ease;
}

/* ================================================
   3. RESET Y BASE GLOBAL OPTIMIZADA
   ================================================ */
*, *::before, *::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font-sans);
  font-size: var(--font-size-md);
  line-height: 1.65;
  color: var(--labnave-gray-900);
  background-color: var(--labnave-white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

html,
body {
  max-width: 100%;
}

/* ================================================
   4. ACCESIBILIDAD
   ================================================ */
:focus-visible {
  outline: 3px solid #111;
  outline-offset: 3px;
  border-radius: var(--radius-sm);
  box-shadow: 0 0 0 5px var(--labnave-accent);
  scroll-margin-block: 80px;
}

.skip-link {
  position: absolute;
  top: -100%;
  left: 1rem;
  z-index: 9999;
  background: var(--labnave-black);
  color: var(--labnave-white);
  padding: 0.75rem 1.5rem;
  border-radius: var(--radius-md);
  font-weight: 600;
  transition: top var(--transition-fast);
}

.skip-link:focus {
  top: 1rem;
}

/* ================================================
   5. TIPOGRAFÍA OPTIMIZADA
   ================================================ */
h1, .labnave-main-h1 {
  font-family: var(--font-sans);
  font-size: var(--font-size-3xl);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--labnave-black);
}

h2 { font-size: var(--font-size-2xl); font-weight: 700; line-height: 1.2; }
h3 { font-size: var(--font-size-xl);  font-weight: 600; line-height: 1.3; }
h4 { font-size: var(--font-size-lg);  font-weight: 600; }
h5 { font-size: var(--font-size-md);  font-weight: 600; }
h6 { font-size: var(--font-size-sm);  font-weight: 600; }

p {
  max-width: 72ch;
  margin-bottom: var(--space-sm);
}

/* ================================================
   6. IMÁGENES – PREVENIR CLS
   ================================================ */
img, video, iframe {
  max-width: 100%;
  height: auto;
  display: block;
}

img[width][height] {
  aspect-ratio: attr(width) / attr(height);
}

/* ================================================
   7. LINKS Y BOTONES
   ================================================ */
a {
  color: inherit;
  text-decoration: none;
  transition: color var(--transition-fast);
}

/* ================================================
   8. CORRECCIONES ELEMENTOR
   ================================================ */

/* Eliminar padding excesivo en secciones móvil */
@media (max-width: 767px) {
  .elementor-section .elementor-container {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  .elementor-widget-heading .elementor-heading-title {
    font-size: clamp(1.75rem, 6vw, 2.5rem) !important;
  }
}

/* ================================================
   12. IMÁGENES Y FORMULARIOS – CORRECCIÓN LAB NAVE
   ================================================ */

/* Mantener siempre la relación de aspecto nativa. Elementor y los addons
 * pueden escribir width/height distintos al cambiar de breakpoint. */
.elementor-widget-image img,
.elementor-widget-image-box img,
.elementor-widget-icon-box img,
.elementor-widget-jkit_icon_box img,
.jeg-elementor-kit.jkit-icon-box img,
.jeg-elementor-kit.jkit-image-box img,
.premium-addon-flip-box img {
  max-width: 100%;
  height: auto !important;
  aspect-ratio: auto !important;
  object-fit: contain;
  object-position: center;
  transform-origin: center center;
  backface-visibility: hidden;
}

/* Las imágenes con movimiento conservan el repintado suave sin alterar su
 * geometría ni bloquear los transforms que calcula Elementor al hacer scroll. */
.elementor-motion-effects-element,
.elementor-motion-effects-layer,
.premium-floating-effects-yes {
  transform-origin: center center;
}

/* El formulario de Servicios estaba dentro de contenedores que lo recortaban
 * y podía quedar detrás de la capa visual de la sección. */
.elementor-widget-form,
.elementor-widget-metform,
.metform-form-content,
.metform-form-container {
  position: relative;
  z-index: 20;
  overflow: visible !important;
}

.elementor-page .e-con:has(.elementor-widget-form),
.elementor-page .e-con:has(.elementor-widget-metform),
.elementor-page .e-con:has(.metform-form-content) {
  position: relative;
  z-index: 2;
  overflow: visible !important;
}

/* Corrección del contenedor de formulario identificado en Servicios. */
.elementor-89 .elementor-element-121f5d4,
.elementor-6 .elementor-element-568d41b9 {
  overflow: visible !important;
}

/* Servicios: se respeta la proporción nativa, pero las piezas visuales bajo
 * cada número vuelven a ocupar el espacio para el que fueron diseñadas. */
.elementor-450 .elementor-element-ad8eba1 img,
.elementor-450 .elementor-element-1c43995 img,
.elementor-450 .elementor-element-aa5404f img,
.elementor-450 .elementor-element-373d8e9 img,
.elementor-450 .elementor-element-f0c63ce img {
  /* Elementor limitaba el archivo al ancho interno de un widget pequeño. */
  width: min(850px, 82vw) !important;
  max-width: none !important;
  height: auto !important;
}

/* CTA final de Servicios: la ilustración es absoluta; se define un lienzo
 * propio para que no desplace los botones ni deje un vacío entre elementos. */
.elementor-450 .elementor-element-02c25a9 {
  position: relative;
  min-height: 430px;
  align-items: center;
  overflow: visible !important;
}

.elementor-450 .elementor-element-b73216c {
  position: relative;
  z-index: 2;
  justify-content: center;
}

.elementor-450 .elementor-element-72a01c7 {
  position: relative;
  min-height: 430px;
  overflow: visible !important;
}

.elementor-450 .elementor-element-ea5ee81 {
  top: 50px !important;
  right: auto !important;
  bottom: auto !important;
  left: 8% !important;
  z-index: 1;
}

.elementor-450 .elementor-element-ea5ee81 img {
  width: min(100%, 410px) !important;
  height: auto !important;
}

@media (max-width: 767px) {
  .elementor-450 .elementor-element-02c25a9,
  .elementor-450 .elementor-element-72a01c7 {
    min-height: auto;
  }

  .elementor-450 .elementor-element-72a01c7 {
    min-height: 290px;
  }

  .elementor-450 .elementor-element-ea5ee81 {
    top: 10px !important;
    left: 50% !important;
  }

  .elementor-450 .elementor-element-ad8eba1 img,
  .elementor-450 .elementor-element-1c43995 img,
  .elementor-450 .elementor-element-aa5404f img,
  .elementor-450 .elementor-element-373d8e9 img,
  .elementor-450 .elementor-element-f0c63ce img {
    width: min(560px, 82vw) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .elementor-motion-effects-element,
  .elementor-motion-effects-layer,
  .premium-floating-effects-yes {
    will-change: auto;
  }
}

/* Eliminar overhead de animaciones en bajo rendimiento */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .animated,
  .animated-slow,
  .elementor-invisible,
  .elementor-motion-effects-element,
  .elementor-motion-effects-layer,
  .premium-floating-effects-yes {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .elementor-background-video-container,
  .elementor-background-video-embed {
    display: none !important;
  }
}

/* ================================================
   9. UTILIDADES SEO / H1
   ================================================ */
.labnave-main-h1 {
  font-size: clamp(2rem, 5vw, 3.5rem) !important;
  font-weight: 700;
  line-height: 1.15;
  margin-bottom: 1.5rem;
  letter-spacing: -0.02em;
}

.labnave-visually-hidden-title {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* ================================================
   10. BOTONES LAB NAVE
   ================================================ */
.btn-gradient-border {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  color: var(--labnave-black) !important;
  background:
    linear-gradient(var(--labnave-white), var(--labnave-white)) padding-box,
    linear-gradient(90deg, #2cff00, #a4ff00, #7b61ff, #ff00c8, #ff3c00) border-box !important;
  border: 3px solid transparent !important;
}

.btn-gradient-border .jeg-elementor-kit,
.btn-gradient-border .jkit-button,
.btn-gradient-border .jkit-button-wrapper,
.btn-gradient-border .elementor-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  text-align: center !important;
  color: var(--labnave-black) !important;
  background: transparent !important;
}

.btn-gradient-border .jkit-button-wrapper,
.btn-gradient-border .elementor-button {
  gap: 0.35em;
}

.elementor-6 .elementor-element-7e4b326 .jkit-button-wrapper {
  padding-inline: clamp(0.875rem, 2vw, 1.25rem) !important;
  font-size: clamp(0.75rem, 3.8vw, 0.96875rem) !important;
  white-space: nowrap;
}

@media (max-width: 359px) {
  .elementor-6 .elementor-element-7e4b326 .jkit-button-wrapper {
    padding-inline: 0.75rem !important;
    font-size: 0.71875rem !important;
  }
}

.btn-gradient-border i,
.btn-gradient-border svg,
.btn-gradient-border .elementor-button-icon,
.btn-gradient-border .icon-colored {
  color: currentColor !important;
  fill: currentColor !important;
}

/* ================================================
   11. MEJORAS DE RENDIMIENTO VISUAL
   ================================================ */

/* Contener el repaint de elementos de scroll */
.elementor-section {
  contain: none;
}

/* Optimizar renderizado de imágenes de portafolio */
.portfolio-awesome-item img {
  content-visibility: auto;
  contain-intrinsic-size: 300px 200px;
}

.site-main .elementor-widget-text-editor a:not(.elementor-button) {
  text-decoration: underline;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.15em;
}

.elementor-6 :is(
  .elementor-element-9784bb4,
  .elementor-element-75705117,
  .elementor-element-3051706d,
  .elementor-element-674e2844,
  .elementor-element-732b33fc,
  .elementor-element-cf4d807
) :is(.elementor-button, .jkit-button-wrapper) {
  color: #fff !important;
}

.elementor-6 :is(
  .elementor-element-9784bb4,
  .elementor-element-75705117,
  .elementor-element-3051706d,
  .elementor-element-674e2844,
  .elementor-element-732b33fc,
  .elementor-element-cf4d807
) :is(i, svg, .icon-colored) {
  color: #fff !important;
  fill: #fff !important;
}

@media (max-width: 767px) {
  .animated,
  .animated-slow,
  .elementor-motion-effects-element,
  .elementor-motion-effects-layer,
  .premium-floating-effects-yes {
    animation: none !important;
    transform: none !important;
    transition-duration: 0.01ms !important;
  }

  .elementor-background-video-container,
  .elementor-background-video-embed {
    display: none !important;
  }
}

/* ================================================
   13. SISTEMA RESPONSIVE GLOBAL
   ================================================ */

.elementor-widget-premium-post-ticker,
.premium-post-ticker,
.premium-post-ticker__outer-wrapper,
.premium-post-ticker__content,
.premium-post-ticker__posts-wrapper,
.premium-post-ticker__posts-wrapper .slick-list {
  max-width: 100%;
  overflow: hidden;
}

.elementor-249 .elementor-element.elementor-element-80dd97c,
.elementor-253 .elementor-element.elementor-element-6d9e8f2b {
  overflow: hidden !important;
}

.premium-post-ticker__post-title,
.premium-post-ticker__post-title a,
.elementor-heading-title,
.jkit-heading .heading-title,
.elementor-widget-text-editor,
.elementor-widget-text-editor p {
  overflow-wrap: anywhere;
}

.elementor-button,
.jkit-button-wrapper,
.jkit-button,
.metform-btn,
button,
input[type='submit'] {
  min-height: 44px;
}

.elementor-field,
.mf-input,
.mf-input-wrapper input,
.mf-input-wrapper select,
.mf-input-wrapper textarea {
  min-height: 44px;
}

.elementor-social-icon {
  min-width: 44px;
  min-height: 44px;
}

@media (max-width: 1100px) {
  .elementor-6 .elementor-element.elementor-element-2443be3f {
    padding-top: clamp(56px, 9vw, 84px) !important;
    padding-bottom: clamp(56px, 9vw, 84px) !important;
  }

  .elementor-6 .elementor-element.elementor-element-68a68e68 .heading-title {
    font-size: clamp(2rem, 6vw, 4rem) !important;
    line-height: 1.08 !important;
  }

  .elementor-6 .elementor-element.elementor-element-5b55c2e6 .heading-title,
  .elementor-6 .elementor-element.elementor-element-5b55c2e6 .heading-title > span {
    font-size: clamp(2.5rem, 8vw, 5.5rem) !important;
    line-height: 1.02 !important;
  }

  .elementor-6 .elementor-element.elementor-element-2443be3f .elementor-invisible,
  .elementor-6 .elementor-element.elementor-element-2443be3f .animated,
  .elementor-6 .elementor-element.elementor-element-2443be3f .animated-slow {
    visibility: visible !important;
    opacity: 1 !important;
    animation: none !important;
    transform: none !important;
  }

  .elementor-6 .elementor-element.elementor-element-109e5b39,
  .elementor-6 .elementor-element.elementor-element-74d7256a {
    overflow: visible !important;
  }

  .elementor-6 .elementor-element.elementor-element-bd19b6f {
    display: none !important;
  }

  .elementor-6 .elementor-element.elementor-element-7e4b326 {
    width: min(100%, 390px) !important;
    max-width: 390px !important;
    padding: 0 !important;
  }

  .elementor-6 .elementor-element.elementor-element-7e4b326 .jkit-button-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    padding: 12px 14px !important;
    justify-content: center;
  }

  .elementor-6 .elementor-element.elementor-element-fe2475c {
    width: min(100%, 420px) !important;
    max-width: 420px !important;
  }

  .elementor-6 .elementor-element.elementor-element-fe2475c .jkit-button-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    padding: 12px 14px !important;
    justify-content: center;
  }

  .elementor-location-header .jkit-nav-menu:is(.break-point-tablet, .break-point-laptop) .jkit-hamburger-menu {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 60px;
    min-height: 54px;
  }

  .elementor-location-header .jkit-nav-menu:is(.break-point-tablet, .break-point-laptop) .jkit-menu-wrapper {
    position: fixed;
    top: 0;
    left: -110%;
    z-index: 100001;
    display: flex;
    flex-direction: column-reverse;
    justify-content: flex-end;
    width: min(360px, 100vw);
    max-width: 100vw;
    height: 100dvh !important;
    overflow-x: hidden;
    overflow-y: auto;
    background: var(--labnave-white);
    transition: left 300ms ease;
  }

  .elementor-location-header .jkit-nav-menu:is(.break-point-tablet, .break-point-laptop) .jkit-menu-wrapper.active {
    left: 0 !important;
  }

  .elementor-location-header .jkit-nav-menu:is(.break-point-tablet, .break-point-laptop) .jkit-menu-container,
  .elementor-location-header .jkit-nav-menu:is(.break-point-tablet, .break-point-laptop) .jkit-menu,
  .elementor-location-header .jkit-nav-menu:is(.break-point-tablet, .break-point-laptop) .jkit-menu > li {
    display: block;
    width: 100%;
  }

  .elementor-location-header .jkit-nav-menu:is(.break-point-tablet, .break-point-laptop) .jkit-menu > li > a {
    display: flex;
    align-items: center;
    min-height: 48px;
    padding: 9px 24px;
  }

  .elementor-location-header .jkit-nav-menu:is(.break-point-tablet, .break-point-laptop) .menu-item-has-children {
    position: relative !important;
  }

  .elementor-location-header .jkit-nav-menu:is(.break-point-tablet, .break-point-laptop) .menu-item-has-children > a {
    padding-right: 72px;
  }

  .elementor-location-header .labnave-submenu-toggle {
    position: absolute;
    top: 0;
    right: 12px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    min-width: 48px;
    height: 48px;
    padding: 0;
    border: 0;
    background: transparent;
    color: currentColor;
    cursor: pointer;
  }

  .elementor-location-header .labnave-submenu-toggle::before {
    width: 9px;
    height: 9px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    content: '';
    transform: translateY(-2px) rotate(45deg);
    transition: transform 180ms ease;
  }

  .elementor-location-header .labnave-submenu-toggle[aria-expanded='true']::before {
    transform: translateY(2px) rotate(225deg);
  }

  .elementor-location-header .jkit-nav-menu:is(.break-point-tablet, .break-point-laptop) .menu-item-has-children > .sub-menu {
    position: static !important;
    display: none !important;
    width: 100% !important;
    margin: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }

  .elementor-location-header .jkit-nav-menu:is(.break-point-tablet, .break-point-laptop) .menu-item-has-children.labnave-submenu-open > .sub-menu {
    display: block !important;
  }

  .elementor-location-header .jkit-nav-menu:is(.break-point-tablet, .break-point-laptop) .jkit-nav-identity-panel {
    min-height: 72px;
  }

  .elementor-location-header .jkit-nav-menu:is(.break-point-tablet, .break-point-laptop) .jkit-close-menu,
  .elementor-location-header .jkit-nav-menu:is(.break-point-tablet, .break-point-laptop) .jkit-nav-logo {
    min-width: 48px;
    min-height: 48px;
  }

  .elementor-page .e-con-boxed > .e-con-inner {
    padding-right: clamp(20px, 3vw, 32px);
    padding-left: clamp(20px, 3vw, 32px);
  }

  .elementor-widget-premium-post-ticker .premium-post-ticker__post-title a {
    font-size: clamp(1.875rem, 8vw, 5rem) !important;
    line-height: 1.05 !important;
  }

  .elementor-widget-premium-post-ticker .premium-post-ticker__icon-wrapper img,
  .elementor-widget-premium-post-ticker .premium-post-ticker__icon-wrapper svg,
  .elementor-widget-premium-post-ticker .premium-post-ticker__icon-wrapper .premium-lottie-animation,
  .elementor-widget-premium-post-ticker .premium-post-ticker__icon-wrapper .premium-drawable-icon {
    width: clamp(52px, 11vw, 110px) !important;
    height: auto !important;
    max-height: 110px;
    line-height: 1 !important;
  }

  .jkit-readmore {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }

  .swiper-pagination-bullet {
    min-width: 24px;
    min-height: 24px;
  }
}

@media (min-width: 1101px) {
  .elementor-location-header .labnave-submenu-toggle {
    display: none;
  }
}

@media (min-width: 768px) and (max-width: 1100px) {
  .elementor-page .elementor-widget-image.elementor-absolute {
    width: min(48vw, 500px) !important;
    max-width: 48vw !important;
  }

  .elementor-page .elementor-widget-image.elementor-absolute img {
    width: 100% !important;
    max-width: 100% !important;
  }
}

@media (max-width: 767px) {
  .elementor-page .e-con-boxed > .e-con-inner {
    padding-right: 16px;
    padding-left: 16px;
  }

  .elementor-location-header .elementor-widget-image a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }

  .elementor-button,
  .jkit-button-wrapper,
  .jkit-button,
  .metform-btn {
    max-width: 100%;
    white-space: normal;
  }

  .jkit-button-wrapper {
    box-sizing: border-box;
    width: fit-content;
    max-width: calc(100vw - 32px) !important;
    padding-right: 16px !important;
    padding-left: 16px !important;
  }

  .elementor-field,
  .mf-input,
  .mf-input-wrapper input,
  .mf-input-wrapper select,
  .mf-input-wrapper textarea {
    width: 100%;
    max-width: 100%;
    font-size: 16px !important;
  }

  .elementor-form .elementor-field-group,
  .metform-form-content .mf-input-wrapper {
    min-width: 0;
  }

  .elementor-widget-premium-post-ticker .premium-post-ticker__post-wrapper {
    column-gap: 10px !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  .elementor-location-footer .heading-title {
    font-size: max(14px, 0.875rem) !important;
  }

  .elementor-location-footer a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }

  .elementor-form input[type='radio'] + label,
  .elementor-form input[type='checkbox'] + label,
  .metform-form-content input[type='radio'] + label,
  .metform-form-content input[type='checkbox'] + label {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }

  .elementor-255 .elementor-element.elementor-element-3e52f844,
  .elementor-257 .elementor-element.elementor-element-3cb54e24 {
    right: -24px !important;
    left: auto !important;
    width: min(48vw, 190px) !important;
    max-width: 48vw !important;
  }

  .elementor-255 .elementor-element.elementor-element-3e52f844 img,
  .elementor-257 .elementor-element.elementor-element-3cb54e24 img {
    width: 100% !important;
    max-width: 100% !important;
  }
}

@media (pointer: coarse) {
  a.elementor-button,
  a.jkit-button-wrapper,
  .jkit-menu a,
  .swiper-pagination-bullet {
    min-height: 44px;
  }
}

/* ================================================
   PÁGINAS DE GRACIAS Y POLÍTICA DE PRIVACIDAD
   ================================================ */
.page-id-3 .page-header,
.page-id-47072 .page-header {
  display: none !important;
}

.page-id-3 main.site-main,
.page-id-47072 main.site-main {
  width: 100%;
  max-width: none;
  margin: 0;
}

.page-id-47072 main.site-main {
  display: grid;
  min-height: calc(100svh - 52px);
  padding: clamp(32px, 6vw, 72px) 20px;
  place-items: center;
}

.page-id-47072 .page-content,
.page-id-47072 .elementor-47072 {
  width: 100%;
}

.page-id-47072 .elementor-47072 > .e-con {
  min-height: 0;
  padding: 0 !important;
}

.page-id-47072 .elementor-47072 > .e-con > .e-con-inner {
  width: min(100%, 720px);
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}

.page-id-47072 .elementor-47072 .elementor-heading-title {
  max-width: 680px;
  margin-inline: auto;
  font-size: clamp(2rem, 4vw, 3rem) !important;
  line-height: 1.05 !important;
  text-align: center !important;
  text-wrap: balance;
}

.page-id-47072 .elementor-47072 .elementor-widget-text-editor {
  margin-top: 12px;
  color: #5f6368;
  font-size: clamp(1rem, 1.8vw, 1.125rem);
  line-height: 1.65;
  text-align: center !important;
}

.page-id-47072 .elementor-47072 .elementor-widget-text-editor p {
  margin: 0;
  text-align: center !important;
}

.page-id-47072 .elementor-47072 .elementor-widget-button {
  margin-top: 24px;
  text-align: center !important;
}

.page-id-3 .elementor-3 > .e-con {
  padding: clamp(56px, 8vw, 96px) 24px !important;
}

.page-id-3 .elementor-3 > .e-con > .e-con-inner {
  width: min(100%, 780px);
  max-width: 780px;
  margin: 0 auto;
}

.page-id-3 .elementor-3 .elementor-widget-heading .elementor-heading-title {
  margin: 0 auto clamp(28px, 5vw, 48px);
  font-size: clamp(2.25rem, 5vw, 3.5rem) !important;
  line-height: 1.05 !important;
  text-align: center !important;
  text-wrap: balance;
}

.page-id-3 .elementor-3 .elementor-widget-text-editor {
  color: #41464d;
  font-size: 1rem;
  line-height: 1.75;
}

.page-id-3 .elementor-3 .elementor-widget-text-editor > :first-child {
  margin-top: 0;
}

.page-id-3 .elementor-3 .elementor-widget-text-editor > p:first-child {
  max-width: 650px;
  margin: 0 auto 48px;
  color: #5f6368;
  font-size: 1.125rem;
  text-align: center;
}

.page-id-3 .elementor-3 .elementor-widget-text-editor h2 {
  margin: 40px 0 12px !important;
  font-size: clamp(1.25rem, 2.4vw, 1.5rem) !important;
  line-height: 1.25 !important;
  text-align: left !important;
}

.page-id-3 .elementor-3 .elementor-widget-text-editor p {
  margin: 0 0 18px;
  text-align: left !important;
}

.page-id-3 .elementor-3 .elementor-widget-text-editor a[href^="mailto:"],
.page-id-3 .elementor-3 .elementor-widget-text-editor a[href^="tel:"] {
  font-size: 1.08em !important;
  font-weight: 600;
  line-height: inherit !important;
  letter-spacing: normal;
  overflow-wrap: anywhere;
}

@media (max-width: 600px) {
  .page-id-47072 main.site-main {
    min-height: calc(100svh - 64px);
  }

  .page-id-3 .elementor-3 > .e-con {
    padding-inline: 20px !important;
  }

  .page-id-3 .elementor-3 .elementor-widget-text-editor > p:first-child {
    margin-bottom: 36px;
  }
}

/* ================================================
   FOOTER: CONSENTIMIENTO Y TÍTULOS RESPONSIVE
   ================================================ */
.elementor-73 .elementor-field-group-nl_consent label a {
  color: inherit;
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
  text-decoration: underline;
}

.elementor-73 .elementor-element.elementor-element-688ba117 .elementor-heading-title,
.elementor-73 .elementor-element.elementor-element-3afe20af .elementor-heading-title,
.elementor-73 .elementor-element.elementor-element-9da52f3 .elementor-heading-title,
.elementor-73 .elementor-element.elementor-element-63e31a7d .elementor-heading-title {
  width: 100%;
  font-size: clamp(1.35rem, 2.2vw, 1.75rem) !important;
  line-height: 1.1 !important;
  letter-spacing: -0.02em;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  text-wrap: balance;
}

.elementor-73 .elementor-element.elementor-element-6a286b27 .elementor-button-text {
  color: #000 !important;
}

/* ================================================
   PORTAFOLIO: FILTROS Y TARJETAS INTERACTIVAS
   ================================================ */
.page-id-83 .site-main .labnave-portfolio-filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 14px;
  width: min(100%, 1320px);
  margin: 8px auto 54px;
  padding: 0 20px;
}

.page-id-83 .site-main .labnave-portfolio-filter {
  min-height: 44px;
  padding: 9px 16px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: transparent;
  color: #111;
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1.2;
  cursor: pointer;
  transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease;
}

.page-id-83 .site-main .labnave-portfolio-filter:hover,
.page-id-83 .site-main .labnave-portfolio-filter[aria-pressed='true'] {
  border-color: #111;
  background: #fff;
}

.page-id-83 .site-main .labnave-portfolio-ready .portfolio-block-wrap {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 1px;
  column-gap: 30px;
  width: 100%;
  height: auto !important;
  margin: 0 !important;
}

.page-id-83 .site-main .labnave-portfolio-ready .portfolio-block-item {
  position: relative !important;
  inset: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  float: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  align-self: start;
}

.page-id-83 .site-main .labnave-portfolio-ready .portfolio-block-item .item-wrap {
  margin: 0 !important;
  padding: 0 !important;
}

.page-id-83 .site-main .labnave-portfolio-enter {
  animation: labnave-portfolio-enter 280ms ease both;
}

@keyframes labnave-portfolio-enter {
  from {
    opacity: 0;
    transform: translateY(14px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.page-id-83 .site-main .labnave-portfolio-hidden {
  display: none !important;
}

.page-id-83 .site-main .labnave-portfolio-ready .portfolio-block-item .item-wrap {
  overflow: hidden;
  background: #fff;
}

.page-id-83 .site-main .labnave-portfolio-figure {
  position: relative;
  display: block;
  overflow: hidden;
  width: 100%;
  margin: 0;
  background: #f4f4f4;
}

.page-id-83 .site-main .labnave-portfolio-figure > img {
  position: relative;
  display: block;
  width: 100%;
  height: auto;
  transition: transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
}

.page-id-83 .site-main .labnave-portfolio-figure > figcaption {
  position: absolute !important;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex !important;
  align-items: center;
  min-height: 92px;
  padding: 18px 20px !important;
  background: #fff !important;
  color: #111 !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateY(101%) !important;
  transition: transform 420ms cubic-bezier(0.22, 1, 0.36, 1) !important;
}

.page-id-83 .site-main .labnave-portfolio-figure .caption-inside,
.page-id-83 .site-main .labnave-portfolio-figure .portfolio__content {
  position: static !important;
  inset: auto !important;
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  padding: 0 !important;
  background: transparent !important;
  transform: none !important;
}

.page-id-83 .site-main .labnave-portfolio-figure .portfolio__content h3 {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0 !important;
  color: #111 !important;
  font-size: clamp(1rem, 1.5vw, 1.25rem) !important;
  line-height: 1.2 !important;
  text-align: left;
}

.page-id-83 .site-main .labnave-portfolio-button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-height: 44px;
  padding: 10px 20px !important;
  border-radius: 999px;
  background: #d93600 !important;
  color: #fff !important;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1;
  text-decoration: none !important;
  transform: none !important;
}

.page-id-83 .site-main .labnave-portfolio-button:hover {
  background: #111 !important;
  color: #fff !important;
}

.page-id-83 .site-main .portfolio-block-item:hover .labnave-portfolio-figure > img,
.page-id-83 .site-main .portfolio-block-item:focus-within .labnave-portfolio-figure > img {
  transform: translateY(-50px);
}

.page-id-83 .site-main .portfolio-block-item:hover .labnave-portfolio-figure > figcaption,
.page-id-83 .site-main .portfolio-block-item:focus-within .labnave-portfolio-figure > figcaption {
  transform: translateY(0) !important;
}

@media (hover: none), (pointer: coarse) {
  .page-id-83 .site-main .labnave-portfolio-figure > figcaption {
    position: static !important;
    transform: none !important;
  }

  .page-id-83 .site-main .portfolio-block-item .labnave-portfolio-figure > img {
    transform: none !important;
  }
}

@media (max-width: 767px) {
  .page-id-83 .site-main .labnave-portfolio-ready .portfolio-block-wrap {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 16px;
  }

  .page-id-83 .site-main .labnave-portfolio-filters {
    justify-content: flex-start;
    flex-wrap: nowrap;
    gap: 8px;
    margin-bottom: 36px;
    padding-inline: 20px;
    overflow-x: auto;
    scrollbar-width: thin;
    scroll-snap-type: x proximity;
  }

  .page-id-83 .site-main .labnave-portfolio-filter {
    flex: 0 0 auto;
    scroll-snap-align: start;
  }

  .page-id-83 .site-main .labnave-portfolio-figure > figcaption {
    min-height: 84px;
    padding: 12px !important;
  }

  .page-id-83 .site-main .labnave-portfolio-figure .portfolio__content {
    gap: 8px;
  }

  .page-id-83 .site-main .labnave-portfolio-figure .portfolio__content h3 {
    font-size: 0.6875rem !important;
    line-height: 1.15 !important;
  }

  .page-id-83 .site-main .labnave-portfolio-button {
    min-height: 36px;
    padding-inline: 10px !important;
    font-size: 0.6875rem;
  }
}
