/* Detalles de movimiento: animaciones únicas y respuesta sólo a la interacción. */
main [data-detail] { animation:none !important; transition:opacity .65s ease var(--detail-delay,0ms),translate .65s cubic-bezier(.2,.7,.2,1) var(--detail-delay,0ms); }
main [data-detail]:not(.detail-visible) { opacity:0 !important; translate:0 18px; }
main [data-detail].detail-visible { opacity:1; translate:0 0; }
/* Un acento lineal acompaña la entrada de cada sección. */
.section-kicker { display:flex; align-items:center; gap:12px; }
.section-kicker::before { content:""; width:22px; height:1px; background:currentColor; flex-shrink:0; transform-origin:left; }
.detail-visible .section-kicker::before { animation:detail-line .7s ease both; }
@keyframes detail-line { from { transform:scaleX(0); } to { transform:scaleX(1); } }
/* Reflejos quietos hasta que se elige una tarjeta; sin seguimiento del mouse. */
#servicios .card,#capacidades .capability-card { position:relative; isolation:isolate; overflow:hidden; }
#servicios .card::before,#capacidades .capability-card::before { content:""; position:absolute; inset:0; z-index:-1; opacity:0; pointer-events:none; transition:opacity .35s ease; background:radial-gradient(ellipse at 100% 0%,#5b96e61a,transparent 65%); }
#capacidades .capability-card::before { background:radial-gradient(ellipse at 100% 0%,#609bed14,transparent 65%); }
#servicios .card .icon,#capacidades .capability-icon { transition:transform .35s ease,color .35s ease; }
#empresa .card { position:relative; }
#empresa .card::before { content:""; position:absolute; left:0; top:-1px; width:44px; height:1px; background:var(--blue); transform:scaleX(0); transform-origin:left; transition:transform .4s ease; }
/* Cada producto conserva su marca, con una transición contenida en su imagen. */
#soluciones .solution-visual img { transition:transform .5s cubic-bezier(.2,.7,.2,1); }
#soluciones .solution-link > span:first-child { transition:transform .25s ease; }
#soluciones .solution-card:focus-within .solution-link > span:first-child { transform:translateX(4px); }
/* Recorrido de proyecto: la línea se completa una vez al entrar en pantalla. */
#proceso .step-number { overflow:visible; }
#proceso .step-number::before { content:""; position:absolute; bottom:-1px; left:0; height:1px; width:100%; background:#5d86bd; transform:scaleX(0); transform-origin:left; transition:transform .85s ease var(--process-delay,0ms); }
#proceso .process.is-illustrated .step-number::before { transform:scaleX(1); }
#proceso .process.is-illustrated .step-number::after { background:#649ce9; }
/* Sectores: una indicación lateral, con espacio reservado para evitar saltos. */
#clientes .client { padding-right:28px; }
#clientes .client::after { content:""; position:absolute; right:0; top:28px; width:2px; height:24px; background:#6f98cf; opacity:0; transform:scaleY(.4); transition:opacity .3s,transform .3s; }
/* El cierre recibe un acento luminoso estático, sin otra animación de fondo. */
.closing-contact { isolation:isolate; overflow:hidden; }
.closing-contact::before { content:""; position:absolute; z-index:-1; inset:0; pointer-events:none; background:radial-gradient(ellipse at 95% 95%,#285ca024,transparent 58%); }
.closing-email span,.closing-whatsapp > span { display:inline-block; transition:transform .25s ease; }
.closing-email:hover span,.closing-whatsapp:hover > span { transform:translate(2px,-2px); }
@media(hover:hover) and (pointer:fine) {
 #servicios .card:hover::before,#capacidades .capability-card:hover::before { opacity:1; }
 #servicios .card:hover .icon { transform:translateY(-3px); color:var(--blue); }
 #capacidades .capability-card:hover .capability-icon { transform:translateY(-3px); color:var(--blue); }
 #empresa .card:hover::before { transform:scaleX(1); }
 #soluciones .solution-card:hover .solution-visual img { transform:scale(1.025); }
 #soluciones .solution-card:hover .solution-link > span:first-child { transform:translateX(4px); }
 #clientes .client:hover::after { opacity:1; transform:scaleY(1); }
 #clientes .client:hover strong { color:var(--blue); }
}
@media(max-width:620px) { #proceso .step-number::before { display:none; } #proceso .step { transition:border-color .6s ease var(--process-delay,0ms); } #proceso .process.is-illustrated .step { border-left-color:#6f98cf; } }
@media(prefers-reduced-motion:reduce) { main [data-detail],main [data-detail]:not(.detail-visible) { opacity:1 !important; translate:none; transition:none; } .detail-visible .section-kicker::before { animation:none; } #proceso .step-number::before { transform:scaleX(1); transition:none; } #servicios .card::before,#capacidades .capability-card::before,#servicios .card .icon,#capacidades .capability-icon,#empresa .card::before,#soluciones .solution-visual img,#soluciones .solution-link > span:first-child,#clientes .client::after,.closing-email span,.closing-whatsapp > span { transition:none; transform:none !important; } }
@media print { main [data-detail],main [data-detail]:not(.detail-visible) { opacity:1 !important; translate:none; } }
