/* Víctor SEO WEB Widgets · common.css · generado por fuente/elementor/css_build.py a partir de fuente/assets. No editar a mano. */
/* 1 · TOKENS: cada color lee su color global de Elementor (Ajustes del sitio › Colores globales);
   el valor del diseño queda como reserva. Se definen en body porque ahí publica Elementor sus globales. */
body, .vsw-tokens{
  --vsw-bg: var(--e-global-color-vswfondo, #111827);
  --vsw-panel: var(--e-global-color-vswpanel, #1A2332);
  --vsw-ink: var(--e-global-color-vswtexto, #FFFFFF);
  --vsw-ink-soft: var(--e-global-color-vswsuave, #AAB1C0);
  --vsw-accent: var(--e-global-color-vswacento, #705CF6);
  --vsw-accent-2: var(--e-global-color-vswacento2, #8B7CF6);
  --vsw-star: var(--e-global-color-vswestrellas, #D9A441);
  --vsw-card: color-mix(in srgb, var(--vsw-ink) 3%, transparent);
  --vsw-card-hover: color-mix(in srgb, var(--vsw-ink) 5%, transparent);
  --vsw-border: color-mix(in srgb, var(--vsw-ink) 12%, transparent);
  --vsw-border-soft: color-mix(in srgb, var(--vsw-ink) 6%, transparent);
  --vsw-accent-line: color-mix(in srgb, var(--vsw-accent) 45%, transparent);
  --vsw-icon-bg: color-mix(in srgb, var(--vsw-accent) 13%, transparent);
  --vsw-font: var(--e-global-typography-vswfuente-font-family, 'Figtree'), system-ui, sans-serif;
  --vsw-header-h: 72px;
  --vsw-shadow-lift: 0 40px 80px -30px rgba(0,0,0,.55);
  --vsw-shadow-photo: 0 30px 60px -24px rgba(0,0,0,.6);
  --vsw-shadow-btn: 0 10px 24px -8px color-mix(in srgb, var(--vsw-accent) 55%, transparent);
}
@media(min-width:640px){body, .vsw-tokens{--vsw-header-h:80px;}}
/* Compatibilidad con Hello Elementor: dentro de .vsw manda el diseño (las reglas del tema vuelven al valor del navegador). */
:where(.vsw) *, :where(.vsw) *::before, :where(.vsw) *::after{box-sizing:revert;}
:where(.vsw) h1, :where(.vsw) h2, :where(.vsw) h3, :where(.vsw) h4, :where(.vsw) h5, :where(.vsw) h6{margin-block-start:revert;margin-block-end:revert;font-family:revert;font-weight:revert;line-height:revert;color:revert;}
:where(.vsw) h1{font-size:revert;}
:where(.vsw) h2{font-size:revert;}
:where(.vsw) h3{font-size:revert;}
:where(.vsw) h4{font-size:revert;}
:where(.vsw) h5{font-size:revert;}
:where(.vsw) h6{font-size:revert;}
:where(.vsw) p{margin-block-start:revert;margin-block-end:revert;}
:where(.vsw) hr{box-sizing:revert;height:revert;overflow:revert;}
:where(.vsw) pre{font-family:revert;font-size:revert;white-space:revert;}
:where(.vsw) a{background-color:revert;text-decoration:revert;color:revert;}
:where(.vsw) a:hover, :where(.vsw) a:active{color:revert;}
:where(.vsw) a:not([href]):not([tabindex]){color:revert;text-decoration:revert;}
:where(.vsw) a:not([href]):not([tabindex]):hover, :where(.vsw) a:not([href]):not([tabindex]):focus{color:revert;text-decoration:revert;}
:where(.vsw) a:not([href]):not([tabindex]):focus{outline:revert;}
:where(.vsw) abbr[title]{border-block-end:revert;text-decoration:revert;}
:where(.vsw) b, :where(.vsw) strong{font-weight:revert;}
:where(.vsw) code, :where(.vsw) kbd, :where(.vsw) samp{font-family:revert;font-size:revert;}
:where(.vsw) small{font-size:revert;}
:where(.vsw) sub, :where(.vsw) sup{font-size:revert;line-height:revert;position:revert;vertical-align:revert;}
:where(.vsw) sub{bottom:revert;}
:where(.vsw) sup{top:revert;}
:where(.vsw) img{border-style:revert;height:revert;max-width:revert;}
:where(.vsw) details{display:revert;}
:where(.vsw) summary{display:revert;}
:where(.vsw) figcaption{font-size:revert;color:revert;line-height:revert;font-style:revert;font-weight:revert;}
:where(.vsw) template{display:revert;}
:where(.vsw) [hidden]{display:revert;}
@media print{:where(.vsw) *, :where(.vsw) *::before, :where(.vsw) *::after{background:revert;color:revert;-webkit-box-shadow:revert;box-shadow:revert;text-shadow:revert;}}
@media print{:where(.vsw) a, :where(.vsw) a:visited{text-decoration:revert;}}
@media print{:where(.vsw) a[href]::after{content:revert;}}
@media print{:where(.vsw) abbr[title]::after{content:revert;}}
@media print{:where(.vsw) a[href^="#"]::after, :where(.vsw) a[href^="javascript:"]::after{content:revert;}}
@media print{:where(.vsw) pre{white-space:revert;}}
@media print{:where(.vsw) pre, :where(.vsw) blockquote{break-inside:revert;border:revert;}}
@media print{:where(.vsw) thead{display:revert;}}
@media print{:where(.vsw) tr, :where(.vsw) img{break-inside:revert;}}
@media print{:where(.vsw) p, :where(.vsw) h2, :where(.vsw) h3{orphans:revert;widows:revert;}}
@media print{:where(.vsw) h2, :where(.vsw) h3{break-after:revert;}}
:where(.vsw) label{display:revert;line-height:revert;vertical-align:revert;}
:where(.vsw) button, :where(.vsw) input, :where(.vsw) optgroup, :where(.vsw) select, :where(.vsw) textarea{font-family:revert;font-size:revert;line-height:revert;margin:revert;}
:where(.vsw) input[type=text], :where(.vsw) input[type=date], :where(.vsw) input[type=time], :where(.vsw) input[type=email], :where(.vsw) input[type=number], :where(.vsw) input[type=password], :where(.vsw) input[type=search], :where(.vsw) input[type=tel], :where(.vsw) input[type=url], :where(.vsw) select, :where(.vsw) textarea{width:revert;border:revert;border-radius:revert;padding:revert;transition:revert;}
:where(.vsw) input[type=text]:focus, :where(.vsw) input[type=date]:focus, :where(.vsw) input[type=time]:focus, :where(.vsw) input[type=email]:focus, :where(.vsw) input[type=number]:focus, :where(.vsw) input[type=password]:focus, :where(.vsw) input[type=search]:focus, :where(.vsw) input[type=tel]:focus, :where(.vsw) input[type=url]:focus, :where(.vsw) select:focus, :where(.vsw) textarea:focus{border-color:revert;}
:where(.vsw) button, :where(.vsw) input{overflow:revert;}
:where(.vsw) button, :where(.vsw) select{text-transform:revert;}
:where(.vsw) button, :where(.vsw) [type=button], :where(.vsw) [type=reset], :where(.vsw) [type=submit]{width:revert;-webkit-appearance:revert;}
:where(.vsw) button, :where(.vsw) [type=submit], :where(.vsw) [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(.vsw) button:hover, :where(.vsw) button:focus, :where(.vsw) [type=submit]:hover, :where(.vsw) [type=submit]:focus, :where(.vsw) [type=button]:hover, :where(.vsw) [type=button]:focus{color:revert;background-color:revert;text-decoration:revert;}
:where(.vsw) button:not(:disabled), :where(.vsw) [type=submit]:not(:disabled), :where(.vsw) [type=button]:not(:disabled){cursor:revert;}
:where(.vsw) fieldset{padding:revert;}
:where(.vsw) legend{box-sizing:revert;color:revert;display:revert;max-width:revert;padding:revert;white-space:revert;}
:where(.vsw) progress{vertical-align:revert;}
:where(.vsw) textarea{overflow:revert;resize:revert;}
:where(.vsw) [type=checkbox], :where(.vsw) [type=radio]{box-sizing:revert;padding:revert;}
:where(.vsw) [type=search]{-webkit-appearance:revert;outline-offset:revert;}
:where(.vsw) select{display:revert;}
:where(.vsw) table{background-color:revert;width:revert;margin-block-end:revert;font-size:revert;border-spacing:revert;border-collapse:revert;}
:where(.vsw) table th, :where(.vsw) table td{padding:revert;line-height:revert;vertical-align:revert;border:revert;}
:where(.vsw) table th{font-weight:revert;}
:where(.vsw) table thead th, :where(.vsw) table tfoot th{font-size:revert;}
:where(.vsw) table caption+thead tr:first-child th, :where(.vsw) table caption+thead tr:first-child td, :where(.vsw) table colgroup+thead tr:first-child th, :where(.vsw) table colgroup+thead tr:first-child td, :where(.vsw) table thead:first-child tr:first-child th, :where(.vsw) table thead:first-child tr:first-child td{border-block-start:revert;}
:where(.vsw) table tbody>tr:nth-child(odd)>td, :where(.vsw) table tbody>tr:nth-child(odd)>th{background-color:revert;}
:where(.vsw) table tbody tr:hover>td, :where(.vsw) table tbody tr:hover>th{background-color:revert;}
:where(.vsw) table tbody+tbody{border-block-start:revert;}
@media (max-width: 767px){:where(.vsw) table table{font-size:revert;}}
@media (max-width: 767px){:where(.vsw) table table th, :where(.vsw) table table td{padding:revert;line-height:revert;}}
@media (max-width: 767px){:where(.vsw) table table th{font-weight:revert;}}
:where(.vsw) dl, :where(.vsw) dt, :where(.vsw) dd, :where(.vsw) ol, :where(.vsw) ul, :where(.vsw) li{margin-block-start:revert;margin-block-end:revert;border:revert;outline:revert;font-size:revert;vertical-align:revert;background:revert;}
:where(.vsw) a:focus-visible, :where(.vsw) button:focus-visible, :where(.vsw) input:focus-visible, :where(.vsw) select:focus-visible, :where(.vsw) textarea:focus-visible, :where(.vsw) [tabindex]:not([tabindex="-1"]):focus-visible{outline:revert;outline-offset:revert;box-shadow:revert;}
:where(.vsw) a:focus:not(:focus-visible), :where(.vsw) button:focus:not(:focus-visible), :where(.vsw) input:focus:not(:focus-visible), :where(.vsw) select:focus:not(:focus-visible), :where(.vsw) textarea:focus:not(:focus-visible), :where(.vsw) [tabindex]:not([tabindex="-1"]):focus:not(:focus-visible){outline:revert;box-shadow:revert;}
:where(.vsw) .site-header:not(.dynamic-header), :where(.vsw) .site-footer:not(.dynamic-footer){margin-inline-start:revert;margin-inline-end:revert;width:revert;}
@media (max-width: 575px){:where(.vsw) .site-header:not(.dynamic-header), :where(.vsw) .site-footer:not(.dynamic-footer){padding-inline-start:revert;padding-inline-end:revert;}}
@media (min-width: 576px){:where(.vsw) .site-header:not(.dynamic-header), :where(.vsw) .site-footer:not(.dynamic-footer){max-width:revert;}}
@media (min-width: 768px){:where(.vsw) .site-header:not(.dynamic-header), :where(.vsw) .site-footer:not(.dynamic-footer){max-width:revert;}}
@media (min-width: 992px){:where(.vsw) .site-header:not(.dynamic-header), :where(.vsw) .site-footer:not(.dynamic-footer){max-width:revert;}}
@media (min-width: 1200px){:where(.vsw) .site-header:not(.dynamic-header), :where(.vsw) .site-footer:not(.dynamic-footer){max-width:revert;}}
:where(.vsw) .site-header{display:revert;flex-wrap:revert;justify-content:revert;padding-block-start:revert;padding-block-end:revert;position:revert;}
:where(.vsw) .site-footer{padding-block-start:revert;padding-block-end:revert;position:revert;}
/* 2 · BASE: las reglas globales del diseño (html, body, *, a, img, ul) solo dentro de .vsw,
   y una puesta a cero de lo que el tema (Hello Elementor) y el kit ponen a botones, títulos y tablas. */
.vsw{font-family:var(--vsw-font); color:var(--vsw-ink); line-height:1.6; -webkit-font-smoothing:antialiased; color-scheme:dark; text-align:left;}
.vsw, .vsw *, .vsw *::before, .vsw *::after{box-sizing:border-box; margin:0; padding:0;}
.vsw img{max-width:100%; height:auto; border:none; border-radius:0; box-shadow:none;}
body .vsw a{color:inherit; text-decoration:none; background-color:transparent;}
body .vsw a:hover, body .vsw a:focus{color:inherit; text-decoration:none;}
.vsw ul, .vsw ol{list-style:none;}
.vsw :is(h1,h2,h3,h4,h5,h6){font-family:inherit; font-weight:bold; line-height:inherit; color:inherit; letter-spacing:normal; text-transform:none;}
.vsw h1{font-size:2em;} .vsw h2{font-size:1.5em;} .vsw h3{font-size:1.17em;} .vsw h4{font-size:1em;}
.vsw :is(button,[type=button],[type=submit],[type=reset]){display:inline-block; width:auto; border:0; border-radius:0; padding:0; background:none; color:inherit; font:inherit; line-height:normal; letter-spacing:inherit; text-align:inherit; text-transform:none; white-space:normal; box-shadow:none; transition:none; user-select:auto; cursor:pointer;}
.vsw :is(input,select,textarea){font:inherit; color:inherit;}
.vsw :is(table,th,td){border:0; background:none; font-size:inherit;}
.vsw table{border-collapse:collapse; border-spacing:0; margin:0;}
.vsw table tbody > tr:nth-child(n) > :is(td,th){background-color:transparent;}
.vsw dt{font-weight:normal;}
.vsw b, .vsw strong{font-weight:bolder;}
.vsw em{font-style:italic;}
.vsw-sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}
.vsw [id]{scroll-margin-top:calc(var(--vsw-header-h) + 16px);}
.vsw a:focus-visible, .vsw button:focus-visible, .vsw summary:focus-visible, .vsw [tabindex]:focus-visible{outline:2px solid var(--vsw-accent); outline-offset:3px; border-radius:6px;}
.vsw .wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
@media (max-width:639px){
  .vsw .wrap{padding:0 20px;}
}
.vsw .site-header{position:sticky; top:env(safe-area-inset-top,0px); z-index:50; background:color-mix(in srgb, var(--vsw-bg) 72%, transparent); -webkit-backdrop-filter:blur(14px) saturate(160%); backdrop-filter:blur(14px) saturate(160%); border-bottom:1px solid var(--vsw-border);}
.vsw .site-header .wrap{display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:14px; padding-bottom:14px;}
@media (min-width:640px){
  .vsw .site-header .wrap{padding-top:18px; padding-bottom:18px;}
}
.vsw .logo img{height:20px; width:auto; display:block;}
@media (min-width:640px){
  .vsw .logo img{height:24px;}
}
.vsw .site-nav{display:none; gap:34px; font-size:16px; font-weight:500;}
.vsw .site-nav a{color:var(--vsw-ink-soft); transition:color .2s ease; padding:4px 0;}
.vsw .site-nav a:hover{color:var(--vsw-ink);}
.vsw .site-nav a[aria-current="page"]{color:var(--vsw-ink); box-shadow:0 2px 0 var(--vsw-accent);}
@media (min-width:900px){
  .vsw .site-nav{display:flex;}
}
.vsw .btn-whatsapp.nav-cta{display:none;}
@media (min-width:480px){
  .vsw .btn-whatsapp.nav-cta{display:inline-flex; padding:10px 18px; font-size:13.5px;}
}
.vsw .menu-toggle{display:flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:8px; background:color-mix(in srgb, var(--vsw-ink) 6%, transparent); border:1px solid var(--vsw-border); flex-shrink:0; cursor:pointer;}
.vsw .menu-toggle svg{width:24px; height:24px; stroke:var(--vsw-ink);}
@media (min-width:900px){
  .vsw .menu-toggle{display:none;}
}
.vsw .mobile-nav{display:none; flex-direction:column; background:#0d1420; border-bottom:1px solid var(--vsw-border); padding:8px 20px 18px;}
.vsw .mobile-nav.open{display:flex;}
.vsw .mobile-nav a{padding:13px 4px; font-size:16px; font-weight:500; color:var(--vsw-ink-soft); border-bottom:1px solid var(--vsw-border-soft);}
.vsw .mobile-nav a[aria-current="page"]{color:var(--vsw-ink);}
.vsw .mobile-nav a:last-child{border-bottom:none;}
@media (min-width:900px){
  .vsw .mobile-nav{display:none !important;}
}
.vsw .site-footer{border-top:1px solid var(--vsw-border); padding:64px 0 32px;}
.vsw .footer-grid{display:grid; grid-template-columns:1fr; gap:44px;}
@media (min-width:700px){
  .vsw .footer-grid{grid-template-columns:1.3fr 1fr 1fr 1fr;}
}
.vsw .footer-brand .logo img{height:22px; margin-bottom:16px;}
.vsw .footer-brand p{font-size:14px; line-height:1.6; color:var(--vsw-ink-soft); max-width:32ch; margin-bottom:22px;}
.vsw .footer-col-title{font-size:12px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--vsw-ink-soft); margin-bottom:18px;}
.vsw .footer-col{display:flex; flex-direction:column; gap:13px;}
.vsw .footer-col a{font-size:14.5px; color:var(--vsw-ink); transition:color .2s ease;}
.vsw .footer-col a:hover{color:var(--vsw-accent);}
.vsw .footer-bottom{margin-top:56px; padding-top:24px; border-top:1px solid var(--vsw-border); display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-size:13px; color:var(--vsw-ink-soft);}
.vsw .btn-whatsapp{display:inline-flex; align-items:center; gap:9px; background:var(--vsw-accent); color:#fff; font-family:var(--vsw-font); font-weight:600; font-size:14.5px; line-height:1.3; padding:12px 22px; border-radius:9px; border:none; cursor:pointer; transition:transform .2s ease, box-shadow .2s ease; flex-shrink:0;}
.vsw .btn-whatsapp:hover{transform:translateY(-2px); box-shadow:var(--vsw-shadow-btn);}
.vsw .btn-whatsapp svg{width:16px; height:16px; flex-shrink:0;}
.vsw .btn-whatsapp:disabled{opacity:.6; cursor:not-allowed; transform:none;}
.vsw .btn-case{align-self:flex-start; display:inline-flex; align-items:center; flex-wrap:wrap; gap:8px; background:color-mix(in srgb, var(--vsw-ink) 6%, transparent); border:1px solid var(--vsw-border); color:var(--vsw-ink); font-family:var(--vsw-font); font-size:14.5px; font-weight:600; line-height:1.3; padding:12px 22px; border-radius:9px; transition:background .2s ease, border-color .2s ease;}
.vsw .btn-case:hover{background:color-mix(in srgb, var(--vsw-ink) 10%, transparent); border-color:color-mix(in srgb, var(--vsw-accent) 55%, transparent);}
.vsw .btn-case svg{width:15px; height:15px;}
.vsw .link-text{font-weight:600; font-size:15px; color:var(--vsw-ink); border-bottom:1px solid var(--vsw-accent); padding-bottom:3px; transition:color .2s ease;}
.vsw .link-text:hover{color:var(--vsw-accent);}
.vsw .inline-link{color:var(--vsw-ink); border-bottom:1px solid var(--vsw-accent); transition:color .2s ease;}
.vsw .inline-link:hover{color:var(--vsw-accent);}
.vsw .btn-row, .vsw .hero-actions, .vsw .contact-actions, .vsw .case-actions, .vsw .reviews-links{display:flex; flex-wrap:wrap; align-items:center; gap:14px 24px;}
.vsw .hero-actions{gap:14px 28px;}
.vsw .reviews-links{margin-top:32px;}
.vsw .sec{padding:52px 0 117px;}
.vsw .sec--first{padding-top:117px;}
@media (max-width:699px){
  .vsw .sec{padding:40px 0 80px;}
  .vsw .sec--first{padding-top:80px;}
}
.vsw .case-label{display:block; font-size:12px; text-transform:uppercase; letter-spacing:.07em; color:var(--vsw-ink-soft); margin-bottom:6px;}
.vsw .cases-title, .vsw .method-title, .vsw .services-head h2{font-size:clamp(30px,4.4vw,46px); line-height:1.15; letter-spacing:-0.02em; margin-bottom:32px; max-width:20ch;}
.vsw .method-title{max-width:18ch;}
.vsw .method-title:last-child{margin-bottom:56px;}
.vsw .cases-title .line-light, .vsw .method-title .line-light, .vsw .services-head h2 .line-light{display:block; font-weight:400; color:var(--vsw-ink-soft);}
.vsw .cases-title .line-bold, .vsw .method-title .line-bold, .vsw .services-head h2 .line-bold{display:block; font-weight:700; color:var(--vsw-ink);}
.vsw .sec-head{margin-bottom:48px;}
.vsw .sec-head .cases-title, .vsw .sec-head .method-title{margin-bottom:20px;}
.vsw .sec-head > :last-child{margin-bottom:0;}
.vsw .sec-head p, .vsw .sec-lead{font-size:16.5px; line-height:1.7; color:var(--vsw-ink-soft); max-width:56ch;}
.vsw .sec-head p + p{margin-top:12px;}
.vsw .sec-lead{margin:-12px 0 48px;}
.vsw .services-head{max-width:640px; margin-bottom:56px;}
.vsw .services-head h2{margin-bottom:20px;}
.vsw .services-head p{font-size:16.5px; line-height:1.7; color:var(--vsw-ink-soft); max-width:56ch;}
.vsw .hero{position:relative; overflow:hidden; padding:70px 0;}
@media (min-width:640px){
  .vsw .hero{padding:120px 0 110px;}
}
.vsw .hero-canvas{position:absolute; inset:0; width:100%; height:100%; z-index:0; opacity:.55; pointer-events:none;}
.vsw .hero .wrap{position:relative; z-index:1;}
.vsw .eyebrow{display:inline-flex; align-items:center; gap:8px; font-size:21px; font-weight:400; letter-spacing:.02em; text-transform:uppercase; color:var(--vsw-accent); margin-bottom:24px;}
@media (min-width:640px){
  .vsw .eyebrow{font-size:31px;}
}
.vsw .hero-subtitle{font-weight:700; font-size:42px; line-height:1.15; letter-spacing:-0.02em; color:var(--vsw-ink); margin-bottom:20px;}
.vsw .hero-subtitle em{font-style:italic; font-weight:600;}
@media (min-width:640px){
  .vsw .hero-subtitle{font-size:65px;}
}
.vsw .hero-grid .hero-subtitle{font-size:42px;}
@media (min-width:640px){
  .vsw .hero-grid .hero-subtitle{font-size:52px;}
}
@media (min-width:1100px){
  .vsw .hero-grid .hero-subtitle{font-size:65px;}
}
.vsw .hero-body{font-size:16.5px; line-height:1.7; color:var(--vsw-ink-soft); max-width:54ch; margin-bottom:36px;}
.vsw div.hero-body p + p{margin-top:12px;}
.vsw .hero-body .hero-claim{color:var(--vsw-ink); font-weight:600;}
.vsw .hero-grid{display:grid; grid-template-columns:1fr; gap:44px; align-items:center;}
@media (min-width:960px){
  .vsw .hero-grid{grid-template-columns:1.25fr .75fr; gap:56px;}
}
.vsw .hero-grid--form{align-items:start;}
@media (min-width:640px){
  .vsw .hero--form{padding:80px 0 110px;}
}
@media (min-width:960px){
  .vsw .hero-grid--form{grid-template-columns:.9fr 1.1fr; gap:48px;}
  .vsw .hero-grid--form > div:first-child{padding-top:24px;}
}
.vsw .hero-grid .about-photo{max-width:420px;}
@media (min-width:960px){
  .vsw .hero-grid .about-photo{justify-self:end;}
}
.vsw .about-photo img{width:100%; height:auto; border-radius:20px; display:block; border:1px solid var(--vsw-border); box-shadow:var(--vsw-shadow-photo);}
.vsw .promise-row{display:flex; flex-wrap:wrap; gap:10px; margin:0 0 32px;}
.vsw .promise-row li{display:inline-flex; align-items:center; gap:8px; border:1px solid var(--vsw-border); background:var(--vsw-card); border-radius:999px; padding:7px 14px 7px 8px; font-size:14px; font-weight:500; color:var(--vsw-ink);}
.vsw .promise-ico{width:24px; height:24px; border-radius:50%; background:var(--vsw-icon-bg); color:var(--vsw-accent); display:grid; place-items:center; flex:none;}
.vsw .promise-ico svg{width:13px; height:13px;}
.vsw .big-stat{background:var(--vsw-panel); border:1px solid var(--vsw-border); border-radius:20px; padding:28px;}
.vsw .big-stat .num{font-weight:800; font-size:42px; line-height:1.15; letter-spacing:-0.02em; color:var(--vsw-ink); display:block; font-variant-numeric:tabular-nums;}
.vsw .big-stat .label{font-size:13.5px; color:var(--vsw-ink-soft); margin-top:8px;}
.vsw .stats-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:56px;}
.vsw .stats-grid .big-stat{padding:22px;}
.vsw .stats-grid .big-stat:last-child:nth-child(odd){grid-column:1 / -1;}
.vsw .stats-grid .stars{color:var(--vsw-star); letter-spacing:2px;}
@media (min-width:900px){
  .vsw .stats-grid{grid-template-columns:repeat(5,1fr); gap:20px;}
  .vsw .stats-grid .big-stat{padding:28px;}
  .vsw .stats-grid .big-stat:last-child:nth-child(odd){grid-column:auto;}
}
.vsw .services-grid{display:grid; grid-template-columns:1fr; gap:20px;}
@media (min-width:640px){
  .vsw .services-grid{grid-template-columns:1fr 1fr;}
}
@media (min-width:1100px){
  .vsw .services-grid{grid-template-columns:repeat(4,1fr);}
}
.vsw .service-card{background:var(--vsw-card); border:1px solid var(--vsw-border); border-radius:18px; padding:28px; display:flex; flex-direction:column; transition:transform .25s ease, border-color .25s ease, background .25s ease;}
.vsw .service-card:hover{transform:translateY(-5px); border-color:color-mix(in srgb, var(--vsw-accent) 40%, transparent); background:var(--vsw-card-hover);}
.vsw .service-num{font-size:13px; font-weight:600; letter-spacing:.06em; color:var(--vsw-accent); padding-bottom:14px; margin-bottom:18px; border-bottom:1px solid var(--vsw-border);}
.vsw .service-card h3{font-weight:700; font-size:20px; line-height:1.25; color:var(--vsw-ink); margin-bottom:10px;}
.vsw .service-card p{font-size:14.5px; line-height:1.6; color:var(--vsw-ink-soft); margin-bottom:20px; flex-grow:1;}
.vsw .service-tags{display:flex; flex-wrap:wrap; gap:8px; margin-top:auto;}
.vsw .service-tags span{border:1px solid var(--vsw-border); border-radius:999px; padding:6px 14px; font-size:12.5px; color:var(--vsw-ink-soft); white-space:nowrap;}
.vsw .service-link{align-self:flex-start; display:inline-flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:14px;}
.vsw .service-card .pendiente{margin-top:10px; align-self:flex-start;}
.vsw .clients{padding:57px 0; border-top:1px solid var(--vsw-border); border-bottom:1px solid var(--vsw-border); overflow:hidden;}
.vsw .clients-label{font-size:16px; letter-spacing:.08em; text-transform:uppercase; color:var(--vsw-ink-soft); text-align:center; margin-bottom:28px;}
.vsw .marquee{width:100%; overflow:hidden; -webkit-mask-image:linear-gradient(to right, transparent, black 8%, black 92%, transparent); mask-image:linear-gradient(to right, transparent, black 8%, black 92%, transparent);}
.vsw .marquee-track{display:flex; align-items:center; width:max-content; gap:56px; animation:vsw-scrollLogos 45s linear infinite;}
@keyframes vsw-scrollLogos{from{transform:translateX(0);} to{transform:translateX(-50%);}}
.vsw .logo-item{width:160px; height:64px; flex-shrink:0; display:flex; align-items:center; justify-content:center;}
.vsw .logo-item img{max-width:85%; max-height:58%; width:auto; height:auto; object-fit:contain; filter:grayscale(100%); opacity:.55; transition:opacity .2s ease;}
.vsw .logo-item img:hover{opacity:.9;}
.vsw .sector-grid{display:grid; grid-template-columns:1fr; gap:20px; margin-bottom:56px;}
@media (min-width:760px){
  .vsw .sector-grid{grid-template-columns:1fr 1fr;}
}
@media (min-width:1100px){
  .vsw .sector-grid{grid-template-columns:repeat(3,1fr);}
}
.vsw .sector-card{background:var(--vsw-card); border:1px solid var(--vsw-border); border-radius:18px; padding:24px;}
.vsw .sector-card h3{font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:var(--vsw-accent); padding-bottom:14px; margin-bottom:8px; border-bottom:1px solid var(--vsw-border);}
.vsw .client-row{display:flex; align-items:center; gap:14px; padding:10px 0; border-bottom:1px solid var(--vsw-border-soft);}
.vsw .client-row:last-child{border-bottom:none; padding-bottom:0;}
.vsw .client-row .logo-item{width:112px; height:48px; justify-content:flex-start;}
.vsw .client-row .logo-item img{max-width:100%; max-height:62%;}
.vsw .client-name{font-size:15px; font-weight:700; color:var(--vsw-ink); line-height:1.3;}
.vsw .client-meta{display:block; font-size:13px; font-weight:400; color:var(--vsw-ink-soft);}
.vsw .case-tabs{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:36px;}
.vsw .case-tab{padding:10px 20px; border-radius:999px; border:1px solid var(--vsw-border); background:transparent; color:var(--vsw-ink-soft); font-family:var(--vsw-font); font-size:14px; font-weight:600; cursor:pointer;}
.vsw .case-tab.active{background:var(--vsw-accent); border-color:var(--vsw-accent); color:#fff;}
.vsw .case-grid{display:grid; grid-template-columns:1fr; gap:20px;}
@media (min-width:960px){
  .vsw .case-grid{grid-template-columns:1.05fr 1fr .8fr;}
  .vsw .case-grid--two{grid-template-columns:1.15fr .85fr;}
}
.vsw .case-intro{background:var(--vsw-panel); border:1px solid var(--vsw-border); border-radius:20px; padding:32px; display:flex; flex-direction:column;}
.vsw .case-tags-inline{font-size:13px; color:var(--vsw-ink-soft); margin-bottom:24px;}
.vsw .case-logo-wrap{background:#fff; border-radius:14px; padding:26px; display:flex; align-items:center; justify-content:center; margin-bottom:24px;}
.vsw .case-logo-wrap img{max-width:100%; height:auto; display:block;}
.vsw .case-intro h3{font-size:24px; font-weight:700; color:var(--vsw-ink); margin-bottom:12px;}
.vsw .case-intro p{font-size:14.5px; line-height:1.65; color:var(--vsw-ink-soft); margin-bottom:26px; flex-grow:1;}
.vsw .case-intro .case-lead{margin-bottom:0;}
.vsw .case-intro .case-actions{margin-top:26px;}
.vsw .case-stats{background:var(--vsw-panel); border:1px solid var(--vsw-border); border-radius:20px; padding:32px; display:flex; flex-direction:column; gap:22px;}
.vsw .stats-label{font-size:24px; font-weight:700; color:var(--vsw-ink);}
.vsw .stat-row{display:flex; align-items:flex-start; gap:14px; padding-bottom:20px; border-bottom:1px solid var(--vsw-border);}
.vsw .stat-row:last-child{border-bottom:none; padding-bottom:0;}
.vsw .stat-icon{width:38px; height:38px; border-radius:10px; background:var(--vsw-icon-bg); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.vsw .stat-icon svg{width:18px; height:18px; stroke:var(--vsw-accent); fill:none;}
.vsw .stat-value{font-weight:700; font-size:16.5px; color:var(--vsw-ink); margin-bottom:3px;}
.vsw .stat-desc{font-size:13.5px; color:var(--vsw-ink-soft); line-height:1.5;}
.vsw .case-side{display:flex; flex-direction:column; gap:20px;}
.vsw .case-proof{margin-top:20px; background:var(--vsw-panel); border:1px solid var(--vsw-border); border-radius:20px; padding:20px; display:flex; flex-direction:column; gap:14px;}
@media (min-width:640px){
  .vsw .case-proof{flex-direction:row; align-items:center; padding:24px;}
}
.vsw .case-proof-img-wrap{position:relative; flex-shrink:0; cursor:zoom-in;}
@media (min-width:640px){
  .vsw .case-proof-img-wrap{width:480px; max-width:60%;}
}
.vsw .case-proof img{width:100%; height:auto; border-radius:12px; display:block; border:1px solid var(--vsw-border); transition:opacity .2s ease;}
.vsw .case-proof-img-wrap:hover img{opacity:.7;}
.vsw .case-proof-zoom{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:52px; height:52px; border-radius:50%; background:color-mix(in srgb, var(--vsw-bg) 85%, transparent); border:1px solid color-mix(in srgb, var(--vsw-ink) 25%, transparent); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .2s ease; pointer-events:none;}
.vsw .case-proof-img-wrap:hover .case-proof-zoom{opacity:1;}
.vsw .case-proof-zoom svg{width:22px; height:22px; stroke:#fff;}
.vsw .case-proof-text .proof-label{font-size:12px; text-transform:uppercase; letter-spacing:.07em; color:var(--vsw-accent); font-weight:700; margin-bottom:8px;}
.vsw .case-proof-text p{font-size:16.5px; line-height:1.6; color:var(--vsw-ink-soft);}
.vsw .lightbox-overlay{position:fixed; inset:0; background:rgba(8,11,18,.94); z-index:200; display:none; align-items:center; justify-content:center; padding:40px; cursor:zoom-out;}
.vsw .lightbox-overlay.open{display:flex;}
.vsw .lightbox-overlay img{max-width:92vw; max-height:88vh; width:auto; border-radius:14px; box-shadow:0 50px 100px rgba(0,0,0,.7);}
.vsw .lightbox-close{position:fixed; top:24px; right:24px; width:44px; height:44px; border-radius:50%; background:color-mix(in srgb, var(--vsw-ink) 10%, transparent); border:1px solid color-mix(in srgb, var(--vsw-ink) 20%, transparent); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; z-index:201;}
.vsw .lightbox-close svg{width:20px; height:20px;}
.vsw .method-card{position:relative; background:var(--vsw-panel); border:1px solid var(--vsw-border); border-radius:24px; padding:40px; overflow:hidden; display:flex; flex-direction:column; justify-content:center; box-shadow:var(--vsw-shadow-lift);}
.vsw .method-label{font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--vsw-accent); margin-bottom:14px; position:relative; z-index:1;}
.vsw .method-card h3, .vsw .method-card .method-name{font-weight:700; font-size:24px; line-height:1.3; color:var(--vsw-ink); margin-bottom:14px; max-width:26ch; position:relative; z-index:1;}
.vsw .method-card p{font-size:16.5px; line-height:1.7; color:var(--vsw-ink-soft); max-width:50ch; position:relative; z-index:1;}
.vsw .method-ghost{position:absolute; right:16px; top:50%; transform:translateY(-50%); font-style:italic; font-weight:800; font-size:120px; line-height:1; color:color-mix(in srgb, var(--vsw-accent) 10%, transparent); pointer-events:none; user-select:none; z-index:0;}
@media (min-width:640px){
  .vsw .method-ghost{font-size:190px; right:32px;}
}
.vsw .method-stack .method-card{position:sticky; margin-bottom:24px; min-height:230px;}
@media (min-width:640px){
  .vsw .method-stack .method-card{padding:48px 56px; min-height:260px;}
  .vsw .method-stack .method-card h3, .vsw .method-stack .method-card .method-name{font-size:28px;}
}
.vsw .method-stack .method-card:nth-child(1){top:88px; z-index:1;}
.vsw .method-stack .method-card:nth-child(2){top:110px; z-index:2;}
.vsw .method-stack .method-card:nth-child(3){top:132px; z-index:3;}
.vsw .method-stack .method-card:nth-child(4){top:154px; z-index:4;}
.vsw .method-stack .method-card:nth-child(5){top:176px; z-index:5;}
.vsw .method-grid{display:grid; grid-template-columns:1fr; gap:20px;}
@media (min-width:900px){
  .vsw .method-grid{grid-template-columns:repeat(3,1fr);}
}
.vsw .method-grid .method-card{justify-content:flex-start; padding:36px 32px 48px; min-height:280px;}
.vsw .method-grid .method-card p{font-size:15px; line-height:1.6;}
.vsw .method-grid .method-ghost{top:auto; right:-6px; bottom:-40px; transform:none;}
@media (min-width:1100px){
  .vsw .method-grid .method-ghost{bottom:-62px;}
}
.vsw .method-note{display:flex; align-items:center; gap:14px; margin-top:20px; background:var(--vsw-card); border:1px solid var(--vsw-border); border-radius:18px; padding:20px 24px; font-size:16.5px; color:var(--vsw-ink-soft);}
.vsw .method-note strong{color:var(--vsw-ink);}
.vsw .method-stack + .method-note{margin-top:0;}
.elementor-element:has(> .elementor-widget-container > .vsw > .method-stack:last-child, > .vsw > .method-stack:last-child) + .elementor-element > .elementor-widget-container > .vsw > .method-note:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .method-stack:last-child, > .vsw > .method-stack:last-child) + .elementor-element > .vsw > .method-note:first-child{margin-top:0;}
.vsw .reviews-head{display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:40px;}
.vsw .reviews-head .cases-title{margin-bottom:0;}
.vsw .rating-summary{display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.vsw .rating-summary .stars{color:var(--vsw-star); font-size:16px; letter-spacing:2px;}
.vsw .rating-note{font-size:12px; font-weight:600; color:var(--vsw-accent); background:color-mix(in srgb, var(--vsw-accent) 10%, transparent); border:1px solid color-mix(in srgb, var(--vsw-accent) 35%, transparent); border-radius:6px; padding:5px 11px; transition:background .2s ease, border-color .2s ease;}
.vsw a.rating-note:hover{background:color-mix(in srgb, var(--vsw-accent) 18%, transparent); border-color:color-mix(in srgb, var(--vsw-accent) 60%, transparent);}
.vsw .t-grid{display:grid; grid-template-columns:1fr; gap:18px;}
@media (min-width:700px){
  .vsw .t-grid{grid-template-columns:1fr 1fr;}
}
@media (min-width:1100px){
  .vsw .t-grid{grid-template-columns:repeat(3,1fr);}
  .vsw .t-grid--2{grid-template-columns:1fr 1fr;}
}
.vsw .t-card{background:var(--vsw-card); border:1px solid var(--vsw-border); border-radius:18px; padding:24px; display:flex; flex-direction:column;}
.vsw .t-stars{color:var(--vsw-star); font-size:15px; letter-spacing:2px; margin-bottom:14px;}
.vsw .t-quote{font-size:15px; color:var(--vsw-ink-soft); line-height:1.65; flex-grow:1;}
.vsw .t-person{display:flex; align-items:center; gap:10px; margin-top:20px; padding-top:16px; border-top:1px solid var(--vsw-border);}
.vsw .t-avatar{width:36px; height:36px; border-radius:50%; background:color-mix(in srgb, var(--vsw-accent) 14%, transparent); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.vsw .t-avatar svg{width:18px; height:18px; stroke:var(--vsw-accent);}
.vsw .t-name{display:block; font-size:15px; font-weight:700; font-style:normal; color:var(--vsw-ink);}
.vsw .t-role{font-size:15px; color:var(--vsw-ink-soft);}
@media (max-width:699px){
  .vsw .t-grid{grid-auto-flow:column; grid-template-columns:none; grid-auto-columns:86%; overflow-x:auto; scroll-snap-type:x mandatory; margin:0 -20px; padding:0 20px 10px; scroll-padding-inline:20px; -webkit-overflow-scrolling:touch;}
  .vsw .t-card{scroll-snap-align:start;}
}
.vsw .faq-grid{display:grid; grid-template-columns:1fr; gap:40px;}
@media (min-width:900px){
  .vsw .faq-grid{grid-template-columns:.85fr 1.15fr; align-items:start;}
  .vsw .faq-intro{position:sticky; top:96px;}
}
.vsw .faq-intro .cases-title{margin-bottom:18px;}
.vsw .faq-intro .cases-title:last-child{margin-bottom:26px;}
.vsw .faq-intro p{font-size:18px; line-height:1.5; color:var(--vsw-ink-soft); margin-bottom:26px; max-width:40ch;}
.vsw .faq-list{display:flex; flex-direction:column; gap:12px;}
.vsw .faq-item{background:var(--vsw-card); border:1px solid var(--vsw-border); border-radius:14px; padding:19px 22px; transition:border-color .2s ease;}
.vsw .faq-item[open]{border-color:var(--vsw-accent-line);}
.vsw .faq-item summary{display:flex; justify-content:space-between; align-items:center; gap:16px; list-style:none; cursor:pointer; font-weight:600; font-size:18px; line-height:1.4; color:var(--vsw-ink);}
.vsw .faq-item summary h3{font:inherit; color:inherit;}
.vsw .faq-item summary::-webkit-details-marker{display:none;}
.vsw .faq-icon{width:24px; height:24px; border-radius:50%; background:color-mix(in srgb, var(--vsw-accent) 15%, transparent); color:var(--vsw-accent); display:flex; align-items:center; justify-content:center; font-size:16px; font-weight:700; flex-shrink:0; transition:transform .25s ease;}
.vsw .faq-item[open] .faq-icon{transform:rotate(45deg);}
.vsw .faq-item p{margin-top:14px; font-size:15px; line-height:1.65; color:var(--vsw-ink-soft);}
.vsw .contact-grid{display:grid; grid-template-columns:1fr; gap:48px;}
@media (min-width:960px){
  .vsw .contact-grid{grid-template-columns:1fr 1fr; align-items:start;}
  .vsw .contact-grid--data{grid-template-columns:.8fr 1.2fr;}
}
.vsw .contact-content .cases-title{margin-bottom:20px;}
.vsw .contact-content > p{font-size:16.5px; line-height:1.7; color:var(--vsw-ink-soft); margin-bottom:32px; max-width:44ch;}
.vsw .contact-call-label{font-size:13px; text-transform:uppercase; letter-spacing:.07em; color:var(--vsw-ink-soft); margin-bottom:18px; font-weight:600;}
.vsw .icon-circle{width:34px; height:34px; border-radius:50%; background:var(--vsw-icon-bg); color:var(--vsw-accent); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.vsw .icon-circle svg{width:16px; height:16px;}
.vsw .contact-rows{display:flex; flex-direction:column; gap:18px;}
.vsw .contact-rows .contact-row{display:flex; align-items:center; gap:12px; font-size:16px; color:var(--vsw-ink-soft); overflow-wrap:anywhere;}
.vsw .contact-rows .contact-row a{color:var(--vsw-ink-soft); transition:color .2s ease;}
.vsw .contact-rows .contact-row a:hover{color:var(--vsw-ink);}
.vsw .contact-list{border-top:1px solid var(--vsw-border);}
.vsw .contact-list .contact-row{display:flex; gap:16px; align-items:flex-start; padding:18px 0; border-bottom:1px solid var(--vsw-border);}
.vsw .contact-list .icon-circle{width:46px; height:46px;}
.vsw .contact-list .icon-circle svg{width:20px; height:20px;}
.vsw .contact-k{display:block; font-size:12px; text-transform:uppercase; letter-spacing:.07em; color:var(--vsw-ink-soft); font-weight:600;}
.vsw .contact-v{display:block; color:var(--vsw-ink); font-weight:600; font-size:17px; line-height:1.45; overflow-wrap:anywhere;}
.vsw a.contact-v{transition:color .2s ease;}
.vsw a.contact-v:hover{color:var(--vsw-accent);}
.vsw .contact-s{display:block; color:var(--vsw-ink-soft); font-size:14.5px; line-height:1.6;}
@media (max-width:639px){
  .vsw .contact-v{font-size:15.5px;}
}
.vsw .contact-card{background:var(--vsw-card); border:1px solid var(--vsw-border); border-radius:20px; padding:32px;}
@media (min-width:640px){
  .vsw .contact-card{padding:40px;}
}
.vsw .sel{user-select:all;}
.vsw .form-panel{background:var(--vsw-panel); border:1px solid var(--vsw-border); border-radius:20px; padding:32px 24px;}
@media (min-width:640px){
  .vsw .form-panel{padding:40px 40px 36px;}
}
.vsw .hero--form .form-panel{box-shadow:var(--vsw-shadow-lift);}
.vsw .form-title{font-size:22px; font-weight:700; line-height:1.3; letter-spacing:-.01em; margin-bottom:6px;}
.vsw .cf-form{display:grid; gap:26px; margin-top:22px;}
.vsw .form-panel > .cf-form:first-child{margin-top:0;}
@media (min-width:700px){
  .vsw .cf-form{grid-template-columns:1fr 1fr; column-gap:28px;}
}
.vsw .cf-field{display:flex; flex-direction:column; gap:4px;}
.vsw .cf-field--full, .vsw .cf-check, .vsw .cf-submit, .vsw .cf-note, .vsw .form-error{grid-column:1 / -1;}
.vsw .cf-field label{font-size:13px; font-weight:600; color:var(--vsw-ink); letter-spacing:.01em;}
.vsw .cf-req{color:var(--vsw-accent); margin-left:2px;}
.vsw .cf-opt{color:var(--vsw-ink-soft); font-weight:400; font-size:12px;}
.vsw .cf-field input, .vsw .cf-field select, .vsw .cf-field textarea{width:100%; background:transparent; border:0; border-bottom:1px solid var(--vsw-border); border-radius:0; color:var(--vsw-ink); font-family:var(--vsw-font); font-size:16px; line-height:1.5; padding:10px 0; transition:border-color .2s ease, box-shadow .2s ease;}
.vsw .cf-field textarea{resize:vertical; min-height:112px;}
.vsw .cf-field ::placeholder{color:color-mix(in srgb, var(--vsw-ink-soft) 55%, transparent);}
.vsw .cf-field input:focus, .vsw .cf-field select:focus, .vsw .cf-field textarea:focus{outline:none; border-bottom-color:var(--vsw-accent); box-shadow:0 1px 0 var(--vsw-accent);}
.vsw .cf-field select{appearance:none; -webkit-appearance:none; cursor:pointer; padding-right:28px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23705CF6' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 2px center; background-size:16px;}
.vsw .cf-field select:invalid{color:color-mix(in srgb, var(--vsw-ink-soft) 55%, transparent);}
.vsw .cf-field select option{background:var(--vsw-panel); color:var(--vsw-ink);}
.vsw .cf-help{font-size:13px; color:var(--vsw-ink-soft); line-height:1.5;}
.vsw .cf-check{display:flex; gap:12px; align-items:flex-start; font-size:14.5px; color:var(--vsw-ink-soft); line-height:1.5;}
.vsw .cf-check input{width:18px; height:18px; margin:2px 0 0; accent-color:var(--vsw-accent); flex:none;}
.vsw .cf-check a, .vsw .privacy-note a, .vsw .cf-note a{color:var(--vsw-ink); text-decoration:underline; text-decoration-color:var(--vsw-accent); text-underline-offset:3px;}
.vsw .cf-hp{position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden;}
.vsw .cf-submit{display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px;}
.vsw .cf-submit .btn-whatsapp{padding:14px 28px;}
.vsw .cf-after{font-size:14px; color:var(--vsw-ink-soft);}
.vsw .cf-note{font-size:12px; line-height:1.6; color:var(--vsw-ink-soft); opacity:.75;}
.vsw .privacy-note{margin-top:28px; padding-top:20px; border-top:1px solid var(--vsw-border); font-size:12.5px; line-height:1.6; color:var(--vsw-ink-soft);}
.vsw .privacy-note strong{color:var(--vsw-ink); font-weight:600;}
.vsw .form-error{display:none; background:rgba(220,38,38,.1); border:1px solid rgba(220,38,38,.35); color:#fca5a5; font-size:13.5px; line-height:1.5; padding:12px 16px; border-radius:8px;}
.vsw .form-error.show{display:block;}
.vsw .form-error a{color:#fca5a5; text-decoration:underline;}
.vsw .form-success{display:none; text-align:center; padding:50px 0;}
.vsw .form-success.show{display:block;}
.vsw .form-success svg{width:46px; height:46px; stroke:var(--vsw-accent); margin:0 auto 16px; display:block;}
.vsw .form-success h3{font-size:19px; font-weight:700; color:var(--vsw-ink); margin-bottom:8px;}
.vsw .form-success p{font-size:14px; color:var(--vsw-ink-soft);}
.vsw .cta-final{padding:0 0 117px;}
@media (max-width:699px){
  .vsw .cta-final{padding:0 0 80px;}
}
.vsw .cta-card{border:1px solid var(--vsw-border); border-radius:24px; padding:64px 24px; display:flex; flex-direction:column; align-items:center; text-align:center;}
@media (min-width:640px){
  .vsw .cta-card{padding:80px 48px;}
}
.vsw .cta-card .cases-title{margin:0 auto; max-width:none;}
.vsw .cta-portrait{width:120px; height:120px; border-radius:50%; overflow:hidden; flex:none; background:var(--vsw-panel); box-shadow:0 0 0 3px var(--vsw-bg), 0 0 0 5px var(--vsw-accent); margin-bottom:28px;}
.vsw .cta-portrait img{width:100%; height:100%; object-fit:cover; display:block;}
.vsw .cta-card p{font-size:16.5px; line-height:1.7; color:var(--vsw-ink-soft); margin-top:16px; max-width:460px;}
.vsw .cta-card .btn-whatsapp{margin-top:32px;}
.vsw .value-grid{display:grid; grid-template-columns:1fr; gap:24px;}
@media (min-width:900px){
  .vsw .value-grid{grid-template-columns:1fr 1fr; gap:40px; align-items:start;}
}
.vsw .value-quote{position:relative; background:var(--vsw-panel); border:1px solid var(--vsw-border); border-radius:20px; padding:32px; font-size:clamp(20px,2.2vw,24px); font-weight:600; line-height:1.45; color:var(--vsw-ink);}
.vsw .value-quote::before{content:""; position:absolute; left:0; top:32px; bottom:32px; width:3px; border-radius:0 3px 3px 0; background:var(--vsw-accent);}
.vsw .value-text p{font-size:16.5px; line-height:1.75; color:var(--vsw-ink-soft); max-width:58ch;}
.vsw .value-text p + p{margin-top:18px;}
.vsw .edu-grid{display:grid; grid-template-columns:1fr; gap:24px;}
@media (min-width:960px){
  .vsw .edu-grid{grid-template-columns:.9fr 1.1fr; gap:48px; align-items:start;}
}
.vsw .edu-grid .cases-title{margin-bottom:20px;}
.vsw .edu-grid .sec-lead, .vsw .contact-grid .sec-lead{margin:0;}
.vsw .facts{width:100%; background:var(--vsw-panel); border:1px solid var(--vsw-border); border-radius:20px; overflow:hidden;}
.vsw .facts-row{display:grid; grid-template-columns:1fr; gap:4px; padding:16px 24px; border-bottom:1px solid var(--vsw-border);}
.vsw .facts-row:last-child{border-bottom:none;}
.vsw .facts dt{font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.07em; color:var(--vsw-ink-soft);}
.vsw .facts dd{font-size:16px; font-weight:500; color:var(--vsw-ink); overflow-wrap:anywhere; font-variant-numeric:tabular-nums;}
@media (min-width:700px){
  .vsw .facts-row{grid-template-columns:220px 1fr; gap:24px; align-items:baseline;}
}
.vsw .pendiente{display:inline-block; padding:1px 9px; border:1px dashed color-mix(in srgb, var(--vsw-star) 70%, transparent); border-radius:6px; background:color-mix(in srgb, var(--vsw-star) 10%, transparent); color:var(--vsw-star); font-size:12px; font-weight:600; line-height:1.6; letter-spacing:0; text-transform:none; font-style:normal; vertical-align:.15em; white-space:normal;}
.vsw .stars{color:var(--vsw-star); letter-spacing:2px;}
.vsw .site-header .wrap{gap:20px;}
.vsw .site-nav{gap:24px; font-size:15px; align-items:center;}
@media (min-width:900px){
  .vsw .site-nav{display:none;}
}
@media (min-width:1180px){
  .vsw .site-nav{display:flex;}
}
@media (min-width:900px) and (max-width:1179px){
  .vsw .site-header .menu-toggle{display:flex;}
  .vsw .site-header .mobile-nav.open{display:flex !important;}
}
.vsw .nav-item{position:relative; display:flex; align-items:center; gap:2px;}
.vsw .site-nav .nav-link{white-space:nowrap;}
.vsw .site-nav .nav-link.is-section{color:var(--vsw-ink); box-shadow:0 2px 0 var(--vsw-accent);}
.vsw .nav-caret{width:24px; height:24px; display:grid; place-items:center; border:0; border-radius:6px; background:none; color:var(--vsw-ink-soft); cursor:pointer; transition:color .2s ease, background .2s ease;}
.vsw .nav-caret svg{width:15px; height:15px; transition:transform .2s ease;}
.vsw .nav-item:hover .nav-caret, .vsw .nav-caret[aria-expanded="true"]{color:var(--vsw-ink);}
.vsw .nav-caret[aria-expanded="true"] svg{transform:rotate(180deg);}
.vsw .nav-drop{position:absolute; top:calc(100% + 24px); left:-22px; z-index:60; background:var(--vsw-panel); border:1px solid var(--vsw-border); border-radius:18px; box-shadow:var(--vsw-shadow-lift); padding:14px; opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .18s ease, transform .18s ease, visibility 0s linear .18s;}
.vsw .nav-drop::before{content:""; position:absolute; left:0; right:0; top:-26px; height:26px;}
.vsw .nav-item:hover > .nav-drop, .vsw .nav-item.is-open > .nav-drop{opacity:1; visibility:visible; transform:none; transition-delay:0s;}
.vsw .nav-drop-grid{display:grid; grid-template-columns:repeat(2, minmax(230px, 1fr)); gap:0 12px;}
.vsw .nav-drop--compact .nav-drop-grid{grid-template-columns:repeat(2, minmax(200px, 1fr));}
.vsw .nav-drop-title{font-size:11.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--vsw-ink-soft); padding:8px 12px 6px; min-height:31px;}
.vsw .site-nav .nav-drop-link{display:flex; flex-direction:column; gap:2px; padding:10px 12px; border-radius:10px; color:var(--vsw-ink); box-shadow:none; transition:background .15s ease;}
.vsw .site-nav .nav-drop-link:hover{background:color-mix(in srgb, var(--vsw-ink) 5%, transparent); color:var(--vsw-ink);}
.vsw .nd-t{display:flex; align-items:center; gap:8px; font-size:15px; font-weight:600; line-height:1.35; color:var(--vsw-ink);}
.vsw .nd-d{font-size:13px; font-weight:400; line-height:1.4; color:var(--vsw-ink-soft);}
.vsw .site-nav .nav-drop-link[aria-current="page"]{background:color-mix(in srgb, var(--vsw-accent) 12%, transparent); box-shadow:none;}
.vsw .site-nav .nav-drop-link[aria-current="page"] .nd-t::after{content:""; width:6px; height:6px; border-radius:50%; background:var(--vsw-accent);}
.vsw .site-nav .nav-drop-foot{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:8px; padding:14px 12px 6px; border-top:1px solid var(--vsw-border); font-size:14px; font-weight:600; color:var(--vsw-ink); box-shadow:none;}
.vsw .site-nav .nav-drop-foot svg{width:16px; height:16px; color:var(--vsw-accent); transition:transform .2s ease;}
.vsw .site-nav .nav-drop-foot:hover{color:var(--vsw-ink);}
.vsw .site-nav .nav-drop-foot:hover svg{transform:translateX(3px);}
.vsw .mobile-nav{max-height:calc(100vh - var(--vsw-header-h)); max-height:calc(100dvh - var(--vsw-header-h)); overflow-y:auto; overscroll-behavior:contain;}
.vsw .m-group{border-bottom:1px solid var(--vsw-border-soft);}
.vsw .m-row{display:flex; align-items:center; justify-content:space-between; gap:8px;}
.vsw .mobile-nav .m-row a{flex:1; border-bottom:none;}
.vsw .m-toggle{width:44px; height:44px; display:grid; place-items:center; flex:none; border:0; border-radius:8px; background:none; color:var(--vsw-ink-soft); cursor:pointer;}
.vsw .m-toggle svg{width:18px; height:18px; transition:transform .2s ease;}
.vsw .m-toggle[aria-expanded="true"]{color:var(--vsw-ink);}
.vsw .m-toggle[aria-expanded="true"] svg{transform:rotate(180deg);}
.vsw .m-sub{display:flex; flex-direction:column; margin:0 0 14px 6px; padding-left:14px; border-left:1px solid var(--vsw-border);}
.vsw .m-sub[hidden]{display:none;}
.vsw .mobile-nav .m-sub a{padding:9px 4px; font-size:15px; border-bottom:none;}
.vsw .mobile-nav .m-sub a[aria-current="page"]{color:var(--vsw-ink);}
.vsw .mobile-nav .m-cta{margin-top:18px; justify-content:center; padding:14px 22px; color:#fff; border-bottom:none; font-size:15px;}
.vsw .footer-grid--5{gap:40px;}
@media (min-width:700px){
  .vsw .footer-grid--5{grid-template-columns:repeat(4, 1fr);}
  .vsw .footer-grid--5 .footer-brand{grid-column:1 / -1;}
}
@media (min-width:1040px){
  .vsw .footer-grid--5{grid-template-columns:1.35fr repeat(4, 1fr);}
  .vsw .footer-grid--5 .footer-brand{grid-column:auto;}
}
.vsw details.footer-col{display:block;}
.vsw .footer-col summary{list-style:none;}
.vsw .footer-col summary::-webkit-details-marker{display:none;}
.vsw .footer-links{display:flex; flex-direction:column; gap:13px;}
.vsw .footer-links button{font:inherit; font-size:14.5px; color:var(--vsw-ink); background:none; border:0; padding:0; text-align:left; cursor:pointer; transition:color .2s ease;}
.vsw .footer-links button:hover{color:var(--vsw-accent);}
.vsw .footer-links a[aria-current="page"]{color:var(--vsw-accent);}
.vsw .footer-contact{display:flex; flex-wrap:wrap; gap:6px 18px;}
.vsw .footer-contact a{transition:color .2s ease;}
.vsw .footer-contact a:hover{color:var(--vsw-ink);}
@media (min-width:700px){
  .vsw .footer-col summary{pointer-events:none;}
}
@media (max-width:699px){
  .vsw .footer-grid--5{gap:0;}
  .vsw .footer-grid--5 .footer-brand{margin-bottom:32px;}
  .vsw details.footer-col{border-top:1px solid var(--vsw-border);}
  .vsw details.footer-col:last-child{border-bottom:1px solid var(--vsw-border);}
  .vsw .footer-col summary.footer-col-title{display:flex; align-items:center; justify-content:space-between; margin:0; padding:18px 0; cursor:pointer;}
  .vsw .footer-col summary.footer-col-title::after{content:"+"; width:24px; height:24px; border-radius:50%; background:color-mix(in srgb, var(--vsw-accent) 15%, transparent); color:var(--vsw-accent); display:flex; align-items:center; justify-content:center; font-size:16px; transition:transform .25s ease;}
  .vsw details.footer-col[open] summary.footer-col-title::after{transform:rotate(45deg);}
  .vsw .footer-links{padding-bottom:22px;}
}
.vsw .crumbs{margin-bottom:26px; font-size:13.5px; color:var(--vsw-ink-soft);}
.vsw .crumbs ol{display:flex; flex-wrap:wrap; align-items:center; gap:6px 8px;}
.vsw .crumbs li{display:inline-flex; align-items:center; gap:8px;}
.vsw .crumbs li + li::before{content:"›"; color:color-mix(in srgb, var(--vsw-ink-soft) 55%, transparent);}
.vsw .crumbs a{color:var(--vsw-ink-soft); transition:color .2s ease;}
.vsw .crumbs a:hover{color:var(--vsw-ink);}
.vsw .crumbs [aria-current="page"]{color:var(--vsw-ink);}
.vsw .hero--page{padding:48px 0 72px;}
@media (min-width:640px){
  .vsw .hero--page{padding:72px 0 104px;}
}
.vsw .hero--page .hero-content{max-width:860px;}
.vsw .hero--page .hero-grid .hero-content{max-width:none;}
.vsw .hero--page .hero-subtitle{text-wrap:balance;}
.vsw .hero--page .hero-subtitle.is-long{font-size:38px;}
@media (min-width:640px){
  .vsw .hero--page .hero-subtitle.is-long{font-size:52px;}
}
.vsw .hero--page .stats-grid{margin-top:52px;}
.vsw .hero-visual{position:relative; min-width:0;}
.vsw .hero--center{text-align:center;}
.vsw .hero--center .hero-content{margin:0 auto;}
.vsw .hero--center .hero-body{margin-left:auto; margin-right:auto;}
.vsw .hero--center .hero-actions{justify-content:center;}
.vsw .hero--center .crumbs ol{justify-content:center;}
.vsw .hero-logo{background:var(--vsw-panel); border-radius:20px; padding:56px 40px; display:flex; align-items:center; justify-content:center; box-shadow:var(--vsw-shadow-photo); border:1px solid var(--vsw-border); min-height:220px;}
.vsw .hero-logo img{max-width:100%; width:auto; max-height:96px; height:auto; display:block; filter:grayscale(100%); opacity:.85;}
.vsw .hero-logo--light{background:#fff;}
.vsw .hero-logo--light img{filter:none; opacity:1; max-height:none;}
.vsw .hero-logo-tags{display:flex; flex-wrap:wrap; gap:8px; margin-top:16px;}
.vsw .hero-logo-tags span{border:1px solid var(--vsw-border); border-radius:999px; padding:6px 14px; font-size:12.5px; color:var(--vsw-ink-soft);}
.vsw .hero-sign{display:flex; align-items:center; gap:12px; margin:-12px 0 32px; font-size:14px; color:var(--vsw-ink-soft);}
.vsw .hero-sign img{width:40px; height:40px; border-radius:50%; object-fit:cover; box-shadow:0 0 0 2px var(--vsw-bg), 0 0 0 3px var(--vsw-accent);}
.vsw .hero-sign a{color:var(--vsw-ink); font-weight:600; border-bottom:1px solid var(--vsw-accent);}
.vsw .answer-box{position:relative; background:var(--vsw-panel); border:1px solid var(--vsw-border); border-radius:20px; padding:28px 32px 30px 36px; max-width:880px;}
.vsw .answer-box::before{content:""; position:absolute; left:0; top:28px; bottom:28px; width:3px; border-radius:0 3px 3px 0; background:var(--vsw-accent);}
.vsw .answer-label{display:flex; align-items:center; gap:8px; font-size:12px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--vsw-accent); margin-bottom:12px;}
.vsw .answer-label svg{width:15px; height:15px;}
.vsw .answer-box p{font-size:18px; line-height:1.7; color:var(--vsw-ink);}
.vsw .answer-box p + p{margin-top:12px;}
.vsw :is(.answer-box, .author-box p, .aside-cta p, .feature-card p, .service-card p, .info-card, .sec-head p, .sec-lead, .check-list, .client-result, .faq-item p, .value-text, .cta-card p, .text-block, .method-card p, .method-note, .step-list p, .case-intro p, .cmp td, .facts dd, .small-note, .hero-body, .callout, .table-wrap td) a:not(.btn-whatsapp):not(.btn-case):not(.link-text):not(.card-link){color:var(--vsw-ink); text-decoration:underline; text-decoration-color:var(--vsw-accent); text-underline-offset:3px; text-decoration-thickness:1px; transition:color .2s ease;}
.vsw :is(.answer-box, .author-box p, .aside-cta p, .feature-card p, .service-card p, .info-card, .sec-head p, .sec-lead, .check-list, .client-result, .faq-item p, .value-text, .cta-card p, .text-block, .method-card p, .method-note, .step-list p, .case-intro p, .cmp td, .facts dd, .small-note, .hero-body, .callout, .table-wrap td) a:not(.btn-whatsapp):not(.btn-case):not(.link-text):not(.card-link):hover{color:var(--vsw-accent);}
.vsw .value-quote a{color:inherit; text-decoration:underline; text-decoration-color:var(--vsw-accent); text-underline-offset:4px;}
.vsw .card-grid{display:grid; grid-template-columns:1fr; gap:20px;}
@media (min-width:640px){
  .vsw .card-grid{grid-template-columns:1fr 1fr;}
}
@media (min-width:960px){
  .vsw .card-grid--3{grid-template-columns:repeat(3, 1fr);}
}
@media (min-width:1100px){
  .vsw .card-grid--4{grid-template-columns:repeat(4, 1fr);}
}
@media (min-width:960px){
  .vsw .card-grid--5{grid-template-columns:repeat(6, 1fr);}
  .vsw .card-grid--5 > *{grid-column:span 2;}
  .vsw .card-grid--5 > :nth-child(4){grid-column:2 / span 2;}
}
.vsw .card-grid .service-card p:last-child{margin-bottom:0;}
.vsw .service-card .card-link{margin-top:auto; align-self:flex-start;}
.vsw .service-card p + .card-link{margin-top:4px;}
.vsw .service-tags + .card-link{margin-top:20px;}
.elementor-element:has(> .elementor-widget-container > .vsw > .service-tags:last-child, > .vsw > .service-tags:last-child) + .elementor-element > .elementor-widget-container > .vsw > .card-link:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .service-tags:last-child, > .vsw > .service-tags:last-child) + .elementor-element > .vsw > .card-link:first-child{margin-top:20px;}
.vsw .service-tags a{border:1px solid var(--vsw-border); border-radius:999px; padding:6px 14px; font-size:12.5px; color:var(--vsw-ink-soft); white-space:nowrap; transition:border-color .2s ease, color .2s ease;}
.vsw .service-tags a:hover{border-color:var(--vsw-accent-line); color:var(--vsw-ink);}
.vsw a.service-card{color:inherit;}
.vsw .feature-card{background:var(--vsw-card); border:1px solid var(--vsw-border); border-radius:18px; padding:28px; display:flex; flex-direction:column;}
.vsw a.feature-card{transition:transform .25s ease, border-color .25s ease, background .25s ease;}
.vsw a.feature-card:hover{transform:translateY(-4px); border-color:color-mix(in srgb, var(--vsw-accent) 40%, transparent); background:var(--vsw-card-hover);}
.vsw .feature-ico{width:44px; height:44px; border-radius:12px; background:var(--vsw-icon-bg); color:var(--vsw-accent); display:grid; place-items:center; margin-bottom:20px; flex:none;}
.vsw .feature-ico svg{width:21px; height:21px;}
.vsw .feature-card h3{font-size:19px; font-weight:700; line-height:1.3; color:var(--vsw-ink); margin-bottom:10px;}
.vsw .feature-card p{font-size:15px; line-height:1.65; color:var(--vsw-ink-soft);}
.vsw .feature-card p + p{margin-top:10px;}
.vsw .feature-card .card-link{margin-top:auto; padding-top:18px; align-self:flex-start;}
.vsw .card-link{display:inline-flex; align-items:center; gap:6px; font-size:14px; font-weight:600; color:var(--vsw-ink); border-bottom:1px solid var(--vsw-accent); padding-bottom:2px; transition:color .2s ease;}
.vsw .card-link:hover{color:var(--vsw-accent);}
.vsw .info-grid{display:grid; grid-template-columns:1fr; gap:20px;}
@media (min-width:760px){
  .vsw .info-grid{grid-template-columns:1fr 1fr;}
}
@media (min-width:1100px){
  .vsw .info-grid--3{grid-template-columns:repeat(3, 1fr);}
}
.vsw .info-card{background:var(--vsw-card); border:1px solid var(--vsw-border); border-radius:18px; padding:28px;}
@media (min-width:640px){
  .vsw .info-card{padding:32px;}
}
.vsw .info-card--panel{background:var(--vsw-panel);}
.vsw .info-card .case-label{color:var(--vsw-accent); font-weight:700;}
.vsw .info-card h3{font-size:20px; font-weight:700; line-height:1.3; color:var(--vsw-ink); margin-bottom:12px;}
.vsw .info-card p{font-size:15.5px; line-height:1.7; color:var(--vsw-ink-soft);}
.vsw .info-card p + p, .vsw .info-card p + .check-list, .vsw .info-card .check-list + p{margin-top:14px;}
.vsw .info-card strong{color:var(--vsw-ink); font-weight:600;}
.vsw .check-list{display:grid; gap:14px;}
@media (min-width:760px){
  .vsw .check-list--2{grid-template-columns:1fr 1fr; gap:16px 36px;}
}
.vsw .check-list li{display:flex; gap:12px; align-items:flex-start; font-size:16px; line-height:1.6; color:var(--vsw-ink-soft);}
.vsw .check-list li strong{color:var(--vsw-ink); font-weight:600;}
.vsw .check-ico{width:24px; height:24px; border-radius:50%; background:var(--vsw-icon-bg); color:var(--vsw-accent); display:grid; place-items:center; flex:none; margin-top:1px;}
.vsw .check-ico svg{width:13px; height:13px;}
.vsw .check-list--x .check-ico{background:color-mix(in srgb, var(--vsw-ink) 6%, transparent); color:var(--vsw-ink-soft);}
.vsw .step-list{display:grid; gap:16px; counter-reset:step;}
@media (min-width:900px){
  .vsw .step-list--2{grid-template-columns:1fr 1fr;}
}
.vsw .step-list > li{display:grid; grid-template-columns:40px 1fr; gap:16px; align-items:start; background:var(--vsw-card); border:1px solid var(--vsw-border); border-radius:18px; padding:22px 24px;}
.vsw .step-num{width:40px; height:40px; border-radius:50%; border:1px solid var(--vsw-accent-line); background:color-mix(in srgb, var(--vsw-accent) 8%, transparent); color:var(--vsw-accent); display:grid; place-items:center; font-size:14px; font-weight:700; font-variant-numeric:tabular-nums;}
.vsw .step-list h3{font-size:18px; font-weight:700; line-height:1.35; color:var(--vsw-ink); margin:7px 0 6px;}
.vsw .step-list p{font-size:15px; line-height:1.65; color:var(--vsw-ink-soft);}
.vsw .step-list p + p{margin-top:8px;}
.vsw .cmp-wrap{background:var(--vsw-panel); border:1px solid var(--vsw-border); border-radius:20px; overflow:hidden;}
.vsw .cmp{width:100%; border-collapse:collapse; font-size:15.5px; line-height:1.55;}
.vsw .cmp th, .vsw .cmp td{padding:18px 24px; text-align:left; vertical-align:top; border-bottom:1px solid var(--vsw-border);}
.vsw .cmp thead th{font-size:12px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--vsw-ink-soft); background:color-mix(in srgb, var(--vsw-ink) 2%, transparent);}
.vsw .cmp tbody th{font-weight:600; color:var(--vsw-ink); width:26%;}
.vsw .cmp td{color:var(--vsw-ink-soft);}
.vsw .cmp .is-hl{background:color-mix(in srgb, var(--vsw-accent) 9%, transparent); color:var(--vsw-ink);}
.vsw .cmp thead .is-hl{color:var(--vsw-accent);}
.vsw .cmp tbody tr:last-child > *{border-bottom:none;}
@media (max-width:699px){
  .vsw .cmp thead{display:none;}
  .vsw .cmp, .vsw .cmp tbody, .vsw .cmp tr, .vsw .cmp th, .vsw .cmp td{display:block; width:auto;}
  .vsw .cmp tr{padding:18px 20px; border-bottom:1px solid var(--vsw-border);}
  .vsw .cmp tbody tr:last-child{border-bottom:none;}
  .vsw .cmp th, .vsw .cmp td{padding:0; border:none; background:none;}
  .vsw .cmp tbody th{font-size:16px; margin-bottom:4px; width:auto;}
  .vsw .cmp td{margin-top:10px; padding:10px 14px; border-radius:10px; background:color-mix(in srgb, var(--vsw-ink) 3%, transparent);}
  .vsw .cmp td.is-hl{background:color-mix(in srgb, var(--vsw-accent) 12%, transparent);}
  .vsw .cmp td::before{content:attr(data-label); display:block; font-size:11px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--vsw-ink-soft); margin-bottom:2px;}
  .vsw .cmp td.is-hl::before{color:var(--vsw-accent);}
}
.vsw .table-wrap{overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--vsw-border); border-radius:16px; background:var(--vsw-card);}
.vsw .table-wrap table{width:100%; border-collapse:collapse; font-size:15px; line-height:1.55; min-width:520px;}
.vsw .table-wrap th, .vsw .table-wrap td{padding:13px 18px; text-align:left; vertical-align:top; border-bottom:1px solid var(--vsw-border);}
.vsw .table-wrap thead th{font-size:13.5px; font-weight:700; color:var(--vsw-ink); background:color-mix(in srgb, var(--vsw-ink) 4%, transparent); white-space:nowrap;}
.vsw .table-wrap td{color:var(--vsw-ink-soft);}
.vsw .table-wrap td:first-child{color:var(--vsw-ink); font-weight:600;}
.vsw .table-wrap tbody tr:last-child > *{border-bottom:none;}
.vsw .price-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media (min-width:900px){
  .vsw .price-grid--4{grid-template-columns:repeat(4, 1fr);}
}
.vsw .price-grid .big-stat{padding:22px;}
.vsw .price-grid .big-stat .num{font-size:clamp(28px, 7.4vw, 42px);}
@media (min-width:640px){
  .vsw .price-grid .big-stat{padding:26px;}
}
.vsw .big-stat .num .cur{font-size:.52em; font-weight:700; color:var(--vsw-ink-soft); margin-right:5px; letter-spacing:0;}
.vsw .price-cards{display:grid; grid-template-columns:1fr; gap:20px; align-items:stretch;}
@media (min-width:760px){
  .vsw .price-cards{grid-template-columns:1fr 1fr;}
}
@media (min-width:1100px){
  .vsw .price-cards--3{grid-template-columns:repeat(3, 1fr);}
  .vsw .price-cards--4{grid-template-columns:repeat(4, 1fr);}
}
.vsw .price-card{background:var(--vsw-card); border:1px solid var(--vsw-border); border-radius:20px; padding:30px 26px; display:flex; flex-direction:column; gap:18px;}
.vsw .price-card--hl{background:var(--vsw-panel); border-color:var(--vsw-accent-line); box-shadow:var(--vsw-shadow-lift);}
.vsw .price-tag{align-self:flex-start; font-size:12px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--vsw-accent); background:color-mix(in srgb, var(--vsw-accent) 10%, transparent); border:1px solid color-mix(in srgb, var(--vsw-accent) 35%, transparent); border-radius:999px; padding:4px 11px;}
.vsw .price-name{font-size:21px; font-weight:700; line-height:1.25; color:var(--vsw-ink);}
.vsw .price-desc{font-size:14.5px; line-height:1.6; color:var(--vsw-ink-soft); margin-top:-8px;}
.vsw .price-amount{display:flex; flex-direction:column; gap:4px; padding:18px 0; border-top:1px solid var(--vsw-border); border-bottom:1px solid var(--vsw-border);}
.vsw .price-from{font-size:12px; font-weight:600; letter-spacing:.07em; text-transform:uppercase; color:var(--vsw-ink-soft);}
.vsw .price-value{font-size:42px; font-weight:800; line-height:1.05; letter-spacing:-.02em; color:var(--vsw-ink); font-variant-numeric:tabular-nums;}
.vsw .price-value .cur{font-size:.5em; font-weight:700; color:var(--vsw-ink-soft); margin-right:4px; letter-spacing:0;}
.vsw .price-unit{font-size:14px; color:var(--vsw-ink-soft);}
.vsw .price-card .check-list{gap:11px;}
.vsw .price-card .check-list li{font-size:14.5px;}
.vsw .price-card .btn-whatsapp, .vsw .price-card .btn-case{margin-top:auto; align-self:stretch; justify-content:center;}
.vsw .client-grid{display:grid; grid-template-columns:1fr; gap:20px;}
@media (min-width:760px){
  .vsw .client-grid{grid-template-columns:1fr 1fr;}
}
@media (min-width:1100px){
  .vsw .client-grid--3{grid-template-columns:repeat(3, 1fr);}
}
.vsw .client-card{background:var(--vsw-card); border:1px solid var(--vsw-border); border-radius:18px; padding:24px; display:flex; flex-direction:column; gap:16px;}
.vsw .client-logo{background:color-mix(in srgb, var(--vsw-ink) 3.5%, transparent); border:1px solid var(--vsw-border-soft); border-radius:14px; height:88px; display:flex; align-items:center; justify-content:center; padding:18px 24px;}
.vsw .client-logo img{max-height:46px; max-width:100%; width:auto; height:auto; display:block; filter:grayscale(100%); opacity:.8;}
.vsw .client-card h3{font-size:19px; font-weight:700; line-height:1.3; color:var(--vsw-ink);}
.vsw .client-card h3 .client-meta{margin-top:4px;}
.vsw .client-result{font-size:14.5px; line-height:1.65; color:var(--vsw-ink-soft);}
.vsw .client-result + .client-result{margin-top:-6px;}
.elementor-element:has(> .elementor-widget-container > .vsw > .client-result:last-child, > .vsw > .client-result:last-child) + .elementor-element > .elementor-widget-container > .vsw > .client-result:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .client-result:last-child, > .vsw > .client-result:last-child) + .elementor-element > .vsw > .client-result:first-child{margin-top:-6px;}
.vsw .client-result strong{color:var(--vsw-ink); font-weight:600;}
.vsw .client-figs{display:flex; flex-wrap:wrap; gap:8px;}
.vsw .client-fig{border:1px solid var(--vsw-border); border-radius:999px; padding:6px 12px; font-size:13px; color:var(--vsw-ink-soft);}
.vsw .client-fig b{color:var(--vsw-ink); font-weight:700;}
.vsw .client-card .card-link{margin-top:auto; align-self:flex-start;}
.vsw .logo-wall{display:grid; grid-template-columns:repeat(2, 1fr); gap:12px;}
@media (min-width:640px){
  .vsw .logo-wall{grid-template-columns:repeat(4, 1fr);}
}
.vsw .logo-wall .logo-item{width:auto; height:72px; border:1px solid var(--vsw-border-soft); border-radius:14px; background:var(--vsw-card);}
.vsw .logo-wall-label{font-size:12px; font-weight:600; letter-spacing:.07em; text-transform:uppercase; color:var(--vsw-ink-soft); margin-bottom:16px;}
.vsw .result-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media (min-width:1100px){
  .vsw .result-grid{grid-template-columns:repeat(5, 1fr);}
}
@media (max-width:699px){
  .vsw .result-grid{grid-auto-flow:column; grid-template-columns:none; grid-auto-columns:72%; overflow-x:auto; scroll-snap-type:x mandatory; margin:0 -20px; padding:0 20px 10px; scroll-padding-inline:20px;}
  .vsw .result-card{scroll-snap-align:start;}
}
.vsw .result-card{background:var(--vsw-panel); border:1px solid var(--vsw-border); border-radius:20px; padding:22px; display:flex; flex-direction:column; gap:10px; color:inherit; transition:transform .25s ease, border-color .25s ease;}
.vsw a.result-card:hover{transform:translateY(-4px); border-color:var(--vsw-accent-line);}
.vsw .result-logo{height:40px; display:flex; align-items:center; margin-bottom:4px;}
.vsw .result-logo img{max-height:28px; max-width:120px; width:auto; height:auto; filter:grayscale(100%) brightness(1.8); opacity:.7;}
.vsw .result-num{font-size:32px; font-weight:800; line-height:1.1; letter-spacing:-.02em; color:var(--vsw-ink); font-variant-numeric:tabular-nums;}
.vsw .result-desc{font-size:13.5px; line-height:1.5; color:var(--vsw-ink-soft); flex-grow:1;}
.vsw .result-who{padding-top:12px; border-top:1px solid var(--vsw-border); font-size:14px; font-weight:700; line-height:1.35; color:var(--vsw-ink);}
.vsw .result-who span{display:block; font-size:12.5px; font-weight:400; color:var(--vsw-ink-soft);}
.vsw .result-more{display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:600; color:var(--vsw-accent);}
.vsw .result-more svg{width:14px; height:14px;}
.vsw .proof-grid{display:grid; grid-template-columns:1fr; gap:20px;}
@media (min-width:900px){
  .vsw .proof-grid{grid-template-columns:1fr 1fr;}
}
.vsw .proof-grid .case-proof{margin-top:0; flex-direction:column; align-items:stretch;}
.vsw .proof-grid .case-proof-img-wrap{width:auto; max-width:none;}
.vsw .method-deliver{position:relative; z-index:1; margin-top:18px; padding-top:16px; border-top:1px solid var(--vsw-border); font-size:15px; line-height:1.6; color:var(--vsw-ink); max-width:58ch;}
.vsw .method-deliver span{display:block; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--vsw-accent); margin-bottom:4px;}
.vsw .method-stack .method-card:nth-child(6){top:198px; z-index:6;}
.vsw .method-stack .method-card:nth-child(7){top:220px; z-index:7;}
@media (min-width:900px){
  .vsw .method-grid--2{grid-template-columns:1fr 1fr;}
  .vsw .method-grid--4{grid-template-columns:1fr 1fr;}
}
@media (min-width:1100px){
  .vsw .method-grid--4{grid-template-columns:repeat(4, 1fr);}
}
.vsw .link-grid{display:grid; grid-template-columns:1fr; gap:16px;}
@media (min-width:640px){
  .vsw .link-grid{grid-template-columns:1fr 1fr;}
}
@media (min-width:1000px){
  .vsw .link-grid--3{grid-template-columns:repeat(3, 1fr);}
  .vsw .link-grid--4{grid-template-columns:repeat(4, 1fr);}
}
.vsw .link-card{display:flex; flex-direction:column; gap:8px; background:var(--vsw-card); border:1px solid var(--vsw-border); border-radius:18px; padding:22px 24px; color:inherit; transition:border-color .2s ease, background .2s ease, transform .2s ease;}
.vsw .link-card:hover{border-color:var(--vsw-accent-line); background:var(--vsw-card-hover); transform:translateY(-3px);}
.vsw .link-card-k{font-size:12px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--vsw-accent);}
.vsw .link-card-t{display:flex; justify-content:space-between; align-items:flex-start; gap:12px; font-size:18px; font-weight:700; line-height:1.3; color:var(--vsw-ink);}
.vsw .link-card-t svg{width:18px; height:18px; flex:none; margin-top:3px; color:var(--vsw-accent); transition:transform .2s ease;}
.vsw .link-card:hover .link-card-t svg{transform:translateX(3px);}
.vsw .link-card-d{font-size:14.5px; line-height:1.55; color:var(--vsw-ink-soft);}
.vsw .sec-actions{display:flex; flex-wrap:wrap; align-items:center; gap:14px 24px; margin-top:40px;}
.vsw .callout{display:flex; gap:14px; align-items:flex-start; background:color-mix(in srgb, var(--vsw-accent) 8%, transparent); border:1px solid color-mix(in srgb, var(--vsw-accent) 30%, transparent); border-radius:16px; padding:18px 20px; font-size:16px; line-height:1.65; color:var(--vsw-ink);}
.vsw .callout svg{width:20px; height:20px; color:var(--vsw-accent); flex:none; margin-top:2px;}
.vsw .callout strong{color:var(--vsw-ink);}
.vsw .callout--warn{background:color-mix(in srgb, var(--vsw-star) 8%, transparent); border-color:color-mix(in srgb, var(--vsw-star) 35%, transparent);}
.vsw .callout--warn svg{color:var(--vsw-star);}
.vsw .serp{background:var(--vsw-panel); border:1px solid var(--vsw-border); border-radius:20px; box-shadow:var(--vsw-shadow-lift); padding:18px; max-width:460px; width:100%;}
@media (min-width:960px){
  .vsw .hero-grid .serp{justify-self:end;}
}
.vsw .serp-bar{display:flex; align-items:center; gap:10px; background:color-mix(in srgb, var(--vsw-ink) 6%, transparent); border:1px solid var(--vsw-border); border-radius:999px; padding:11px 16px; font-size:14.5px; color:var(--vsw-ink);}
.vsw .serp-bar svg{width:17px; height:17px; color:var(--vsw-ink-soft); flex:none;}
.vsw .serp-bar .serp-caret{width:1px; height:17px; background:var(--vsw-accent); margin-left:-6px; animation:vsw-serpBlink 1.1s steps(1) infinite;}
@keyframes vsw-serpBlink{50%{opacity:0;}}
.vsw .serp-map{position:relative; height:132px; margin:14px 0 10px; border-radius:14px; overflow:hidden; border:1px solid var(--vsw-border-soft); background:linear-gradient(90deg, color-mix(in srgb, var(--vsw-ink) 3.5%, transparent) 1px, transparent 1px) 0 0 / 26px 26px, linear-gradient(color-mix(in srgb, var(--vsw-ink) 3.5%, transparent) 1px, transparent 1px) 0 0 / 26px 26px, #151e2c;}
.vsw .serp-map::before, .vsw .serp-map::after{content:""; position:absolute; background:color-mix(in srgb, var(--vsw-ink) 7%, transparent);}
.vsw .serp-map::before{left:-10%; right:-10%; top:58%; height:10px; transform:rotate(-8deg);}
.vsw .serp-map::after{top:-10%; bottom:-10%; left:38%; width:9px; transform:rotate(14deg);}
.vsw .serp-pin{position:absolute; z-index:1; width:22px; height:22px; border-radius:50% 50% 50% 0; transform:rotate(-45deg); background:#3a4558; box-shadow:0 3px 10px rgba(0,0,0,.35);}
.vsw .serp-pin::after{content:""; position:absolute; inset:7px; border-radius:50%; background:var(--vsw-bg);}
.vsw .serp-pin--you{width:30px; height:30px; background:linear-gradient(135deg, var(--vsw-accent-2), var(--vsw-accent)); box-shadow:0 4px 16px color-mix(in srgb, var(--vsw-accent) 60%, transparent); animation:vsw-serpFloat 2.6s ease-in-out infinite;}
.vsw .serp-pin--you::after{inset:10px; background:#fff;}
@keyframes vsw-serpFloat{0%,100%{transform:rotate(-45deg) translateY(0);} 50%{transform:rotate(-45deg) translate(3px,-3px);}}
.vsw .serp-list{display:flex; flex-direction:column; gap:8px;}
.vsw .serp-list li{display:flex; align-items:center; gap:12px; padding:12px; border-radius:12px; border:1px solid transparent;}
.vsw .serp-list li.is-you{background:color-mix(in srgb, var(--vsw-accent) 10%, transparent); border-color:var(--vsw-accent-line);}
.vsw .serp-letter{width:26px; height:26px; border-radius:50%; display:grid; place-items:center; flex:none; font-size:12px; font-weight:700; background:color-mix(in srgb, var(--vsw-ink) 8%, transparent); color:var(--vsw-ink-soft);}
.vsw .is-you .serp-letter{background:var(--vsw-accent); color:#fff;}
.vsw .serp-txt{display:flex; flex-direction:column; gap:3px; min-width:0; flex:1;}
.vsw .serp-txt b{font-size:15px; font-weight:700; color:var(--vsw-ink);}
.vsw .serp-txt small{font-size:12.5px; color:var(--vsw-ink-soft);}
.vsw .serp-txt .stars{font-size:12px;}
.vsw .serp-badge{flex:none; font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--vsw-accent); white-space:nowrap;}
.vsw .sk{display:block; height:8px; border-radius:6px; background:color-mix(in srgb, var(--vsw-ink) 8%, transparent);}
.vsw .sk + .sk{margin-top:6px;}
.elementor-element:has(> .elementor-widget-container > .vsw > .sk:last-child, > .vsw > .sk:last-child) + .elementor-element > .elementor-widget-container > .vsw > .sk:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .sk:last-child, > .vsw > .sk:last-child) + .elementor-element > .vsw > .sk:first-child{margin-top:6px;}
.vsw .serp-chat{display:flex; flex-direction:column; gap:12px; margin-top:4px;}
.vsw .serp-q{align-self:flex-end; max-width:85%; background:color-mix(in srgb, var(--vsw-ink) 7%, transparent); border:1px solid var(--vsw-border); border-radius:16px 16px 4px 16px; padding:11px 14px; font-size:14px; line-height:1.5; color:var(--vsw-ink);}
.vsw .serp-a{display:flex; gap:10px; align-items:flex-start;}
.vsw .serp-a-ico{width:28px; height:28px; border-radius:50%; background:var(--vsw-icon-bg); color:var(--vsw-accent); display:grid; place-items:center; flex:none;}
.vsw .serp-a-ico svg{width:15px; height:15px;}
.vsw .serp-a-body{flex:1; min-width:0; background:color-mix(in srgb, var(--vsw-ink) 3%, transparent); border:1px solid var(--vsw-border-soft); border-radius:4px 16px 16px 16px; padding:13px 14px;}
.vsw .serp-cite{display:inline-flex; align-items:center; gap:6px; margin:10px 0 8px; padding:5px 11px; border-radius:999px; background:color-mix(in srgb, var(--vsw-accent) 14%, transparent); border:1px solid var(--vsw-accent-line); font-size:12.5px; font-weight:600; color:var(--vsw-ink);}
.vsw .serp-cite svg{width:13px; height:13px; color:var(--vsw-accent);}
.vsw .serp-results li{display:block; padding:12px 14px;}
.vsw .serp-url{font-size:12px; color:var(--vsw-ink-soft); margin-bottom:3px;}
.vsw .serp-results .is-you .serp-url{color:var(--vsw-accent-2);}
.vsw .serp-results b{font-size:15.5px; color:var(--vsw-ink); display:block; margin-bottom:6px;}
.vsw .serp-ad{font-size:11px; font-weight:700; color:var(--vsw-ink); background:color-mix(in srgb, var(--vsw-ink) 10%, transparent); border-radius:4px; padding:1px 6px; margin-right:6px;}
.vsw .cookie-bar{position:fixed; left:16px; right:16px; bottom:calc(16px + env(safe-area-inset-bottom, 0px)); z-index:90; max-width:460px; background:var(--vsw-panel); border:1px solid var(--vsw-border); border-radius:18px; box-shadow:0 30px 70px -20px rgba(0,0,0,.7); padding:20px 22px;}
.vsw .cookie-bar[hidden]{display:none;}
.vsw .cookie-bar strong{display:flex; align-items:center; gap:8px; font-size:15px; color:var(--vsw-ink); margin-bottom:6px;}
.vsw .cookie-bar strong svg{width:18px; height:18px; color:var(--vsw-accent);}
.vsw .cookie-bar p{font-size:14px; line-height:1.6; color:var(--vsw-ink-soft);}
.vsw .cookie-bar p a{color:var(--vsw-ink); text-decoration:underline; text-decoration-color:var(--vsw-accent); text-underline-offset:3px;}
.vsw .cookie-actions{display:flex; flex-wrap:wrap; gap:10px; margin-top:16px;}
.vsw .cookie-actions .btn-whatsapp, .vsw .cookie-actions .btn-case{padding:10px 18px; font-size:14px;}
.vsw .split{display:grid; grid-template-columns:1fr; gap:40px;}
.vsw .split > *{min-width:0;}
@media (min-width:960px){
  .vsw .split{grid-template-columns:1fr 1fr; gap:56px; align-items:start;}
  .vsw .split--wide{grid-template-columns:1.15fr .85fr;}
  .vsw .split--narrow{grid-template-columns:.85fr 1.15fr;}
  .vsw .split--center{align-items:center;}
}
.vsw .split .cases-title, .e-con.vsw-split .vsw .cases-title{margin-bottom:20px;}
.vsw .text-block p{font-size:16.5px; line-height:1.75; color:var(--vsw-ink-soft); max-width:62ch;}
.vsw .text-block p + p{margin-top:16px;}
.vsw .text-block strong{color:var(--vsw-ink); font-weight:600;}
.vsw .text-block > * + .check-list, .vsw .text-block > .check-list + p{margin-top:20px;}
.vsw .value-grid + .sec-actions, .vsw .answer-box + .sec-actions{margin-top:32px;}
.elementor-element:has(> .elementor-widget-container > .vsw > .value-grid:last-child, > .vsw > .value-grid:last-child) + .elementor-element > .elementor-widget-container > .vsw > .sec-actions:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .value-grid:last-child, > .vsw > .value-grid:last-child) + .elementor-element > .vsw > .sec-actions:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .answer-box:last-child, > .vsw > .answer-box:last-child) + .elementor-element > .elementor-widget-container > .vsw > .sec-actions:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .answer-box:last-child, > .vsw > .answer-box:last-child) + .elementor-element > .vsw > .sec-actions:first-child{margin-top:32px;}
.vsw .sec-head + .answer-box, .vsw .cases-title + .answer-box{margin-top:0;}
.elementor-element:has(> .elementor-widget-container > .vsw > .sec-head:last-child, > .vsw > .sec-head:last-child) + .elementor-element > .elementor-widget-container > .vsw > .answer-box:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .sec-head:last-child, > .vsw > .sec-head:last-child) + .elementor-element > .vsw > .answer-box:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .cases-title:last-child, > .vsw > .cases-title:last-child) + .elementor-element > .elementor-widget-container > .vsw > .answer-box:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .cases-title:last-child, > .vsw > .cases-title:last-child) + .elementor-element > .vsw > .answer-box:first-child{margin-top:0;}
.vsw .answer-box + .card-grid, .vsw .answer-box + .info-grid, .vsw .answer-box + .check-list, .vsw .answer-box + .text-block{margin-top:40px;}
.elementor-element:has(> .elementor-widget-container > .vsw > .answer-box:last-child, > .vsw > .answer-box:last-child) + .elementor-element > .elementor-widget-container > .vsw > .card-grid:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .answer-box:last-child, > .vsw > .answer-box:last-child) + .elementor-element > .vsw > .card-grid:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .answer-box:last-child, > .vsw > .answer-box:last-child) + .elementor-element > .elementor-widget-container > .vsw > .info-grid:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .answer-box:last-child, > .vsw > .answer-box:last-child) + .elementor-element > .vsw > .info-grid:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .answer-box:last-child, > .vsw > .answer-box:last-child) + .elementor-element > .elementor-widget-container > .vsw > .check-list:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .answer-box:last-child, > .vsw > .answer-box:last-child) + .elementor-element > .vsw > .check-list:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .answer-box:last-child, > .vsw > .answer-box:last-child) + .elementor-element > .elementor-widget-container > .vsw > .text-block:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .answer-box:last-child, > .vsw > .answer-box:last-child) + .elementor-element > .vsw > .text-block:first-child{margin-top:40px;}
.vsw .card-grid + .sec-lead, .vsw .card-grid + .text-block, .vsw .info-grid + .text-block, .vsw .card-grid + .callout, .vsw .info-grid + .callout{margin-top:32px;}
.elementor-element:has(> .elementor-widget-container > .vsw > .card-grid:last-child, > .vsw > .card-grid:last-child) + .elementor-element > .elementor-widget-container > .vsw > .sec-lead:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .card-grid:last-child, > .vsw > .card-grid:last-child) + .elementor-element > .vsw > .sec-lead:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .card-grid:last-child, > .vsw > .card-grid:last-child) + .elementor-element > .elementor-widget-container > .vsw > .text-block:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .card-grid:last-child, > .vsw > .card-grid:last-child) + .elementor-element > .vsw > .text-block:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .info-grid:last-child, > .vsw > .info-grid:last-child) + .elementor-element > .elementor-widget-container > .vsw > .text-block:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .info-grid:last-child, > .vsw > .info-grid:last-child) + .elementor-element > .vsw > .text-block:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .card-grid:last-child, > .vsw > .card-grid:last-child) + .elementor-element > .elementor-widget-container > .vsw > .callout:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .card-grid:last-child, > .vsw > .card-grid:last-child) + .elementor-element > .vsw > .callout:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .info-grid:last-child, > .vsw > .info-grid:last-child) + .elementor-element > .elementor-widget-container > .vsw > .callout:first-child, .elementor-element:has(> .elementor-widget-container > .vsw > .info-grid:last-child, > .vsw > .info-grid:last-child) + .elementor-element > .vsw > .callout:first-child{margin-top:32px;}
.vsw .small-note{font-size:13.5px; line-height:1.6; color:var(--vsw-ink-soft); margin-top:20px;}
.vsw .cta-meta{display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:28px;}
.vsw .cta-meta > span, .vsw .cta-meta > a{display:inline-flex; align-items:center; gap:8px; border:1px solid var(--vsw-border); background:var(--vsw-card); border-radius:999px; padding:7px 14px 7px 8px; font-size:13.5px; font-weight:500; color:var(--vsw-ink); transition:border-color .2s ease;}
.vsw .cta-meta > a:hover{border-color:var(--vsw-accent-line);}
.vsw .cta-meta .promise-ico{width:22px; height:22px;}
.vsw .cta-card .btn-row{justify-content:center; margin-top:32px;}
.vsw .cta-card .btn-row .btn-whatsapp{margin-top:0;}
.vsw .sec--tight{padding-bottom:72px;}
@media (max-width:699px){
  .vsw .sec--tight{padding-bottom:56px;}
}
.vsw .wrap--narrow{max-width:880px;}
.vsw .sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
.vsw .notfound-num{font-size:clamp(96px, 18vw, 180px); font-weight:800; font-style:italic; line-height:1; letter-spacing:-.04em; color:color-mix(in srgb, var(--vsw-accent) 22%, transparent); margin-bottom:8px;}
@media (prefers-reduced-motion: reduce){
  .vsw .serp-pin--you, .vsw .serp-bar .serp-caret{animation:none;}
}
@media (min-width:900px){
  .vsw .stats-grid--4{grid-template-columns:repeat(4, 1fr);}
  .vsw .stats-grid--3{grid-template-columns:repeat(3, 1fr);}
}
.vsw .stats-grid--4 .big-stat:last-child:nth-child(odd), .vsw .stats-grid--3 .big-stat:last-child:nth-child(odd){grid-column:auto;}
@media (max-width:899px){
  .vsw .stats-grid--3 .big-stat:last-child{grid-column:1 / -1;}
}
.vsw .sub-head{margin-top:88px; margin-bottom:32px;}
@media (max-width:699px){
  .vsw .sub-head{margin-top:64px;}
}
.vsw .cases-title--sm{font-size:clamp(24px, 3vw, 34px); max-width:24ch;}
:is(.vsw-sec, .vsw-sec > .e-con-inner) > :is(.elementor-element:has(> .elementor-widget-container > .vsw > :is(.answer-box, .cmp-wrap, .card-grid, .info-grid, .client-grid, .logo-wall, .value-quote, .value-grid, .check-list, .text-block, .price-cards, .price-grid, .result-grid, .link-grid, .step-list, .method-grid, .facts, .table-wrap, .callout, .case-grid, .case-proof, .t-grid, .stats-grid, .timeline, .method-note):last-child, > .vsw > :is(.answer-box, .cmp-wrap, .card-grid, .info-grid, .client-grid, .logo-wall, .value-quote, .value-grid, .check-list, .text-block, .price-cards, .price-grid, .result-grid, .link-grid, .step-list, .method-grid, .facts, .table-wrap, .callout, .case-grid, .case-proof, .t-grid, .stats-grid, .timeline, .method-note):last-child), .e-con.vsw-split) + .elementor-element > .elementor-widget-container > .vsw > :is(.answer-box, .cmp-wrap, .card-grid, .info-grid, .client-grid, .logo-wall, .value-quote, .value-grid, .check-list, .text-block, .price-cards, .price-grid, .result-grid, .link-grid, .step-list, .method-grid, .facts, .table-wrap, .callout, .case-grid, .t-grid, .timeline):first-child, :is(.vsw-sec, .vsw-sec > .e-con-inner) > :is(.elementor-element:has(> .elementor-widget-container > .vsw > :is(.answer-box, .cmp-wrap, .card-grid, .info-grid, .client-grid, .logo-wall, .value-quote, .value-grid, .check-list, .text-block, .price-cards, .price-grid, .result-grid, .link-grid, .step-list, .method-grid, .facts, .table-wrap, .callout, .case-grid, .case-proof, .t-grid, .stats-grid, .timeline, .method-note):last-child, > .vsw > :is(.answer-box, .cmp-wrap, .card-grid, .info-grid, .client-grid, .logo-wall, .value-quote, .value-grid, .check-list, .text-block, .price-cards, .price-grid, .result-grid, .link-grid, .step-list, .method-grid, .facts, .table-wrap, .callout, .case-grid, .case-proof, .t-grid, .stats-grid, .timeline, .method-note):last-child), .e-con.vsw-split) + .elementor-element > .vsw > :is(.answer-box, .cmp-wrap, .card-grid, .info-grid, .client-grid, .logo-wall, .value-quote, .value-grid, .check-list, .text-block, .price-cards, .price-grid, .result-grid, .link-grid, .step-list, .method-grid, .facts, .table-wrap, .callout, .case-grid, .t-grid, .timeline):first-child, :is(.vsw-sec, .vsw-sec > .e-con-inner) > :is(.elementor-element:has(> .elementor-widget-container > .vsw > :is(.answer-box, .cmp-wrap, .card-grid, .info-grid, .client-grid, .logo-wall, .value-quote, .value-grid, .check-list, .text-block, .price-cards, .price-grid, .result-grid, .link-grid, .step-list, .method-grid, .facts, .table-wrap, .callout, .case-grid, .case-proof, .t-grid, .stats-grid, .timeline, .method-note):last-child, > .vsw > :is(.answer-box, .cmp-wrap, .card-grid, .info-grid, .client-grid, .logo-wall, .value-quote, .value-grid, .check-list, .text-block, .price-cards, .price-grid, .result-grid, .link-grid, .step-list, .method-grid, .facts, .table-wrap, .callout, .case-grid, .case-proof, .t-grid, .stats-grid, .timeline, .method-note):last-child), .e-con.vsw-split) + .e-con.vsw-split{margin-top:40px;}
.vsw .sec .wrap > .case-grid + .case-proof{margin-top:20px;}
:is(.vsw-sec, .vsw-sec > .e-con-inner) > .elementor-element:has(> .elementor-widget-container > .vsw > .case-grid:last-child, > .vsw > .case-grid:last-child) + .elementor-element > .elementor-widget-container > .vsw > .case-proof:first-child, :is(.vsw-sec, .vsw-sec > .e-con-inner) > .elementor-element:has(> .elementor-widget-container > .vsw > .case-grid:last-child, > .vsw > .case-grid:last-child) + .elementor-element > .vsw > .case-proof:first-child{margin-top:20px;}
.vsw .sec .wrap > .method-stack + .method-note, .vsw .sec .wrap > .method-grid + .method-note{margin-top:20px;}
:is(.vsw-sec, .vsw-sec > .e-con-inner) > .elementor-element:has(> .elementor-widget-container > .vsw > .method-stack:last-child, > .vsw > .method-stack:last-child) + .elementor-element > .elementor-widget-container > .vsw > .method-note:first-child, :is(.vsw-sec, .vsw-sec > .e-con-inner) > .elementor-element:has(> .elementor-widget-container > .vsw > .method-stack:last-child, > .vsw > .method-stack:last-child) + .elementor-element > .vsw > .method-note:first-child, :is(.vsw-sec, .vsw-sec > .e-con-inner) > .elementor-element:has(> .elementor-widget-container > .vsw > .method-grid:last-child, > .vsw > .method-grid:last-child) + .elementor-element > .elementor-widget-container > .vsw > .method-note:first-child, :is(.vsw-sec, .vsw-sec > .e-con-inner) > .elementor-element:has(> .elementor-widget-container > .vsw > .method-grid:last-child, > .vsw > .method-grid:last-child) + .elementor-element > .vsw > .method-note:first-child{margin-top:20px;}
@media (max-width:899px){
  .vsw .stats-grid, .vsw .price-grid{grid-template-columns:repeat(2, minmax(0, 1fr));}
}
.vsw .price-grid:not(.price-grid--4){grid-template-columns:repeat(2, minmax(0, 1fr));}
@media (min-width:900px){
  .vsw .stats-grid{grid-template-columns:repeat(5, minmax(0, 1fr));}
  .vsw .stats-grid--4{grid-template-columns:repeat(4, minmax(0, 1fr));}
  .vsw .stats-grid--3{grid-template-columns:repeat(3, minmax(0, 1fr));}
  .vsw .price-grid--4{grid-template-columns:repeat(4, minmax(0, 1fr));}
}
.vsw .big-stat{min-width:0;}
@media (max-width:519px){
  .vsw .stats-grid .big-stat .num, .vsw .price-grid .big-stat .num{font-size:clamp(28px, 8.4vw, 42px);}
}
.vsw .big-stat .num--word{font-size:clamp(22px, 2.6vw, 30px); line-height:1.2; overflow-wrap:anywhere; hyphens:auto; padding-top:6px;}
.vsw .result-num{overflow-wrap:anywhere;}
@media (min-width:1100px){
  .vsw .result-grid--6, .vsw .result-grid--3{grid-template-columns:repeat(3, 1fr);}
  .vsw .result-grid--4{grid-template-columns:repeat(4, 1fr);}
  .vsw .result-grid--2{grid-template-columns:repeat(2, 1fr);}
}
.vsw .t-grid--1{grid-template-columns:1fr !important; max-width:760px;}
.vsw .facts dd a{color:var(--vsw-ink);}
.vsw .case-grid:not(.case-grid--two) .case-side > .big-stat{flex:1 1 auto; display:flex; flex-direction:column; justify-content:center;}
.vsw .cases-title .line-light, .vsw .cases-title .line-bold, .vsw .post-title, .vsw .cta-card .cases-title{text-wrap:balance;}
.vsw .hero--page .eyebrow{font-size:19px;}
@media (min-width:640px){
  .vsw .hero--page .eyebrow{font-size:24px;}
}
.vsw .table-wrap--wide table{min-width:680px;}
.vsw .table-hint{display:none; font-size:12.5px; color:var(--vsw-ink-soft); margin-top:8px !important;}
@media (max-width:699px){
  .vsw .table-hint{display:block;}
}
@media (min-width:900px){
  .vsw .method-grid--5{grid-template-columns:repeat(6, 1fr);}
  .vsw .method-grid--5 > *{grid-column:span 2;}
  .vsw .method-grid--5 > :nth-child(4){grid-column:2 / span 2;}
}
.vsw .method-note .icon-circle svg{stroke:currentColor; fill:none;}
.vsw .price-grid .big-stat .num{font-size:clamp(26px, 6.6vw, 42px);}
.vsw .big-stat .num--word{overflow-wrap:normal; hyphens:manual;}
@media (max-width:639px){
  .vsw .big-stat .num--word{font-size:clamp(18px, 5.2vw, 24px);}
}
.vsw .hero-visual .logo-wall{grid-template-columns:repeat(2, 1fr);}
.vsw .hero-visual .logo-wall .logo-item{height:84px;}
.vsw .hero-visual .logo-wall .logo-item img{max-height:52%; opacity:.75;}
@media (max-width:639px){
  .vsw .crumbs ol{flex-wrap:nowrap; overflow:hidden;}
  .vsw .crumbs li{flex:none;}
  .vsw .crumbs li[aria-current="page"]{flex:1 1 auto; min-width:0; display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis;}
  .vsw .crumbs li[aria-current="page"]::before{margin-right:8px;}
}
.vsw .stats-grid .big-stat .num.num--word, .vsw .price-grid .big-stat .num.num--word{font-size:clamp(22px, 2.6vw, 30px);}
@media (max-width:639px){
  .vsw .stats-grid .big-stat .num.num--word, .vsw .price-grid .big-stat .num.num--word{font-size:clamp(17px, 5vw, 24px);}
}
/* ================================================================
   CONTENEDORES DE ELEMENTOR CON CLASES DEL PLUGIN
   vsw-sec        = <section class="sec"> + .wrap (ancho de 1116 px y relleno del diseño)
   vsw-sec--first = primera sección tras el hero o tras una banda (más aire arriba)
   vsw-split      = c.split(): dos columnas (vsw-split--wide, --narrow, --center)
   vsw-col        = cada columna de vsw-split
   Las clases ganan a los valores del panel de Elementor (relleno, espacio, display) para que el ritmo sea
   siempre el de la web. Si quieres otro relleno, quita la clase del contenedor.
   ================================================================ */
