/* ==========================================================================
   Vantis Theme — componentes reutilizables (prefijo vt-)   v5.5
   Uso: campo «Clases CSS» de Elementor (contenedor / widget) o HTML propio.
   Documentación y ejemplos: COMPONENTS.md

   SOBRE !important
   El style.css del tema fuerza con !important el color, la fuente, el degradado
   y el tamaño de h1/h2/p/li, los botones .elementor-button, las tarjetas de
   icon-box / icon-list / counter / testimonial / acordeón y los inputs
   (secciones 3-7 y 10 del style.css). Para ganarles, los mismos atributos aquí
   llevan !important; el resto de propiedades no. Cada bloque lo indica.
   Especificidad: todas las reglas llevan el prefijo html:not(#vt) (un ID virtual,
   +1,0,0) para ganar también a las reglas del tema por ID de elemento
   (.elementor-element-xxxx :is(p,li){color:… !important}, secciones 5 y 10 del
   style.css). Dentro del sistema, la regla genérica del ámbito usa :where() y la de
   componente «body .vt-x», así una clase concreta siempre gana a la genérica.
   Cada variante de fondo (vt-sec--dark…) activa por sí sola los colores de texto;
   el relleno y el ancho a 900 px solo se aplican con la clase vt-sec.
   ========================================================================== */

/* ── 1. ÁMBITOS DE COLOR (regla de contraste) ───────────────────────────────
   Cada fondo redefine las variables de primer plano. Todo el texto usa
   var(--vt-fg*), que se hereda del ancestro más cercano que las declare:
   una caja clara dentro de una sección oscura vuelve a texto oscuro sin
   selectores frágiles. */
/* .uc-card (tarjeta del tema) sigue el conmutador claro/oscuro del tema: solo declara
   variables, no cambia su aspecto. Va ANTES de las variantes de fondo a propósito: si una
   caja lleva uc-card + vt-sec--dark (o --light…), la variante explícita gana. */
