/* Víctor SEO WEB Widgets 2.0 · vs2-base.css · generado por tools/css2.py a partir de web/assets/css/site.css. No editar a mano. */

body, .vs2-tokens{--vs-white: var(--e-global-color-vs2blanco, #FFFFFF); --vs-soft: var(--e-global-color-vs2suave, #F2F4F8); --vs-ink: var(--e-global-color-vs2tinta, #0E1B33); --vs-slate: var(--e-global-color-vs2pizarra, #4B5567); --vs-line: var(--e-global-color-vs2linea, #E3E6EE); --vs-brand: var(--e-global-color-vs2marca, #5B3DF5); --vs-brand-dark: var(--e-global-color-vs2marcaos, #4529D6); --vs-brand-soft: var(--e-global-color-vs2marcasu, #EFECFF); --vs-brand-lit: var(--e-global-color-vs2marcacl, #A99BFF); --vs-navy-2: var(--e-global-color-vs2azul2, #16264A); --vs-deep: var(--e-global-color-vs2profundo, #08111F); --vs-star: var(--e-global-color-vs2estrella, #F5A524); --vs-up: var(--e-global-color-vs2sube, #13804B); --vs-error: var(--e-global-color-vs2error, #B42318); --vs-font: "Instrument Sans VS", "Instrument Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif; --vs-max: 1240px; --vs-gutter: clamp(20px, 4vw, 40px); --vs-sec: clamp(80px, 9vw, 128px); --vs-head-gap: clamp(40px, 5vw, 64px); --vs-header: 76px; --vs-r-sm: 8px; --vs-r: 14px; --vs-r-lg: 22px; --vs-shadow: 0 24px 48px -24px rgba(14, 27, 51, .28), 0 2px 6px rgba(14, 27, 51, .06); --vs-ease: cubic-bezier(.2, .7, .1, 1); interpolate-size: allow-keywords;}
body, .vs2-tokens{--vs-fs-desc: clamp(1rem, .96rem + .2vw, 1.125rem);}
/* Tipografías globales del kit (familia). Sin valor en el kit = Instrument Sans, como el diseño. */
body, .vs2-tokens{--vs-font-text: var(--e-global-typography-vs2texto-font-family, "Instrument Sans VS"), "Instrument Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif; --vs-font-head: var(--e-global-typography-vs2titulos-font-family, "Instrument Sans VS"), "Instrument Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif; --vs-font-kicker: var(--e-global-typography-vs2antetitulo-font-family, "Instrument Sans VS"), "Instrument Sans", ui-sans-serif, system-ui, sans-serif; --vs-font-btn: var(--e-global-typography-vs2botones-font-family, "Instrument Sans VS"), "Instrument Sans", ui-sans-serif, system-ui, sans-serif; --vs-font: var(--vs-font-text);}
.vs2 :is(h1, h2, h3, h4, .vs-h2, .vs-h3, .vs-hero__h1, .vs-hero__claim){font-family: var(--vs-font-head);}
.vs2 :is(.vs-kicker, .vs-hero__kicker){font-family: var(--vs-font-kicker);}
.vs2 .vs-btn{font-family: var(--vs-font-btn);}

/* Puesta a cero de lo que el tema (Hello Elementor) pone a títulos, enlaces, botones, tablas y listas: dentro de .vs2 manda el navegador, como en web/. */
:where(.vs2) *, :where(.vs2) *::before, :where(.vs2) *::after{box-sizing:revert;}
:where(.vs2) h1, :where(.vs2) h2, :where(.vs2) h3, :where(.vs2) h4, :where(.vs2) h5, :where(.vs2) h6{margin-block-start:revert;margin-block-end:revert;font-family:revert;font-weight:revert;line-height:revert;color:revert;}
:where(.vs2) h1{font-size:revert;}
:where(.vs2) h2{font-size:revert;}
:where(.vs2) h3{font-size:revert;}
:where(.vs2) h4{font-size:revert;}
:where(.vs2) h5{font-size:revert;}
:where(.vs2) h6{font-size:revert;}
:where(.vs2) p{margin-block-start:revert;margin-block-end:revert;}
:where(.vs2) hr{box-sizing:revert;height:revert;overflow:revert;}
:where(.vs2) pre{font-family:revert;font-size:revert;white-space:revert;}
:where(.vs2) a{background-color:revert;text-decoration:revert;color:revert;}
:where(.vs2) a:hover, :where(.vs2) a:active{color:revert;}
:where(.vs2) a:not([href]):not([tabindex]){color:revert;text-decoration:revert;}
:where(.vs2) a:not([href]):not([tabindex]):hover, :where(.vs2) a:not([href]):not([tabindex]):focus{color:revert;text-decoration:revert;}
:where(.vs2) a:not([href]):not([tabindex]):focus{outline:revert;}
:where(.vs2) abbr[title]{border-block-end:revert;text-decoration:revert;}
:where(.vs2) b, :where(.vs2) strong{font-weight:revert;}
:where(.vs2) code, :where(.vs2) kbd, :where(.vs2) samp{font-family:revert;font-size:revert;}
:where(.vs2) small{font-size:revert;}
:where(.vs2) sub, :where(.vs2) sup{font-size:revert;line-height:revert;position:revert;vertical-align:revert;}
:where(.vs2) sub{bottom:revert;}
:where(.vs2) sup{top:revert;}
:where(.vs2) img{border-style:revert;height:revert;max-width:revert;}
:where(.vs2) details{display:revert;}
:where(.vs2) summary{display:revert;}
:where(.vs2) figcaption{font-size:revert;color:revert;line-height:revert;font-style:revert;font-weight:revert;}
:where(.vs2) template{display:revert;}
:where(.vs2) [hidden]{display:none;}
@media print{:where(.vs2) *, :where(.vs2) *::before, :where(.vs2) *::after{background:revert;color:revert;-webkit-box-shadow:revert;box-shadow:revert;text-shadow:revert;}}
@media print{:where(.vs2) a, :where(.vs2) a:visited{text-decoration:revert;}}
@media print{:where(.vs2) a[href]::after{content:revert;}}
@media print{:where(.vs2) abbr[title]::after{content:revert;}}
@media print{:where(.vs2) a[href^="#"]::after, :where(.vs2) a[href^="javascript:"]::after{content:revert;}}
@media print{:where(.vs2) pre{white-space:revert;}}
@media print{:where(.vs2) pre, :where(.vs2) blockquote{break-inside:revert;border:revert;}}
@media print{:where(.vs2) thead{display:revert;}}
@media print{:where(.vs2) tr, :where(.vs2) img{break-inside:revert;}}
@media print{:where(.vs2) p, :where(.vs2) h2, :where(.vs2) h3{orphans:revert;widows:revert;}}
@media print{:where(.vs2) h2, :where(.vs2) h3{break-after:revert;}}
:where(.vs2) label{display:revert;line-height:revert;vertical-align:revert;}
:where(.vs2) button, :where(.vs2) input, :where(.vs2) optgroup, :where(.vs2) select, :where(.vs2) textarea{font-family:revert;font-size:revert;line-height:revert;margin:revert;}
:where(.vs2) input[type=text], :where(.vs2) input[type=date], :where(.vs2) input[type=time], :where(.vs2) input[type=email], :where(.vs2) input[type=number], :where(.vs2) input[type=password], :where(.vs2) input[type=search], :where(.vs2) input[type=tel], :where(.vs2) input[type=url], :where(.vs2) select, :where(.vs2) textarea{width:revert;border:revert;border-radius:revert;padding:revert;transition:revert;}
:where(.vs2) input[type=text]:focus, :where(.vs2) input[type=date]:focus, :where(.vs2) input[type=time]:focus, :where(.vs2) input[type=email]:focus, :where(.vs2) input[type=number]:focus, :where(.vs2) input[type=password]:focus, :where(.vs2) input[type=search]:focus, :where(.vs2) input[type=tel]:focus, :where(.vs2) input[type=url]:focus, :where(.vs2) select:focus, :where(.vs2) textarea:focus{border-color:revert;}
:where(.vs2) button, :where(.vs2) input{overflow:revert;}
:where(.vs2) button, :where(.vs2) select{text-transform:revert;}
:where(.vs2) button, :where(.vs2) [type=button], :where(.vs2) [type=reset], :where(.vs2) [type=submit]{width:revert;-webkit-appearance:revert;}
:where(.vs2) button, :where(.vs2) [type=submit], :where(.vs2) [type=button]{display:revert;font-weight:revert;color:revert;text-align:revert;white-space:revert;user-select:revert;background-color:revert;border:revert;padding:revert;font-size:revert;border-radius:revert;transition:revert;}
:where(.vs2) button:hover, :where(.vs2) button:focus, :where(.vs2) [type=submit]:hover, :where(.vs2) [type=submit]:focus, :where(.vs2) [type=button]:hover, :where(.vs2) [type=button]:focus{color:revert;background-color:revert;text-decoration:revert;}
:where(.vs2) button:not(:disabled), :where(.vs2) [type=submit]:not(:disabled), :where(.vs2) [type=button]:not(:disabled){cursor:revert;}
:where(.vs2) fieldset{padding:revert;}
:where(.vs2) legend{box-sizing:revert;color:revert;display:revert;max-width:revert;padding:revert;white-space:revert;}
:where(.vs2) progress{vertical-align:revert;}
:where(.vs2) textarea{overflow:revert;resize:revert;}
:where(.vs2) [type=checkbox], :where(.vs2) [type=radio]{box-sizing:revert;padding:revert;}
:where(.vs2) [type=search]{-webkit-appearance:revert;outline-offset:revert;}
:where(.vs2) select{display:revert;}
:where(.vs2) table{background-color:revert;width:revert;margin-block-end:revert;font-size:revert;border-spacing:revert;border-collapse:revert;}
:where(.vs2) table th, :where(.vs2) table td{padding:revert;line-height:revert;vertical-align:revert;border:revert;}
:where(.vs2) table th{font-weight:revert;}
:where(.vs2) table thead th, :where(.vs2) table tfoot th{font-size:revert;}
:where(.vs2) table caption+thead tr:first-child th, :where(.vs2) table caption+thead tr:first-child td, :where(.vs2) table colgroup+thead tr:first-child th, :where(.vs2) table colgroup+thead tr:first-child td, :where(.vs2) table thead:first-child tr:first-child th, :where(.vs2) table thead:first-child tr:first-child td{border-block-start:revert;}
:where(.vs2) table tbody>tr:nth-child(odd)>td, :where(.vs2) table tbody>tr:nth-child(odd)>th{background-color:revert;}
:where(.vs2) table tbody tr:hover>td, :where(.vs2) table tbody tr:hover>th{background-color:revert;}
:where(.vs2) table tbody+tbody{border-block-start:revert;}
@media (max-width: 767px){:where(.vs2) table table{font-size:revert;}}
@media (max-width: 767px){:where(.vs2) table table th, :where(.vs2) table table td{padding:revert;line-height:revert;}}
@media (max-width: 767px){:where(.vs2) table table th{font-weight:revert;}}
:where(.vs2) dl, :where(.vs2) dt, :where(.vs2) dd, :where(.vs2) ol, :where(.vs2) ul, :where(.vs2) li{margin-block-start:revert;margin-block-end:revert;border:revert;outline:revert;font-size:revert;vertical-align:revert;background:revert;}
:where(.vs2) a:focus-visible, :where(.vs2) button:focus-visible, :where(.vs2) input:focus-visible, :where(.vs2) select:focus-visible, :where(.vs2) textarea:focus-visible, :where(.vs2) [tabindex]:not([tabindex="-1"]):focus-visible{outline:revert;outline-offset:revert;box-shadow:revert;}
:where(.vs2) a:focus:not(:focus-visible), :where(.vs2) button:focus:not(:focus-visible), :where(.vs2) input:focus:not(:focus-visible), :where(.vs2) select:focus:not(:focus-visible), :where(.vs2) textarea:focus:not(:focus-visible), :where(.vs2) [tabindex]:not([tabindex="-1"]):focus:not(:focus-visible){outline:revert;box-shadow:revert;}
:where(.vs2) .site-header:not(.dynamic-header), :where(.vs2) .site-footer:not(.dynamic-footer){margin-inline-start:revert;margin-inline-end:revert;width:revert;}
@media (max-width: 575px){:where(.vs2) .site-header:not(.dynamic-header), :where(.vs2) .site-footer:not(.dynamic-footer){padding-inline-start:revert;padding-inline-end:revert;}}
@media (min-width: 576px){:where(.vs2) .site-header:not(.dynamic-header), :where(.vs2) .site-footer:not(.dynamic-footer){max-width:revert;}}
@media (min-width: 768px){:where(.vs2) .site-header:not(.dynamic-header), :where(.vs2) .site-footer:not(.dynamic-footer){max-width:revert;}}
@media (min-width: 992px){:where(.vs2) .site-header:not(.dynamic-header), :where(.vs2) .site-footer:not(.dynamic-footer){max-width:revert;}}
@media (min-width: 1200px){:where(.vs2) .site-header:not(.dynamic-header), :where(.vs2) .site-footer:not(.dynamic-footer){max-width:revert;}}
:where(.vs2) .site-header{display:revert;flex-wrap:revert;justify-content:revert;padding-block-start:revert;padding-block-end:revert;position:revert;}
:where(.vs2) .site-footer{padding-block-start:revert;padding-block-end:revert;position:revert;}

/* Raíz de cada widget: la tipografía del diseño. El color de texto viene del contenedor o de la sección. */
.vs2, .vs2-tipo-sec, .vs2-tipo-full{font-family: var(--vs-font); font-size: 1.0625rem; line-height: 1.65; font-weight: 400; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; interpolate-size: allow-keywords;}
:where(.vs2):not(:where(.vs2-tipo-sec .vs2, .vs2-tipo-full .vs2, .vs2-tipo-col .vs2)), .vs2-tipo-sec:not(.vs-sec--dark), .vs2-tipo-full{color: var(--vs-ink);}
/* Enlaces: Elementor quita el subrayado a todos (.elementor a); dentro de los widgets manda el navegador, como en web/. */
.vs2 a{text-decoration: revert;}
/* Botones sin aspecto de botón: blindados contra los estilos globales del kit, del tema o de otros plugins. */
.vs2 button:not(.vs-btn):not(.vs-video__play)::before, .vs2 button:not(.vs-btn):not(.vs-video__play)::after{content: none !important;}
.vs2.vs2 :is(.vs-nav__trigger, .vs-burger, .vs-footer__cookies, .vs-clients__toggle, .vs-round, .vs-pager__nav, .vs-pager button, .vs-filters button, .vs-cookies__x){box-shadow: none; text-shadow: none; background-image: none; min-height: 0; min-width: 0; letter-spacing: normal; text-transform: none; text-decoration: none; filter: none; transform: none; animation: none;}
/* ---------- Contenedores de Elementor con el grupo «Víctor SEO WEB» ----------
   Tipo: vs2-tipo-sec (sección), vs2-tipo-full (ancho completo, para Hero, Cierre…), vs2-tipo-col (columna).
   Fondo: vs-sec--white|soft|dark (las mismas clases del diseño). Disposición: vs2-disp-una|izq|twin|split|articulo.
   Doble clase para ganar a los ajustes que Elementor imprime por elemento (--display, --padding…, 0,3,0). */
.e-con.e-con.vs2-tipo-sec.vs2-tipo-sec, .e-con.e-con.vs2-tipo-full.vs2-tipo-full, .e-con.e-con.vs2-tipo-col.vs2-tipo-col, .e-con.e-con.vs2-tipo-sub.vs2-tipo-sub, .e-con.e-con.vs2-tipo-dos.vs2-tipo-dos, .e-con.e-con.vs2-tipo-texto.vs2-tipo-texto, .e-con.e-con.vs2-tipo-lateral.vs2-tipo-lateral{
  --margin-top: 0px; --margin-right: 0px; --margin-bottom: 0px; --margin-left: 0px;
  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
  --gap: 0px; --row-gap: 0px; --column-gap: 0px; --widgets-spacing: 0px; --widgets-spacing-row: 0px; --widgets-spacing-column: 0px;
  --width: 100%; --min-height: 0px; --display: block; --flex-direction: column; --overflow: visible;
  --container-widget-width: 100%; --container-widget-flex-grow: 0;
  max-width: none;
}
.e-con.e-con.vs2-tipo-sec.vs2-tipo-sec{
  --padding-top: var(--vs-sec); --padding-bottom: var(--vs-sec);
  --content-width: calc(var(--vs-max) + 2 * var(--vs-gutter));
  position: relative;
}
.e-con.e-con.vs2-tipo-sec.vs2-tipo-sec.e-con-full{
  --padding-left: max(var(--vs-gutter), calc((100% - var(--vs-max)) / 2));
  --padding-right: max(var(--vs-gutter), calc((100% - var(--vs-max)) / 2));
}
.e-con.e-con.vs2-tipo-sec.vs2-tipo-sec > .e-con-inner{ padding-inline: var(--vs-gutter); max-width: calc(var(--vs-max) + 2 * var(--vs-gutter)); display: block; }
.e-con.e-con.vs2-tipo-full.vs2-tipo-full > .e-con-inner{ max-width: none; padding-inline: 0; display: block; }
.vs2-tipo-sec.vs-sec--white{ background-color: var(--vs-white); }
.vs2-tipo-sec.vs-sec--soft{ background-color: var(--vs-soft); box-shadow: inset 0 1px 0 var(--vs-line), inset 0 -1px 0 var(--vs-line); }
.vs2-tipo-sec.vs-sec--dark{ background-color: var(--vs-ink); color: #fff; }

/* Widgets dentro: sin márgenes ni anchos de Elementor; el espacio lo ponen los bloques (como .vs-block en web/). */
:is(.vs2-tipo-sec, .vs2-tipo-full, .vs2-tipo-col, .vs2-tipo-sub, .vs2-tipo-dos, .vs2-tipo-texto, .vs2-tipo-lateral) .elementor-element.elementor-element{ margin: 0; padding: 0; width: auto; max-width: none; --kit-widget-spacing: 0px; }
/* Espacio entre bloques: por defecto, el margen propio de cada componente (como en web/, donde cada pieza trae el suyo);
   «Bloque» = la separación de .vs-block del diseño. El margen del componente atraviesa el envoltorio (no hay relleno). */
.vs2.vs2-b{ margin-top: 0; }
.vs2.vs2-b--bloque{ margin-top: clamp(32px, 4vw, 48px); }
.vs2.vs2-b--after{ margin-top: 36px; }
.vs2.vs2-b--tight{ margin-top: 20px; }
.vs2.vs2-b--none, .vs2.vs2-b--none > :first-child{ margin-top: 0; }
:is(.e-con-inner, .vs2-tipo-sec.e-con-full, .vs2-tipo-col, .vs2-tipo-sub) > .elementor-element:first-child > .vs2.vs2-b{ margin-top: 0; }
:is(.e-con-inner, .vs2-tipo-sec.e-con-full, .vs2-tipo-col, .vs2-tipo-sub) > .elementor-element:first-child > .vs2.vs2-b > :first-child{ margin-top: 0; }
/* Lo que en web/ hacen los selectores de hermanos (.vs-head + .vs-prose…), entre widgets. */
.elementor-element:has(> .vs2-b--head) + .elementor-element > .vs2.vs2-b > :is(.vs-prose, .vs-answer):first-child{ margin-top: 0; }
.vs2-tipo-sec .vs2-b > .vs-head:last-child{ margin-bottom: var(--vs-head-gap); }

/* Título a la izquierda (vs-splitsec): el primer widget queda fijo a la izquierda y el resto va a la derecha. */
.e-con.e-con.vs2-disp-izq.vs2-disp-izq > .e-con-inner, .e-con.e-con.vs2-disp-izq.vs2-disp-izq.e-con-full{ display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: clamp(32px, 6vw, 96px); row-gap: 0; align-items: start; }
.vs2-disp-izq :is(.e-con-inner, .e-con-full) > .elementor-element, .vs2-disp-izq.e-con-full > .elementor-element{ grid-column: 2; }
.vs2-disp-izq > .e-con-inner > .elementor-element:first-child, .vs2-disp-izq.e-con-full > .elementor-element:first-child{ grid-column: 1; grid-row: 1 / span 20; position: sticky; top: calc(var(--vs-header) + 32px); }
.vs2-disp-izq > .e-con-inner > .elementor-element:first-child .vs-head, .vs2-disp-izq.e-con-full > .elementor-element:first-child .vs-head{ margin-bottom: 0; }
.vs2-disp-izq > .e-con-inner > .elementor-element:nth-child(2) > .vs2.vs2-b, .vs2-disp-izq.e-con-full > .elementor-element:nth-child(2) > .vs2.vs2-b{ margin-top: 0; }
@media (max-width: 899px){
  .e-con.e-con.vs2-disp-izq.vs2-disp-izq > .e-con-inner, .e-con.e-con.vs2-disp-izq.vs2-disp-izq.e-con-full{ grid-template-columns: 1fr; }
  .vs2-disp-izq :is(.e-con-inner, .e-con-full) > .elementor-element, .vs2-disp-izq.e-con-full > .elementor-element{ grid-column: 1; }
  .vs2-disp-izq > .e-con-inner > .elementor-element:first-child, .vs2-disp-izq.e-con-full > .elementor-element:first-child{ grid-row: auto; position: static; }
  /* apilado, como el hueco de la rejilla de .vs-splitsec en web/ */
  .vs2-disp-izq > .e-con-inner > .elementor-element:first-child .vs-head, .vs2-disp-izq.e-con-full > .elementor-element:first-child .vs-head{ margin-bottom: clamp(32px, 6vw, 96px); }
}

/* Dos columnas con título (vs-twin) y texto y elemento (vs-split): contenedores hijos «Columna». */
.e-con.e-con.vs2-disp-twin.vs2-disp-twin > .e-con-inner, .e-con.e-con.vs2-disp-twin.vs2-disp-twin.e-con-full{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(32px, 5vw, 72px); align-items: start; }
.vs2-disp-twin .e-con.vs2-tipo-col{ display: grid; gap: 22px; align-content: start; scroll-margin-top: calc(var(--vs-header) + 16px); }
.vs2-disp-twin .e-con.vs2-tipo-col .vs2.vs2-b{ margin-top: 0; }
.e-con.e-con.vs2-disp-split.vs2-disp-split > .e-con-inner, .e-con.e-con.vs2-disp-split.vs2-disp-split.e-con-full{ display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.vs2-disp-split > .e-con-inner > .elementor-element > .vs2.vs2-b, .vs2-disp-split > .elementor-element > .vs2.vs2-b{ margin-top: 0; }
@media (max-width: 899px){
  .e-con.e-con.vs2-disp-twin.vs2-disp-twin > .e-con-inner, .e-con.e-con.vs2-disp-twin.vs2-disp-twin.e-con-full{ grid-template-columns: 1fr; }
}
@media (max-width: 1023px){
  .e-con.e-con.vs2-disp-split.vs2-disp-split > .e-con-inner, .e-con.e-con.vs2-disp-split.vs2-disp-split.e-con-full{ grid-template-columns: 1fr; }
}
/* Una sección de dos columnas cuyo hijo es una sección del plugin («Texto y elemento» dentro de una sección normal). */
.vs2-tipo-sec .e-con.vs2-disp-split{ margin-top: clamp(32px, 4vw, 48px); }

/* Artículo (vs-postgrid): contenedores hijos «Texto» y «Lateral». */
.e-con.e-con.vs2-disp-articulo.vs2-disp-articulo > .e-con-inner, .e-con.e-con.vs2-disp-articulo.vs2-disp-articulo.e-con-full{ display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: clamp(40px, 6vw, 96px); align-items: start; }
.vs2-disp-articulo > .e-con-inner > .e-con, .vs2-disp-articulo.e-con-full > .e-con{ min-width: 0; }
@media (max-width: 1023px){
  .e-con.e-con.vs2-disp-articulo.vs2-disp-articulo > .e-con-inner, .e-con.e-con.vs2-disp-articulo.vs2-disp-articulo.e-con-full{ grid-template-columns: 1fr; }
}

/* En el editor: que se vean las secciones vacías. */
.elementor-editor-active .e-con.vs2-tipo-sec:not(:has(.elementor-widget)){ min-height: 120px; }

/* Subbloque (vs-subblock): título, entradilla y un bloque dentro de una sección, con más aire arriba. */
.e-con.e-con.vs2-tipo-sub.vs2-tipo-sub{ margin-top: clamp(56px, 7vw, 80px); }
.e-con.e-con.vs2-tipo-sub.vs2-tipo-sub > .e-con-inner{ max-width: none; padding-inline: 0; display: block; }

/* Dos piezas lado a lado (vs-split dentro de una sección): texto y elemento. */
.e-con.e-con.vs2-tipo-dos.vs2-tipo-dos{ --display: grid; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.e-con.e-con.vs2-tipo-dos.vs2-tipo-dos > .e-con-inner{ display: contents; }
.vs2-tipo-dos > .elementor-element > .vs2.vs2-b, .vs2-tipo-dos > .e-con-inner > .elementor-element > .vs2.vs2-b{ margin-top: 0; }
.vs2-tipo-dos > .elementor-element > .vs2.vs2-b > :first-child, .vs2-tipo-dos > .e-con-inner > .elementor-element > .vs2.vs2-b > :first-child{ margin-top: 0; }
@media (max-width: 1023px){ .e-con.e-con.vs2-tipo-dos.vs2-tipo-dos{ grid-template-columns: 1fr; } }
/* Como .vs-block + .vs-block en web/: un subbloque detrás de otro bloque con separación de bloque, 48 px. */
.e-con.e-con.vs2-tipo-sub.vs2-tipo-sub + .e-con.e-con.vs2-tipo-sub.vs2-tipo-sub,
.elementor-element:has(> .vs2-b--bloque) + .e-con.e-con.vs2-tipo-sub.vs2-tipo-sub{ margin-top: clamp(32px, 4vw, 48px); }

/* Artículo (vs-postgrid): «Texto del artículo» hace de article.vs-article y «Lateral», de aside.vs-postside. */
.e-con.e-con.vs2-tipo-texto.vs2-tipo-texto{ --display: block; display: block; max-width: 720px; font-size: 1.125rem; line-height: 1.75; color: #2A3447; overflow-wrap: break-word; }
.vs2-tipo-texto .vs2{ font-size: inherit; line-height: inherit; color: inherit; }
.e-con.e-con.vs2-tipo-lateral.vs2-tipo-lateral{ --display: grid; display: grid; gap: 20px; position: sticky; top: calc(var(--vs-header) + 32px); align-self: start; }
.e-con.e-con.vs2-tipo-lateral.vs2-tipo-lateral > .elementor-element > .vs2.vs2-b{ margin-top: 0; }
@media (max-width: 1023px){ .e-con.e-con.vs2-tipo-lateral.vs2-tipo-lateral{ display: none; } }
@media (max-width: 639px){ .e-con.e-con.vs2-tipo-texto.vs2-tipo-texto{ font-size: 1.0625rem; overflow-wrap: anywhere; } }
/* Como en web/: los hijos del lateral no se estrechan por debajo de su contenido (el botón de WhatsApp no se parte y
   ensancha la columna a ~318 px, igual que .vs-postside > *). */
.e-con.e-con.vs2-tipo-lateral.vs2-tipo-lateral > .elementor-element{ min-width: auto; max-width: none; }

@font-face{font-family: "Instrument Sans VS"; src: url("../fonts/instrument-sans-latin-wght-normal.woff2") format("woff2-variations"), url("../fonts/instrument-sans-latin-wght-normal.woff2") format("woff2"); font-weight: 400 700; font-style: normal; font-display: swap; unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family: "Instrument Sans VS"; src: url("../fonts/instrument-sans-latin-ext-wght-normal.woff2") format("woff2-variations"), url("../fonts/instrument-sans-latin-ext-wght-normal.woff2") format("woff2"); font-weight: 400 700; font-style: normal; font-display: swap; unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family: "Instrument Sans VS"; src: url("../fonts/instrument-sans-latin-wght-italic.woff2") format("woff2-variations"), url("../fonts/instrument-sans-latin-wght-italic.woff2") format("woff2"); font-weight: 400 700; font-style: italic; font-display: swap; unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
.vs2 *, .vs2 *::before, .vs2 *::after{box-sizing: border-box;}
html:has(.vs2 .vs-header){-webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--vs-header) + 16px);}
@media (prefers-reduced-motion: no-preference){html:has(.vs2 .vs-header){scroll-behavior: smooth;}}
.vs2, .vs2-tipo-sec, .vs2-tipo-full{margin: 0; font-family: var(--vs-font); font-size: 1.0625rem; line-height: 1.65; font-weight: 400; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility;}
.vs2 img, .vs2 svg{max-width: 100%;}
.vs2 img{height: auto;}
.vs2 a{color: inherit;}
.vs2 p a, .vs2 dd a{color: var(--vs-brand); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; transition: color .2s, text-decoration-thickness .2s;}
.vs2 p a:hover{color: var(--vs-brand-dark); text-decoration-thickness: 2px;}
.vs2 :focus-visible{outline: 2.5px solid var(--vs-brand); outline-offset: 3px; border-radius: 4px;}
.vs2 ::selection{background: var(--vs-brand); color: #fff;}
.vs2 .vs-wrap{width: 100%; max-width: calc(var(--vs-max) + 2 * var(--vs-gutter)); margin-inline: auto; padding-inline: var(--vs-gutter);}
.vs2 .vs-h2{margin: 0; font-size: clamp(1.875rem, 1.25rem + 2.2vw, 2.875rem); line-height: 1.12; font-weight: 600; letter-spacing: -.025em; text-wrap: balance;}
.vs2 .vs-h3{margin: 0; font-size: 1.25rem; line-height: 1.3; font-weight: 600; letter-spacing: -.01em;}
.vs2 .vs-lead{margin: 0; font-size: clamp(1.0625rem, 1rem + .25vw, 1.1875rem); line-height: 1.6; color: var(--vs-slate); max-width: 60ch; text-wrap: pretty;}
.vs2 .vs-head{display: grid; gap: 14px; justify-items: start; max-width: 720px; margin-bottom: var(--vs-head-gap);}
.vs2 .vs-head--row{display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px 48px; max-width: none;}
.vs2 .vs-head__main{display: grid; gap: 14px; justify-items: start; max-width: 680px;}
.vs2 .vs-kicker{display: inline-flex; align-items: center; gap: 10px; margin: 0; font-size: .9375rem; line-height: 1.3; font-weight: 600; color: var(--vs-brand);}
.vs2 .vs-kicker::before{content: ""; width: 24px; height: 2px; border-radius: 2px; background: currentColor;}
.vs2 .vs-btn{display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 0 22px; border: 1.5px solid transparent; border-radius: var(--vs-r-sm); font: inherit; font-size: 1rem; font-weight: 600; line-height: 1.1; text-decoration: none; white-space: nowrap; cursor: pointer; transition: background-color .2s, color .2s, border-color .2s, box-shadow .2s, transform .15s;}
.vs2 .vs-btn:active{transform: translateY(1px);}
.vs2 .vs-btn--lg{min-height: 54px; padding: 0 26px; font-size: 1.0625rem;}
.vs2 .vs-btn--block{width: 100%;}
.vs2 .vs-btn--primary{background: var(--vs-brand); color: #fff; box-shadow: 0 8px 20px -10px rgba(91, 61, 245, .7);}
.vs2 .vs-btn--primary:hover{background: var(--vs-brand-dark); box-shadow: 0 12px 26px -10px rgba(91, 61, 245, .75);}
.vs2 .vs-btn--ghost{background: var(--vs-white); color: var(--vs-ink); border-color: var(--vs-line);}
.vs2 .vs-btn--ghost:hover{border-color: var(--vs-ink);}
.vs2 .vs-btn--light{background: #fff; color: var(--vs-ink);}
.vs2 .vs-btn--light:hover{background: var(--vs-brand-soft);}
.vs2 .vs-btn--outline-light{background: transparent; color: #fff; border-color: rgba(255, 255, 255, .35);}
.vs2 .vs-btn--outline-light:hover{border-color: #fff;}
.vs2 .vs-ico-wa{display: block; flex: none; width: 20px; height: 20px; fill: currentColor; stroke: none; color: inherit;}
.vs2 .vs-btn--wa{gap: 10px;}
.vs2 .vs-btn--lg.vs-btn--wa .vs-ico-wa{width: 21px; height: 21px;}
.vs2 .vs-actions{display: flex; flex-wrap: wrap; gap: 12px;}
.vs2 .vs-actions--center{align-items: center; gap: 14px 28px;}
.vs2 .vs-arrow{width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .25s var(--vs-ease);}
.vs2 .vs-link:hover .vs-arrow{transform: translateX(4px);}
.vs2 .vs-link.vs-link--hero{color: #fff; font-size: 1.0625rem; border-bottom-color: rgba(169, 155, 255, .7);}
.vs2 .vs-link.vs-link--hero:hover{color: #fff; border-bottom-color: #fff;}
.vs2 .vs-link.vs-link--arrow{font-size: 1.0625rem; color: var(--vs-ink); border-bottom-color: color-mix(in srgb, var(--vs-brand) 55%, transparent);}
.vs2 .vs-link.vs-link--arrow:hover{color: var(--vs-brand);}
.vs2 .vs-link{display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--vs-brand); text-decoration: none; border-bottom: 1.5px solid color-mix(in srgb, var(--vs-brand) 35%, transparent); padding-bottom: 2px; transition: border-color .2s, color .2s;}
.vs2 .vs-link:hover{color: var(--vs-brand-dark); border-bottom-color: currentColor;}
.vs2 .vs-link--light{color: var(--vs-brand-lit); border-bottom-color: rgba(169, 155, 255, .4);}
.vs2 .vs-link--light:hover{color: #fff;}
.vs2 .vs-ico{display: grid; place-items: center; flex: none; width: 48px; height: 48px; border-radius: 12px; background: var(--vs-brand-soft); color: var(--vs-brand);}
.vs2 .vs-ico svg{width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round;}
.vs2 .vs-sec{position: relative; padding: var(--vs-sec) 0;}
.vs2 .vs-sec--white, .vs2-tipo-sec.vs-sec--white{background: var(--vs-white);}
.vs2 .vs-sec--soft, .vs2-tipo-sec.vs-sec--soft{background: var(--vs-soft); box-shadow: inset 0 1px 0 var(--vs-line), inset 0 -1px 0 var(--vs-line);}
.vs2 .vs-sec--dark, .vs2-tipo-sec.vs-sec--dark{background: var(--vs-ink); color: #fff;}
.vs2 .vs-sec--dark .vs-lead, .vs2-tipo-sec.vs-sec--dark .vs-lead{color: #AEB6C7;}
.vs2 .vs-sec--dark .vs-kicker, .vs2-tipo-sec.vs-sec--dark .vs-kicker{color: var(--vs-brand-lit);}
.vs2 .vs-sec--dark p a, .vs2-tipo-sec.vs-sec--dark p a{color: var(--vs-brand-lit);}
.vs2 .vs-sec--dark p a:hover, .vs2-tipo-sec.vs-sec--dark p a:hover{color: #fff;}
.vs2-reveal .vs2 [data-reveal]{opacity: 0; transform: translateY(22px); transition: opacity .8s var(--vs-ease), transform .9s var(--vs-ease), border-color .25s, box-shadow .25s; transition-delay: calc(var(--d, 0) * 90ms), calc(var(--d, 0) * 90ms), 0s, 0s;}
.vs2-reveal .vs2 [data-reveal].is-in{opacity: 1; transform: none;}
@keyframes vs-drift{ from { transform: translate3d(0, 0, 0) scale(1); } to { transform: translate3d(-60px, 40px, 0) scale(1.08); } }
@keyframes vs-draw{ from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes vs-fade{ from { opacity: 0; } to { opacity: 1; } }
@keyframes vs-pop{ from { transform: scale(0); } to { transform: scale(1); } }
@keyframes vs-pulse{ 0% { transform: scale(1); opacity: .9; } 100% { transform: scale(5); opacity: 0; } }
@keyframes vs-up{ from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
@keyframes vs-reveal{ from { clip-path: inset(100% 0 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes vs-zoom{ from { transform: scale(1.08); } to { transform: scale(1); } }
.vs2 .vs-sr{position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap;}
@keyframes vs-marquee{ to { transform: translate3d(-50%, 0, 0); } }
@keyframes vs-ripple{ from { transform: scale(1); opacity: 1; } to { transform: scale(1.7); opacity: 0; } }
@keyframes vs-ring{ 0% { box-shadow: 0 0 0 0 rgba(91, 61, 245, .4); } 100% { box-shadow: 0 0 0 16px rgba(91, 61, 245, 0); } }
@keyframes vs-flow{ to { background-position: 24px 0; } }
@keyframes vs-pinpulse{ 0% { transform: scale(1); opacity: .9; } 100% { transform: scale(3.4); opacity: 0; } }
.vs2 .vs-head--rating{display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px 48px; max-width: none;}
.vs2 .vs-head--rating > div:first-child{display: grid; gap: 14px;}
@media (max-width: 1023px){@keyframes vs-flow-y{ to { background-position: 0 24px; } }}
@media (max-width: 639px){.vs2, .vs2-tipo-sec, .vs2-tipo-full{font-size: 1rem;}.vs2 .vs-actions--center{gap: 16px;}.vs2 .vs-actions--center .vs-link{margin-inline: auto;}.vs2 .vs-head--row .vs-btn{width: 100%;}.vs2 .vs-actions .vs-btn{flex: 1 1 100%;}.vs2 .vs-head--rating{align-items: flex-start;}}
@media (prefers-reduced-motion: reduce){.vs2 *, .vs2 *::before, .vs2 *::after{animation-duration: .01ms !important; animation-delay: 0s !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0s !important;}}
@keyframes vs-rise-you{ from { transform: translateY(150%); opacity: .4; } to { transform: none; opacity: 1; } }
@keyframes vs-pin-drop{ from { transform: translateY(-40px) rotate(-45deg); opacity: 0; } to { transform: rotate(-45deg); opacity: 1; } }
@keyframes vs-grow{ from { transform: scaleX(0); } to { transform: scaleX(1); } }
@property --vs2-p{syntax: "<number>"; inherits: false; initial-value: 0;}
@keyframes vs-gauge{ from { --vs2-p: 0; } to { --vs2-p: 92; } }
@keyframes vs-grow-y{ from { transform: scaleY(0); } to { transform: scaleY(1); } }
.vs2 .vs-head + .vs-answer{margin-top: 0;}
.vs2 .vs-ctaband .vs-lead{margin-top: 14px; color: #D5DAE4;}
.vs2 .vs-ctaband__actions .vs-link{justify-self: center;}
.vs2 .vs-works__body .vs-link{justify-self: start; margin-top: 8px;}
@media (max-width: 639px){.vs2 .vs-btn{white-space: normal; text-align: center;}}
.vs2 .vs-link--wa{gap: 9px;}
.vs2 .vs-link--wa .vs-ico-wa{width: 19px; height: 19px;}
.vs2 .vs-cta2__text .vs-kicker{margin-bottom: 16px;}
.vs2 .vs-cta2__text .vs-h2{max-width: 18ch; font-size: clamp(2.125rem, 1.4rem + 2.6vw, 3.25rem);}
.vs2 .vs-cta2 .vs-cta2__text .vs-lead{margin: 20px 0 0; max-width: 52ch; color: #D5DAE4;}
@media (max-width: 639px){.vs2 .vs-cta2__text .vs-actions .vs-link{justify-self: start;}}
.vs2 .vs-lead, .vs2 .vs-cta2 .vs-cta2__text .vs-lead{font-size: var(--vs-fs-desc); line-height: 1.65;}
.vs2 .vs-h2--sm{font-size: clamp(1.625rem, 1.2rem + 1.4vw, 2.25rem);}