.e-con.e-con.vsw-sec.vsw-sec{--display:block; --gap:0px; --row-gap:0px; --column-gap:0px; --widgets-spacing:0px; --content-width:100%; --width:100%;
  --margin-top:0px; --margin-bottom:0px; --margin-left:0px; --margin-right:0px;
  --padding-top:52px; --padding-bottom:117px; --padding-left:max(32px, calc((100% - 1116px) / 2)); --padding-right:max(32px, calc((100% - 1116px) / 2));
  max-width:none; width:100%; position:relative;}
.e-con.e-con.vsw-sec.vsw-sec--first{--padding-top:117px;}
.e-con.e-con.vsw-sec.vsw-sec--tight{--padding-bottom:72px;}
@media(max-width:699px){
  .e-con.e-con.vsw-sec.vsw-sec{--padding-top:40px; --padding-bottom:80px;}
  .e-con.e-con.vsw-sec.vsw-sec--first{--padding-top:80px;}
  .e-con.e-con.vsw-sec.vsw-sec--tight{--padding-bottom:56px;}
}
@media(max-width:639px){.e-con.e-con.vsw-sec.vsw-sec{--padding-left:20px; --padding-right:20px;}}
.e-con.vsw-sec > .e-con-inner{display:block; max-width:none; width:100%; padding:0; margin:0;}
.e-con.vsw-sec > .elementor-element, .e-con.vsw-sec > .e-con-inner > .elementor-element{width:100%; max-width:100%;}
/* Contenedor a ancho completo y sin relleno para los widgets que pintan su propia sección (Hero, Cierre…) */
.e-con.e-con.vsw-full.vsw-full{--display:block; --gap:0px; --row-gap:0px; --column-gap:0px; --padding-top:0px; --padding-bottom:0px; --padding-left:0px; --padding-right:0px;
  --margin-top:0px; --margin-bottom:0px; --content-width:100%; --width:100%; max-width:none; width:100%;}