.uc-card{
  --vt-fg:var(--vk-heading,#0F1B2D);
  --vt-fg-body:var(--vk-text,#4A5568);
  --vt-fg-muted:var(--vk-muted,#5B6779);
  --vt-fg-link:var(--vt-blue);
  --vt-fg-accent:var(--vt-blue);
  --vt-h-grad:var(--vk-grad-text,var(--vt-h-grad-light));
  --vt-w-bg:var(--vk-card,#FFFFFF);
  --vt-w-bd:var(--vk-border,#E2E8F0);
  --vt-ghost-bg:transparent;
  --vt-ghost-fg:var(--vk-heading,#0F1B2D);
  --vt-ghost-bd:var(--vk-border2,#CBD5E0);
}
/* el azul/menta del sistema (no el --vk-blue-l / --vk-teal-l del tema, que sobre blanco dan 3.7:1 y 2.5:1) */
html[data-vtp="dark"] .uc-card:not([class*="vt-"]){--vt-fg-link:var(--vt-mint);--vt-fg-accent:var(--vt-mint)}

/* Adaptador de la landing Foto Fija IA (clases legacy ffi-*): sus cajas de fondo propio
   declaran su ámbito de color para que la regla de contraste funcione si se mueven a una
   sección vt-*. Solo declara variables (no cambia su aspecto por defecto) y va antes de las
   variantes: una clase de variante (vt-sec--dark, vt-card--dark…) puesta a mano en la misma caja siempre gana. */
.ffi-plan,.ffi-card,.ffi-quote,.ffi-dash,.ffi-quiz,.ffi-kpi,.ffi-btn--ghost{
  --vt-fg:var(--vt-ink);--vt-fg-body:var(--vt-text);--vt-fg-muted:var(--vt-muted-aa);
  --vt-fg-link:var(--vt-blue);--vt-fg-accent:var(--vt-blue);--vt-h-grad:var(--vt-h-grad-light);
  --vt-w-bg:#FFFFFF;--vt-w-bd:var(--vt-border);
}
.ffi-stat,.ffi-faqbox{
  --vt-fg:var(--vt-on-dark);--vt-fg-body:var(--vt-on-dark-body);--vt-fg-muted:var(--vt-on-dark-muted);
  --vt-fg-link:var(--vt-mint);--vt-fg-accent:var(--vt-mint);--vt-h-grad:var(--vt-h-grad-dark);
  --vt-w-bg:rgba(255,255,255,.04);--vt-w-bd:var(--vt-border-dark);
}
.vt-sec--light,.vt-sec--white,.vt-sec--auto,.vt-on-light,
.vt-card,.vt-quote,.vt-plan,.vt-dash,.vt-box{
  --vt-fg:var(--vt-ink);
  --vt-fg-body:var(--vt-text);
  --vt-fg-muted:var(--vt-muted-aa);
  --vt-fg-link:var(--vt-blue);
  --vt-fg-accent:var(--vt-blue);
  --vt-h-grad:var(--vt-h-grad-light);
  --vt-w-bg:#FFFFFF;
  --vt-w-bd:var(--vt-border);
  --vt-ghost-bg:#FFFFFF;
  --vt-ghost-fg:var(--vt-ink);
  --vt-ghost-bd:var(--vt-border-strong);
}
.vt-sec--dark,.vt-on-dark,.vt-card--dark,.vt-faq,.vt-stat,
html[data-vtp="dark"] .vt-sec--auto,
html[data-vtp="dark"] .vt-sec--auto :is(.vt-card,.vt-quote,.vt-plan,.vt-box){
  --vt-fg:var(--vt-on-dark);
  --vt-fg-body:var(--vt-on-dark-body);
  --vt-fg-muted:var(--vt-on-dark-muted);
  --vt-fg-link:var(--vt-mint);
  --vt-fg-accent:var(--vt-mint);
  --vt-h-grad:var(--vt-h-grad-dark);
  --vt-w-bg:rgba(255,255,255,.04);
  --vt-w-bd:var(--vt-border-dark);
  --vt-ghost-bg:transparent;
  --vt-ghost-fg:#FFFFFF;
  --vt-ghost-bd:#FFFFFF;
}
/* vt-cover: valores por defecto (especificidad 0). La posición y el tamaño que se elijan en Elementor para la imagen de fondo
   (p. ej. «arriba al centro») mandan sobre estos. */
:where(.vt-cover){background-size:cover;background-position:center}

/* ── 2. SECCIONES Y ANCHO ─────────────────────────────────────────────────── */
/* !important: el tema fuerza --padding-top/bottom:60px (sección 1 del style.css)
   y Elementor pone ancho/margen propios en contenedores de primer nivel. */
html:not(#vt) body .vt-sec{
  position:relative;width:100%!important;max-width:none!important;margin:0!important;
  padding:var(--vt-sec-pad)!important;
  font-family:var(--vt-font);font-size:15px;line-height:1.6;
  box-sizing:border-box;
}
html:not(#vt) body .vt-sec--light{background:var(--vt-bg-light)!important}
html:not(#vt) body .vt-sec--white{background:var(--vt-bg-white)!important}
html:not(#vt) body .vt-sec--dark{background:var(--vt-bg-dark)!important}
/* auto: claro por defecto, oscuro con el conmutador del tema (html[data-vtp]) */
html:not(#vt) body .vt-sec--auto{background:var(--vt-bg-light)!important}
html[data-vtp="dark"]:not(#vt) body .vt-sec--auto{background:var(--vt-bg-dark)!important}
html:not(#vt) body .vt-sec--tight{padding-top:0!important}
/* contenido a 900 px centrado (contenedor «boxed» → .e-con-inner; «full» → hijos) */
/* padding 0 en el interior: el relleno de sección es solo el de .vt-sec (Elementor/tema añaden otros 60px al .e-con-inner) */
html:not(#vt) body .vt-sec > .e-con-inner{width:100%!important;max-width:var(--vt-content)!important;margin-left:auto!important;margin-right:auto!important;padding:0!important}
html:not(#vt) body .vt-sec:not(:has(> .e-con-inner)) > *{width:100%;max-width:var(--vt-content);margin-left:auto;margin-right:auto}
html:not(#vt) body .vt-sec .elementor-widget-html{width:100%}
.vt-sec *,.vt-card *,.vt-plan *,.vt-dash *{box-sizing:border-box}
[id^="vt-"],[id^="ffi-"]{scroll-margin-top:100px}   /* anclas (#…): la cabecera fija no tapa el título al llegar */

/* maquetación */
html:not(#vt) body .vt-center{text-align:center}
html:not(#vt) body .vt-center.e-con,html:not(#vt) body .vt-center > .e-con-inner{align-items:center}
/* !important: el tema fuerza max-width:100% !important en todo .e-con (sección 11 del style.css) */
html:not(#vt) body .vt-narrow{max-width:var(--vt-narrow)!important;margin-left:auto;margin-right:auto}
html:not(#vt) body .vt-2col:not(:has(> .e-con-inner)),html:not(#vt) body .vt-2col > .e-con-inner{display:grid!important;grid-template-columns:1fr 1.05fr;gap:56px;align-items:center}
html:not(#vt) body .vt-grid-3:not(:has(> .e-con-inner)),html:not(#vt) body .vt-grid-3 > .e-con-inner{display:grid!important;grid-template-columns:repeat(3,1fr);gap:16px;text-align:left}
html:not(#vt) body .vt-grid-4:not(:has(> .e-con-inner)),html:not(#vt) body .vt-grid-4 > .e-con-inner{display:grid!important;grid-template-columns:repeat(4,1fr);gap:16px;text-align:left}
html:not(#vt) body .vt-cta-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
html:not(#vt) body .vt-mt-lg{margin-top:40px}

/* ── 3. TEXTO GENÉRICO DEL ÁMBITO (contraste) ───────────────────────────────
   :where() = especificidad 0 dentro del ámbito; !important porque el tema fuerza
   color en h1-h6, p, li, strong y .elementor-heading-title. */
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) :is(h1,h2,h3,h4,h5,h6,p,li,span,strong,b,em,blockquote,label,dt,dd,small,td,th,figcaption,div){font-family:var(--vt-font)}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) :is(h1,h2,h3,h4,h5,h6){color:var(--vt-fg)!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) :is(p,li,span,em,blockquote,label,dt,dd,small,td,th,figcaption,div){color:var(--vt-fg-body)!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) :is(strong,b){color:var(--vt-fg)!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) a:not([class*="btn"]):not(.elementor-button){color:var(--vt-fg-link)!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) :is(p,li,blockquote){font-size:15px;line-height:1.6!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) p{margin:0 0 16px}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-heading-title{color:var(--vt-fg)!important}
/* titulares de Elementor / h1-h2: degradado del ámbito (claro = el del tema;
   oscuro = azul→blanco suave). !important: el tema aplica su degradado con
   -webkit-text-fill-color:transparent !important. */
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) :is(h1,h2,.elementor-size-xl,.elementor-size-xxl),html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-heading h2.elementor-heading-title,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-heading h1.elementor-heading-title{
  background-image:var(--vt-h-grad)!important;-webkit-background-clip:text!important;background-clip:text!important;
  -webkit-text-fill-color:transparent!important;color:var(--vt-fg)!important;
}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) :is(h3,h4,h5,h6){background-image:none!important;-webkit-text-fill-color:currentColor!important}
/* iconos SVG/fuente heredan el acento del ámbito */
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) :is(.elementor-icon,.elementor-icon i,.elementor-icon svg){color:var(--vt-fg-accent)!important;fill:var(--vt-fg-accent)!important}

/* ── 4. TEXTOS ────────────────────────────────────────────────────────────── */
html:not(#vt) body .vt-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:11px!important;font-weight:700!important;letter-spacing:.14em!important;text-transform:uppercase;line-height:1.3!important;color:var(--vt-fg-accent)!important;margin:0 0 14px}
html:not(#vt) body .vt-eyebrow--dot::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--vt-green);flex:none}
html:not(#vt) body .vt-h1,html:not(#vt) body .vt-h1 .elementor-heading-title,html:not(#vt) body .vt-h1 :is(h1,h2){font-size:clamp(34px,4.4vw,52px)!important;line-height:1.08!important;font-weight:800!important;letter-spacing:-.02em!important;margin:0 0 20px}
html:not(#vt) body .vt-h2,html:not(#vt) body .vt-h2 .elementor-heading-title,html:not(#vt) body .vt-h2 :is(h1,h2){font-size:clamp(26px,3vw,36px)!important;line-height:1.2!important;font-weight:800!important;letter-spacing:-.01em!important;margin:0 auto 18px}
html:not(#vt) body .vt-h2.vt-left,html:not(#vt) body .vt-h2.vt-left .elementor-heading-title{margin-left:0}
html:not(#vt) body :is(.vt-h1,.vt-h2):not(.elementor-widget){background-image:var(--vt-h-grad)!important;-webkit-background-clip:text!important;background-clip:text!important;-webkit-text-fill-color:transparent!important;color:var(--vt-fg)!important}
html:not(#vt) body .vt-lead,html:not(#vt) body .vt-lead p{font-size:16px!important;line-height:1.7!important}
html:not(#vt) body .vt-claim,html:not(#vt) body .vt-claim p{font-size:18px!important;font-weight:700!important;color:var(--vt-fg-accent)!important;margin:22px 0}
html:not(#vt) body .vt-muted,html:not(#vt) body .vt-muted p,html:not(#vt) body .vt-muted span{color:var(--vt-fg-muted)!important}
html:not(#vt) body .vt-note,html:not(#vt) body .vt-note p{font-size:12px!important;color:var(--vt-fg-muted)!important}
html:not(#vt) body .vt-link,html:not(#vt) body a.vt-link{color:var(--vt-fg-link)!important;text-decoration:none}
html:not(#vt) body .vt-link:hover{text-decoration:underline}
html:not(#vt) body .vt-hl{color:var(--vt-fg-accent)!important}

/* ── 5. BOTONES ────────────────────────────────────────────────────────────
   Base .vt-btn (HTML). Los widgets «Botón» y el envío de los formularios de
   Elementor dentro de un ámbito vt-* reciben el mismo estilo (primario =
   degradado; con la clase vt-btn-ghost en el widget = contorno).
   !important: el tema fuerza fondo, color, radio, padding y sombra en
   .elementor-button (sección 3 del style.css). */
html:not(#vt) body .vt-btn,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) :is(a.elementor-button,button.elementor-button,.elementor-button){
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:13px 24px!important;border-radius:var(--vt-radius-sm)!important;
  font-family:var(--vt-font)!important;font-size:14px!important;font-weight:700!important;line-height:1.2!important;letter-spacing:0!important;
  text-decoration:none!important;cursor:pointer;
  transition:transform .15s,box-shadow .15s,border-color .15s,color .15s!important;
}
html:not(#vt) body .vt-btn--grad,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) :is(a.elementor-button,button.elementor-button,.elementor-button){
  background:var(--vt-grad)!important;background-color:transparent!important;color:#FFFFFF!important;border:0!important;
  box-shadow:0 6px 18px rgba(30,79,214,.25)!important;
}
html:not(#vt) body .vt-btn--grad:hover,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) :is(a.elementor-button,button.elementor-button,.elementor-button):hover{
  transform:translateY(-1px)!important;box-shadow:0 10px 24px rgba(30,79,214,.32)!important;color:#FFFFFF!important;
}
html:not(#vt) body .vt-btn--ghost,html:not(#vt) body .vt-btn--ghost :is(a.elementor-button,.elementor-button),html:not(#vt) body .vt-btn-ghost :is(a.elementor-button,button.elementor-button,.elementor-button){
  background:var(--vt-ghost-bg)!important;background-image:none!important;color:var(--vt-ghost-fg)!important;
  border:1px solid var(--vt-ghost-bd)!important;box-shadow:none!important;
}
html:not(#vt) body .vt-btn--ghost:hover,html:not(#vt) body .vt-btn--ghost:hover :is(a.elementor-button,.elementor-button),html:not(#vt) body .vt-btn-ghost :is(a.elementor-button,button.elementor-button,.elementor-button):hover{
  border-color:var(--vt-fg-link)!important;color:var(--vt-fg-link)!important;box-shadow:none!important;transform:none!important;
}
/* Si vt-btn--grad / vt-btn--ghost se ponen en el envoltorio de un widget Botón de Elementor, el estilo va solo en el
   botón de dentro; el envoltorio queda sin fondo, sin borde y sin sombra (si no, se dibuja doble). */
html:not(#vt) body .elementor-widget:is(.vt-btn--grad,.vt-btn--ghost,.vt-btn--block){background:none!important;background-image:none!important;border:0!important;box-shadow:none!important;padding:0!important;border-radius:0!important;transform:none!important}
/* el texto interno de un botón hereda el color del botón */
html:not(#vt) body .vt-btn :is(span,i,svg),html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-button :is(span,i,svg,.elementor-button-text,.elementor-button-icon){color:inherit!important;fill:currentColor}
html:not(#vt) body .vt-btn--block,html:not(#vt) body .vt-btn--block .elementor-button{display:flex;width:100%}

/* ── 6. CAJAS ───────────────────────────────────────────────────────────────
   !important en el fondo: la clase de caja decide el fondo aunque el contenedor ya tuviera
   fondo del tema (uc-card, reglas por ID de --vk-card) o del panel de Elementor. */
/* vt-card--dark funciona sola o combinada con vt-card (misma forma, fondo oscuro) */
html:not(#vt) body .vt-card,html:not(#vt) body .vt-card--dark{background:#FFFFFF!important;border:1px solid var(--vt-border);border-radius:var(--vt-radius);padding:22px 20px}
html:not(#vt) body .vt-card--dark{background:var(--vt-card-dark)!important;border-color:var(--vt-border-dark)}
html:not(#vt) body :is(.vt-card,.vt-card--dark) :is(h3,h4){font-size:15px!important;font-weight:700!important;line-height:1.3!important;margin:0 0 10px}
html:not(#vt) body :is(.vt-card,.vt-card--dark) p{font-size:13px;margin:0}
html:not(#vt) body .vt-box{background:#FFFFFF!important;border-radius:var(--vt-radius);padding:26px 28px;box-shadow:0 20px 50px rgba(0,0,0,.25)}
html:not(#vt) body .vt-quote{background:#FFFFFF!important;border:1px solid var(--vt-border);border-radius:var(--vt-radius);padding:20px 22px;margin:0 0 26px;font-style:italic;quotes:none}
html:not(#vt) body .vt-quote,html:not(#vt) body .vt-quote p{font-size:14px!important;font-style:italic}

/* Una variante de fondo puesta a mano en una caja (vt-card vt-sec--dark…) gana siempre al fondo
   propio de la caja (más especificidad, da igual el orden). */
html:not(#vt) body :is(.vt-card,.vt-quote,.vt-plan,.vt-box,.vt-dash,.vt-faq):is(.vt-sec--dark){background:var(--vt-bg-dark)!important;border-color:var(--vt-border-dark)}
html:not(#vt) body :is(.vt-card,.vt-quote,.vt-plan,.vt-box,.vt-dash,.vt-faq):is(.vt-sec--light){background:var(--vt-bg-light)!important}
html:not(#vt) body :is(.vt-card,.vt-quote,.vt-plan,.vt-box,.vt-dash,.vt-faq):is(.vt-sec--white){background:var(--vt-bg-white)!important}

/* cifras (sobre fondo oscuro) */
html:not(#vt) body .vt-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:800px!important;margin:0 auto}
html:not(#vt) body .vt-stat{border:1px solid var(--vt-border-dark);border-radius:var(--vt-radius);padding:26px 18px;background:rgba(255,255,255,.02)}
html:not(#vt) body .vt-stat__num{font-size:34px!important;font-weight:800!important;line-height:1.1!important;margin:0 0 10px;background-image:var(--vt-grad-text-dark)!important;-webkit-background-clip:text!important;background-clip:text!important;-webkit-text-fill-color:transparent!important;color:var(--vt-mint)!important}
html:not(#vt) body .vt-stat__txt{font-size:13px!important;line-height:1.5!important;color:var(--vt-fg-body)!important;margin:0}
html:not(#vt) body .vt-stat__src{font-size:11px!important;color:var(--vt-fg-muted)!important;margin:10px 0 0}

/* pasos numerados */
html:not(#vt) body .vt-steps{list-style:none;margin:24px 0 0;padding:0}
html:not(#vt) body .vt-steps li{display:flex;gap:14px;align-items:flex-start;margin:0 0 18px;padding:0}
html:not(#vt) body .vt-num{flex:0 0 26px;height:26px;border-radius:50%;background:var(--vt-grad);color:#FFFFFF!important;font-size:12px!important;font-weight:800!important;display:flex;align-items:center;justify-content:center;margin-top:1px}

/* precios */
html:not(#vt) body .vt-plans{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:36px;text-align:left}
html:not(#vt) body .vt-plan{position:relative;display:flex;flex-direction:column;background:#FFFFFF!important;border:1px solid var(--vt-border);border-radius:var(--vt-radius);padding:22px 18px 18px}
html:not(#vt) body .vt-plan--feat{border:1.5px solid var(--vt-blue);box-shadow:0 12px 30px rgba(30,79,214,.12)}
html:not(#vt) body .vt-badge{position:absolute;top:-10px;left:14px;background:var(--vt-grad);color:#FFFFFF!important;font-size:10px!important;font-weight:700!important;padding:3px 10px;border-radius:20px;line-height:1.4}
html:not(#vt) body .vt-chip{display:inline-block;font-size:10px!important;font-weight:600!important;letter-spacing:0!important;text-transform:none!important;color:var(--vt-muted-aa)!important;background:var(--vt-bg-light);border:1px solid var(--vt-border);padding:3px 9px;border-radius:20px;line-height:1.4}
html:not(#vt) body .vt-plan__lvl{font-size:10px!important;font-weight:700!important;letter-spacing:.1em;text-transform:uppercase;color:var(--vt-fg)!important;margin:0 0 12px}
html:not(#vt) body .vt-plan__price{font-size:15px!important;font-weight:700!important;color:var(--vt-fg-accent)!important;line-height:1.3!important;margin:0}
html:not(#vt) body .vt-plan__price--big{font-size:24px!important;font-weight:800!important;color:var(--vt-fg)!important}
html:not(#vt) body .vt-plan__name{font-size:12px!important;font-weight:700!important;color:var(--vt-fg-accent)!important;margin:4px 0 12px}
html:not(#vt) body .vt-plan__desc{font-size:13px!important;line-height:1.55!important;color:var(--vt-fg-muted)!important;flex:1;margin:0 0 18px}

/* panel de ejemplo con KPIs */
html:not(#vt) body .vt-dash{background:#FFFFFF!important;border:1px solid var(--vt-border);border-radius:var(--vt-radius);padding:20px;box-shadow:0 10px 30px rgba(15,27,45,.06)}
html:not(#vt) body .vt-dash__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
html:not(#vt) body .vt-dash__head > span:not(.vt-chip){font-size:11px!important;font-weight:700!important;letter-spacing:.08em;text-transform:uppercase;color:var(--vt-fg)!important}
html:not(#vt) body .vt-dash__kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
html:not(#vt) body .vt-kpi{background:var(--vt-bg-light);border-radius:10px;padding:14px 16px}
html:not(#vt) body .vt-kpi span{display:block;font-size:11px!important;color:var(--vt-fg-muted)!important;margin-bottom:6px}
html:not(#vt) body .vt-kpi strong{font-size:24px;font-weight:800;color:var(--vt-fg)!important}
html:not(#vt) body .vt-kpi strong.vt-kpi--blue{color:var(--vt-blue)!important}
html:not(#vt) body .vt-bars{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:4px}
html:not(#vt) body .vt-bars i{display:block;height:6px;border-radius:4px;background:var(--vt-border)}
html:not(#vt) body .vt-bars i.on{background:var(--vt-grad)}

/* avatar con iniciales */
html:not(#vt) body .vt-avatar{flex:0 0 92px;width:92px;height:92px;border-radius:50%;background:linear-gradient(135deg,var(--vt-blue),var(--vt-green));color:#FFFFFF!important;font-size:28px!important;font-weight:800!important;display:flex;align-items:center;justify-content:center}

/* marco para el acordeón de Elementor (oscuro) */
html:not(#vt) body .vt-faq{background:var(--vt-bg-dark)!important;border-radius:var(--vt-radius);padding:12px 24px!important;margin-top:28px}

/* vt-sec--auto en modo oscuro: las cajas claras pasan a oscuras (los textos ya
   cambian por las variables de arriba). */
html[data-vtp="dark"]:not(#vt) body .vt-sec--auto :is(.vt-card,.vt-quote,.vt-plan,.vt-box){background:var(--vt-card-dark)!important;border-color:var(--vt-border-dark)}

/* ── 6b. COMPONENTES CONSTRUIDOS CON BLOQUES DE ELEMENTOR ─────────────────────
   Los mismos componentes de arriba, pero armados con contenedores y widgets nativos (Encabezado,
   Editor de texto, Botón) en vez de HTML. La clase va en el envoltorio del widget o del contenedor;
   el texto de dentro hereda su tamaño, peso y color. !important: Elementor pone tipografía y color
   propios en .elementor-heading-title y el tema fuerza color/margen en h*, p (secciones 3 y 4). */
html:not(#vt) body :is(.vt-eyebrow,.vt-num,.vt-stat__txt,.vt-stat__src,.vt-kpi__label,.vt-kpi__value,.vt-dash__title,.vt-chip,.vt-plan__lvl,.vt-plan__price,.vt-plan__name,.vt-plan__desc,.vt-quiz__count,.vt-quiz__q,.vt-quiz__label,.vt-quiz__small) :is(.elementor-heading-title,.elementor-widget-container,p){font:inherit!important;letter-spacing:inherit!important;text-transform:inherit!important;line-height:inherit!important;color:inherit!important;margin:0!important;padding:0!important;background:none!important;-webkit-text-fill-color:currentColor!important}
html:not(#vt) body .vt-lead--wide{width:100%;max-width:760px;margin:0 auto 40px}
html:not(#vt) body .vt-lead--wide p{line-height:1.75!important}
html:not(#vt) body .vt-narrow{width:100%}
html:not(#vt) body .vt-strong-accent strong,html:not(#vt) body .vt-strong-accent b{color:var(--vt-fg-accent)!important}

/* cifras: la clase vt-stat__num va en un widget Encabezado (etiqueta div) */
html:not(#vt) body .vt-stat__num .elementor-heading-title{font-size:34px!important;font-weight:800!important;line-height:1.1!important;margin:0 0 10px!important;background-image:var(--vt-grad-text-dark)!important;-webkit-background-clip:text!important;background-clip:text!important;-webkit-text-fill-color:transparent!important;color:var(--vt-mint)!important;letter-spacing:0!important}
html:not(#vt) body .vt-stats,html:not(#vt) body .vt-stat,html:not(#vt) body .vt-dash,html:not(#vt) body .vt-kpi,html:not(#vt) body .vt-dash__head,html:not(#vt) body .vt-dash__kpis{gap:0!important}
html:not(#vt) body .vt-stats{gap:18px!important;padding:0!important;width:100%}
html:not(#vt) body .vt-stat__txt,html:not(#vt) body .vt-stat__txt p{margin:0!important}

/* El style.css del tema añade margin-top:24px !important a todo contenedor hijo en móvil (para separar columnas
   apiladas): estos componentes se separan con su propio gap, así que se anula. */
html:not(#vt) body :is(.vt-stats,.vt-stat,.vt-step,.vt-kpi,.vt-dash,.vt-dash__head,.vt-dash__kpis,.vt-bars,.vt-bar,.vt-quiz__step,.vt-quiz__opts,.vt-quiz__result),html:not(#vt) body :is(.vt-grid-2,.vt-grid-3,.vt-grid-4,.vt-2col,.vt-stats,.vt-plans) > .e-con,html:not(#vt) body :is(.vt-grid-2,.vt-grid-3,.vt-grid-4,.vt-2col,.vt-stats,.vt-plans) > .e-con-inner > .e-con{margin-top:0!important}

/* pasos numerados: cada paso es un contenedor en fila con un círculo (vt-num) y el texto */
html:not(#vt) body .vt-step{display:flex!important;flex-direction:row!important;align-items:flex-start!important;gap:14px!important;margin:0 0 18px;padding:0!important;width:100%}
html:not(#vt) body .vt-step{flex-wrap:nowrap!important;margin-bottom:18px!important}
html:not(#vt) body .vt-step > .elementor-widget{margin:0!important}
html:not(#vt) body .vt-step > .elementor-widget:not(.vt-num){flex:1 1 0!important;min-width:0;width:auto!important;max-width:none}
html:not(#vt) body .vt-step p{margin:0;font-size:15px}
html:not(#vt) body .vt-num.elementor-widget{flex:0 0 26px!important;width:26px!important;min-width:26px;height:26px}
html:not(#vt) body .vt-num .elementor-widget-container{display:flex!important;align-items:center;justify-content:center;width:100%;height:100%}
html:not(#vt) body .vt-num .elementor-heading-title{color:#FFFFFF!important;font-size:12px!important;font-weight:800!important}

/* panel de ejemplo (vt-dash) armado con contenedores */
html:not(#vt) body .vt-dash{width:100%}
html:not(#vt) body .vt-dash__head{display:flex!important;flex-direction:row!important;justify-content:space-between!important;align-items:center!important;margin-bottom:16px;padding:0!important}
html:not(#vt) body .vt-dash__title,html:not(#vt) body .vt-dash__title .elementor-heading-title{font-size:11px!important;font-weight:700!important;letter-spacing:.08em!important;text-transform:uppercase;color:var(--vt-fg)!important}
html:not(#vt) body .vt-dash__kpis{padding:0!important}
html:not(#vt) body .vt-dash__kpis:not(:has(> .e-con-inner)){display:grid!important;grid-template-columns:1fr 1fr;gap:12px!important}
html:not(#vt) body .vt-kpi__label,html:not(#vt) body .vt-kpi__label .elementor-heading-title{display:block;font-size:11px!important;font-weight:400!important;color:var(--vt-fg-muted)!important;margin:0 0 6px!important;line-height:1.3!important}
html:not(#vt) body .vt-kpi__value,html:not(#vt) body .vt-kpi__value .elementor-heading-title{font-size:24px!important;font-weight:800!important;line-height:1.2!important;color:var(--vt-fg)!important}
html:not(#vt) body .vt-kpi__value.vt-kpi--blue,html:not(#vt) body .vt-kpi__value.vt-kpi--blue .elementor-heading-title{color:var(--vt-blue)!important}
html:not(#vt) body .vt-bars.e-con{padding:0!important;gap:6px!important}
html:not(#vt) body .vt-bars:not(:has(> .e-con-inner)){display:grid!important;grid-template-columns:repeat(3,1fr);gap:6px!important;margin-top:4px}
html:not(#vt) body .vt-bar{height:6px;min-height:6px!important;padding:0!important;border-radius:4px;background:var(--vt-border)!important}
html:not(#vt) body .vt-bar--on{background:var(--vt-grad)!important}

/* test interactivo: se monta con bloques de Elementor y lo mueve assets/js/vt-quiz.js
   Estructura:  contenedor «vt-box vt-quiz»  (opcional: contenedor «vt-quiz__lead» con un widget Formulario, entre las preguntas y el resultado)
                 ├ contenedor «vt-quiz__step» × N  (Encabezado vt-quiz__count + vt-quiz__q + contenedor vt-quiz__opts con Botones «vt-quiz__opt vt-score-2/1/0»)
                 └ contenedor «vt-quiz__result»    (Encabezados vt-quiz__count y vt-quiz__score, 3 Editores de texto vt-quiz__label--low/mid/high,
                                                    Editor de texto vt-quiz__small, Botón «vt-btn--grad» y Botón «vt-quiz__restart»)
   Sin JavaScript (o en el editor) se ven todos los pasos; con JavaScript, solo el paso actual. */
html:not(#vt) body .vt-quiz{width:100%;max-width:560px!important;margin:28px auto 0;text-align:left}
html:not(#vt) body .vt-center > .elementor-widget-html{width:100%}
html:not(#vt) body .vt-quiz :is(.vt-quiz__step,.vt-quiz__result){width:100%;padding:0!important;gap:0!important}
html:not(#vt) body .vt-quiz__count,html:not(#vt) body .vt-quiz__count .elementor-heading-title{display:block;font-size:10px!important;font-weight:700!important;letter-spacing:.12em!important;text-transform:uppercase;color:var(--vt-fg)!important;margin:0 0 14px!important;line-height:1.3!important}
html:not(#vt) body .vt-quiz__q,html:not(#vt) body .vt-quiz__q .elementor-heading-title{font-size:17px!important;font-weight:700!important;line-height:1.4!important;color:var(--vt-fg)!important;margin:0 0 18px!important}
html:not(#vt) body .vt-quiz__opts{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;padding:0!important;width:100%}
html:not(#vt) body .vt-quiz__opt{width:100%;margin:0!important}
html:not(#vt) body .vt-quiz__opt .elementor-button-wrapper{width:100%}
html:not(#vt) body .vt-quiz__opt :is(a.elementor-button,.elementor-button){display:flex!important;width:100%;justify-content:flex-start!important;text-align:left!important;background:var(--vt-bg-light)!important;background-image:none!important;border:1px solid var(--vt-border)!important;border-radius:10px!important;padding:13px 16px!important;font-size:14px!important;font-weight:600!important;color:var(--vt-ink)!important;box-shadow:none!important;transform:none!important}
html:not(#vt) body .vt-quiz__opt :is(a.elementor-button,.elementor-button):hover{border-color:var(--vt-blue)!important;background:#FFFFFF!important;color:var(--vt-blue)!important;transform:none!important;box-shadow:none!important}
html:not(#vt) body .vt-quiz__opt .elementor-button-content-wrapper{justify-content:flex-start}
html:not(#vt) body .vt-quiz__score,html:not(#vt) body .vt-quiz__score .elementor-heading-title{font-size:30px!important;font-weight:800!important;line-height:1.15!important;margin:0 0 10px!important}
html:not(#vt) body .vt-quiz__score .elementor-heading-title{background-image:var(--vt-grad)!important;-webkit-background-clip:text!important;background-clip:text!important;-webkit-text-fill-color:transparent!important;color:var(--vt-blue)!important}
html:not(#vt) body .vt-quiz__label,html:not(#vt) body .vt-quiz__label p{font-size:15px!important;color:var(--vt-fg)!important;margin:0 0 10px}
html:not(#vt) body .vt-quiz__small,html:not(#vt) body .vt-quiz__small p{font-size:12px!important;color:var(--vt-fg-muted)!important;margin:0 0 18px!important}
html:not(#vt) body .vt-quiz__restart{margin-top:14px}
html:not(#vt) body .vt-quiz__restart :is(a.elementor-button,.elementor-button){background:none!important;background-image:none!important;border:0!important;box-shadow:none!important;padding:0!important;font-size:12px!important;font-weight:400!important;color:var(--vt-fg-muted)!important;text-decoration:underline!important;transform:none!important}
html:not(#vt) body .vt-quiz__lead{width:100%;padding:0!important;gap:0!important;margin-top:0!important}
html:not(#vt) body .vt-quiz__lead .elementor-widget-form{width:100%}
html:not(#vt) body .vt-quiz__lead .elementor-field-group{margin-bottom:14px}
html:not(#vt) body .vt-quiz__lead .elementor-button{width:100%}
html:not(#vt) body .vt-quiz [hidden]{display:none!important}

/* ── 6c. HERO, VÍDEO Y BLOQUE TEXTO + FOTO ───────────────────────────────────────
   vt-2col--text-left  : como vt-2col pero con la columna de texto algo más ancha (hero).
   vt-video            : vídeo (widget o contenedor con vídeo) con esquinas redondeadas y sombra.
   vt-split + vt-photo : texto a la izquierda y foto redonda pequeña a la derecha; el conjunto ocupa el ancho de contenido. */
html:not(#vt) body .vt-2col--text-left:not(:has(> .e-con-inner)),html:not(#vt) body .vt-2col--text-left > .e-con-inner{grid-template-columns:1.05fr 1fr;gap:56px}
html:not(#vt) body .vt-video{border-radius:16px!important;overflow:hidden;background:linear-gradient(135deg,#16233A 0%,#123A3A 100%);box-shadow:0 20px 50px rgba(15,27,45,.18);padding:0!important}
html:not(#vt) body .vt-video :is(video,.elementor-video,.elementor-wrapper,.elementor-widget-container){display:block;width:100%;border-radius:16px;overflow:hidden}
html:not(#vt) body .vt-split{display:grid!important;grid-template-columns:1fr 240px;gap:48px!important;align-items:center;width:100%;padding:0!important;text-align:left}
html:not(#vt) body .vt-split > .e-con,html:not(#vt) body .vt-split > .elementor-widget{margin-top:0!important;min-width:0}
/* !important: el tema fuerza max-width:100% !important en .e-con > .elementor-widget-image (sección 1 del style.css) */
html:not(#vt) body .vt-photo.elementor-widget{width:100%;max-width:240px!important;margin:0;justify-self:end}
html:not(#vt) body .vt-photo img{display:block;width:100%!important;max-width:100%!important;height:auto!important;aspect-ratio:1/1;object-fit:cover;border-radius:50%}
@media (max-width:1024px){html:not(#vt) body .vt-split{gap:32px!important;grid-template-columns:1fr 200px}
  html:not(#vt) body .vt-photo.elementor-widget{max-width:200px!important}}
@media (max-width:767px){
  html:not(#vt) body .vt-split{grid-template-columns:1fr}
  html:not(#vt) body .vt-photo.elementor-widget{justify-self:center;max-width:200px!important}
}

/* ── 6d. MAQUETACIÓN PARA PÁGINAS DE SERVICIOS ───────────────────────────────────
   vt-grid-2        : 2 columnas iguales (1 en móvil).
   vt-2col--stretch : las dos columnas de vt-2col se estiran a la misma altura.
   vt-cover         : contenedor cuyo fondo es una imagen (Elementor: Estilo → Fondo → Imagen); se recorta a cubrir, con esquinas redondeadas.
   vt-photo--rect   : imagen (widget Imagen) rectangular con esquinas redondeadas. */
html:not(#vt) body .vt-grid-2:not(:has(> .e-con-inner)),html:not(#vt) body .vt-grid-2 > .e-con-inner{display:grid!important;grid-template-columns:repeat(2,1fr);gap:16px;text-align:left}
html:not(#vt) body .vt-2col--stretch:not(:has(> .e-con-inner)),html:not(#vt) body .vt-2col--stretch > .e-con-inner{align-items:stretch}
html:not(#vt) body .vt-cover{min-height:260px;border-radius:16px;background-repeat:no-repeat!important;overflow:hidden;padding:0!important;width:100%}
html:not(#vt) body .vt-photo--rect.elementor-widget{width:100%;max-width:100%!important;margin:0}
html:not(#vt) body .vt-photo--rect img{display:block;width:100%!important;max-width:100%!important;height:auto!important;border-radius:16px}
html:not(#vt) body :is(.vt-card,.vt-card--dark) h2{font-size:20px!important;font-weight:800!important;line-height:1.25!important;margin:0 0 10px!important}
html:not(#vt) body :is(.vt-grid-2,.vt-2col,.vt-grid-3,.vt-grid-4) > .e-con,html:not(#vt) body :is(.vt-grid-2,.vt-2col,.vt-grid-3,.vt-grid-4) > .e-con-inner > .e-con{min-width:0}
/* Elementor deja los contenedores en flex-wrap:wrap; una columna con wrap que se estira (rejilla) reparte sus hijos en columnas nuevas
   a la derecha en vez de apilarlos (desborda en móvil). Solo las columnas del sistema (vt-stack / tarjetas); el resto de contenedores
   (p. ej. las plantillas) siguen envolviendo para apilarse en móvil. Las filas de botones (vt-cta-row) sí envuelven. */
html:not(#vt) body :is(.vt-stack,.vt-card,.vt-card--dark){flex-wrap:nowrap!important}
html:not(#vt) body .vt-cta-row.e-con{flex-wrap:wrap!important}
/* El bloque «PRICING CARDS MÓVIL» del style.css fuerza, con !important, flex-wrap:wrap a todo .e-con (móvil) y ancho 48 % a los hijos
   directos de una sección (tablet 768-1024). Dentro de una sección vt-sec los hijos directos ocupan siempre el ancho de contenido. */
html:not(#vt) body .vt-sec > .e-con-inner > .e-con{width:100%!important;max-width:100%!important;flex:0 0 auto!important;margin-top:0!important}
/* En móvil el tema da flex:0 0 100% !important a todo contenedor hijo: en una COLUMNA eso es el 100 % del alto del padre (tarjetas altísimas y vacías).
   vt-stack = contenedor en columna del sistema (lo pone el motor de conversión); sus hijos se dimensionan por su contenido. */
html:not(#vt) body :is(.vt-stack,.vt-card,.vt-card--dark) > .e-con{flex:0 0 auto!important}
@media (max-width:767px){
  html:not(#vt) body .vt-grid-2:not(:has(> .e-con-inner)),html:not(#vt) body .vt-grid-2 > .e-con-inner{grid-template-columns:1fr}
  html:not(#vt) body .vt-cover{min-height:220px}
}

/* vt-icon : widget Imagen pequeño y fijo (icono de red social, etc.) para poner junto a un texto en una fila. */
html:not(#vt) body .vt-icon.elementor-widget{flex:0 0 32px!important;width:32px!important;max-width:32px!important;margin:0!important}
html:not(#vt) body .vt-icon img{display:block;width:100%!important;height:auto!important}
html:not(#vt) body .vt-linkrow{align-items:center!important;gap:14px!important}
html:not(#vt) body .vt-linkrow .elementor-heading-title{margin:0!important;font-size:16px!important}

/* vt-person : tarjeta de persona = foto redonda (vt-avatar-img) a la izquierda + nombre, enlace y texto a la derecha; en móvil, apilada. */
html:not(#vt) body .vt-person{flex-direction:row!important;align-items:flex-start!important;gap:24px!important}
html:not(#vt) body .vt-avatar-img.elementor-widget{flex:0 0 120px!important;width:120px!important;max-width:120px!important;margin:0!important}
html:not(#vt) body .vt-avatar-img img{display:block;width:100%!important;max-width:100%!important;height:auto!important;aspect-ratio:1/1;object-fit:cover;border-radius:50%}
html:not(#vt) body .vt-person > .e-con{flex:1 1 0!important;min-width:0!important;max-width:100%!important}
html:not(#vt) body .vt-person .elementor-widget-text-editor{min-width:0;overflow-wrap:anywhere}
html:not(#vt) body .vt-namerow{align-items:center!important;gap:12px!important}
html:not(#vt) body .vt-namerow .elementor-heading-title{margin:0!important}
@media (max-width:767px){html:not(#vt) body .vt-person{flex-direction:column!important}}

/* ── 6e. COMPONENTES DE LA PÁGINA DE INICIO ──────────────────────────────────────
   vt-scripts     : contenedor oculto para scripts invisibles (JSON-LD de SEO, analítica). Siguen ejecutándose.
   vt-svc         : tarjeta de servicio en fila = icono + (título y texto) + botones; en móvil, apilada.
   vt-avatars     : imagen de avatares pequeña (grupo de caras) junto a botones.
   vt-proof       : fila centrada de imágenes de prueba social (estrellas, valoración) a su tamaño natural. */
html:not(#vt) body .vt-scripts{display:none!important}
html:not(#vt) body .vt-center.vt-cta-row{justify-content:center}
html:not(#vt) body .vt-svc{display:grid!important;grid-template-columns:32px 1fr auto;gap:20px!important;align-items:center;text-align:left}
html:not(#vt) body .vt-svc > .e-con,html:not(#vt) body .vt-svc > .elementor-widget{min-width:0;margin-top:0!important}
html:not(#vt) body .vt-svc__actions{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:10px!important;min-width:180px;padding:0!important}
html:not(#vt) body .vt-svc__actions .elementor-button{width:100%}
html:not(#vt) body .vt-linkrow p{margin:0}
html:not(#vt) body .vt-avatars.elementor-widget{flex:0 0 auto!important;width:96px!important;max-width:96px!important;margin:0!important}
html:not(#vt) body .vt-avatars img{display:block;width:100%!important;height:auto!important}
html:not(#vt) body .vt-proof{align-items:center!important;justify-content:center!important;gap:18px!important;flex-wrap:wrap!important;padding:0!important}
html:not(#vt) body .vt-proof .elementor-widget{flex:0 0 auto!important;width:auto!important;max-width:100%!important;margin:0!important}
html:not(#vt) body .vt-proof img{display:block;width:auto!important;max-width:100%!important;height:auto!important;max-height:48px}
@media (max-width:767px){
  html:not(#vt) body .vt-svc{grid-template-columns:32px 1fr}
  html:not(#vt) body .vt-svc__actions{grid-column:1 / -1}
}

/* ── 7. WIDGETS NATIVOS DE ELEMENTOR DENTRO DE UN ÁMBITO ─────────────────────
   Cajas propias del ámbito (--vt-w-bg / --vt-w-bd) y texto por variables.
   !important: el tema pinta estos widgets con var(--vk-card) y color --vk-*
   (secciones 3-6 y 10 del style.css), lo que en modo claro del tema deja texto
   blanco sobre blanco dentro de una sección oscura, y al revés. */
/* Lista de iconos */
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-icon-list-item{background:var(--vt-w-bg)!important;border:1px solid var(--vt-w-bd)!important;box-shadow:none!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-icon-list-item .elementor-icon-list-text,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-icon-list-text{color:var(--vt-fg)!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-icon-list-item .elementor-icon-list-icon :is(i,svg),html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-icon-list-icon :is(i,svg){color:var(--vt-fg-accent)!important;fill:var(--vt-fg-accent)!important}
/* Caja de icono / imagen */
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-icon-box .elementor-icon-box-wrapper,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-icon-box-wrapper,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-image-box-wrapper{background:var(--vt-w-bg)!important;background-image:none!important;border:1px solid var(--vt-w-bd)!important;box-shadow:none!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-icon-box .elementor-icon-box-title,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-icon-box .elementor-icon-box-title a,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-icon-box-title,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-image-box-title{color:var(--vt-fg)!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-icon-box .elementor-icon-box-description,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-icon-box-description,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-image-box-description{color:var(--vt-fg-body)!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-icon-box .elementor-icon-box-icon :is(i,svg){color:var(--vt-fg-accent)!important;fill:var(--vt-fg-accent)!important}
/* Editor de texto */
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-text-editor :is(p,li,span,div,em){color:var(--vt-fg-body)!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-text-editor :is(strong,b,h1,h2,h3,h4,h5,h6){color:var(--vt-fg)!important}
/* Acordeón, acordeón anidado y toggle */
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-accordion .elementor-accordion-item,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-toggle .elementor-toggle .elementor-tab-title,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-n-accordion .e-n-accordion-item{background:var(--vt-w-bg)!important;border:1px solid var(--vt-w-bd)!important;border-radius:var(--vt-radius)!important;box-shadow:none!important;margin-bottom:10px!important;overflow:hidden}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-accordion .elementor-accordion-title,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-accordion .elementor-accordion-title *,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-accordion .elementor-tab-title,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-accordion .elementor-tab-title *,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-n-accordion .elementor-accordion-title,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-n-accordion .elementor-accordion-title *,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-n-accordion .e-n-accordion-item-title,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-n-accordion .e-n-accordion-item-title *,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-accordion .elementor-tab-title,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-accordion .elementor-tab-title *,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-accordion .elementor-tab-title a,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-accordion .elementor-tab-title a *,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-toggle .elementor-tab-title,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-toggle .elementor-tab-title *{color:var(--vt-fg)!important;font-weight:700!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-accordion .elementor-active .elementor-accordion-title,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-accordion .elementor-active .elementor-accordion-title *,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-accordion .elementor-active .elementor-tab-title,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-accordion .elementor-active .elementor-tab-title *,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-n-accordion .elementor-active .elementor-accordion-title,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-n-accordion .elementor-active .elementor-accordion-title *{color:var(--vt-fg-accent)!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-accordion .elementor-accordion-icon,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-accordion .elementor-accordion-icon i,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-toggle .elementor-toggle-icon i,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-accordion .elementor-accordion-icon,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-accordion .elementor-accordion-icon :is(i,svg),html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-n-accordion .e-n-accordion-item-title-icon :is(i,svg,span){color:var(--vt-fg-accent)!important;fill:var(--vt-fg-accent)!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-accordion .elementor-tab-content,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-accordion .elementor-tab-content *,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-toggle .elementor-tab-content,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-toggle .elementor-tab-content *,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-accordion .elementor-tab-content,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-accordion .elementor-tab-content *,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-n-accordion .elementor-tab-content,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-n-accordion .elementor-tab-content *{color:var(--vt-fg-body)!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-accordion .elementor-tab-content,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-toggle .elementor-tab-content,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-accordion .elementor-tab-content{background:transparent!important;border-top:1px solid var(--vt-w-bd)!important}
/* Acordeón (FAQ): el título de cada pregunta termina con el icono + (− al abrirse), para que se vea que hay que pulsar.
   El icono va en el HTML antes del texto; row-reverse lo coloca detrás. !important: el tema pone padding:16px 20px !important
   a cada elemento del título (incluido el icono), lo que dejaba las preguntas altas y vacías (sección 5 del style.css). */
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-accordion .elementor-tab-title{display:flex!important;flex-direction:row-reverse!important;justify-content:flex-end!important;align-items:center!important;gap:10px!important;padding:16px 20px!important;cursor:pointer}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-accordion .elementor-tab-title *{padding:0!important;margin:0!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-accordion .elementor-accordion-icon{float:none!important;width:auto!important;flex:none;display:inline-flex!important;align-items:center;justify-content:center}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-accordion .elementor-accordion-icon :is(i,svg){width:14px!important;height:14px!important;font-size:14px!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-accordion .elementor-tab-content{padding:0 20px 18px!important}
/* Contador */
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-counter .elementor-counter{background:var(--vt-w-bg)!important;border:1px solid var(--vt-w-bd)!important;box-shadow:none!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-counter .elementor-counter-number-wrapper .elementor-counter-number,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-counter .elementor-counter-number-wrapper .elementor-counter-number-prefix,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-counter .elementor-counter-number-wrapper .elementor-counter-number-suffix{color:var(--vt-fg-accent)!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-counter .elementor-counter-title{color:var(--vt-fg-body)!important}
/* Testimonio */
/* el tema pinta la tarjeta en .elementor-widget-container / .elementor-testimonial (sección «TESTIMONIALS») */
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-testimonial .elementor-widget-container,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-testimonial{background:var(--vt-w-bg)!important;border:1px solid var(--vt-w-bd)!important;box-shadow:none!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-testimonial .elementor-testimonial-wrapper{background:transparent!important;border:0!important;box-shadow:none!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-testimonial :is(.elementor-testimonial-content,.elementor-testimonial__content){color:var(--vt-fg-body)!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-testimonial :is(.elementor-testimonial-name,.elementor-testimonial__name){color:var(--vt-fg)!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-testimonial :is(.elementor-testimonial-job,.elementor-testimonial__title){color:var(--vt-fg-muted)!important}
/* Formularios: etiquetas, ayuda, aceptación y mensajes */
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-form .elementor-field-label,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-form .elementor-field-group label,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-form .elementor-field-type-acceptance label,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-form .elementor-field-subgroup label{color:var(--vt-fg)!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-form .elementor-field-group .elementor-field-subgroup label,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-form .elementor-message,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-form .elementor-form-help,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-form .elementor-field-description{color:var(--vt-fg-body)!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-form .elementor-field-type-acceptance a{color:var(--vt-fg-link)!important}
/* Casilla de aceptación (RGPD): la casilla a la izquierda y el texto a su lado, en una sola línea */
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-form .elementor-field-type-acceptance .elementor-field-option{display:flex!important;flex-direction:row;align-items:flex-start;gap:10px}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-form .elementor-field-type-acceptance .elementor-field-option input{order:0;flex:none;margin:3px 0 0!important;width:auto!important;height:auto!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-form .elementor-field-type-acceptance .elementor-field-option label{order:1;margin:0!important;font-size:13px}
/* Campos: siempre fondo blanco y texto oscuro (también en sección oscura) */
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-form :is(input.elementor-field-textual,select.elementor-field-textual,textarea.elementor-field-textual),html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) :is(input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea){
  background:#FFFFFF!important;color:var(--vt-ink)!important;border:1px solid var(--vt-border-strong)!important;border-radius:10px!important;
  font-family:var(--vt-font)!important;font-size:14px;
}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-form :is(input.elementor-field-textual,select.elementor-field-textual,textarea.elementor-field-textual):focus,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) :is(input,select,textarea):focus{border-color:var(--vt-blue)!important;box-shadow:0 0 0 3px rgba(30,79,214,.15)!important;outline:0}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-form :is(input.elementor-field-textual,textarea.elementor-field-textual)::placeholder,html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) :is(input,textarea)::placeholder{color:var(--vt-placeholder)!important;opacity:1!important}
html:not(#vt) body :where(.vt-sec,.vt-sec--light,.vt-sec--white,.vt-sec--dark,.vt-sec--auto,.vt-on-dark,.vt-on-light,.vt-card,.vt-card--dark,.vt-quote,.vt-plan,.vt-dash,.vt-box,.vt-faq,.vt-stat) .elementor-widget-form select.elementor-field-textual option{color:var(--vt-ink);background:#FFFFFF}

/* ── 8. RESPONSIVE ─────────────────────────────────────────────────────────── */
@media (max-width:1024px){
  html:not(#vt) body .vt-plans,html:not(#vt) body .vt-grid-4:not(:has(> .e-con-inner)),html:not(#vt) body .vt-grid-4 > .e-con-inner{grid-template-columns:repeat(2,1fr)}
  html:not(#vt) body .vt-2col:not(:has(> .e-con-inner)),html:not(#vt) body .vt-2col > .e-con-inner{gap:36px}
}
@media (max-width:767px){
  html:not(#vt) body .vt-sec{padding:var(--vt-sec-pad-m)!important}
  html:not(#vt) body .vt-sec--tight{padding-top:0!important}
  html:not(#vt) body .vt-2col:not(:has(> .e-con-inner)),html:not(#vt) body .vt-2col > .e-con-inner,html:not(#vt) body .vt-grid-3:not(:has(> .e-con-inner)),html:not(#vt) body .vt-grid-3 > .e-con-inner,html:not(#vt) body .vt-grid-4:not(:has(> .e-con-inner)),html:not(#vt) body .vt-grid-4 > .e-con-inner,html:not(#vt) body .vt-stats,html:not(#vt) body .vt-plans{grid-template-columns:1fr}
  html:not(#vt) body .vt-box{padding:22px 18px}
  html:not(#vt) body .vt-faq{padding:8px 16px!important}
}

/* FAQ en todos los acordeones y toggles de la web (también fuera de .vt-sec):
   la pregunta va primero y el icono + (− al abrir) detrás, para que se vea que hay que pulsar. */
html:not(#vt) body .elementor-widget-accordion .elementor-accordion .elementor-tab-title,
html:not(#vt) body .elementor-widget-toggle .elementor-toggle .elementor-tab-title{display:flex!important;flex-direction:row-reverse!important;justify-content:flex-end!important;align-items:center!important;gap:10px!important;cursor:pointer}
html:not(#vt) body .elementor-widget-accordion .elementor-accordion .elementor-accordion-icon,
html:not(#vt) body .elementor-widget-toggle .elementor-toggle .elementor-toggle-icon{float:none!important;width:auto!important;flex:none;display:inline-flex!important;align-items:center;justify-content:center;margin:0!important;padding:0!important}
html:not(#vt) body .elementor-widget-accordion .elementor-accordion .elementor-accordion-icon :is(i,svg),
html:not(#vt) body .elementor-widget-toggle .elementor-toggle .elementor-toggle-icon :is(i,svg){width:14px!important;height:14px!important;font-size:14px!important}
html:not(#vt) body .elementor-widget-accordion .elementor-accordion .elementor-tab-title .elementor-accordion-title,
html:not(#vt) body .elementor-widget-toggle .elementor-toggle .elementor-tab-title .elementor-toggle-title{margin:0!important;padding:0!important}
/* style.css pone padding 16px 20px a TODO lo que hay dentro del título (.elementor-tab-title *), y eso deja el SVG del + sin espacio: solo el título conserva su padding. */
html:not(#vt) body .elementor-widget-accordion .elementor-accordion .elementor-tab-title *,
html:not(#vt) body .elementor-widget-toggle .elementor-toggle .elementor-tab-title *{padding:0!important;margin:0!important}
html:not(#vt) body .elementor-widget-accordion .elementor-accordion .elementor-tab-title,
html:not(#vt) body .elementor-widget-toggle .elementor-toggle .elementor-tab-title{padding:16px 20px!important}

/* ===== Encabezado semántico con aspecto de otro nivel (2026-10-04) =====
   Para corregir la jerarquía (H4→H2, H6→H3) sin cambiar el diseño: el widget heading lleva la clase
   vt-h-as-h4 / vt-h-as-h6 y conserva el tamaño y peso que tenía con la etiqueta antigua. */
.elementor .elementor-widget-heading.vt-h-as-h4 .elementor-heading-title,
.elementor .elementor-widget-text-editor .vt-h-as-h4 { font-size: 24px !important; line-height: 1.12 !important; font-weight: 600 !important; }
.elementor .elementor-widget-heading.vt-h-as-h6 .elementor-heading-title,
.elementor .elementor-widget-text-editor .vt-h-as-h6 { font-size: 20px !important; line-height: 1.12 !important; font-weight: 600 !important; }
