/* Velso - rediseno: hoja base. Tokens del handoff seccion 4. */
:root{
  --cy:#009EDB; --cy-dk:#04384E; --cy-lt:#E2F5FD;
  --ink:#0F1418; --tx2:#54606A; --tx3:#7B858D; --lbl:#3D474F;
  --on-dk:#9AA4AB; --on-dk2:#A9B2B8;
  --panel:#F7F9FA; --ln:#E6E9EB; --ln-in:#EDF0F2; --ln-fd:#DCE2E6;
  --ln-dk:#1B2126; --ln-dk2:#39424A;
  --ease:cubic-bezier(.22,.7,.2,1);
  --pad:56px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body.velso-r{margin:0;background:#fff;color:var(--ink);
  font:400 17px/1.7 "IBM Plex Sans",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
body.velso-r img{display:block;max-width:100%;height:auto}
body.velso-r a{color:inherit;text-decoration:none}
.v-wrap{max-width:1440px;margin:0 auto;padding:0 var(--pad)}

h1,h2,h3{font-family:"Space Grotesk",sans-serif;letter-spacing:-.03em;margin:0;text-wrap:balance}
h1{font-weight:700;font-size:clamp(38px,5vw,72px);line-height:1.02}
h2{font-weight:700;font-size:clamp(30px,3.4vw,48px);line-height:1.05}
h3{font-weight:500;font-size:clamp(20px,1.8vw,26px);line-height:1.25;letter-spacing:-.02em}
p{margin:0;text-wrap:pretty}

.v-eyebrow{font:400 12px/1 "IBM Plex Mono";letter-spacing:.16em;text-transform:uppercase;
  color:var(--lbl);display:flex;align-items:center;gap:14px}
.v-eyebrow:before{content:"";width:34px;height:2px;background:var(--cy);flex:none}

.v-skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:12px 20px;z-index:200}
.v-skip:focus{left:0}
:focus-visible{outline:2px solid var(--cy);outline-offset:3px}

.v-btn{display:inline-block;font:500 16px/1 "Space Grotesk";padding:18px 30px;border-radius:2px;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease;border:1px solid transparent}
.v-btn--dark{background:var(--ink);color:#fff}
.v-btn--dark:hover{background:var(--cy)}
.v-btn--cyan{background:var(--cy);color:#fff}
.v-btn--cyan:hover{background:#fff;color:var(--ink)}
.v-btn--out{border-color:var(--ln-fd);color:var(--ink);padding:18px 28px}
.v-btn--out:hover{border-color:var(--cy);color:var(--cy-dk)}
.v-btn--out-dark{border-color:var(--ln-dk2);color:#fff;padding:18px 28px}
.v-btn--out-dark:hover{border-color:var(--cy);color:var(--cy)}
.v-btn--ghost{border-color:var(--ln-dk2);color:#fff}
.v-btn--ghost-cyan{border-color:rgba(255,255,255,.45);color:#fff}
.v-btn--ghost-cyan:hover{background:#fff;color:var(--ink)}
.v-btn--head{background:var(--cy);color:#fff;padding:14px 24px;font-size:15px}
.v-btn--head:hover{background:var(--ink)}
.v-btn--wide{display:block;text-align:center}

.v-topbar{background:var(--ink);color:var(--on-dk);font-size:13px}
.v-topbar__in{height:42px;display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.v-topbar a:hover{color:#fff}
.v-topbar__hrs{margin-left:auto;color:var(--cy)}

.v-head{position:sticky;top:0;z-index:90;background:#fff;border-bottom:1px solid var(--ln);
  transition:box-shadow .2s ease,padding .2s ease}
.v-head__in{padding:20px var(--pad);display:flex;align-items:center;gap:32px;
  transition:padding .2s ease}
.v-head.is-stuck{box-shadow:0 1px 0 var(--ln)}
.v-head.is-stuck .v-head__in{padding-top:9px;padding-bottom:9px}
.v-head.is-stuck .v-logo img{width:38px;height:38px}
.v-logo img{width:46px;height:46px;transition:width .2s ease,height .2s ease}
.v-nav{display:flex;gap:28px;margin:0 auto}
.v-nav a{font:500 16px/1 "Space Grotesk";color:#5A656D;padding:6px 0;
  transition:color .2s ease,box-shadow .2s ease}
.v-nav a:hover{color:var(--cy-dk)}
.v-nav a.is-on{color:var(--ink);box-shadow:inset 0 -8px 0 rgba(0,158,219,.28)}
.v-burger{display:none;background:none;border:none;cursor:pointer;padding:10px;gap:5px;
  flex-direction:column;width:44px;height:44px;justify-content:center}
.v-burger i{display:block;height:2px;background:var(--ink);width:22px}
.v-burger i:last-child{width:14px;background:var(--cy)}

.v-mobile{position:fixed;inset:0;z-index:150;background:var(--ink);color:#fff;
  padding:20px;display:flex;flex-direction:column;overflow-y:auto}
.v-mobile[hidden]{display:none}
.v-mobile__top{display:flex;align-items:center;justify-content:space-between}
.v-mobile__plate{background:#fff;padding:6px;display:inline-flex}
.v-close{background:none;border:none;color:var(--cy);font-size:40px;line-height:1;
  cursor:pointer;width:44px;height:44px}
.v-mobile__nav{display:flex;flex-direction:column;margin:26px 0 auto}
.v-mobile__nav a{font:500 26px/1 "Space Grotesk";padding:18px 0;border-bottom:1px solid var(--ln-dk);
  min-height:44px}
.v-mobile__nav a.is-cyan{color:var(--cy)}
.v-mobile__foot{padding-top:24px;display:grid;gap:10px}
.v-mobile__foot .v-btn{min-height:52px;line-height:1.4}
.v-mobile__row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.v-mobile__foot p{font-size:14px;color:var(--on-dk);margin-top:8px}

.v-hero{display:grid;grid-template-columns:1.05fr .95fr;min-height:620px}
.v-hero__tx{padding:96px var(--pad) 88px;display:flex;flex-direction:column;justify-content:center}
.v-hero__tx h1{margin:22px 0 22px}
.v-hero__tx h1 em{font-style:normal;color:var(--cy)}
.v-hero__p{font-size:19px;line-height:1.7;color:var(--tx2);max-width:52ch}
.v-hero__btns{display:flex;gap:12px;flex-wrap:wrap;margin:32px 0 0}
.v-figs{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:44px 0 0;
  padding-top:26px;border-top:1px solid var(--ln)}
.v-figs div{margin:0}
.v-figs dt{font:700 clamp(30px,3.2vw,44px)/1 "Space Grotesk";letter-spacing:-.03em;
  font-variant-numeric:tabular-nums;color:var(--ink)}
.v-figs dd{margin:9px 0 0;font-size:15px;line-height:1.5;color:var(--tx3)}

.v-hero__ph{position:relative;overflow:hidden;background:var(--ink);min-height:420px}
.v-hero__ph>img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.v-sweep{position:absolute;left:0;right:0;height:120px;pointer-events:none;
  background:linear-gradient(180deg,rgba(0,158,219,.22),rgba(0,158,219,0));
  animation:vSweep 5.8s linear infinite}
@keyframes vSweep{from{top:-140px}to{top:100%}}
.v-hero__badge{position:absolute;left:0;bottom:0;background:var(--cy);color:#fff;padding:20px 26px;max-width:70%}
.v-hero__badge span{display:block;font:500 11px/1 "IBM Plex Mono";letter-spacing:.18em;
  text-transform:uppercase;color:var(--cy-lt)}
.v-hero__badge b{display:block;margin-top:8px;font:500 20px/1.25 "Space Grotesk";letter-spacing:-.02em}

.v-sec{padding:104px 0}
.v-sec--panel{background:var(--panel)}
.v-sec--dark{background:var(--ink);color:#fff}
.v-sec--dark h2{color:#fff}
.v-sec--dark .v-eyebrow{color:var(--cy)}
.v-sec__head{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:end;margin-bottom:46px}
.v-sec__head h2{margin-top:18px}
.v-sec__sup{font-size:17px;color:var(--tx2);max-width:52ch}
.v-sec--dark .v-sec__sup{color:var(--on-dk2)}
.v-sec__head--row{grid-template-columns:1fr auto;align-items:center}

.v-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.v-card{background:#fff;border:1px solid var(--ln);padding:32px 30px 30px;display:flex;
  flex-direction:column;gap:12px;transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .2s ease}
.v-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(15,20,24,.10);border-color:var(--ln-in)}
.v-card__n{font:500 12px/1 "IBM Plex Mono";letter-spacing:.16em;color:var(--lbl)}
.v-card p{font-size:16px;color:var(--tx2);flex:1}
.v-card__go{font:500 15px/1 "Space Grotesk";color:var(--cy-dk);transition:color .2s ease}
.v-card:hover .v-card__go{color:var(--cy)}
.v-card--dark{background:var(--ink);border-color:var(--ink);color:#fff}
.v-card--dark .v-card__n{color:var(--cy)}
.v-card--dark p{color:var(--on-dk2)}
.v-card--dark .v-card__go{color:var(--cy)}

.v-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.v-step{border-top:2px solid var(--ln);padding-top:22px}
.v-step.is-first{border-top-color:var(--cy)}
.v-step__n{font:500 11px/1 "IBM Plex Mono";letter-spacing:.18em;text-transform:uppercase;color:var(--lbl)}
.v-step h3{margin:14px 0 10px}
.v-step p{font-size:16px;color:var(--tx2)}

.v-shots{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.v-shot{position:relative;margin:0;overflow:hidden;height:300px}
.v-shot img{width:100%;height:100%;object-fit:cover}
.v-shot figcaption{position:absolute;inset:auto 0 0 0;padding:22px 24px;
  background:linear-gradient(transparent,rgba(15,20,24,.92))}
.v-shot figcaption span{display:block;font:500 11px/1 "IBM Plex Mono";letter-spacing:.16em;
  text-transform:uppercase;color:var(--cy)}
.v-shot figcaption b{display:block;margin-top:8px;font:500 21px/1.2 "Space Grotesk";
  letter-spacing:-.02em;color:#fff}

.v-contact{display:grid;grid-template-columns:1fr 1fr}
.v-contact__tx{background:var(--panel);padding:104px var(--pad)}
.v-contact__tx h2{margin:20px 0 18px}
.v-contact__tx>p{color:var(--tx2);max-width:48ch}
.v-contact__data{margin:38px 0 0}
.v-contact__data div{padding:20px 0;border-top:1px solid var(--ln)}
.v-contact__data dt{font:400 12px/1 "IBM Plex Mono";letter-spacing:.14em;text-transform:uppercase;color:var(--lbl)}
.v-contact__data dd{margin:9px 0 0;font-size:16px;color:var(--ink)}
.v-contact__data a:hover{color:var(--cy-dk)}
.v-contact__form{background:var(--cy);color:#fff;padding:104px var(--pad);display:flex;
  flex-direction:column;justify-content:center;gap:14px}
.v-contact__form h3{color:#fff;font-size:32px;font-weight:700}
.v-contact__note{color:var(--cy-lt);font-size:16px;margin-bottom:12px}
.v-contact__form .v-btn--dark:hover{background:#fff;color:var(--ink)}

.v-foot{background:var(--ink);color:var(--on-dk)}
.v-foot__in{padding:54px var(--pad);display:flex;align-items:center;gap:34px;flex-wrap:wrap}
.v-foot__plate{background:#fff;padding:7px;display:inline-flex}
.v-foot__nav{display:flex;gap:24px;flex-wrap:wrap}
.v-foot__nav a{font-size:15px;transition:color .2s ease}
.v-foot__nav a:hover{color:var(--cy)}
.v-foot__c{margin-left:auto;font-size:13px;color:#5D666C}

.v-reveal{opacity:0;transform:translateY(22px)}
h1.v-reveal,h2.v-reveal{transform:translateY(14px)}
.v-reveal.is-in{opacity:1;transform:none;transition:opacity .6s var(--ease),transform .6s var(--ease)}
.v-img{clip-path:inset(0 0 100% 0);transform:scale(1.08)}
.v-img.is-in{clip-path:inset(0);transform:scale(1);
  transition:clip-path .9s var(--ease),transform .9s var(--ease)}

.v-curtain{position:fixed;inset:0;z-index:300;background:var(--ink);
  transform:translateY(100%);pointer-events:none;
  display:flex;align-items:center;justify-content:center}
.v-curtain.is-up{transform:translateY(0);transition:transform .26s var(--ease)}
.v-curtain.is-out{transform:translateY(-100%);transition:transform .26s var(--ease)}
.v-curtain__in{display:grid;justify-items:center;gap:22px}
.v-curtain__plate{background:#fff;padding:12px;display:inline-flex;animation:vBeat .9s var(--ease) infinite}
@keyframes vBeat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-9px) scale(1.04)}}
.v-curtain__bar{width:160px;height:2px;background:#1F262B;overflow:hidden}
.v-curtain__bar i{display:block;height:100%;width:0;background:var(--cy);animation:vBar 1.2s var(--ease) infinite}
@keyframes vBar{from{width:0}to{width:100%}}

@media (max-width:1100px){
  .v-nav{display:none}
  .v-burger{display:flex}
  .v-btn--head{display:none}
  .v-cards,.v-steps,.v-shots{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  :root{--pad:20px}
  .v-hero,.v-contact{grid-template-columns:1fr}
  .v-hero__tx{padding:56px var(--pad) 48px}
  .v-hero__ph{min-height:240px;height:240px}
  .v-sec{padding:64px 0}
  .v-sec__head,.v-sec__head--row{grid-template-columns:1fr;gap:18px;align-items:start}
  .v-contact__tx,.v-contact__form{padding:56px var(--pad)}
  .v-topbar__in{height:auto;padding:10px 0;gap:14px;font-size:12px}
  .v-topbar__hrs{margin-left:0;width:100%}
  .v-foot__c{margin-left:0;width:100%}
}
@media (max-width:620px){
  .v-cards,.v-steps,.v-shots{grid-template-columns:1fr}
  .v-figs{grid-template-columns:1fr 1fr;gap:18px}
  h1{font-size:38px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .v-reveal,.v-img{opacity:1!important;transform:none!important;clip-path:none!important}
  .v-sweep,.v-curtain__plate,.v-curtain__bar i{animation:none!important}
  .v-curtain{display:none!important}
  *{transition:none!important}
}


/* ==========================================================================
   BLINDAJE FRENTE A DIVI
   Divi imprime et-core-unified-tb-*.css directamente en el head, fuera del
   ciclo de wp_enqueue_scripts, asi que el dequeue no la alcanza y carga
   DESPUES que esta hoja. Con selectores de la misma especificidad ganaba ella
   (titulos en Montserrat gris y texto oscuro sobre boton oscuro).
   Solucion: repetir aqui las reglas criticas con body.velso-r delante, que
   siempre gana. No cambia el diseno; solo lo defiende.
   ========================================================================== */
body.velso-r h1,
body.velso-r h2,
body.velso-r h3{font-family:"Space Grotesk",sans-serif;letter-spacing:-.03em;margin:0;
  text-wrap:balance;color:var(--ink);padding-bottom:0}
body.velso-r h1{font-weight:700;font-size:clamp(38px,5vw,72px);line-height:1.02}
body.velso-r h2{font-weight:700;font-size:clamp(30px,3.4vw,48px);line-height:1.05}
body.velso-r h3{font-weight:500;font-size:clamp(20px,1.8vw,26px);line-height:1.25;letter-spacing:-.02em}
body.velso-r .v-sec--dark h2,
body.velso-r .v-contact__form h3,
body.velso-r .v-shot figcaption b{color:#fff}
body.velso-r .v-contact__form h3{font-size:32px;font-weight:700}

body.velso-r p{margin:0;color:inherit}
body.velso-r a{color:inherit;text-decoration:none}

body.velso-r .v-btn{display:inline-block;font:500 16px/1 "Space Grotesk";
  padding:18px 30px;border-radius:2px;border:1px solid transparent}
body.velso-r .v-btn--dark{background:var(--ink);color:#fff}
body.velso-r .v-btn--dark:hover{background:var(--cy);color:#fff}
body.velso-r .v-btn--cyan{background:var(--cy);color:#fff}
body.velso-r .v-btn--cyan:hover{background:#fff;color:var(--ink)}
body.velso-r .v-btn--out{border-color:var(--ln-fd);color:var(--ink);background:none;padding:18px 28px}
body.velso-r .v-btn--out:hover{border-color:var(--cy);color:var(--cy-dk)}
body.velso-r .v-btn--out-dark{border-color:var(--ln-dk2);color:#fff;background:none;padding:18px 28px}
body.velso-r .v-btn--out-dark:hover{border-color:var(--cy);color:var(--cy)}
body.velso-r .v-btn--ghost{border-color:var(--ln-dk2);color:#fff;background:none}
body.velso-r .v-btn--ghost-cyan{border-color:rgba(255,255,255,.45);color:#fff;background:none}
body.velso-r .v-btn--ghost-cyan:hover{background:#fff;color:var(--ink)}
body.velso-r .v-btn--head{background:var(--cy);color:#fff;padding:14px 24px;font-size:15px}
body.velso-r .v-btn--head:hover{background:var(--ink);color:#fff}

body.velso-r .v-nav a{color:#5A656D}
body.velso-r .v-nav a.is-on{color:var(--ink)}
body.velso-r .v-topbar,
body.velso-r .v-topbar a{color:var(--on-dk)}
body.velso-r .v-topbar__hrs{color:var(--cy)}
body.velso-r .v-foot,
body.velso-r .v-foot a{color:var(--on-dk)}
body.velso-r .v-foot__c{color:#5D666C}
body.velso-r .v-card p{color:var(--tx2)}
body.velso-r .v-card--dark,
body.velso-r .v-card--dark h3{color:#fff}
body.velso-r .v-card--dark p{color:var(--on-dk2)}
body.velso-r .v-card--dark .v-card__n,
body.velso-r .v-card--dark .v-card__go{color:var(--cy)}
body.velso-r .v-hero__badge,
body.velso-r .v-hero__badge b{color:#fff}
body.velso-r .v-hero__badge span{color:var(--cy-lt)}
body.velso-r .v-sec--dark{color:#fff}
body.velso-r .v-contact__form{color:#fff}
body.velso-r .v-contact__note{color:var(--cy-lt)}
body.velso-r ul,body.velso-r ol,body.velso-r dl{margin:0;padding:0;list-style:none}


/* ==========================================================================
   CORRECCION: el revelado de imagenes se bloqueaba a si mismo
   .v-img arrancaba con clip-path:inset(0 0 100% 0). Con el area visible a
   cero, el IntersectionObserver nunca lo daba por visible, asi que jamas
   recibia .is-in y Chrome tampoco llegaba a descargar la foto: las cuatro
   imagenes de la portada se quedaban en blanco para siempre.
   Se sustituye por opacidad + escala, que el observador si ve. Mismo gesto
   de "la foto se asienta", sin el punto muerto.
   ========================================================================== */
body.velso-r .v-img{clip-path:none;opacity:0;transform:scale(1.06)}
body.velso-r .v-img.is-in{opacity:1;transform:scale(1);
  transition:opacity .7s var(--ease),transform .9s var(--ease)}
@media (prefers-reduced-motion:reduce){
  body.velso-r .v-img{opacity:1!important;transform:none!important}
}


/* ==========================================================================
   PAGINAS INTERIORES
   Se apoyan en los componentes que ya trae esta hoja (v-sec, v-cards,
   v-steps, v-btn, v-figs). Aqui solo va lo que no existia.
   Todo con body.velso-r delante, por lo mismo que el bloque de blindaje.
   ========================================================================== */

body.velso-r .v-phero{position:relative;background:var(--ink);color:#fff;overflow:hidden;
  display:flex;align-items:flex-end;min-height:400px}
body.velso-r .v-phero--plano{min-height:300px}
body.velso-r .v-phero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:.34;filter:grayscale(.3)}
body.velso-r .v-phero:after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(15,20,24,.94) 30%,rgba(15,20,24,.55))}
body.velso-r .v-phero__in{position:relative;z-index:2;padding:82px var(--pad) 62px;
  max-width:1440px;margin:0 auto;width:100%}
body.velso-r .v-phero h1{color:#fff;margin:20px 0 0;font-size:clamp(36px,4.4vw,62px)}
body.velso-r .v-phero .v-eyebrow{color:var(--cy)}
body.velso-r .v-phero .v-eyebrow:before{background:var(--cy)}
body.velso-r .v-phero__p{margin-top:20px;max-width:60ch;font-size:19px;line-height:1.65;color:var(--on-dk2)}

body.velso-r .v-lead{font-size:18px;line-height:1.75;color:var(--tx2);margin-top:18px;max-width:60ch}
body.velso-r .v-dos{display:grid;grid-template-columns:1fr 1fr;gap:56px}

body.velso-r .v-figs--4{grid-template-columns:repeat(4,1fr);border-top-color:var(--ln-dk2);margin-top:0}
body.velso-r .v-figs--dark dt{color:#fff}
body.velso-r .v-figs--dark dd{color:var(--on-dk)}

body.velso-r .v-serv{display:grid;grid-template-columns:1.55fr .8fr;gap:64px;align-items:start}
body.velso-r .v-lista{margin:30px 0 0;display:grid;gap:2px;list-style:none;padding:0}
body.velso-r .v-lista li{position:relative;padding:18px 0 18px 34px;border-top:1px solid var(--ln);
  font-size:16px;line-height:1.6;color:var(--tx2)}
body.velso-r .v-lista li:before{content:"";position:absolute;left:0;top:26px;width:16px;height:2px;background:var(--cy)}
body.velso-r .v-serv__side{background:var(--panel);padding:34px 30px;position:sticky;top:110px}
body.velso-r .v-chips{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 22px;list-style:none;padding:0}
body.velso-r .v-chips li{font:400 13px/1 "IBM Plex Mono";letter-spacing:.04em;color:var(--lbl);
  border:1px solid var(--ln-fd);padding:9px 12px}
body.velso-r .v-serv__nota{font-size:15px;color:var(--tx3);margin-bottom:22px}

body.velso-r .v-grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
body.velso-r .v-tile{margin:0;overflow:hidden;background:var(--ln-in);aspect-ratio:4/3}
body.velso-r .v-tile a{display:block;height:100%}
body.velso-r .v-tile img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
body.velso-r .v-tile:hover img{transform:scale(1.05)}
body.velso-r .v-nota{margin-top:34px;font-size:14px;color:var(--tx3);max-width:70ch}

body.velso-r .v-logos{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--ln)}
body.velso-r .v-logos__c{background:#fff;display:flex;align-items:center;justify-content:center;
  padding:44px 34px;min-height:180px}
body.velso-r .v-logos__c img{max-width:100%;max-height:82px;width:auto;height:auto;
  filter:grayscale(1);opacity:.62;transition:filter .3s ease,opacity .3s ease}
body.velso-r .v-logos__c:hover img{filter:none;opacity:1}

body.velso-r .v-cta{background:var(--panel);border-top:1px solid var(--ln)}
body.velso-r .v-cta__in{padding:76px var(--pad);display:grid;grid-template-columns:1fr auto;
  gap:38px;align-items:center}
body.velso-r .v-cta h2{margin-top:18px}
body.velso-r .v-cta__p{margin-top:14px;color:var(--tx2)}
body.velso-r .v-cta__btns{display:flex;gap:12px;flex-wrap:wrap}

body.velso-r .v-cont{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:start}
body.velso-r .v-cont__datos h2{margin:18px 0 0}
body.velso-r .v-cont__form{background:var(--panel);padding:44px 40px;border:1px solid var(--ln)}
body.velso-r .v-cont__sub{color:var(--tx2);margin:10px 0 26px}
body.velso-r .v-form{display:grid;gap:18px}
body.velso-r .v-campo{display:grid;gap:8px}
body.velso-r .v-campo>span{font:400 12px/1 "IBM Plex Mono";letter-spacing:.14em;
  text-transform:uppercase;color:var(--lbl)}
body.velso-r .v-campo>span i{color:var(--cy);font-style:normal}
body.velso-r .v-campo>span em{font-style:normal;text-transform:none;letter-spacing:0;color:var(--tx3)}
body.velso-r .v-campo input,
body.velso-r .v-campo textarea{font:400 16px/1.6 "IBM Plex Sans",system-ui,sans-serif;
  color:var(--ink);background:#fff;border:1px solid var(--ln-fd);border-radius:2px;
  padding:14px 15px;width:100%;min-height:52px;
  transition:border-color .2s ease,box-shadow .2s ease}
body.velso-r .v-campo textarea{resize:vertical;line-height:1.65}
body.velso-r .v-campo input:focus,
body.velso-r .v-campo textarea:focus{outline:none;border-color:var(--cy);
  box-shadow:0 0 0 3px rgba(0,158,219,.16)}
body.velso-r .v-form button{margin-top:6px;cursor:pointer;width:100%}
body.velso-r .v-form__pie{font-size:14px;color:var(--tx3);line-height:1.6}
body.velso-r .v-form__pie i{color:var(--cy);font-style:normal}
body.velso-r .v-miel{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

body.velso-r .v-aviso{padding:24px 26px;border-left:3px solid var(--cy);background:#fff;
  margin-bottom:26px;display:grid;gap:12px;justify-items:start}
body.velso-r .v-aviso b{font:500 19px/1.3 "Space Grotesk";color:var(--ink)}
body.velso-r .v-aviso p{font-size:16px;color:var(--tx2)}
body.velso-r .v-aviso--mal{border-left-color:#C2413B}

@media (max-width:1100px){
  body.velso-r .v-grid4{grid-template-columns:repeat(3,1fr)}
  body.velso-r .v-logos{grid-template-columns:repeat(3,1fr)}
  body.velso-r .v-serv{grid-template-columns:1fr;gap:38px}
  body.velso-r .v-serv__side{position:static}
  body.velso-r .v-cont{grid-template-columns:1fr;gap:44px}
}
@media (max-width:900px){
  body.velso-r .v-dos{grid-template-columns:1fr;gap:34px}
  body.velso-r .v-figs--4{grid-template-columns:1fr 1fr}
  body.velso-r .v-phero__in{padding:56px var(--pad) 44px}
  body.velso-r .v-phero{min-height:300px}
  body.velso-r .v-cta__in{grid-template-columns:1fr;padding:56px var(--pad)}
  body.velso-r .v-cont__form{padding:32px 24px}
}
@media (max-width:620px){
  body.velso-r .v-grid4{grid-template-columns:1fr 1fr;gap:10px}
  body.velso-r .v-logos{grid-template-columns:1fr 1fr}
  body.velso-r .v-logos__c{padding:30px 22px;min-height:140px}
}

/* El bloque de blindaje reafirma .v-btn como inline-block, y de paso pisaba
   a .v-btn--wide, que es mas especifico en intencion pero no en peso. En el
   lateral de las paginas de servicio el boton salia encogido a 196px en vez
   de ocupar la columna. Se reafirma aqui, despues. */
body.velso-r .v-btn--wide{display:block;width:100%;text-align:center}

/* La opcion activa del menu movil: antes "Servicios" salia en cian fijo
   (.is-cyan) como si siempre fuera la actual. Ahora el cian marca de verdad
   donde estas. */
body.velso-r .v-mobile__nav a.is-on{color:var(--cy)}
