/*!
 * LD Elementor · módulo "home" · base
 * Variables con respaldo (los colores apuntan a los globales del Kit), botones e iconos de los widgets LD,
 * aparición al hacer scroll y detalles de las secciones NATIVAS de la Home (clases `lh-` en contenedores y
 * widgets de Elementor). Los colores/tipos/espaciados de lo nativo se editan en sus propios controles; aquí
 * solo va lo que el panel no puede expresar (decoración, pseudo-elementos, comportamiento responsive fino).
 * Breakpoints del diseño: 1280/1281 (proceso), 1279, 1099, 1023, 767.
 */
:root{--lh-acc:var(--e-global-color-primary,#10CFC9);
  --lh-on:var(--e-global-color-61499dc,#141A1F);
  --lh-tx:var(--e-global-color-c3dc75c,#FFFFFF);
  --lh-tx2:var(--e-global-color-3efbc07,#DADADA);
  --lh-tx3:var(--e-global-color-bac7228,#ADADAD);
  --lh-card:var(--e-global-color-secondary,#1D252C);
  --lh-f-ui:"Plus Jakarta Sans","Inter",system-ui,sans-serif;
  --lh-ease:cubic-bezier(.22,.61,.36,1);
  --lh-ease-out:cubic-bezier(.16,1,.3,1);
  --lh-btn-r:999px;}
/* Utilidades */
.elementor .lh-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.elementor .lh-ico{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.elementor .lh-dot{width:6px;height:6px;border-radius:50%;background:var(--lh-acc);box-shadow:0 0 12px var(--lh-acc);flex:none;display:inline-block}
.elementor .lh-empty{padding:16px;border:1px dashed rgba(255,255,255,.3);border-radius:12px;color:var(--lh-tx3)}
.elementor [class*="lh-"] :focus-visible{outline:2px solid var(--lh-acc);outline-offset:3px}
/* Botones y enlaces de los widgets LD (píldora 52 px) */
.elementor .lh-b{--bh:52px;font-family:var(--lh-f-ui);font-weight:600;font-size:16px;line-height:1;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:var(--bh);padding:0 24px;border-radius:var(--lh-btn-r);white-space:nowrap;border:1px solid transparent;text-decoration:none;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}
.elementor .lh-b .lh-ico{transition:transform .2s var(--lh-ease)}
.elementor .lh-b--pri{background:var(--lh-acc);color:var(--lh-on)}
.elementor .lh-b--gh{border-color:rgba(255,255,255,.28);color:var(--lh-tx)}
.elementor .lh-b--lnk{padding:0;min-height:44px;color:var(--lh-acc);gap:8px}
.elementor .lh-b:visited{color:inherit}
.elementor .lh-b--pri:visited{color:var(--lh-on)}
.elementor .lh-b--lnk:visited{color:var(--lh-acc)}
.elementor .lh-b--gh:visited{color:var(--lh-tx)}
@media (hover:hover){.elementor .lh-b--pri:hover{color:var(--lh-on);background:var(--lh-acc-h,#3ADCD7);box-shadow:0 10px 30px rgba(16,207,201,.28)}
.elementor .lh-b--gh:hover{border-color:var(--lh-acc);color:var(--lh-acc)}
.elementor .lh-b--lnk:hover{color:var(--lh-tx)}
.elementor .lh-b:hover .lh-ico{transform:translateX(3px)}}
.elementor .lh-lnk{font-family:var(--lh-f-ui);font-weight:600;color:var(--lh-acc);display:inline-flex;gap:8px;align-items:center;min-height:44px;text-decoration:none}
.elementor .lh-lnk .lh-ico{transition:transform .2s var(--lh-ease)}
@media (hover:hover){.elementor .lh-lnk:hover{color:var(--lh-tx)}
.elementor .lh-lnk:hover .lh-ico{transform:translateX(3px)}}
.elementor .lh-circ{width:52px;height:52px;border-radius:var(--lh-btn-r);border:1px solid rgba(255,255,255,.25);background:none;padding:0;display:inline-flex;align-items:center;justify-content:center;color:var(--lh-tx);flex:none;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s,opacity .2s}
.elementor .lh-circ--pri{background:var(--lh-acc);border-color:var(--lh-acc);color:var(--lh-on)}
.elementor .lh-circ:disabled{opacity:.35;cursor:default}
@media (hover:hover){.elementor .lh-circ:not(:disabled):hover{border-color:var(--lh-acc);color:var(--lh-acc);background:none}
.elementor .lh-circ--pri:not(:disabled):hover{background:var(--lh-acc-h,#3ADCD7);border-color:var(--lh-acc-h,#3ADCD7);color:var(--lh-on)}}
/* Botones NATIVOS de las secciones (clase lh-btn): colores, borde, radio, tipografía y sombras (también la de hover)
   en el panel. Aquí solo el movimiento de la flecha y el tamaño del icono SVG (sin control nativo). */
.elementor .lh-btn .elementor-button{transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}
.elementor .lh-btn .elementor-button-icon{transition:transform .2s var(--lh-ease)}
.elementor .lh-btn .elementor-button-icon svg{width:18px;height:18px}
@media (hover:hover){.elementor .lh-btn .elementor-button:hover .elementor-button-icon{transform:translateX(3px)}}
/* Etiqueta numerada de sección (text-editor con clase lh-lbl): punto decorativo y número en acento */
.elementor .lh-lbl p{display:flex;align-items:center;gap:10px;margin:0}
/* Tipografía de la etiqueta: en los controles del widget (mayúsculas, espaciado .12em, interlínea 1.4, tamaños).
   Aquí solo un respaldo de especificidad 0 para widgets sin esos valores; el panel siempre manda. */
.elementor :where(.lh-lbl){text-transform:uppercase;letter-spacing:.12em;line-height:1.4}
.elementor .lh-lbl p::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--lh-acc);box-shadow:0 0 12px var(--lh-acc);flex:none}
.elementor .lh-lbl b{color:var(--lh-acc);font-weight:600}
.elementor .lh-lbl--c p{justify-content:center}
.elementor .lh-lead p{margin:0}
/* Cabeceras de sección: la columna del título no debe partir del 100 % de ancho de Elementor (si no, el texto
   lateral se encoge mucho más que en el HTML aprobado: título flex 1 1 auto, texto 0 1 480px). *//* Cabeceras de sección: el bloque de título crece hasta 780 px (como el HTML) y la entradilla interna no pasa de 540 px */
.elementor .e-con.lh-shead__t,.elementor .e-con.ld-shead__t{--width:auto;width:auto;flex:1 1 auto;max-width:780px}
.elementor .lh-shead__t .lh-lead p{max-width:540px}
.elementor .lh-lead strong{color:var(--lh-tx);font-weight:500}
.elementor .lh-h2 .elementor-heading-title{text-wrap:balance}
@media (max-width:767px){.elementor .lh-h2 br,.elementor .lh-br-d{display:none}}
/* Aparición al hacer scroll (solo con JS y sin «reducir movimiento»; nunca en el editor) */
.lh-js .elementor .lh-rv{opacity:0;transform:translate3d(0,28px,0);transition:opacity .8s var(--lh-ease-out),transform .8s var(--lh-ease-out);transition-delay:calc(var(--d,0) * 80ms)}
.lh-js .elementor .lh-rv.is-in{opacity:1;transform:none}
/* Hero: halo de fondo */
.elementor .lh-hero-sec{position:relative;isolation:isolate}
.elementor .e-con.lh-hero-sec::before{content:"";display:block;position:absolute;inset:-140px 0 -320px;width:auto;height:auto;z-index:-1;opacity:1;mix-blend-mode:normal;border-radius:0;-webkit-mask-image:linear-gradient(180deg,#000 62%,transparent);mask-image:linear-gradient(180deg,#000 62%,transparent);background:radial-gradient(760px 520px at 82% 18%,rgba(16,207,201,.14),transparent 70%),radial-gradient(520px 420px at 4% 96%,rgba(0,62,60,.5),transparent 70%);pointer-events:none}
/* Servicios: fila «a nivel nacional» */
.elementor .lh-nat p{display:flex;gap:10px;align-items:center;margin:0}
.elementor .lh-nat p::before{content:"";width:18px;height:18px;flex:none;background:var(--lh-acc);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3c3 3 3 15 0 18M12 3c-3 3-3 15 0 18'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3c3 3 3 15 0 18M12 3c-3 3-3 15 0 18'/%3E%3C/svg%3E") center/contain no-repeat}
/* Móvil: el enlace pasa a botón de contorno a todo el ancho (como el HTML aprobado) */
@media (max-width:767px){.elementor .lh-nat .lh-btn,.elementor .lh-nat .lh-btn .elementor-button{width:100%}
.elementor .lh-nat .lh-btn .elementor-button{justify-content:center;min-height:52px;border:1px solid rgba(255,255,255,.28);border-radius:999px;color:var(--lh-tx)}}
/* Proceso: botón de cabecera solo en escritorio (≥1281); el inferior lo pinta LD · Proceso (≤1280) */
@media (max-width:1280px){.elementor .lh-only-desk{display:none!important}}
/* CTA intermedio: rejilla y halo decorativos */
.elementor .lh-cta{isolation:isolate}
.elementor .e-con.lh-cta::before{content:"";display:block;position:absolute;inset:0;width:auto;height:auto;z-index:-1;opacity:1;mix-blend-mode:normal;border-radius:inherit;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse at 50% 30%,#000 30%,transparent 80%);mask-image:radial-gradient(ellipse at 50% 30%,#000 30%,transparent 80%);pointer-events:none}
.elementor .e-con.lh-cta::after{content:"";position:absolute;left:50%;top:-40px;z-index:-1;width:900px;max-width:140%;height:520px;transform:translateX(-50%);background:radial-gradient(closest-side,rgba(16,207,201,.28),transparent);animation:lh-breathe 7s var(--lh-ease) infinite alternate;pointer-events:none}
@keyframes lh-breathe{from{opacity:.65;transform:translateX(-50%) scale(.94)}to{opacity:1;transform:translateX(-50%) scale(1.04)}}
.elementor .lh-cta .elementor-heading-title{text-wrap:balance}
/* Marquesina (LD · Marquesina) */
.elementor .lh-mq{position:relative;display:flex;overflow:hidden;margin:0 calc(-1 * var(--lh-mq-bleed,0px));border-top:1px solid var(--lh-mq-bd,rgba(255,255,255,.1));padding:18px 0;font-size:20px;font-weight:500;line-height:1.4;color:var(--lh-mq-c,rgba(255,255,255,.35));text-decoration:none;transition:color .2s}
.elementor .lh-mq:visited{color:var(--lh-mq-c,rgba(255,255,255,.35))}
.elementor .lh-mq__t{display:flex;flex:none;gap:var(--lh-mq-gap,26px);padding-right:var(--lh-mq-gap,26px);animation:lh-marquee var(--lh-mq-t,32s) linear infinite}
.elementor .lh-mq__t span{display:inline-flex;gap:var(--lh-mq-gap,26px);align-items:center;white-space:nowrap}
.elementor .lh-mq__t span::after{content:"";width:7px;height:7px;border-radius:50%;background:var(--lh-acc)}
@keyframes lh-marquee{to{transform:translate3d(-100%,0,0)}}
@media (hover:hover){.elementor .lh-mq:hover{color:var(--lh-mq-ch,#fff)}
.elementor .lh-mq--pause:hover .lh-mq__t{animation-play-state:paused}}
.elementor .lh-mq:focus-visible{outline-offset:-4px}
@media (max-width:767px){.elementor .lh-mq{font-size:16px;padding:14px 0}}
/* FAQ: dos columnas con la izquierda fija al hacer scroll; en ≤1023 una columna (preguntas antes de la tarjeta) */
@media (min-width:1024px){.elementor .lh-faq__l{position:sticky;top:var(--lh-sticky-top,128px);align-self:start}}
.elementor /* El Kit declara html,.elementor body{overflow-x:hidden}
.elementor : eso convierte <body> en contenedor de scroll y anula
   position:sticky. Solo en páginas con columna fija se usa clip (mismo recorte horizontal,.elementor sin contenedor). */
html:has(.lh-faq__l),html:has(.lh-faq__l) body{overflow-x:clip}
@media (max-width:1023px){.elementor .e-con.lh-faq{display:flex;flex-direction:column;gap:0}
.elementor .e-con.lh-faq>.lh-faq__l{display:contents}
.elementor .lh-faq__l>.lh-qc{order:3;margin-top:28px}
.elementor .lh-faq>.lh-qa{order:2;margin-top:28px}}
/* Acordeón nativo: solo el círculo del icono (colores, bordes, tipografía y espaciados en sus controles) */
.elementor .lh-qa .e-n-accordion-item-title-icon{position:relative;width:34px;height:34px;border-radius:999px;border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;flex:none;transition:background-color .2s,border-color .2s,color .2s}
.elementor .lh-qa .e-n-accordion-item[open] .e-n-accordion-item-title-icon{background:var(--lh-acc);border-color:var(--lh-acc)}
@media (hover:hover){.elementor .lh-qa .e-n-accordion-item-title:hover .e-n-accordion-item-title-icon{border-color:var(--lh-acc)}}
.elementor .lh-qa .e-n-accordion-item-title{list-style:none}
.elementor .lh-qa .e-n-accordion-item-title::-webkit-details-marker{display:none}
.elementor .lh-qa .e-n-accordion-item>.e-con p:last-child{margin-bottom:0}
/* Tarjeta de llamada */
.elementor .lh-qc p{margin:0}
/* Movimiento reducido: nada se oculta ni se mueve en bucle */
@media (prefers-reduced-motion:reduce){.lh-js .elementor .lh-rv{opacity:1;transform:none;transition:none}
.elementor .lh-mq__t,.elementor .e-con.lh-cta::after{animation:none!important}
.elementor .lh-mq{justify-content:center}
.elementor .lh-mq__t+.lh-mq__t{display:none}}
