/* =====================================================================
   DuruFlora — Yükleniyor (Spinner)
   <svg class="df-spinner" data-theme="summer|autumn|winter|spring" data-mode="light|dark">
   data-mode yazılmazsa "light" (açık zemin) kabul edilir.
   Overlay içinde kullanılırsa renkleri overlay'in data-mode değeri belirler.
   ===================================================================== */
.df-spinner{
  width:44px; height:44px; display:inline-block; overflow:visible;
  --sp-main:#2c4634; --sp-soft:#f6c1d4; --sp-accent:#a4906d;
}

/* ---------- AÇIK ZEMİN (varsayılan) ---------- */
.df-spinner[data-theme="summer"]{ --sp-main:#2c4634; --sp-soft:#4a6f52; --sp-accent:#a4906d; }
.df-spinner[data-theme="autumn"]{ --sp-main:#a6431f; --sp-soft:#c96b2e; --sp-accent:#d8a13a; }
.df-spinner[data-theme="winter"]{ --sp-main:#7fa8ac; --sp-accent:#33505c; }
.df-spinner[data-theme="spring"]{ --sp-main:#e893b3; --sp-soft:#f6c1d4; --sp-accent:#3e7a3f; }

/* ---------- KOYU ZEMİN ---------- */
.df-spinner[data-theme="summer"][data-mode="dark"],
.df-loading-overlay[data-mode="dark"] .df-spinner[data-theme="summer"],
.site-footer .df-spinner[data-theme="summer"],
.reviews-section .df-spinner[data-theme="summer"],
[data-df-bg="dark"] .df-spinner[data-theme="summer"],
.site-header--nft_arch .df-spinner[data-theme="summer"],
.hdr .df-spinner[data-theme="summer"],
.site-header--theme-dark_forest .df-spinner[data-theme="summer"],
.site-header--theme-dark_velosphere .df-spinner[data-theme="summer"] {
  --sp-main:#cfe0c9; --sp-soft:#8faa8f; --sp-accent:#f3c96b;
}

.df-spinner[data-theme="autumn"][data-mode="dark"],
.df-loading-overlay[data-mode="dark"] .df-spinner[data-theme="autumn"],
.site-footer .df-spinner[data-theme="autumn"],
.reviews-section .df-spinner[data-theme="autumn"],
[data-df-bg="dark"] .df-spinner[data-theme="autumn"],
.site-header--nft_arch .df-spinner[data-theme="autumn"],
.hdr .df-spinner[data-theme="autumn"],
.site-header--theme-dark_forest .df-spinner[data-theme="autumn"],
.site-header--theme-dark_velosphere .df-spinner[data-theme="autumn"] {
  --sp-main:#f2b46e; --sp-soft:#e0935a; --sp-accent:#ffd08a;
}

.df-spinner[data-theme="winter"][data-mode="dark"],
.df-loading-overlay[data-mode="dark"] .df-spinner[data-theme="winter"],
.site-footer .df-spinner[data-theme="winter"],
.reviews-section .df-spinner[data-theme="winter"],
[data-df-bg="dark"] .df-spinner[data-theme="winter"],
.site-header--nft_arch .df-spinner[data-theme="winter"],
.hdr .df-spinner[data-theme="winter"],
.site-header--theme-dark_forest .df-spinner[data-theme="winter"],
.site-header--theme-dark_velosphere .df-spinner[data-theme="winter"] {
  --sp-main:#9fc4c9; --sp-soft:#7fa8ac; --sp-accent:#eaf6fb;
}

.df-spinner[data-theme="spring"][data-mode="dark"],
.df-loading-overlay[data-mode="dark"] .df-spinner[data-theme="spring"],
.site-footer .df-spinner[data-theme="spring"],
.reviews-section .df-spinner[data-theme="spring"],
[data-df-bg="dark"] .df-spinner[data-theme="spring"],
.site-header--nft_arch .df-spinner[data-theme="spring"],
.hdr .df-spinner[data-theme="spring"],
.site-header--theme-dark_forest .df-spinner[data-theme="spring"],
.site-header--theme-dark_velosphere .df-spinner[data-theme="spring"] {
  --sp-main:#f6a8c4; --sp-soft:#fbd3e1; --sp-accent:#c9f2c9;
}

/* ---------- ŞEKİLLER ---------- */
.df-spinner .spin-front{ fill:var(--sp-main); }
.df-spinner .spin-back{ fill:var(--sp-soft); }
.df-spinner .spin-ring{ fill:none; stroke:var(--sp-accent); stroke-width:2.5; stroke-linecap:round; stroke-dasharray:30 130; opacity:.55; }
.df-spinner .spin-line{ stroke:var(--sp-main); stroke-width:2.6; stroke-linecap:round; fill:none; }
.df-spinner .spin-tip{ fill:var(--sp-accent); }
.df-spinner .spin-petal{ fill:var(--sp-main); opacity:.9; }
.df-spinner .spin-petal.soft{ fill:var(--sp-soft); opacity:.9; }
.df-spinner .spin-core{ fill:var(--sp-accent); }

/* yaz + sonbahar: yaprak grubu kendi merkezi etrafında döner, halka kendi merkezi etrafında */
.df-spinner[data-theme="summer"] .spin-group,
.df-spinner[data-theme="summer"] .spin-ring,
.df-spinner[data-theme="autumn"] .spin-group{ transform-box:fill-box; transform-origin:center; }
/* kış + ilkbahar: dönüş merkezi (24, 30). Parent transform YOK, koordinatlar doğrudan geçerli */
.df-spinner[data-theme="winter"] .spin-group,
.df-spinner[data-theme="spring"] .spin-group{ transform-box:view-box; transform-origin:24px 30px; }

/* ---------- HAREKETLER ---------- */
/* yaz: yaprak döner + güneş halkası */
@keyframes df-spin-summer-leaf{ 0%{transform:rotate(0deg) scale(1);} 50%{transform:rotate(180deg) scale(.85);} 100%{transform:rotate(360deg) scale(1);} }
@keyframes df-spin-ring{ to{ transform:rotate(360deg); } }
.df-spinner[data-theme="summer"] .spin-group{ animation:df-spin-summer-leaf 1.6s cubic-bezier(.45,0,.55,1) infinite; }
.df-spinner[data-theme="summer"] .spin-ring{ animation:df-spin-ring 1.1s linear infinite; }

/* sonbahar: yaprak dönerek/savrularak daire çizer */
@keyframes df-spin-autumn-path{ 0%{transform:translate(0,0) rotate(0deg);} 25%{transform:translate(7px,-5px) rotate(90deg);} 50%{transform:translate(0,-9px) rotate(180deg);} 75%{transform:translate(-7px,-5px) rotate(270deg);} 100%{transform:translate(0,0) rotate(360deg);} }
.df-spinner[data-theme="autumn"] .spin-group{ animation:df-spin-autumn-path 1.8s linear infinite; }

/* kış: kar tanesi yavaşça döner, uçları sırayla parıldar */
@keyframes df-spin-winter{ to{ transform:rotate(360deg); } }
@keyframes df-spin-winter-tip{ 0%,100%{opacity:.35;} 50%{opacity:1;} }
.df-spinner[data-theme="winter"] .spin-group{ animation:df-spin-winter 4.5s linear infinite; }
.df-spinner[data-theme="winter"] .spin-tip{ animation:df-spin-winter-tip 1.6s ease-in-out infinite; }
.df-spinner[data-theme="winter"] .spin-tip.t2{ animation-delay:.3s; }
.df-spinner[data-theme="winter"] .spin-tip.t3{ animation-delay:.6s; }

/* ilkbahar: çiçek açılıp kapanır, hafifçe döner */
@keyframes df-spin-spring{ 0%{transform:scale(.8) rotate(0deg);} 50%{transform:scale(1.12) rotate(20deg);} 100%{transform:scale(.8) rotate(0deg);} }
.df-spinner[data-theme="spring"] .spin-group{ animation:df-spin-spring 1.7s ease-in-out infinite; }

/* ---------- TAM EKRAN YÜKLENİYOR KATMANI (overlay) ---------- */
.df-loading-overlay{
  position:fixed !important; inset:0 !important; z-index:999999 !important;
  display:none !important; align-items:center !important; justify-content:center !important; flex-direction:column !important; gap:12px !important;
  background:#ffffff !important;                               /* sayfa beyazken açık zemin (beyaz) */
  backdrop-filter: blur(4px);
}
.df-loading-overlay.is-active{ display:flex !important; }
.df-loading-overlay[data-mode="dark"][data-theme="summer"]{ background:rgba(21,32,25,.92) !important; }
.df-loading-overlay[data-mode="dark"][data-theme="autumn"]{ background:rgba(36,18,9,.92) !important; }
.df-loading-overlay[data-mode="dark"][data-theme="winter"]{ background:rgba(13,22,32,.92) !important; }
.df-loading-overlay[data-mode="dark"][data-theme="spring"]{ background:rgba(24,42,26,.92) !important; }

/* overlay içinde sadece aktif temanın spinner'ı görünür */
.df-loading-overlay .df-spinner{ display:none !important; }
.df-loading-overlay[data-theme="summer"] .df-spinner[data-theme="summer"],
.df-loading-overlay[data-theme="autumn"] .df-spinner[data-theme="autumn"],
.df-loading-overlay[data-theme="winter"] .df-spinner[data-theme="winter"],
.df-loading-overlay[data-theme="spring"] .df-spinner[data-theme="spring"]{ display:block !important; }

.df-loading-label{ font-family:sans-serif !important; font-size:11px !important; letter-spacing:1.5px !important; color:#8b8168 !important; font-weight:600 !important; }
.df-loading-overlay[data-mode="dark"] .df-loading-label{ color:#cbb98a !important; }

@media (prefers-reduced-motion: reduce){
  .df-spinner *{ animation:none !important; }
}
