/* ============================================================
   Sohel Square Hospital — Animations
   ============================================================ */

/* ── Pulse Glow (Emergency Button) ── */
@keyframes pulseGlow {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(198,40,40,0.6), var(--shadow-red);
  }
  50% {
    box-shadow: 0 0 0 14px rgba(198,40,40,0), var(--shadow-red);
  }
}

/* ── Pulse Ring (FAB) ── */
@keyframes pulseRing {
  0%   { transform: scale(1); opacity: 1; }
  100% { transform: scale(1.7); opacity: 0; }
}

/* ── Float Up ── */
@keyframes floatUp {
  0%, 100% { transform: translateY(0px); }
  50%       { transform: translateY(-8px); }
}

/* ── Shimmer (skeleton loading) ── */
@keyframes shimmer {
  0%   { background-position: -1000px 0; }
  100% { background-position: 1000px 0; }
}

/* ── Fade In Up ── */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Fade In ── */
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* ── Zoom In ── */
@keyframes zoomIn {
  from { opacity: 0; transform: scale(0.85); }
  to   { opacity: 1; transform: scale(1); }
}

/* ── Slide In Right ── */
@keyframes slideInRight {
  from { opacity: 0; transform: translateX(40px); }
  to   { opacity: 1; transform: translateX(0); }
}

/* ── Counter Bounce ── */
@keyframes counterBounce {
  0%, 100% { transform: scale(1); }
  50%       { transform: scale(1.06); }
}

/* ── Rotate ── */
@keyframes rotate {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* ── Heartbeat ── */
@keyframes heartbeat {
  0%, 100% { transform: scale(1); }
  14%       { transform: scale(1.12); }
  28%       { transform: scale(1); }
  42%       { transform: scale(1.12); }
  70%       { transform: scale(1); }
}

/* ── Utility Classes ── */
.animate-float    { animation: floatUp 3s ease-in-out infinite; }
.animate-heartbeat{ animation: heartbeat 1.5s ease-in-out infinite; }
.animate-fade-in  { animation: fadeIn 0.6s ease forwards; }
.animate-fade-up  { animation: fadeInUp 0.6s ease forwards; }
.animate-zoom-in  { animation: zoomIn 0.5s ease forwards; }

/* ── Page Loader ── */
.page-loader {
  position: fixed;
  inset: 0;
  background: var(--color-dark);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.5s ease, visibility 0.5s ease;
}
.page-loader.hidden {
  opacity: 0;
  visibility: hidden;
}
.loader-spinner {
  width: 56px;
  height: 56px;
  border: 5px solid rgba(27,138,46,0.2);
  border-top-color: var(--color-primary);
  border-radius: 50%;
  animation: rotate 0.8s linear infinite;
}
.loader-logo {
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--color-primary);
  margin-top: 1rem;
  letter-spacing: 2px;
}
