/* =========================================================
   VERSIÓN SIN AGENDA (sitio y panel): respuesta al pulsar y estado de carga. Lo activa fuentes/js/pulsar.js.
   · Al presionar un botón, un control o un enlace con forma de botón (ratón, toque o teclado), se hunde un poco y su tono baja
     levemente; al soltarlo vuelve a su estado normal en 0,18 s. No toca el hover ni el anillo de foco, que siguen como estaban.
   · «Reducir movimiento»: no se hunde; solo cambia el tono (y vuelve con un fundido de color, sin movimiento).
   · .cargando: el control espera al servidor; muestra una rueda en lugar de su ícono y queda deshabilitado (sin envíos repetidos).
   Se aplica con clases (no con :active) para que también responda al toque en iOS y a Enter y Espacio en el teclado.
   ========================================================= */
:where(button,input[type="submit"],input[type="button"],input[type="reset"],[role="button"],summary,
  .btn,.btn-xs,.cta,.chip,.wa-float,.social-row a,.cat-indice a,.opt label,.menu-btn,.cuenta-op,.app-nav a,a.stat){-webkit-tap-highlight-color:transparent}
.ufo-hundido{scale:.97;filter:brightness(.9)}
.ufo-suelta{animation:ufo-suelta .18s cubic-bezier(.16,1,.3,1)}
@keyframes ufo-suelta{from{scale:.97;filter:brightness(.9)}to{scale:1;filter:none}}
@keyframes ufo-suelta-tono{from{filter:brightness(.9)}to{filter:none}}
@media (prefers-reduced-motion:reduce){
  .ufo-hundido{scale:none}
  .ufo-suelta{animation-name:ufo-suelta-tono}
}

/* Esperando al servidor: rueda en el lugar del ícono, cursor de espera y el control deshabilitado (lo pone el script de la acción) */
.cargando{cursor:progress}
.cargando::before{content:"";flex:none;display:inline-block;width:1em;height:1em;margin-right:.45em;vertical-align:-.15em;box-sizing:border-box;
  border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:ufo-gira .7s linear infinite}
.btn.cargando::before,.cta.cargando::before{margin-right:0}   /* ya tienen separación (gap) entre el ícono y el texto */
.cargando>svg{display:none}
/* (más específico que .btn[disabled] y .btn-xs:disabled del panel, que lo atenúan como «no disponible») */
button.cargando:disabled,.btn.cargando:disabled,.btn-xs.cargando:disabled,.cargando[aria-disabled="true"]{opacity:.85;cursor:progress}
@keyframes ufo-gira{to{rotate:1turn}}
@media (prefers-reduced-motion:reduce){.cargando::before{animation:none;border-right-color:currentColor;border-style:dotted}}