.e-con.vsw-full > .e-con-inner{display:block; max-width:none; padding:0;}
.e-con.vsw-full > .elementor-element, .e-con.vsw-full > .e-con-inner > .elementor-element{width:100%; max-width:100%;}

/* Dos columnas */
.e-con.e-con.vsw-split.vsw-split{--display:grid; --gap:40px; --row-gap:40px; --column-gap:40px; --padding-top:0px; --padding-bottom:0px; --padding-left:0px; --padding-right:0px;
  --margin-left:0px; --margin-right:0px; --content-width:100%; --width:100%; display:grid; grid-template-columns:minmax(0,1fr); gap:40px; max-width:none; width:100%;}
.e-con.vsw-split > .e-con-inner{display:contents;}
@media(min-width:960px){
  .e-con.e-con.vsw-split.vsw-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:56px; align-items:start;}
  .e-con.e-con.vsw-split.vsw-split--wide{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);}
  .e-con.e-con.vsw-split.vsw-split--narrow{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);}
  .e-con.e-con.vsw-split.vsw-split--center{align-items:center;}
}
.e-con.e-con.vsw-col.vsw-col{--display:block; --gap:0px; --row-gap:0px; --column-gap:0px; --padding-top:0px; --padding-bottom:0px; --padding-left:0px; --padding-right:0px;
  --margin-top:0px; --margin-bottom:0px; --content-width:100%; --width:100%; min-width:0; width:auto; max-width:none;}
