@import url('https://fonts.googleapis.com/css2?family=Cairo:wght@300;400;500;600;700;800;900&display=swap');

/* Critical layout -- works even if the pinned Tailwind runtime is slow to load */
*, *::before, *::after { box-sizing: border-box; }
body { 
  margin: 0; 
  font-family: 'Cairo', system-ui, -apple-system, sans-serif; 
}
img, video, svg { max-width: 100%; height: auto; }

/* Responsive card grid */
.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
  gap: 1.5rem;
}

/* Table wrapper for horizontal scroll when needed */
.table-wrapper {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.05);
}
::-webkit-scrollbar-thumb {
  background: rgba(244, 63, 94, 0.3);
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: rgba(244, 63, 94, 0.6);
}

/* Custom Animations */
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}

@keyframes pulse-custom {
  0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.7); }
  50% { transform: scale(1.08); box-shadow: 0 0 0 12px rgba(34, 197, 94, 0); }
}

@keyframes pulse-pink {
  0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(244, 63, 94, 0.4); }
  50% { transform: scale(1.05); box-shadow: 0 0 0 10px rgba(244, 63, 94, 0); }
}

@keyframes fade-in-up {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-float {
  animation: float 4s ease-in-out infinite;
}

.animate-pulse-whatsapp {
  animation: pulse-custom 2.5s infinite;
}

.animate-pulse-pink {
  animation: pulse-pink 2s infinite;
}

.animate-fade-in {
  animation: fade-in-up 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Custom RTL-friendly utility classes */
.rtl {
  direction: rtl;
}

/* Glowing background circles for modern tech-maternal look */
.glow-orb {
  filter: blur(120px);
  opacity: 0.15;
  pointer-events: none;
  z-index: 0;
}
