/* Accesos rápidos: siempre disponibles, sin depender de JavaScript. */
.floating-actions {
  position: fixed;
  z-index: 80;
  right: clamp(16px, 3vw, 34px);
  bottom: max(20px, env(safe-area-inset-bottom));
  display: flex;
  align-items: center;
  gap: 10px;
  transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
}
.floating-actions.is-covered:not(:focus-within) { opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(8px); }
.floating-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 50px;
  padding: 11px 17px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: .86rem;
  font-weight: 750;
  line-height: 1.2;
  text-decoration: none;
  box-shadow: 0 10px 26px rgba(11, 39, 64, .18), 0 3px 8px rgba(11, 39, 64, .1);
  transition: transform .24s ease, box-shadow .24s ease, background-color .24s ease, color .24s ease;
}
.floating-action--app { color: #05655f; background: #d9f2e9; border-color: #8ed3bf; }
.floating-action--contact { color: #fff; background: #087f79; border-color: #087f79; }
.floating-action-icon { display: block; width: 19px; height: 19px; flex: 0 0 19px; font-size: 1.15rem; line-height: 19px; text-align: center; }
.floating-action-arrow { transition: transform .24s ease; }
.floating-action:focus-visible { outline: 3px solid #f4b400; outline-offset: 3px; }
@media (hover: hover) {
  .floating-action:hover { transform: translateY(-4px); box-shadow: 0 16px 32px rgba(11, 39, 64, .25); }
  .floating-action--app:hover { color: #fff; background: #087f79; }
  .floating-action--contact:hover { color: #fff; background: #05655f; }
  .floating-action:hover .floating-action-arrow { transform: translate(3px, -3px); }
}
@media (max-width: 480px) {
  .floating-actions { right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); gap: 7px; }
  .floating-action { min-height: 44px; padding: 9px 13px; gap: 6px; font-size: .78rem; }
  .floating-action-icon { width: 17px; height: 17px; flex-basis: 17px; line-height: 17px; }
  .floating-action-arrow { display: none; }
  .site-footer { padding-bottom: calc(90px + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  .floating-actions, .floating-action, .floating-action-arrow { transition: none; }
  .floating-action:hover, .floating-action:hover .floating-action-arrow { transform: none; }
}
