/* Progressive motion: all content remains visible without JavaScript. */
:root { --vyp-ease:cubic-bezier(.22,.68,0,1.01); }
.nav { background:rgba(255,255,255,.96); box-shadow:0 4px 24px rgba(10,8,70,.06); backdrop-filter:blur(12px); }
.nav a,.nav-divisions summary { transition:background .2s,color .2s,transform .2s; }
.nav a:hover { transform:translateY(-1px); }
.portada { position:relative; isolation:isolate; animation:vyp-hero-in 1.8s var(--vyp-ease) both; box-shadow:inset 0 -32px 60px rgba(12,8,79,.1); }
.portada::after { content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(ellipse at 12% 15%,rgba(255,255,255,.12),transparent 45%),radial-gradient(ellipse at 90% 85%,rgba(6,0,82,.12),transparent 50%); }
.titulo,.titulo-div { text-wrap:balance; }
.triangulo { transition:transform .35s var(--vyp-ease); }
.seccion:hover>.container>.triangulo { transform:translateX(6px); }
.sect-grid figure { overflow:hidden; }
.sect-grid img { transition:transform .85s var(--vyp-ease),filter .85s; }
.sect-grid figure:hover img { transform:scale(1.085); filter:saturate(1.05); }
.sect-grid figcaption { transition:padding-bottom .3s; }
.sect-grid figure:hover figcaption { padding-bottom:17px; }
.prod-img { transition:transform .45s var(--vyp-ease),box-shadow .45s; }
.prod-img:hover { transform:translateY(-5px); box-shadow:0 18px 38px rgba(10,10,70,.1); }
.serv-item { padding:16px; border-radius:12px; background:#fff; border:1px solid rgba(60,60,180,.08); box-shadow:0 4px 18px rgba(10,10,70,.025); transition:transform .3s,box-shadow .3s; }
.serv-item:hover { transform:translateY(-4px); box-shadow:0 10px 28px rgba(10,10,70,.075); }
.serv-item img { transition:transform .35s; }
.serv-item:hover img { transform:scale(1.07); }
.linea img,.gama-grid img { transition:transform .4s var(--vyp-ease); }
.linea img:hover,.gama-grid figure:hover img { transform:translateY(-3px); }
.btn-submit,.marcas-btn,.social-link { transition:background .25s,transform .25s,box-shadow .25s; }
.btn-submit:hover,.marcas-btn:hover { transform:translateY(-2px); box-shadow:0 8px 20px rgba(25,20,150,.16); }
.btn-submit:disabled { transform:none; }
.form-group input,.form-group textarea { transition:border-color .2s,box-shadow .2s; }
.vyp-reveal { animation:vyp-reveal 1.35s var(--vyp-ease) both; animation-delay:var(--vyp-delay,0ms); }
.vyp-top { position:fixed; right:22px; bottom:22px; z-index:90; width:44px; height:44px; border:1px solid #ffffff35; border-radius:50%; background:#08006c; color:white; font-size:23px; cursor:pointer; box-shadow:0 6px 22px #08006c25; opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .2s,transform .2s,visibility .2s; }
.vyp-top.is-visible { opacity:1; visibility:visible; transform:translateY(0); }
.vyp-top:hover { background:#4040e6; }
.vyp-top:focus-visible { outline:3px solid #4040e6; outline-offset:4px; }
@keyframes vyp-reveal { from { opacity:0; transform:translateY(55px) scale(.97); filter:blur(3px); } to { opacity:1; transform:translateY(0) scale(1); filter:blur(0); } }
@keyframes vyp-hero-in { from { opacity:.25; transform:translateY(18px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:600px) { .serv-item { padding:12px; } .vyp-top { right:14px; bottom:14px; width:40px; height:40px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }

/* Deliberate, visible entrances for the second proposal. */
.titulo.vyp-reveal,.titulo-div.vyp-reveal { animation-name:vyp-heading; animation-duration:1.5s; }
@keyframes vyp-heading { from { opacity:0; transform:translateX(-55px); } to { opacity:1; transform:translateX(0); } }
@media(prefers-reduced-motion:reduce) { .titulo.vyp-reveal,.titulo-div.vyp-reveal { animation:none!important; } }
