
/* ===== SAYFA CSS — kabuk CSS'i assets/css/dd-shell.css'te ===== */
/* =====================================================================
   KAÇ KALORİ? — yazı şablonu. Modülün on iki yazısının hepsi bu şablonu
   kullanır; bu dosya tam kurulmuş örnektir (fırında pişmiş bal kabağı).

   BÖLÜM SIRASI referansın kendi detay sayfasından BİREBİR ölçüldü
   (kaynak sistemin puf-noktalari/firinda-pismis-bal-kabagi-kac-kalori sayfası):
     1 breadcrumb + künyeli başlık (kategori · yazar · tarih · son
       güncelleme · okunma · okuma süresi)
     2 kısa cevap + soru başlıklı gövde
     3 okuyucu uyarısı kutusu — GÖVDENİN HEMEN ARDINDA, etiketlerden ÖNCE
     4 etiketler + paylaş
     5 konunun geçtiği içerikler (referansta "bu püfün geçtiği tarifler")
     6 "bunlar da işine yarar" — referansın liste kartıyla aynı ızgara
   Referansta olup burada bilinçli olarak OLMAYAN: yorumlar ve puanlama —
   public tarafta ikisinin de bileşeni yok, üretmek yeni sınıf ailesi
   demekti (9. turun ipuçları kararıyla aynı gerekçe). Referansın kendisi
   de kalori tablosu taşımıyor; porsiyon karşılıkları anlatı içinde verilir.

   YENİ SINIF YOK. Kullanılan yapılar ve geldikleri yer:
     .reh-hero / .reh-hero-article / .reh-arthero / .reh-artmain /
     .reh-htrust / .reh-article / .qa-list / .qa / .qa-head / .qa-ico /
     .qa-car / .qa-body / .qa-sub / .reh-note / .reh-note-lg /
     .nut-row / .nr-ico / .macro-note / .prog-tags / .prog-tag /
     .qz-share / .shr-pop / .share-btn / .lbl / .hub-grid / .hub-card /
     .hub-body h4 / .hub-foot .go              ← beslenme-ipucu-detay-v1
     .hub-body{…} / .hub-foot{…} KONTEYNER kuralları / .qa-head
                                                ← dd-shell.css (kabuk, B1/B2 kararı 2026-08-24)
     .rd-crumb                                 ← beslenme-hub-v1
     .pufl-grid                                ← kac-kalori-v1
     .puf-card / .puf-fig / .puf-ico / .puf-body /
     .puf-tag                                  ← dd-shell.css (kabuk)
     .sec / .sec-head / .see-all / .lead / .eyebrow ← dd-shell.css (kabuk)
   ===================================================================== */