.e-con.vsw-col > .e-con-inner{display:block; max-width:none; padding:0;}
.e-con.vsw-col > .elementor-element, .e-con.vsw-col > .e-con-inner > .elementor-element{width:100%; max-width:100%;}
.vsw-split .vsw .cases-title{margin-bottom:20px;}

/* Cabecera fija: en el Theme Builder la cabecera va dentro de su propia caja, así que la caja es la que se fija. */
.elementor-location-header:has(.vsw-header-sticky), [data-elementor-type="header"]:has(.vsw-header-sticky),
.elementor:not([data-elementor-type="header"]) > .e-con.vsw-full:has(> .elementor-element > .vsw-header-sticky, > .e-con-inner > .elementor-element > .vsw-header-sticky){position:sticky; top:var(--wp-admin--admin-bar--height, 0px); z-index:50;}
.vsw-header-sticky .site-header{position:relative; top:auto;}
/* ================================================================
   EXTRAS DEL PLUGIN (no están en el diseño): avisos del editor, foto sin marco,
   rótulo de la ficha y atributos hidden que el tema pudiera pisar.
   ================================================================ */
.vsw [hidden]{display:none !important;}
.vsw-empty, .vsw .vsw-placeholder{padding:24px; border:1px dashed var(--vsw-border); border-radius:12px; color:var(--vsw-ink-soft); font:14px/1.5 var(--vsw-font); text-align:center;}
.vsw .vsw-placeholder .form-title{color:var(--vsw-ink);}
.vsw .vsw-foto img{display:block; width:100%; height:auto;}
.vsw .case-proof-img-wrap{cursor:zoom-in;}
.vsw .cookie-bar[data-vsw-preview]{position:relative; inset:auto; transform:none; margin:24px auto 0;}
.vsw-lightbox .lightbox-overlay img{max-width:min(1200px, 92vw); max-height:88vh;}
/* Elementor pone margin:0 a los <figure> de los widgets (.elementor .elementor-widget … figure): la captura recupera el suyo. */
.elementor .elementor-widget.elementor-widget .vsw figure.case-proof{margin-top:20px;}
.elementor .elementor-widget.elementor-widget .vsw .proof-grid figure.case-proof{margin-top:0;}
