/* El feedback del CV, aplicado a los elementos reales de la landing. */
.page-landing .svc, .page-landing .trabajo, .page-landing .demo, .page-landing .pregunta, .page-landing .hero-work {
  transition: transform .28s cubic-bezier(.2,.8,.2,1), background .25s, border-color .25s, box-shadow .28s;
}
.page-landing :is(.btn,.enlace,.svc-mas,.trabajo-link,.tema,.menu-movil) {
  -webkit-tap-highlight-color: transparent;
  transition: transform .22s cubic-bezier(.2,.8,.2,1), color .2s, background .2s, box-shadow .2s;
}
.page-landing :is(a,button,input,textarea,select):focus-visible { outline: 2px solid var(--acento-texto); outline-offset: 5px; }
.page-landing .svc:focus-within, .page-landing .demo:focus-visible, .page-landing .trabajo:focus-within {
  border-color: var(--ui-line); box-shadow: 0 0 0 1px var(--ui-line),0 25px 45px -32px #000b;
}
.page-landing .svc:has([aria-expanded=true]) { border-color: var(--ui-line); background: var(--ui-accent-soft); }
.page-landing .svc.abierto .svc-det-in { animation: landing-detail .28s ease both; }
.page-landing .form-contacto :is(input,textarea):focus { border-color: var(--acento-texto); box-shadow: 0 0 0 3px var(--ui-accent-soft); }
.page-landing .form-contacto button:disabled { cursor: wait; transform: none; }
.page-landing .enviado { animation: landing-detail .35s ease both; }
.page-landing .btn:active, .page-landing .svc-mas:active, .page-landing .demo:active { transform: scale(.97); }
.page-landing .vista .marco:active, .page-landing .hero-work-phone:active { transform: scale(.97); }
.page-landing .svc-ico { transition: transform .28s cubic-bezier(.2,.8,.2,1), background .25s; }
.page-landing .btn > span[aria-hidden], .page-landing .enlace > span[aria-hidden] { display: inline-block; transition: transform .25s; }
.page-landing .trabajo .ir svg, .page-landing .demo .ir svg, .page-landing .enlace svg, .page-landing .btn svg { transition: transform .25s; }
@media (hover:hover) and (pointer:fine) {
  .page-landing .svc:hover, .page-landing .trabajo:hover, .page-landing .demo:hover, .page-landing .pregunta:hover, .page-landing .hero-work:hover {
    transform: translateY(-5px); border-color: var(--ui-line); background: var(--ui-accent-soft); box-shadow: 0 25px 45px -30px #000b;
  }
  .page-landing .svc:hover .svc-ico { transform: scale(1.12) rotate(-4deg); }
  .page-landing .trabajo:hover .ir svg, .page-landing .demo:hover .ir svg, .page-landing .enlace:hover svg, .page-landing .btn:hover svg { transform: translate(3px,-2px); }
  .page-landing .enlace:hover { color: var(--tinta); transform: translateX(3px); }
  .page-landing .btn:hover > span[aria-hidden], .page-landing .enlace:hover > span[aria-hidden] { transform: translate(3px,-2px); }
}
@media (hover:none) {
  .page-landing .svc:hover, .page-landing .trabajo:hover, .page-landing .demo:hover, .page-landing .pregunta:hover { transform: none; }
}
@keyframes landing-detail { from { opacity: 0; translate: 0 7px; } to { opacity: 1; translate: 0 0; } }
@media (prefers-reduced-motion:reduce) {
  .page-landing *, .page-landing *::before, .page-landing *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