/* ---- HERO (makale varyantı — kardeş modülle birebir; paralaks kabuktan) ---- */
.rd-crumb{display:flex;align-items:center;flex-wrap:wrap;gap:9px;padding:18px 0 14px;font-size:13px;font-weight:500;color:var(--muted)}
.rd-crumb a{color:var(--muted);transition:.18s}
.rd-crumb a:hover{color:var(--green-deep)}
.rd-crumb i{font-size:9px;color:#c7c7c7}
.rd-crumb b{color:var(--slate);font-weight:700}
.reh-hero{position:relative;background-color:#15241c;background-image:linear-gradient(90deg,rgba(18,28,22,.94),rgba(20,32,25,.74)),url('varliklar/_dis/images.unsplash.com/photo-1570586437263-ab629fccc818.avif');background-size:cover;background-position:center;overflow:hidden;padding:128px 0 46px}
.reh-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(760px 320px at 82% -10%,rgba(0,154,68,.20),transparent 60%),linear-gradient(180deg,rgba(18,28,22,0) 60%,rgba(16,26,20,.6));pointer-events:none}
.reh-hero .wrap{position:relative;z-index:2}
.reh-hero .rd-crumb{color:#bcd0c4;padding-bottom:18px;font-size:13px}
.reh-hero .rd-crumb a{color:#bcd0c4}
.reh-hero .rd-crumb a:hover{color:#99d7b4}
.reh-hero .rd-crumb i{color:rgba(255,255,255,.4)}
.reh-hero .rd-crumb b{color:#fff}
.reh-hero .eyebrow{color:#99d7b4}
.reh-hero .eyebrow::before{background:var(--green)}
.reh-hero h1{color:#fff;font-size:38px;margin:12px 0 12px;letter-spacing:-.03em;text-shadow:0 2px 24px rgba(0,0,0,.25)}
.reh-hero h1 .accent{color:#7fcca1}
.reh-hero .lead{color:#e3ede7;font-weight:500;font-size:16px;max-width:620px;text-shadow:0 1px 14px rgba(0,0,0,.3)}
.reh-arthero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:44px;align-items:center;padding-top:4px}
/* ---- KÜNYE SATIRI — YATAY, BAŞLIĞIN ALTINDA (Beyar #R1, 2026-08-24) ----

   🔴 BU BİR GERİ ALIŞTIR. Aynı gün 19:39'daki tur bu bloğu dikey sayaç
   sütununa çevirmişti; Beyar ölçüp reddetti — bu banner'ın kardeş markadaki
   karşılığı bu değil dedi.

   ⚠ Beyar'ın cümlesi buraya BİREBİR alınamadı ve bu bir üslup tercihi değil:
   cümle kardeş markanın adını geçiriyor, bu blok inline `<style>` içinde
   HTTP GÖVDESİNE basılıyor ve `§Diyet md.3(a)` o dizgiyi gövdede istisnasız
   yasaklıyor — whitelist bile kabul etmiyor. Alıntı anlamı korunarak
   markasız yazıldı. (Bu satırın kendisi de o hatanın kaydıdır: ilk hâli
   alıntıyı aynen taşıdı ve `BrandLeakGateTest`i üç testte kırmızı düşürdü.)

   NEDEN YANLIŞTI — kardeş markanın İKİ ayrı banner grameri var, tur ikisini
   tek kanon sandı:

     • LİSTE banner'ı  → sağda dikey sayaç sütunu, `border-left` ayraçlı.
       (Bizde `/programlar` · `/hesaplayicilar` · `/araclar` böyle. DOĞRU.)
     • DETAY banner'ı  → başlığın altında TEK YATAY künye satırı: yazar,
       tarih, okunma, okuma süresi; aralarında ince ayraç. Sayı büyütülmez.

   19:39 turu ölçümünü kardeş markanın LİSTE sayfasından aldı ve DETAY
   şablonlarına uyguladı. Sonuç: tarihler 29px'e çıktı, sütun banner'ı iki
   katına uzattı, künye satırı diye bir şey kalmadı.

   ÖLÇÜLDÜ (1440px, kardeş markanın püf noktası DETAY sayfası, künye satırı):
   `display:flex` · `flex-direction:row` · `flex-wrap:wrap` ·
   `gap:12px 16px` · `align-items:center` · kalem 13px/600.
   Bu dosyanın zaten taşıdığı değerler (`gap:14px 22px`, 13px/600) aynı
   gramerin bizdeki hâli ve `beslenme-ipuclari-v1.css:40-43`,
   `kac-kalori-v1.css:53-56`, `diyet-puf-noktalari-v1.css:56-59` üçünde de
   BİREBİR duruyor — yani geri alınan şey zaten kanonun kendisiydi.
   Yeni renk/ölçü/sınıf ÜRETİLMEDİ, tek yapılan o üç dosyadaki kurala
   dönmek oldu.

   ⚠ Markup da geri alındı: blok yeniden `.reh-artmain`in İÇİNDE, spot
   metnin hemen ardında. `.reh-arthero` ızgarası böylece iki kolonuna
   döner — solda eyebrow→başlık→spot→künye, sağda yazar kartı.

   ⚠ Kaynak adresin ADI buraya YAZILMAZ: kaynak-kod marka kapısı bu dizgiyi
   yakalar ve bilinen tabanı yükseltir. */
.reh-htrust{display:flex;flex-wrap:wrap;gap:14px 22px;margin-top:22px}
.reh-htrust span{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#cfe6da}
.reh-htrust i{color:var(--green);font-size:13px}
.reh-htrust b{color:#fff;font-weight:700}

/* ---- yazar satırı — künyenin ilk parçası (.nut-row koyu zemin varyantı) ---- */
.nut-row{display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.20);border-radius:var(--radius-md);padding:13px 16px;backdrop-filter:blur(4px);max-width:340px;margin-top:22px}
.nut-row .nr-ico{flex:none;width:42px;height:42px;border-radius:var(--radius-md);background:rgba(255,255,255,.14);display:grid;place-items:center;color:#99d7b4;font-size:17px}
.nut-row b{font-size:14.5px;color:#fff;display:block}
.nut-row span{font-size:12.5px;color:#cfe6da;font-weight:500}

/* ---- MAKALE GÖVDESİ (soru başlıklı akordeon — kardeş modülle birebir) ---- */
.reh-article{max-width:860px}
.qa-list{display:flex;flex-direction:column;gap:12px}
.qa{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;transition:border-color .25s var(--ease),box-shadow .25s var(--ease)}
.qa.open{border-color:rgba(0,154,68,.4);box-shadow:var(--sh-sm)}
/* .qa-head / .qa.open .qa-head BURADA TANIMLI DEĞİL — B2 kararı (Beyar,
   2026-08-24): 22 kopyanın hepsi kanon olarak dd-shell.css'e taşındı (açık
   durumdaki alt ayraç dahil), yerel kopya buradan silindi. */
.qa-ico{flex:none;width:34px;height:34px;border-radius:var(--radius-md);background:var(--tomato-tint);color:var(--tomato-deep);display:grid;place-items:center;font-size:14px}
.qa-car{margin-left:auto;flex:none;font-size:12px;color:var(--muted);transition:transform .25s var(--ease)}
.qa.open .qa-car{transform:rotate(180deg);color:var(--tomato-deep)}
.qa-body{max-height:0;overflow:hidden;transition:max-height .32s var(--ease)}
.qa-body p{padding:0 26px 18px 70px;font-size:14.5px;color:var(--slate-2);font-weight:500;line-height:1.7}
.qa-body p+p{padding-top:0;margin-top:-6px}
.qa-body .qa-sub{padding:2px 26px 10px 70px;font-size:13.5px;font-weight:700;color:var(--slate)}

/* ---- ETİKETLER + PAYLAŞ (test-detay-v1 paylaş dili birebir) ---- */
.qz-share{position:relative;display:inline-block}
.share-btn{width:34px;height:34px;border-radius:var(--radius-circle);border:1px solid var(--line);background:var(--paper);color:var(--slate-2);display:grid;place-items:center;font-size:13px;cursor:pointer;transition:.2s var(--ease);font-family:inherit;text-decoration:none}
.share-btn:hover{transform:translateY(-2px);color:#fff}
.share-btn.xx:hover{background:#111;border-color:#111}
.share-btn.wa:hover{background:#25D366;border-color:#25D366}
.share-btn.cp:hover{background:var(--green);border-color:var(--green)}
.share-btn.ok,.share-btn.ok:hover{background:var(--tomato-deep);border-color:var(--tomato-deep);color:#fff}
.shr-pop{display:flex;align-items:center;gap:9px}
.shr-pop .lbl{font-size:13px;color:var(--muted);font-weight:600}
.prog-tags{display:flex;flex-wrap:wrap;gap:8px}

/* ---- Kartta etiket ile başlık arasındaki nefes ----
   ÖLÇÜLDÜ (tarayıcı, 1440px): bu sayfada `.hub-body > .prog-tags` ile hemen
   altındaki `h4` arası 0px idi — tür etiketi (Kütüphane / Hesaplayıcı /
   Rehber) başlığa yapışıyordu.
   KANON 12px: aynı `.hub-body` kartını basan iki bağımsız aile de 12px
   ölçüyor — `/beslenme-ipuclari/liste` (beslenme-ipuclari-v1.css:82,
   `.prog-tags{...margin-bottom:12px}`) ve `/beslenme-rehberi`
   (articles/index + card-hub-genel kartı, aynı dosya). Yeni ölçü
   ÜRETİLMEDİ, değer kanondan alındı.
   Seçici neden `.hub-body` ile daraltıldı: aynı `.prog-tags` bu sayfanın
   "Etiketler + Paylaş" satırında da var ve orası `.macro-note` flex satırı
   (`align-items:center`); oraya alt boşluk girerse etiketler yukarı kayar,
   yani düzeltme ikinci bir kusur doğururdu. */
.hub-body .prog-tags{margin-bottom:12px}
.prog-tag{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--slate-2);background:#E3F4EA;border:1px solid #c9ead8;padding:6px 11px;border-radius:var(--radius-sm)}
.prog-tag i{color:var(--green);font-size:11px}
.macro-note{display:flex;align-items:center;flex-wrap:wrap;gap:16px;font-size:12.5px;color:var(--muted);font-weight:500;margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}

/* ---- KONUNUN GEÇTİĞİ İÇERİKLER (görselsiz .hub-card) ----
   `.hub-body{…}` ve `.hub-foot{…}` KONTEYNER kuralları BURADA TANIMLI
   DEĞİL — B1 kararı (Beyar, 2026-08-24): 13 kopyanın hepsi kanon olarak
   dd-shell.css'e taşındı (`.hub-foot`in `margin-top` düzeltmesi de orada).
   Alt seçiciler (h4/p/.go) kanona GİRMEDİ, sayfaya özel kaldı. ---- */
.hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.hub-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;cursor:pointer;transition:.3s var(--ease)}
.hub-card:hover{transform:translateY(-6px);border-color:#dcdcdc;box-shadow:var(--sh-md)}
.hub-body h4{font-size:16.5px;margin-bottom:8px;letter-spacing:-.01em}
.hub-card:hover .hub-body h4{color:var(--green-deep)}
.hub-body p{font-size:13.5px;color:var(--muted);font-weight:500;line-height:1.55}
.hub-foot .go{display:inline-flex;align-items:center;gap:7px;color:var(--green-deep);font-weight:700}
.hub-foot .go i{transition:.2s var(--ease)}
.hub-card:hover .hub-foot .go i{transform:translateX(3px)}

/* ---- "BUNLAR DA İŞİNE YARAR" — referansta liste kartının aynısı ---- */
.pufl-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}

/* ---- BİLGİLENDİRME NOTU ---- */
.reh-note{display:flex;gap:14px;align-items:flex-start;margin-top:30px;background:var(--tomato-tint);border:1px solid #bae4cc;border-radius:var(--radius-lg);padding:18px 20px}
.reh-note>i{color:var(--tomato-deep);font-size:18px;margin-top:2px;flex:none}
.reh-note p{font-size:14px;color:var(--slate-2);font-weight:500;line-height:1.6}
.reh-note p a{color:var(--tomato-deep);font-weight:700}
.reh-note-lg{margin-top:26px;padding:24px 26px}
.reh-note-lg .btn{margin-top:14px}

/* ---- responsive ---- */
@media(max-width:1024px){
  .reh-arthero{grid-template-columns:1fr;gap:26px}
  .hub-grid{grid-template-columns:1fr 1fr}
  .pufl-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
  .reh-hero{padding:96px 0 34px}
  .reh-hero h1{font-size:27px}
  .hub-grid{grid-template-columns:1fr;gap:18px}
  .qa-body p{padding-left:26px}
  .qa-body .qa-sub{padding-left:26px}
}

/* Kaynak künyesi bloğu — prototipte karşılığı YOK, Beyar kararı A ile eklendi.
   Yalnız var olan token'lar kullanılır (tokens/kabuk CSS'i), yeni renk/radius
   icat edilmez (component-token.md §6). Sayfa CSS'ine dokunmaz. */
.dd-sources{margin-top:28px;padding-top:18px;border-top:1px solid var(--line)}
.dd-sources h3{font-size:14px;font-weight:800;color:var(--slate);margin:0 0 10px}
.dd-sources ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.dd-sources li{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;line-height:1.55;color:var(--muted)}
.dd-sources li i{color:var(--green);font-size:11px;margin-top:4px;flex:none}
.dd-sources a{color:var(--green-deep);font-weight:700;text-decoration:none}
.dd-sources a:hover{text-decoration:underline}
.dd-sources b{color:var(--slate-2);font-weight:700}
.dd-src-portion,.dd-src-date{display:inline-block;margin-left:6px}
.dd-src-date{opacity:.8}
