/* Tailwind CDN'in tanımadığı özel animasyonlar ve ince dokunuşlar burada. */

html {
  scroll-behavior: smooth;
}

/* Sabit (fixed) header'ın altında kalan bölüm başlıklarının linkle tam hizalanması için */
section[id] {
  scroll-margin-top: 72px;
}

/* Header scroll sonrası gölge */
#site-header.is-scrolled {
  box-shadow: 0 4px 20px rgba(15, 23, 42, 0.08);
}

/* Acil çağrı butonunda dikkat çekici yumuşak nabız efekti */
@keyframes pulse-soft {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255, 171, 0, 0.35); }
  50% { box-shadow: 0 0 0 10px rgba(255, 171, 0, 0); }
}
.animate-pulse-soft {
  animation: pulse-soft 2.5s ease-in-out infinite;
}

@keyframes ping-soft {
  0% { transform: scale(1); opacity: 1; }
  75%, 100% { transform: scale(2.2); opacity: 0; }
}
.animate-ping-soft {
  position: relative;
  animation: ping-soft 1.6s cubic-bezier(0, 0, 0.2, 1) infinite;
}

/* Scroll ile görünüme giren elemanlar için "reveal" efekti */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Kullanıcı hareketli efektleri istemiyorsa (erişilebilirlik) animasyonları kapat */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .animate-pulse-soft,
  .animate-ping-soft {
    animation: none;
  }
}

/* Form alanı hata durumunda kırmızı çerçeve */
.field-invalid {
  border-color: #dc2626 !important;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.12) !important;
}

/* Floating action butonlarının görünür hale gelme animasyonu (JS ile is-visible eklenir) */
#fab.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
