
/* =====================================================================
 _SHELL.HTML — KANONİK İSKELET (anasayfa-portal-v3a.html'den BİREBİR)
 Token + tipografi + utilities + topbar + header + mega menü (KİLİTLİ)
 + footer + drawer/bottom-nav + çerez/görüş modal + ortak JS.
 Yeni sayfa = bu dosyanın kopyası; SAYFA İÇERİĞİ bloğu doldurulur,
 sayfa-spesifik CSS "SAYFA CSS" işaretinin altına eklenir.
 Header varsayılan KATI; hero'lu sayfa ?hdr=hero benzeri davranış için
 JS'teki heroMode bayrağını açar.
 ===================================================================== */

/* ============ GERÇEK SİTE FONTU: Gilroy-Medium — TEK YÜZ (eski site DNA'sı) ============
 Eski site (main.css): @font-face myBrandFont = Gilroy-Medium.ttf, universal reset ile
 başlık/gövde/buton dahil HER eleman bu tek yüzle render olur; 600/700 bold'lar
 tarayıcının sentetik bold'udur. Light/ExtraBold dosyaları klasörde var ama
 eski site CSS'i hiç yüklemez — bu yüzden burada da yalnız Medium yüklenir. */

   
    

            

 

/* sayfa genel: yeşil eyebrow (fit bölümleri) */
.sec-fit .eyebrow{color:var(--fit-deep)}
.sec-fit .eyebrow::before{background:var(--fit)}
/* ----- Sayfa-içi hareket/program arama (DadaFit yeşili) ----- */
.df-search{margin:0 0 22px;display:flex;align-items:center;gap:12px;max-width:560px;background:var(--paper);border:1px solid var(--fit-line);border-radius:var(--radius-md);padding:0 16px;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
.df-search:focus-within{border-color:var(--fit);box-shadow:0 0 0 3px var(--fit-tint)}
.df-search>i{color:var(--fit-deep);font-size:15px}
.df-search input{flex:1;border:none;background:transparent;font-family:inherit;font-weight:500;font-size:15px;color:var(--slate);padding:14px 0;outline:none}
.df-search input::placeholder{color:#a7a7a7;font-weight:500}
.df-search .dfs-clear{flex:none;width:28px;height:28px;border:none;background:transparent;color:var(--muted);font-size:14px;cursor:pointer;border-radius:var(--radius-circle);display:none;place-items:center;transition:.16s var(--ease)}
.df-search .dfs-clear:hover{background:var(--fit-tint);color:var(--fit-deep)}
.df-search.has-q .dfs-clear{display:grid}
.df-scount{margin:0 0 22px;font-size:13.5px;font-weight:500;color:var(--muted);display:none}
.df-scount.show{display:block}
.df-scount b{color:var(--fit-deep);font-weight:700}
/* arama aktifken kart/bölüm süzme + dekoratif filtre/kategori gizle */
.hub-card.dfs-hide{display:none}
.df-searchable.dfs-sec-hide{display:none}
body.df-searching .df-searchable .sec-tools{visibility:hidden}
body.df-searching #kutuphane .df-filterbar,body.df-searching #kutuphane .df-fcards{display:none}
.df-noresult{display:none;padding:46px 20px 4px;text-align:center;color:var(--muted)}
.df-noresult.show{display:block}
.df-noresult i{font-size:32px;color:var(--fit);opacity:.62;margin-bottom:13px;display:block}
.df-noresult b{display:block;font-size:18px;color:var(--slate);margin-bottom:5px}
.df-noresult span{font-size:14px}

/* ============ 1 · HERO — koyu band, yeşil aksan, sağda Enerji Defteri ============ */
/* hero zemini: gerçek video (autoplay/muted/loop) + koyu #211E16 overlay.
 Video .df-hero-media içinde absolute; overlay'lar ::after ile video ÜSTÜNDE;
 içerik .wrap z-index:2 ile en üstte. Poster = foto (video gelene kadar). */
/* BANNER KURALI: min-height:100vh kaldirildi — bant icerik yuksekliginde, %50 sinirinin altinda */
.df-top{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding-top:112px;padding-bottom:24px;background:linear-gradient(180deg,#211E16,#1b1913)}
.df-hero-media{position:absolute;inset:0;z-index:0;background:#1b1913}
.df-hero-media video{width:100%;height:100%;object-fit:cover;object-position:center 28%;filter:saturate(.68) contrast(1.02);display:block}
.df-hero-media::after{content:"";position:absolute;inset:0;background:
  radial-gradient(820px 360px at 84% 14%,color-mix(in srgb, var(--marka) 20%, transparent),transparent 62%),
  linear-gradient(90deg,rgba(33,30,22,.93) 0%,rgba(29,26,20,.80) 46%,rgba(27,25,19,.56) 100%),
  linear-gradient(180deg,rgba(33,30,22,0) 56%,rgba(24,22,16,.9) 100%);}
.df-top .wrap{position:relative;z-index:2}
/* R26 — dikiş binmesi ekran sınırına denk geliyordu: kabuk `#kopru`yü
 `.fit-seam.is-onbanner{margin-top:calc(var(--seam-r) * -1)}` ile 22px yukarı
 çekiyor (assets/css/fit-shell.css); hero tam viewport (`--hero-full:100dvh`)
 olduğunda o 22px'lik binme ekranın dibinde beyaz şerit olarak görünüyordu.
 Dikiş kuralına DOKUNULMADI (50 sayfada ortak) — yalnız BU sayfada hero'nun
 tabanı binmeyi kapsayacak kadar uzatıldı, aynı özgüllükte (KARARLAR K-c). */
body[data-fit-hero="1"] .df-top{
  min-height:calc(100vh + var(--seam-r));    /* yedek: dvh bilmeyen tarayıcı */
  min-height:calc(100dvh + var(--seam-r));   /* dinamik görüntü alanı */
}
/* ince üst nefes + breadcrumb */
.df-crumb{display:flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;color:#a99;margin-top:16px}
.df-crumb a{color:#b8afa3;transition:.2s}
.df-crumb a:hover{color:var(--fit-bright)}
.df-crumb i{font-size:9px;color:rgba(255,255,255,.32)}
.df-crumb b{color:#fff;font-weight:700}
.df-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:54px;align-items:center;padding:30px 0 56px}
.df-hmain{min-width:0}
.df-hmain .eyebrow{color:var(--fit-bright)}
.df-hmain .eyebrow::before{background:var(--fit)}
.df-hmain h1{color:#fff;font-size:46px;line-height:1.08;letter-spacing:-.03em;margin:16px 0 14px}
.df-hmain h1 .accent{color:var(--fit-bright)}
.df-hmain .lead{color:#d9d2c8;font-weight:500;font-size:16px;max-width:520px;line-height:1.6}
.df-hcta{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.df-hcta .btn{padding:14px 24px}
.df-hcta .btn-line{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.26)}
.df-hcta .btn-line:hover{border-color:#fff;background:rgba(255,255,255,.07);transform:translateY(-2px)}
.df-htrust{display:flex;align-items:center;gap:18px;margin-top:24px;flex-wrap:wrap}
.df-htrust span{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#b7b0a6}
.df-htrust i{color:var(--fit-bright);font-size:13px}

/* --- SIGNATURE: Enerji Defteri (al↔harca; iki ayrı bağlam, desatüre, etiket baskın) --- */
.df-ledger{
  background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-xl);
  padding:26px;box-shadow:0 24px 60px rgba(0,0,0,.34);backdrop-filter:blur(6px);
}
.dl-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}
.dl-head h3{color:#fff;font-size:16.5px;letter-spacing:-.01em}
.dl-head .dl-date{font-size:11.5px;font-weight:700;color:#cbb;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);padding:5px 11px;border-radius:var(--radius-sm);letter-spacing:.02em}
.dl-row{padding:14px 0}
.dl-row+.dl-row{border-top:1px solid rgba(255,255,255,.08)}
.dl-rowtop{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.dl-tag{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.dl-tag i{width:24px;height:24px;border-radius:var(--radius-sm);display:grid;place-items:center;font-size:12px}
.dl-row.in .dl-tag{color:#f0b3a4}
.dl-row.in .dl-tag i{background:rgba(225,72,39,.16);color:#ef7d63}
.dl-row.out .dl-tag{color:var(--marka-parlak-3)}
.dl-row.out .dl-tag i{background:color-mix(in srgb, var(--marka) 18%, transparent);color:var(--marka-parlak-2)}
.dl-val{margin-left:auto;font-size:21px;font-weight:700;color:#fff;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.dl-val small{font-size:11px;font-weight:600;color:#9a9389;margin-left:4px}
.dl-bar{height:9px;border-radius:var(--radius-pill);background:rgba(255,255,255,.07);overflow:hidden}
.dl-fill{height:100%;border-radius:var(--radius-pill)}
.dl-row.in .dl-fill{background:linear-gradient(90deg,rgba(225,72,39,.42),rgba(225,72,39,.62))}
.dl-row.out .dl-fill{background:linear-gradient(90deg,color-mix(in srgb, var(--marka) 55%, transparent),color-mix(in srgb, var(--marka) 85%, transparent))}
.dl-net{display:flex;align-items:center;gap:12px;margin-top:18px;padding:14px 16px;border-radius:var(--radius-lg);background:color-mix(in srgb, var(--marka) 12%, transparent);border:1px solid color-mix(in srgb, var(--marka) 28%, transparent)}
.dl-net i{flex:none;width:34px;height:34px;border-radius:var(--radius-md);background:color-mix(in srgb, var(--marka) 22%, transparent);color:var(--marka-parlak-2);display:grid;place-items:center;font-size:14px}
.dl-net b{display:block;font-size:13.5px;color:#fff;font-weight:700}
.dl-net span{display:block;font-size:12px;color:#aeb8af;font-weight:500;margin-top:1px}

/* ============ 2 · KÖPRÜ (kalp) — beyaz bölüm + tek koyu feature kart ============ */
.df-bridge-card{
  position:relative;overflow:hidden;border-radius:var(--radius-xl);padding:44px;
  background:
    radial-gradient(620px 280px at 88% 10%,color-mix(in srgb, var(--marka) 22%, transparent),transparent 58%),
    linear-gradient(110deg,rgba(33,30,22,.97) 42%,rgba(33,30,22,.74) 100%),
    linear-gradient(180deg,rgba(33,30,22,.6),rgba(27,25,19,.85)),
    url('https://images.unsplash.com/photo-1574680096145-d05b474e2155?w=1200&q=80&auto=format&fit=crop&exp=7&gam=6&sat=-14');
  background-size:cover;background-position:right center;
  display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;
}
.df-bc-main .eyebrow{color:var(--fit-bright)}
.df-bc-main .eyebrow::before{background:var(--fit)}
.df-bc-main h2{color:#fff;font-size:30px;letter-spacing:-.02em;margin:14px 0 12px}
.df-bc-main p{color:#cfc8be;font-weight:500;font-size:15px;line-height:1.65;max-width:440px;margin-bottom:24px}
.df-bc-steps{display:flex;flex-direction:column;gap:12px}
.df-bc-step{display:flex;align-items:center;gap:14px}
.df-bc-step .n{flex:none;width:34px;height:34px;border-radius:var(--radius-md);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);display:grid;place-items:center;color:var(--fit-bright);font-size:13px}
.df-bc-step b{font-size:14px;color:#fff;font-weight:700;display:block}
.df-bc-step span{font-size:12.5px;color:#a9a297;font-weight:500}
/* sağ taraf: yemek↔hareket köprü çağrısı (tomato CTA = yemek ucu) */
.df-bc-side{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);padding:22px}
.df-bc-side .sd-q{font-size:14px;font-weight:700;color:#fff;display:flex;align-items:center;gap:10px;margin-bottom:6px}
.df-bc-side .sd-q i{color:#ef7d63}
.df-bc-side .sd-d{font-size:13px;color:#b3aca2;font-weight:500;line-height:1.6;margin-bottom:18px}
.df-bc-side .btn{width:100%}
.df-bc-side .btn-food{background:var(--food);color:#fff}
.df-bc-side .btn-food:hover{background:#c93d20;transform:translateY(-2px)}
.df-bc-side .sd-alt{display:block;text-align:center;margin-top:12px;font-size:13px;font-weight:700;color:var(--fit-bright)}
.df-bc-side .sd-alt:hover{text-decoration:underline;text-underline-offset:3px}

/* ============ 3 · EGZERSİZ KÜTÜPHANESİ — filtre + örnek kartlar ============ */
.df-filterbar{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-bottom:24px}
/* ---- R8/21: filtre satiri + arama tek hizada (arama SAGDA) ----
 align-items:flex-start → iki kutunun UST KENARI ayni y'de (kabul olcutu: fark 0).
 Filtre satirina min-height veriyoruz ki 35 px'lik cip serisi 48 px'lik arama
 kutusuna gorsel olarak ortalansin — hiza olcumu bozulmadan. */
/* ================= R8/24 · ANTRENMAN OLUSTURUCU ONIZLEMESI =================
 Koyu band bilerek: sayfadaki tek CALISAN motor bu: katalog degil arac.
 Ustundeki §3 beyaz, altindaki §4 krem — koyu band ikisini de ayirir,
 ayrica hero'nun (#211E16 → #1b1913) dilini geri getirir.
 Numaralandirma burada mesru: adimlar GERCEKTEN sirali (motor bu sirayla soruyor). */
#olusturucu{background:linear-gradient(180deg,#211E16,#1b1913)}
.ao-prev{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:44px;align-items:center}
.ao-main .eyebrow{color:var(--fit-bright,var(--marka-parlak-2))}
.ao-main h2{color:#fff;font-size:34px;letter-spacing:-.01em;line-height:1.16}
.ao-main .lead{color:rgba(255,255,255,.76);max-width:560px;margin-top:12px}
.ao-steps{list-style:none;display:flex;flex-wrap:wrap;gap:9px;margin:22px 0 24px;padding:0;counter-reset:none}
.ao-steps li{display:inline-flex;align-items:center;gap:8px;padding:7px 13px 7px 7px;
  border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-pill);
  color:rgba(255,255,255,.86);font-size:12.5px;font-weight:600;line-height:1}
.ao-steps .n{display:grid;place-items:center;width:20px;height:20px;border-radius:var(--radius-circle);
  background:color-mix(in srgb, var(--marka) 26%, transparent);color:#75d4ff;font-size:11px;font-weight:800}

.ao-cikti{display:block;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.15);
  border-radius:var(--radius-lg);padding:20px;color:#fff}
.ao-cikti-top{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid rgba(255,255,255,.13)}
.ao-cikti-top b{font-size:13.5px;color:rgba(255,255,255,.9)}
.ao-rozet{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:800;
  letter-spacing:.07em;text-transform:uppercase;color:#75d4ff}
.ao-gunler{display:grid;gap:9px}
.ao-gun{display:block;background:rgba(255,255,255,.05);border-radius:var(--radius-md);
  padding:11px 14px;font-size:14px;font-weight:700;color:#fff}
.ao-gun i{display:block;font-style:normal;font-size:10.5px;font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;color:rgba(255,255,255,.46);margin-bottom:3px}
.ao-gun small{display:block;font-size:12px;font-weight:500;color:rgba(255,255,255,.6);margin-top:2px}
@media (max-width:900px){ .ao-prev{grid-template-columns:minmax(0,1fr);gap:26px} }
@media (max-width:640px){ .ao-main h2{font-size:26px} .ao-steps{gap:7px} }

/* ---- R8/22: "Kopru Is Basinda" ustune DadaGastro marka kilidi ----
 Renk kabuktan degil, DadaGastro'nun literal marka rengi (#E14827) —
 bu sayfada --fit YESIL'e swap'li, var(--fit) kullanilsaydi amblem yesil cikardi
 (ayni gerekce fit-shell.css:1211 .bs-gastro'da yazili). */
.eyebrow-gastro{display:inline-flex;align-items:center;gap:9px;flex-wrap:wrap}
.dg-mark{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:var(--radius-sm);
  background:rgba(225,72,39,.10);border:1px solid rgba(225,72,39,.30);color:#E14827;line-height:1}
.dg-mark i{font-size:11.5px}
.dg-wm{font-size:11.5px;letter-spacing:.01em;text-transform:none}
.dg-wm b{font-weight:800}
.dg-wm em{font-style:normal;font-weight:400}
@media (max-width:640px){ .eyebrow-gastro{gap:7px} .dg-mark{padding:3px 7px} }
.df-toolrow{display:flex;align-items:flex-start;gap:20px;margin:0 0 24px}
.df-toolrow .df-filterbar{flex:1 1 auto;min-width:0;min-height:48px;margin:0}
.df-toolrow .df-search{flex:0 0 clamp(260px,30%,380px);margin:0}
/* arama aktifken filtre gizlenince kutu saga yapisik kalsin */
body.df-searching #kutuphane .df-toolrow{justify-content:flex-end}
.df-filterbar .lbl{font-size:13px;font-weight:600;color:var(--muted);margin-right:4px}
.df-fchip{font-size:13px;font-weight:600;color:var(--slate);background:var(--paper);border:1px solid var(--line);padding:9px 16px;border-radius:var(--radius-sm);cursor:pointer;transition:.18s var(--ease)}
.df-fchip:hover{border-color:var(--fit);color:var(--fit-deep);background:var(--fit-tint)}
.df-fchip.on{border-color:var(--fit);color:#fff;background:var(--fit)}
/* filtre kategori kısayolları — calc-card dili, ikon tile (fotosuz) */
.df-fcards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:34px}
.df-fcard{display:flex;align-items:center;gap:14px;padding:18px;background:var(--paper);border:1px solid var(--fit-line);border-radius:var(--radius-lg);cursor:pointer;transition:.25s var(--ease)}
.df-fcard:hover{transform:translateY(-4px);border-color:var(--fit);box-shadow:var(--sh-md)}
.df-fcard .fc-ico{flex:none;width:50px;height:50px;border-radius:var(--radius-lg);background:var(--fit-tint);display:grid;place-items:center;color:var(--fit-deep);font-size:21px}
.df-fcard h4{font-size:16px;margin-bottom:2px}
.df-fcard p{font-size:12.5px;color:var(--muted);font-weight:500}
.df-fcard .go{margin-left:auto;color:var(--fit-deep);font-size:13px;transition:.2s var(--ease)}
.df-fcard:hover .go{transform:translateX(3px)}

/* HUB KARTLARI (egzersiz + program) — saglik hub-card dili, yeşil aksan */
.hub-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.hub-grid.cols3{grid-template-columns:repeat(3,minmax(0,1fr))}
.hub-media{position:relative;height:168px;background-size:cover;background-position:center}
.hub-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(33,30,22,0) 50%,rgba(20,18,12,.55))}
/* fotosuz ikon-tile varyant (egzersiz fallback) */
.hub-media.icon{display:grid;place-items:center;background:linear-gradient(160deg,var(--marka-yikama-koyu),#e6f3ec)}
.hub-media.icon::after{display:none}
.hub-media.icon i{font-size:46px;color:var(--fit);opacity:.85}
.hub-cat{position:absolute;top:12px;left:12px;z-index:2;background:rgba(255,255,255,.94);color:var(--slate);font-size:11.5px;font-weight:700;padding:6px 12px;border-radius:var(--radius-sm);letter-spacing:.02em}
.hub-cat.fit{background:var(--fit);color:#fff}
.hub-tags{position:absolute;bottom:12px;left:12px;z-index:2;display:flex;gap:6px;flex-wrap:wrap}
.hub-tag{display:inline-flex;align-items:center;gap:5px;background:rgba(20,18,12,.72);color:#fff;font-size:11px;font-weight:700;padding:6px 10px;border-radius:var(--radius-sm);backdrop-filter:blur(4px)}
/* .hub-pro kopyası S1 ile kaldırıldı: bu sayfada Pro rozeti taşıyan kart kalmadı,
   kural ölü kalıyordu. Kabuktaki tek kaynak (fit-shell.css) duruyor — onu
   video-seans-detay-v1 hâlâ kullanıyor. */
.hub-body{padding:18px;display:flex;flex-direction:column;flex:1}
.hub-body h4{font-size:16.5px;margin-bottom:8px;letter-spacing:-.01em}
.hub-card:hover .hub-body h4{color:var(--fit-deep)}
.hub-body p{font-size:13.5px;color:var(--muted);font-weight:500;line-height:1.55}
.hub-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:14px;margin-top:16px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted);font-weight:500}
.hub-foot .go{display:inline-flex;align-items:center;gap:7px;color:var(--fit-deep);font-weight:700}
.hub-card:hover .hub-foot .go i{transform:translateX(3px)}
.hub-foot .go i{transition:.2s var(--ease)}

/* ============ 5 · CHALLENGE — koyu panel (diet-panel dili, yeşil) ============ */
.df-chal{
  position:relative;overflow:hidden;border-radius:var(--radius-xl);padding:46px;color:#fff;
  background:
    radial-gradient(560px 300px at 90% 0%,color-mix(in srgb, var(--marka) 26%, transparent),transparent 60%),
    linear-gradient(110deg,rgba(33,30,22,.96) 46%,rgba(33,30,22,.64) 100%),
    linear-gradient(180deg,rgba(33,30,22,.5),rgba(27,25,19,.86)),
    url('https://images.unsplash.com/photo-1487956382158-bb926046304a?w=1280&q=80&auto=format&fit=crop&exp=7&gam=6&sat=-14');
  background-size:cover;background-position:right center;
  display:grid;grid-template-columns:1fr .9fr;gap:48px;align-items:center;
}
.df-chal .eyebrow{color:var(--fit-bright)}
.df-chal .eyebrow::before{background:var(--fit)}
.df-chal h2{color:#fff;font-size:30px;letter-spacing:-.02em;margin:14px 0 12px}
.df-chal p{color:#cfc8be;font-weight:500;font-size:15px;line-height:1.65;max-width:430px;margin-bottom:24px}
.df-chal-meta{display:flex;gap:28px;margin-bottom:26px}
.df-chal-meta .cm b{display:block;font-size:23px;font-weight:700;color:#fff;font-variant-numeric:tabular-nums;line-height:1.1}
.df-chal-meta .cm span{font-size:12px;color:#a9a297;font-weight:500}
.df-chal .btn-fit{box-shadow:0 10px 26px color-mix(in srgb, var(--marka) 32%, transparent)}
/* sağ: 30 gün rozet ızgarası (rozet/XP bağı) */
.df-days{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);padding:22px}
.df-days .dd-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;font-size:12.5px;font-weight:600;color:#b3aca2}
.df-days .dd-top b{color:var(--fit-bright);font-weight:700}
.df-daygrid{display:grid;grid-template-columns:repeat(10,1fr);gap:7px}
.df-day{aspect-ratio:1;border-radius:var(--radius-sm);background:rgba(255,255,255,.07);display:grid;place-items:center;font-size:10px;font-weight:700;color:#857e74}
.df-day.done{background:var(--fit);color:#fff}
.df-day.today{background:color-mix(in srgb, var(--marka) 20%, transparent);color:#fff;border:1.5px solid var(--fit-bright)}

/* ============ 6 · TDEE KÖPRÜ KARTI — kcal-bands + bridge satırları ============ */
.df-tdee{position:relative;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;gap:32px;color:#fff;border:none;border-radius:var(--radius-xl);padding:40px;box-shadow:var(--sh-md);
  background:
    radial-gradient(560px 260px at 92% 6%,color-mix(in srgb, var(--marka) 26%, transparent),transparent 60%),
    linear-gradient(110deg,rgba(33,30,22,.96) 44%,rgba(33,30,22,.66) 100%),
    linear-gradient(180deg,rgba(33,30,22,.5),rgba(27,25,19,.86)),
    url('https://images.unsplash.com/photo-1502224562085-639556652f33?w=1280&q=80&auto=format&fit=crop&exp=7&gam=6&sat=-14');
  background-size:cover;background-position:right center}
.df-tdee>div{position:relative;z-index:2}
.df-tdee-l h3{font-size:22px;letter-spacing:-.02em;margin:12px 0 10px}
.df-tdee-l p{font-size:14px;color:var(--muted);font-weight:500;line-height:1.6;margin-bottom:18px;max-width:380px}
.res-num{font-size:46px;font-weight:700;color:var(--slate);font-variant-numeric:tabular-nums;letter-spacing:-.03em;line-height:1}
.res-num small{font-size:15px;font-weight:600;color:var(--muted);margin-left:6px}
.res-cap{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:var(--fit-deep);background:var(--fit-tint);padding:7px 13px;border-radius:var(--radius-sm);margin-top:14px}
.kcal-bands{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px}
.kb{padding:14px 12px;border:1px solid var(--line);border-radius:var(--radius-md);text-align:center;background:var(--bg-white);transition:.2s var(--ease)}
.kb i{font-size:14px;color:var(--muted)}
.kb b{display:block;font-size:18px;font-weight:700;color:var(--slate);font-variant-numeric:tabular-nums;margin:5px 0 2px}
.kb b small{font-size:10px;font-weight:600;color:var(--muted);margin-left:2px}
.kb span{font-size:11px;color:var(--muted);font-weight:600}
.kb.on{border-color:var(--fit);background:var(--fit-tint)}
.kb.on i,.kb.on span{color:var(--fit-deep)}
.df-tdee-r{display:flex;flex-direction:column;gap:12px;justify-content:center}
.df-burnadd{display:flex;align-items:center;gap:13px;padding:15px 16px;border:1px dashed var(--fit-line);border-radius:var(--radius-md);background:var(--fit-tint)}
.df-burnadd i{flex:none;width:40px;height:40px;border-radius:var(--radius-md);background:#fff;color:var(--fit-deep);display:grid;place-items:center;font-size:16px}
.df-burnadd b{display:block;font-size:14px;color:var(--slate);font-weight:700}
.df-burnadd span{display:block;font-size:12px;color:var(--slate-2);font-weight:500;margin-top:1px}
.bridge{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-white);transition:.2s var(--ease)}
.bridge:hover{border-color:var(--fit);transform:translateX(3px)}
.br-ico{flex:none;width:40px;height:40px;border-radius:var(--radius-md);background:var(--fit-tint);color:var(--fit-deep);display:grid;place-items:center;font-size:16px}
.br-txt{flex:1;min-width:0}
.br-txt b{display:block;font-size:14px;color:var(--slate);font-weight:700}
.br-txt span{display:block;font-size:12px;color:var(--muted);font-weight:500;margin-top:1px}
.br-go{flex:none;color:var(--fit-deep);font-weight:700;font-size:13px;display:inline-flex;align-items:center;gap:7px}
.bridge:hover .br-go i{transform:translateX(3px)}
.br-go i{transition:.2s var(--ease)}

/* ============ 7 · ANTRENÖR teaser (P1) — sertifika rozeti ============ */
/* R11/M3 · 4'lü antrenör kartı ızgarası (Beyar: "4'lü yani").
   Kartlar artık dizindeki full-görsel portre kart; ızgara ona göre. */
.df-coach-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
/* Etiket şeridi — M12'deki deyimin aynısı (tek satır + yatay kaydırma).
   Dizin sayfasında taşan etiketi "+2" rozetine çeviren `data-tagrow` motoru
   var; hub teaser'ında o motor YOK, bu yüzden `.coach-tags{height:30px}`
   kutusunda çift satırlık çip sıkışıyordu. Kabuktaki kural DEĞİŞTİRİLMEDİ
   (dizini bozmamak için) — özgüllük sayfa tarafında yükseltildi. */
#antrenor .coach-tags{
  flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;
  scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;
  -webkit-mask-image:linear-gradient(to right,#000 calc(100% - 22px),transparent);
  mask-image:linear-gradient(to right,#000 calc(100% - 22px),transparent);
}
#antrenor .coach-tags::-webkit-scrollbar{display:none}
#antrenor .coach-tags span{flex:none;scroll-snap-align:start;white-space:nowrap}
.df-coach{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:22px;transition:.25s var(--ease)}
.df-coach:hover{border-color:var(--fit-line);box-shadow:var(--sh-md);transform:translateY(-4px)}
.df-coach-top{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.df-coach-av{flex:none;width:56px;height:56px;border-radius:var(--radius-circle);background-size:cover;background-position:center;border:2px solid var(--fit-line)}
.df-coach-top b{display:block;font-size:16px;color:var(--slate);font-weight:700}
.df-coach-top span{display:block;font-size:12.5px;color:var(--muted);font-weight:500;margin-top:1px}
.df-cert{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700;color:var(--fit-deep);background:var(--fit-tint);border:1px solid var(--fit-line);padding:6px 11px;border-radius:var(--radius-sm);align-self:flex-start;margin-bottom:13px}
.df-coach-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.df-coach-tags span{font-size:11.5px;font-weight:600;color:var(--slate-2);background:var(--bg);border:1px solid var(--line);padding:5px 11px;border-radius:var(--radius-sm)}
.df-coach .btn{margin-top:auto}
.df-coach-join{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;background:var(--fit-tint);border:1px solid var(--fit-line);border-radius:var(--radius-lg);padding:22px 26px;margin-top:4px}
.df-coach-join b{font-size:16px;color:var(--slate)}
.df-coach-join p{font-size:13px;color:var(--slate-2);font-weight:500;margin-top:2px}

/* ============ 8 · PRO-GATE teaser — free vs Pro (pro-v1 dili) ============ */
.df-pro-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.demo-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--sh-sm)}
.dc-tag{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:5px 11px;border-radius:var(--radius-sm);margin-bottom:14px}
.dc-tag.free{background:var(--fit-tint);color:var(--fit-deep)}
.dc-tag.paid{background:var(--fit-wash);color:var(--fit)}
.demo-card h3{font-size:17px;color:var(--slate);margin-bottom:6px}
.demo-card>p{font-size:13.5px;color:var(--muted);font-weight:500;line-height:1.6;margin-bottom:18px}
.demo-list{display:flex;flex-direction:column;gap:10px}
.free-row{display:flex;align-items:center;gap:12px;padding:13px 15px;border:1px solid var(--fit-line);border-radius:var(--radius-md);background:var(--bg-white)}
.free-row i{flex:none;width:38px;height:38px;border-radius:var(--radius-md);background:var(--fit-tint);color:var(--fit-deep);display:grid;place-items:center;font-size:15px}
.free-row b{display:block;font-size:14px;color:var(--slate);font-weight:700}
.free-row span{display:block;font-size:12px;color:var(--muted);font-weight:500;margin-top:1px}
.locked-row{display:flex;align-items:center;gap:14px;padding:14px 15px;border:1px dashed #d8cfc6;border-radius:var(--radius-md);background:linear-gradient(180deg,#fff,#fdf8f5);cursor:pointer;transition:.2s var(--ease);width:100%;text-align:left;font:inherit}
.locked-row:hover{border-color:var(--fit);box-shadow:var(--sh-sm)}
.locked-ico{flex:none;width:38px;height:38px;border-radius:var(--radius-md);background:var(--fit-wash);color:var(--fit);display:grid;place-items:center;font-size:15px}
.locked-body{flex:1;min-width:0}
.locked-body b{display:block;font-size:14px;color:var(--slate);font-weight:700}
.locked-body span{display:block;font-size:12px;color:var(--muted);font-weight:500;margin-top:1px}
.pro-pill{flex:none;display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:#8a6410;background:linear-gradient(180deg,#fbe6b4,#f3d178);border:1px solid #e0bc63;padding:5px 10px;border-radius:var(--radius-sm)}
.demo-note{font-size:12px;color:var(--muted);font-weight:500;line-height:1.55;margin-top:14px;display:flex;gap:8px}
.demo-note i{margin-top:2px;flex:none;color:var(--fit-deep)}

/* ============ 9 · KAPANIŞ CTA — ince koyu bookend ============ */
.df-cta{
  position:relative;overflow:hidden;text-align:center;color:#fff;
  background:
    radial-gradient(640px 300px at 50% 0%,color-mix(in srgb, var(--marka) 30%, transparent),transparent 62%),
    linear-gradient(180deg,rgba(33,30,22,.86) 0%,rgba(29,26,20,.9) 55%,rgba(24,22,16,.95) 100%),
    url('https://images.unsplash.com/photo-1571019614242-c5c5dee9f50b?w=1600&q=80&auto=format&fit=crop&exp=7&gam=6&sat=-14');
  background-size:cover;background-position:center 35%;
}
.df-cta>.wrap{position:relative;z-index:2}
.df-cta .eyebrow{color:var(--fit-bright);justify-content:center}
.df-cta .eyebrow::before{background:var(--fit)}
.df-cta h2{color:#fff;font-size:30px;letter-spacing:-.02em;margin:14px 0 12px}
.df-cta p{color:#cfc8be;font-weight:500;font-size:15px;max-width:480px;margin:0 auto 24px;line-height:1.6}
.df-cta-acts{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.df-cta-acts .btn-line{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.26)}
.df-cta-acts .btn-line:hover{border-color:#fff;background:rgba(255,255,255,.07);transform:translateY(-2px)}

/* ---- PRO-GATE modal (pro-v1 F1 — ücretli kilit) ---- */

/* ============ İMZA DİLİ YAYILIMI — full görsel + yeşil gradient + cam panel ============ */

/* --- TDEE köprü kartı: imza koyu-yeşil-görsel-cam varyantı (gunluk-kalori bağı) --- */
.df-tdee .eyebrow{color:var(--fit-bright)}
.df-tdee .eyebrow::before{background:var(--fit)}
.df-tdee .res-num{color:#fff}
.df-tdee .res-num small{color:#b9c2ba}
.df-tdee .res-cap{background:color-mix(in srgb, var(--marka) 20%, transparent);color:var(--marka-parlak-3)}
.df-tdee .kb{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12)}
.df-tdee .kb b{color:#fff}
.df-tdee .kb i,.df-tdee .kb b small,.df-tdee .kb span{color:#c7cfc8}
.df-tdee .kb.on{background:color-mix(in srgb, var(--marka) 20%, transparent);border-color:var(--fit)}
.df-tdee .kb.on i,.df-tdee .kb.on span{color:var(--marka-parlak-3)}
.df-tdee .df-burnadd{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16)}
.df-tdee .df-burnadd i{background:color-mix(in srgb, var(--marka) 22%, transparent);color:var(--marka-parlak-3)}
.df-tdee .df-burnadd b{color:#fff}
.df-tdee .df-burnadd span{color:#b9c2ba}
.df-tdee .bridge{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12)}
.df-tdee .bridge:hover{border-color:var(--fit-bright);transform:translateX(3px)}
.df-tdee .br-ico{background:color-mix(in srgb, var(--marka) 22%, transparent);color:var(--marka-parlak-3)}
.df-tdee .br-txt b{color:#fff}
.df-tdee .br-txt span{color:#b9c2ba}
.df-tdee .br-go{color:var(--marka-parlak-3)}

/* --- "Hedefin ne?" hedef seçici — full görsel kartlar + yeşil gradient --- */
.df-goals{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.df-goal{position:relative;display:flex;align-items:flex-end;min-height:290px;border-radius:var(--radius-lg);overflow:hidden;background-size:cover;background-position:center;cursor:pointer;transition:.3s var(--ease)}
.df-goal::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(33,30,22,.12) 28%,rgba(0,74,112,.6) 70%,rgba(0,52,80,.86));transition:.3s var(--ease)}
.df-goal:hover{transform:translateY(-6px);box-shadow:var(--sh-lg)}
.df-goal:hover::after{background:linear-gradient(180deg,rgba(33,30,22,.12) 18%,rgba(0,106,161,.62) 64%,rgba(0,77,118,.92))}
.df-goal-in{position:relative;z-index:2;padding:22px;width:100%}
.df-goal .gl-ico{width:44px;height:44px;border-radius:var(--radius-md);background:color-mix(in srgb, var(--marka) 92%, transparent);display:grid;place-items:center;color:#fff;font-size:18px;margin-bottom:13px}
.df-goal h4{color:#fff;font-size:19px;letter-spacing:-.01em;margin-bottom:4px}
.df-goal p{color:rgba(255,255,255,.84);font-size:12.5px;font-weight:500;line-height:1.45}
.df-goal .gl-go{display:inline-flex;align-items:center;gap:7px;margin-top:13px;font-size:12.5px;font-weight:700;color:var(--marka-parlak-3)}
.df-goal .gl-go i{transition:.2s var(--ease)}
.df-goal:hover .gl-go i{transform:translateX(3px)}

/* --- Beslenme × Hareket combo — spor görseli + yeşil gradient + cam yemek paneli --- */
/* ---- R11/M2+M16 · TARİF BANDI: sabit görselli parallax bölüm ----
   Kabuk yalnız düzeneği kuruyor (fit-shell.css/js "PARALLAX BAND");
   hangi görsel ve hangi perde olacağını band burada bildiriyor.

   R11/M16 · Beyar: "burada DadaGastro'nun rengi olması lazım, burada Fit
   rengi var." Bölüm DadaGastro köprüsü; perde ve vurgular Fit yeşilinden
   Gastro'nun marka rengine (#E14827) çevrildi.
   Perdenin kendisi koyu KALIYOR — metin beyaz, kontrast şart; yeşil yerine
   sıcak koyu (kavrulmuş) tona geçti, üstündeki turuncu vurgu onunla oturuyor.
   `--gs` = bu bölümün marka rengi; tek yerden döner. */
.df-recipe-band{
  position:relative;
  --gs:#E14827;                       /* DadaGastro marka rengi (literal —
                                         bu sayfada --fit YEŞİL'e swap'lı) */
  --gs-light:#ff8a68;                 /* koyu zeminde okunan açık tonu */
  background:#241611;                 /* görsel yüklenene kadarki zemin */
  --px-img:url('https://images.unsplash.com/photo-1490645935967-10de6ba17061?w=1800&q=80&auto=format&fit=crop&sat=-14');
  --px-veil:linear-gradient(180deg,rgba(30,17,12,.88) 0%,rgba(36,22,15,.74) 46%,rgba(24,14,10,.92) 100%);
  --px-y:42%;
}
.df-recipe-band .sec-head h2{color:#fff}
.df-recipe-band .sec-head .lead{color:rgba(255,255,255,.80)}
.df-recipe-band .eyebrow-gastro{color:#fff}
/* R11/M16 · Beyar: "etiket DadaGastro zaten ama FILLED TAG CHIP ile yapılmış,
   taglı olmasın DÜZ olsun." Zemin/kenarlık/dolgu kalktı; marka kilidi
   (Dada kalın + Gastro ince) duruyor, koyu bandda okunan açık tona geçti. */
.df-recipe-band .dg-mark{
  background:none;border:none;padding:0;border-radius:0;
  color:var(--gs-light);
}
/* ---- R13/K16 · MARKA LOCKUP'I: ayraç rengi + hiyerarşi ----
   (a) Ayraç çizgisi. Kabuktaki taban `.eyebrow::before{background:currentColor}`
   idi; bu sayfanın 43. satırındaki `.sec-fit .eyebrow::before{background:var(--fit)}`
   onu eziyordu → çizgi FİT YEŞİLİ çıkıyordu (ölçüldü: rgb(0,157,79)).
   Beyar: "ayraç çizgisi DadaGastro renginde olsun (yeşil değil)" ve
   "marka rengini kardeş markanın canlı sitesinden ölç".
   ÖLÇÜM (iki bağımsız yöntem, dadagastro.com/tarifler canlı):
     1) hesaplanmış stil `.r-facts i` → rgb(225,72,39)
     2) `build/assets/tokens-CKdF8VGW.css` → `:root{--tomato:#E14827}`
   İkisi de #E14827. Depodaki `--gs` literali zaten bu; yeni renk uydurulmadı.
   Beyar açık tonu (#ff8a68, kontrast 6.18:1) değil SAF marka rengini seçti
   (S13); koyu bandda ölçülen kontrast 3.51:1 — metin değil, dekoratif
   çizgi olduğu için WCAG 1.4.11'in metin-dışı 3:1 eşiğinin üstünde.
   (b) Hiyerarşi. Ölçüm: "DadaGastro" 11.5px, "KÖPRÜ İŞ BAŞINDA" 12px —
   yani marka yazısı komşusundan KÜÇÜKTÜ. Beyar: marka büyük ve belirgin,
   kuyruk yazısı ondan küçük. Marka 16px'e çıktı, kuyruk 10.5px'e indi
   (oran 1 : 1.52). "Gastro" ağırlığı 400 → 300: referansın kendi
   amblemiyle parite (`dadagastro.com` `.brand-word` → Dada 800 / Gastro 300,
   canlıdan ölçüldü). */
.df-recipe-band .eyebrow-gastro::before{background:var(--gs)}
.df-recipe-band .eyebrow-gastro{gap:12px}
.df-recipe-band .dg-mark i{font-size:15px}
.df-recipe-band .dg-wm{font-size:16px;letter-spacing:-.01em}
.df-recipe-band .dg-wm em{font-weight:300}
.df-recipe-band .eb-tail{font-size:10.5px;letter-spacing:.18em;color:rgba(255,255,255,.72)}
/* .see-all kabukta DOLU BEYAZ hap (`background:var(--paper)`); koyu bandın
   üstünde beyaz kutu içinde beyaz metin = görünmez düğme oldu. Banner CTA'sı
   için kabuğun kendi camsı dili var (`.lib-cta-ghost`) — aynı dil burada da
   kullanıldı, yeni bir görünüm uydurulmadı. */
.df-recipe-band .see-all{
  color:#fff;background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.26);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
}
.df-recipe-band .see-all:hover{
  background:rgba(225,72,39,.92);border-color:var(--gs);color:#fff;
}
/* wrap içeriği sabit görselin ÜSTÜNDE kalsın (.px-clip z-index:-1) */
.df-recipe-band>.wrap{position:relative;z-index:1}
/* ---- R11/M16 · TARİF KARTI (R27'de zemin opak beyaza çevrildi) ----
   Yapı kardeş markadan ÖLÇÜLEREK alındı (dadagastro.com `.r-card`,
   REVIZYON-12.md R27'de canlıdan tekrar ölçüldü, 2026-08-24):
     .r-card {border:1px solid var(--line);border-radius:var(--radius-lg);
              overflow:hidden;box-shadow:var(--sh-sm)}    -- R27: --line/--sh-sm zaten referansla birebir
     .r-media{height:200px;background-size:cover}
     .r-chip {position:absolute;top:13px;left:13px;background:#fffffff0;
              font-size:11.5px;font-weight:700;padding:6px 12px}
     .r-body {padding:17px 18px 19px}
     .r-body h4{font-size:18px;margin-bottom:11px}
     .r-facts{font-size:12.5px;color:var(--muted);margin-bottom:13px}
     .r-foot {margin-top:auto;padding-top:13px;border-top:1px solid var(--line)}
   R27 · Lead K-a: bant koyu KALIYOR, kart camsıdan OPAK BEYAZA döndü —
   zemin/kenarlık/gölge artık --bg-white/--line/--sh-sm (ÜÇÜ DE referansla
   birebir), metin renkleri koyu zemine göre --slate/--muted'e çevrildi.
   "Tarifi Gör" ve hover Fit paletinde kaldı (--fit-deep/--fit) — bandın
   Gastro turuncusu (`--gs`) karta sızmadı (K-a: renk DadaFit paletinde).
   Süre/zorluk/porsiyon/yazar/puan/görüntülenme referansta var ama bu
   depoda YOK; R11/M16'da uydurulmadığı gibi R27'de de uydurulmadı — gerçek
   veri (protein/kcal) korundu. */
/* ---- R13/K15 · KART YAPISI REFERANSA ÇEKİLDİ ----
   Beyar: "tarif kartları kardeş markanın kalıbına geçsin". Yapı
   `dadagastro.com/tarifler` CANLIDAN ölçüldü (@1440, 30 kart, hepsi
   birebir aynı) — hem hesaplanmış stil hem `kart-fMfp465y.css` kaynağıyla:
     .r-save   38×38 daire · abs 11/11 · rgba(255,255,255,.94) · ikon 15px · z2
     h4        18px/700 · line-clamp 2 · min/max-height 2lh (kart yüksekliği eşitlenir)
     h4 a::after inset:0 · z1  → tüm kart tıklanır (stretched link)
     .r-facts  tek satır nowrap · 12px/500 · ikon 12px · ikon-metin gap 5
               ayraç: ilk kalemden sonra margin-left:8 + padding-left:8 + border-left 1px
     .r-foot   margin-top:auto · pt 13 · border-top 1px · space-between · gap 10
     .av 28×28 daire · ad 12.5px/700 · puan 13px/700 · görüntülenme 12px/500
     ızgara 3 kolon · gap 24 (@1024 2 · @640 1)
   RENK DADAFIT PALETİNDE: referans künye ikonlarını ve dolu ₺ işaretini
   `--tomato` ile boyuyor; burada `--fit-deep`e çevrildi — bandın Gastro
   turuncusu (`--gs`) karta SİZMEDI. Yıldız `--yellow` (#FAC045): bu DadaFit'in
   kendi "yalnız puan" token'ı (fit-shell.css:94), Gastro'dan alınma değil. */
.rc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.rc-card{
  position:relative;                 /* stretched link (`h4 a::after`) için */
  display:flex;flex-direction:column;overflow:hidden;
  background:var(--bg-white);border:1px solid var(--line);
  border-radius:var(--radius-lg);
  box-shadow:var(--sh-sm);
  transition:.3s var(--ease);
}
.rc-card:hover{transform:translateY(-6px);box-shadow:var(--sh-lg)}
.rc-media{position:relative;height:200px;background-size:cover;background-position:center;transition:.5s var(--ease)}
.rc-card:hover .rc-media{transform:scale(1.04)}
/* kategori çipi — referansın `.r-chip`'i: beyaz hap, sol üst, 6/12 dolgu (opak kartta da değişmedi) */
.rc-chip{
  position:absolute;top:13px;left:13px;
  background:#fffffff0;color:var(--slate);
  font-size:11.5px;font-weight:700;letter-spacing:.02em;
  padding:6px 12px;border-radius:var(--radius-sm);
}
/* kaydet düğmesi — referansın `.r-save`'i. Referansta POST + `data-lg-gate`;
   DadaFit'in kendi giriş kapısı zaten aynı kancayı kullanıyor
   (fit-shell.js `[data-lg-gate]`, 10 sayfada canlı), yeni mekanizma
   UYDURULMADI. z-index:2 → stretched link'in üstünde kalır. */
.rc-save{
  position:absolute;top:11px;right:11px;z-index:2;
  width:38px;height:38px;border:0;border-radius:var(--radius-circle);
  background:#fffffff0;color:var(--slate);font-size:15px;
  display:grid;place-items:center;cursor:pointer;
  transition:background .2s var(--ease),transform .2s var(--ease);
}
.rc-save:hover{background:#fff;transform:scale(1.06)}
.rc-save:focus-visible{outline:3px solid var(--fit);outline-offset:2px}
.rc-body{padding:17px 18px 19px;display:flex;flex-direction:column;flex:1}
/* başlık iki satıra sabitlenir — referansın kart yükseklikleri bu yüzden
   tek değer (363px). `2lh` desteklenmeyen tarayıcıda em karşılığına düşer. */
/* Kırpma: referansta kural İKİ yerde — h4'te ve içindeki `a`da. Çalışan
   `a`dakidir: `.rc-body` bir flex kabı olduğu için h4 flex kalemidir ve
   tarayıcı onun `-webkit-box` değerini bloka çeviriyor (ölçüldü: h4'ün
   hesaplanmış `display`i hem burada hem Gastro'da `flow-root`). Burada
   yalnız `overflow:hidden` + 2lh vardı: iki satırı aşan başlık üç nokta
   OLMADAN kesiliyordu. Kartın referanstan sapan tek özelliği buydu. */
.rc-body h4{
  font-size:18px;color:var(--slate);letter-spacing:-.01em;margin-bottom:11px;
  overflow:hidden;min-height:2.24em;max-height:2.24em;
}
@supports (height:1lh){ .rc-body h4{min-height:2lh;max-height:2lh} }
.rc-body h4 a{color:inherit;text-decoration:none;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rc-body h4 a::after{content:"";position:absolute;inset:0;z-index:1}
.rc-body h4 a:focus-visible{outline:3px solid var(--fit);outline-offset:3px;border-radius:4px}
/* künye — tek satır, kalemler arası dikey ayraç (referansta gap YOK,
   ayraç margin-left:8 + padding-left:8 + border-left ile kuruluyor) */
.rc-facts{display:flex;align-items:center;flex-wrap:nowrap;
  font-size:12px;font-weight:500;color:var(--muted);margin-bottom:13px}
.rc-facts>*{display:flex;align-items:center;gap:5px;flex:none;white-space:nowrap}
.rc-facts>*+*{margin-left:8px;padding-left:8px;border-left:1px solid var(--line)}
.rc-facts i{font-size:12px;color:var(--fit-deep)}
.rc-cost{gap:1px;font-weight:700;letter-spacing:-.02em}
.rc-cost .rc-on{color:var(--fit-deep)}
.rc-cost .rc-off{color:#d6d6d6}
/* alt satır — referansın `.r-foot`'u: yazar solda, puan/görüntülenme sağda */
.rc-foot{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:auto;padding-top:13px;border-top:1px solid var(--line);
}
/* referansta `.r-author` bir BAĞLANTI (şef profili) olduğu için z-index:2
   taşıyor; DadaFit'te şef profili yok, yazar düz metin. z-index verilseydi
   stretched link'in üstünde kalır ve kartın alt satırı ölü bölge olurdu —
   ölçüldü (elementFromPoint yazar noktasında <b> döndü, bağlantı değil). */
.rc-author{display:flex;align-items:center;gap:9px;min-width:0}
.rc-av{flex:none;width:28px;height:28px;border-radius:var(--radius-circle);
  background-size:cover;background-position:center;background-color:var(--bg)}
.rc-author b{font-size:12.5px;font-weight:700;color:var(--slate);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rc-stats{display:flex;align-items:center;gap:12px;flex:none}
.rc-rate{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:700;color:var(--slate)}
.rc-rate i{font-size:13px;color:var(--yellow)}
.rc-views{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--muted)}
.rc-views i{font-size:12px}
/* ÖLÜ KURALLAR — R13/K15'te kartın alt satırı "Tarifi Gör" bağlantısından
   referansın yazar+puan satırına geçti; kartın kendisi artık stretched link.
   Kurallar SİLİNMEDİ (kabuk sözleşmesi), geri istenirse hazır dursun. */
.rc-macro b{color:var(--slate);font-weight:800}
.rc-go{
  display:inline-flex;align-items:center;gap:8px;margin-top:auto;padding-top:13px;
  border-top:1px solid var(--line);
  font-size:13px;font-weight:700;color:var(--fit-deep);
}
.rc-go i{font-size:11px;transition:transform .2s var(--ease)}
.rc-card:hover .rc-go i{transform:translateX(3px)}
/* ÖLÜ KURALLAR — R11/M16'da `.df-combo-*` kartları tarif kartına
   (`.rc-card`) dönüştü. Kurallar SİLİNMEDİ, kütüğe yazıldı
   (tasks/REVIZYON-11.md M16); combo dili geri istenirse hazır dursun. */
.df-combo-meal b{font-size:13px;color:#fff;font-weight:700;display:block;line-height:1.2}
.df-combo-meal span{font-size:11px;color:rgba(255,255,255,.78);font-weight:500}
.df-combo-meal .cm-go{margin-left:auto;color:var(--marka-parlak-3);font-size:13px;flex:none}

/* --- Kadın sporu / döngüne uyumlu — full görsel kapsayıcı band --- */
.df-women{position:relative;overflow:hidden;border-radius:var(--radius-xl);min-height:400px;display:flex;align-items:center;
  background:
    linear-gradient(100deg,rgba(33,30,22,.95) 36%,rgba(15,48,66,.62) 78%,rgba(0,63,95,.4) 100%),
    url('https://images.unsplash.com/photo-1544367567-0f2fcb009e0b?w=1500&q=80&auto=format&fit=crop&exp=7&gam=6&sat=-12');
  background-size:cover;background-position:center}
.df-women-in{position:relative;z-index:2;max-width:560px;padding:50px}
.df-women .eyebrow{color:var(--fit-bright)}
.df-women .eyebrow::before{background:var(--fit)}
.df-women h2{color:#fff;font-size:31px;letter-spacing:-.02em;margin:14px 0 12px}
.df-women p{color:#dfe6e0;font-weight:500;font-size:15px;line-height:1.65;margin-bottom:22px}
.df-women-tags{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:26px}
.df-women-tags span{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--marka-yikama-koyu);background:rgba(255,255,255,.1);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.16);padding:9px 14px;border-radius:var(--radius-sm)}
.df-women-tags i{color:var(--marka-parlak-3)}

/* ============ ESTETİK RAFİNE — gölge/lift tutarlılığı + premium his ============ */
.df-fcard,.df-coach,.demo-card{box-shadow:var(--sh-sm)}
.df-fcard:hover,.df-coach:hover{box-shadow:var(--sh-lg)}

/* ============ RESPONSIVE ============ */
@media (max-width:1024px){
  .df-hero{grid-template-columns:1fr;gap:30px;padding-bottom:40px}
  .df-bridge-card,.df-chal,.df-tdee{grid-template-columns:1fr;gap:28px;padding:32px}
  .hub-grid{grid-template-columns:1fr 1fr}
  .df-fcards,.df-coach-grid{grid-template-columns:1fr 1fr}   /* R11/M3: 4 → 2 */
  .df-pro-grid{grid-template-columns:1fr}
  .df-goals{grid-template-columns:1fr 1fr}
  .rc-grid{grid-template-columns:1fr 1fr}   /* R11/M16 */
  .df-women{min-height:340px}
  .df-women-in{padding:36px;max-width:none}
}
@media (max-width:640px){
  .df-goals,.rc-grid{grid-template-columns:1fr}   /* R11/M16 */
  .df-goal{min-height:200px}
  .df-women h2{font-size:23px}
  .df-women-in{padding:28px}
  .df-top{padding-top:62px}   /* BANNER KURALI: mobil min-height:100vh kaldirildi */
  .df-hero{padding:18px 0 34px}
  .df-hmain h1{font-size:30px}
  .df-hmain .lead{font-size:14.5px}
  .df-ledger,.df-bridge-card,.df-chal,.df-tdee{padding:24px}
  .df-bc-main h2,.df-chal h2,.df-cta h2{font-size:23px}
  .hub-grid,.hub-grid.cols3,.df-fcards,.df-coach-grid{grid-template-columns:1fr}
  .df-daygrid{grid-template-columns:repeat(10,1fr)}
  .df-chal-meta{gap:20px}
  .res-num{font-size:38px}
  /* R8/21: @640 alti alt alta — arama once, filtre sonra */
  .df-toolrow{flex-direction:column;align-items:stretch;gap:14px}
  /* ÖZ ELEŞTİRİ 1: burada `order:-1` vardı — @390'da arama görsel olarak
     filtreden ÖNCE geliyordu ama DOM'da SONRA. Ekran okuyucu ile gören
     kullanıcı farklı sıra duyuyordu ve masaüstündeki soldan-sağa okuma
     (filtre → arama) mobilde yukarıdan-aşağıya karşılığını kaybediyordu.
     order kaldırıldı: her genişlikte DOM sırası = görsel sıra. */
  .df-toolrow .df-search{flex:1 1 auto;max-width:none}
  .df-toolrow .df-filterbar{min-height:0}
  .df-filterbar{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}
  .df-filterbar::-webkit-scrollbar{display:none}
  .df-fchip{flex:none;white-space:nowrap}
}

