/* ==========================================================================
   Tarifler (Taste) — kalip katmani
   --------------------------------------------------------------------------
   Ortak katmanin (ghost-ortak.css) ustune biner.

   TARIFLERIN KALIBI: gorsel ve adim.
   Blogda metin ana icerik, burada gorsel. Tarif okunmaz, TAKIP EDILIR: goz
   surekli malzemeyle adim arasinda gidip gelir. Bu yuzden listeler ve
   basliklar blogdakinden daha belirgin, satir uzunlugu daha kisa.

   KASITLI FARK: display baslik serif.
   Taste EB Garamond ile geliyor ve bu korunuyor. Uc mulk ayni aileden ama
   ayni kalipta degil; farkin nerede oldugu bilincli olarak seciliyor.
   Govde ve arayuz yazisi yine Montserrat, yani aile bagi tipografide
   kopmuyor.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Serif yalnizca display basliklarda
   --------------------------------------------------------------------------
   Taste serif'i BODY seviyesinde uyguluyor: <body class="... is-font-serif">.
   Yani varsayilan olarak malzeme listesi de, adimlar da serif oluyordu.
   Tarif okunmaz, TAKIP EDILIR; goz malzemeyle adim arasinda ziplarken sans
   daha kolay taraniyor. Ayrica govde yazisinin uc mulkte ayni olmasi aile
   bagini tasiyan ana unsur.
   Bu yuzden serif geri alinip yalnizca basliklara veriliyor. Secici body
   sinifi kadar ozgul olmali, yoksa temanin kurali kazaniyor.
   -------------------------------------------------------------------------- */

/* Taste yazi tipini soyle yaziyor:
       font-family: var(--gh-font-body, var(--font-serif))
   Yani temanin kendi genislet me noktasi var. Ozgullukle yarismak yerine
   (temanin secicileri :not([class*=...]) zincirleriyle epey yuksek) bu iki
   degisken tanimlaniyor; tema kendi kurallarinda otomatik olarak bunlari
   kullaniyor. Tek satirla butun govde ve baslik ailesi yonetiliyor. */
:root {
    --gh-font-body: 'Montserrat', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --gh-font-heading: 'EB Garamond', Georgia, 'Times New Roman', serif;
}

/* --------------------------------------------------------------------------
   Baslik duzeni: logo solda
   --------------------------------------------------------------------------
   Taste masaustunde basligi ortaliyor (menu | logo | aksiyonlar). Ana site
   ve blog logoyu solda tutuyor; ayni ailenin uc mulkunde gezinme cubugunun
   capasi ayni yerde olmali. Ortak katman navbar'in olculerini esitliyor,
   siralama ise Taste'e ozgu oldugu icin burada.
   -------------------------------------------------------------------------- */

/* Serit siralamasi yalnizca masaustu duzeninde gecerli: 1200 altinda
   hamburger ve tam ekran menu var, oradaki yerlesimi ortak katman
   yonetiyor. Blok 992'de baslarken 992-1199 araliginda mobil menuyle
   catisiyordu. */
@media (min-width: 1200px) {
    #gh-head .gh-head-brand {
        grid-column: 1;
        justify-self: start;
    }

    /* justify-self: start VERILMEZ: kutu icerigi kadar daralinca temanin
       tasma betigi maddeleri "..." dugmesi altina topluyor. Kutu esnek
       kalir, hiza listenin kendi isi. */
    #gh-head .gh-head-menu {
        grid-column: 2;
    }

    #gh-head .gh-head-actions {
        grid-column: 3;
        justify-self: end;
    }
}

/* --------------------------------------------------------------------------
   Yazi kabinin ekseni
   --------------------------------------------------------------------------
   Taste .gh-canvas'i isimli izgara satirlariyla kuruyor ve dis payi kendi
   --gap degiskeninden aliyor: mobilde 20px, 1013px ekranda 31.4px. Ayni
   sayfada navbar, kart izgarasi ve footer ise ailenin ekseninde (mobilde
   15px, masaustunde 41.4px) duruyordu; tarif kapak gorseli 10px iceriden
   basliyor, kayik gorunuyordu.

   Izgaranin kendisi korunuyor - full/wide/main izleri Taste'in kalibinin
   parcasi ve tam tasan gorseller onlarla calisiyor. Degisen yalnizca
   izlerin genisligi:
     dis iz    1fr   -> kap neredeyse ana sitenin container'i kadar
     wide izi  (kap - okuma olcusu) / 2, yani genis gorsel tam kap kadar
     main izi  okuma olcusu (mobilde kabin tamami)
   -------------------------------------------------------------------------- */

.gh-canvas {
    --da-kap: calc(100% - 30px);
    --da-okuma: min(calc(100% - 30px), 720px);

    grid-template-columns:
        [full-start] minmax(0, 1fr)
        [wide-start] minmax(0, calc((var(--da-kap) - var(--da-okuma)) / 2))
        [main-start] var(--da-okuma) [main-end]
        minmax(0, calc((var(--da-kap) - var(--da-okuma)) / 2)) [wide-end]
        minmax(0, 1fr) [full-end];
}

/* Kap genisligi ana sitenin container olcegiyle ayni basamaklarda.
   (Degerlerden 30px dolgu dusulmus hali yaziliyor.) */
@media (min-width: 576px)  { .gh-canvas { --da-kap: 510px; } }
@media (min-width: 768px)  { .gh-canvas { --da-kap: 690px; } }
@media (min-width: 992px)  { .gh-canvas { --da-kap: 930px; } }
@media (min-width: 1200px) { .gh-canvas { --da-kap: 1110px; } }
@media (min-width: 1400px) { .gh-canvas { --da-kap: 1290px; } }

/* Tariflerde de govde bir tik kuculuyor ama BLOGDAN DAHA AZ: burada metin
   malzeme ve adim listelerinden olusuyor, satirlar zaten kisa; mutfakta
   telefondan okunuyor olmasi da puntoyu fazla dusurmemeyi gerektiriyor. */
.gh-content {
    --icerik-govde: 16.5px;
}

@media (max-width: 767px) {
    .gh-content {
        --icerik-govde: 16px;
    }
}

body.is-font-serif .gh-content > p,
body.is-font-serif .gh-content > ul > li,
body.is-font-serif .gh-content > ol > li {
    font-size: var(--icerik-govde);
}

/* Gezinme cubugu arayuz yazisidir, display basligi degil: uc mulkte de
   Montserrat. Blogda (Solo) zaten oyle; Taste serif'i menu ve butonlara da
   tasiyordu. Olculdu: blog 18.2px/600 Montserrat, tarifler ayni olculerde
   ama EB Garamond ile ciziliyordu. */
#gh-head .nav a,
#gh-head .gh-head-actions a,
#gh-head .gh-head-actions button,
#gh-head .nav-more-toggle {
    font-family: var(--da-font);
}

.gh-article-title,
.gh-card-title,
.gh-header-title {
    font-weight: var(--da-agirlik-kalin);
    letter-spacing: 0;
}

.gh-article-title {
    line-height: 1.12;
}

/* --------------------------------------------------------------------------
   Tarif govdesi
   Malzeme ve adim listeleri tarifin omurgasi; okunakli ve taranabilir
   olmalari gerekiyor.
   -------------------------------------------------------------------------- */

/* Okuma olcusu. Olculdu: 85 karakter; malzeme satirlari kisa oldugu icin
   listelerde sorun degil ama giris paragrafi ve diyetisyen notu bu genislikte
   zor okunuyor. Tipografide onerilen 45-75 araligina cekiliyor.
   Solo'nun aksine Taste icerigi izgaraya oturtmuyor, dogrudan genislik
   isliyor; bu yuzden buradaki kural gercekten etkili. */
.gh-content > p,
.gh-content > ul,
.gh-content > ol,
.gh-content > h2,
.gh-content > h3,
.gh-content > blockquote {
    max-width: 620px;
    /* width: 100% sart. .gh-content bir grid; grid ogesine yalnizca
       margin-inline: auto verilirse oge stretch'i birakip ICERIGI KADAR
       daralir ve ortalanir. Uzun paragraflar max-width'e dayandigi icin
       sorun gorunmuyordu, kisa listeler (sos malzemeleri, besin degerleri)
       daralip saga kayiyordu. width: 100% ogeyi sutuna yayar, max-width
       sinirlar, margin ortalar. */
    width: 100%;
    /* Hizalama grid'in kendi diliyle veriliyor. Otomatik marj burada
       guvenilir degil: tema bazi ogelerin marjini kendi kurallariyla
       sifirliyor ve basliklar govde metninden 50px solda asili kaliyordu.
       justify-self ogeyi kendi grid alaninda ortalar, marj tartismasi
       kalmaz. */
    justify-self: center;
}

/* MARJ VERMEYIN. Ghost basliklara `id` uretiyor ve Taste bosluk sistemini
   ona baglamis:
     .gh-content > [id]                 { margin: 0 }              (0,2,0)
     .gh-content > [id]:not(:first-child){ margin-top: 1.6em }     (0,3,0)
     .gh-content > [id] + *             { margin-top: 1em }        (0,2,0)
   Buradaki `.gh-content > h2` (0,1,1) bunlarin hicbirini yenmiyor. Once
   burada margin-top/bottom yaziliydi ve olculdugunde hicbir etkisi
   olmadigi goruldu -- calisiyormus gibi duran olu kod. Temanin ritmi
   zaten dogru (baslik ustu 1.6em, baslik alti 1em); yalnizca punto
   ayarlaniyor. */
.gh-content > h2 {
    font-size: 26px;
    line-height: var(--da-satir-siki);
}

.gh-content > h3 {
    font-size: 20px;
}

/* Temanin blockquote kurali `margin-top: 3.2em !important` ve "baslik
   altindaki oge 1em" kuralini eziyor: "Diyetisyen notu" basligi kendi
   kutusundan 63px yukarida asili kaliyordu, oysa her baslik icerigine
   19.8px uzakta. Kutu basligina baglaniyor.
   Sonrasindaki bolum basligi da 83.2px yerine normal bolum araligina
   (1.6em) donuyor.
   !important zorunlu: temanin kurallari da !important, esitlikte
   ozgulluk belirliyor -- (0,2,1) > (0,1,1). */
.gh-content > [id] + blockquote {
    margin-top: 1em !important;
}

.gh-content > blockquote + [id] {
    margin-top: 1.6em !important;
}

/* Malzemeler ve yapilis: madde arasi bosluk metin icindekinden genis, cunku
   goz bu listelerde satir satir ilerlemiyor, madde madde ziplar. */
.gh-content > ul,
.gh-content > ol {
    padding-left: 1.25em;
    line-height: var(--da-satir-govde);
    /* Madde metni zaten govde puntosunda ama listenin KENDI puntosu
       temadan 19.8px geliyordu; madde isaretleri (nokta ve numara) o
       olcuden ciziliyor ve metinden bir kademe iri duruyordu. */
    font-size: var(--da-olcek-govde);
}

.gh-content > ul > li,
.gh-content > ol > li {
    margin-bottom: var(--da-bosluk-3);
    padding-left: .25em;
}

.gh-content > ol > li::marker {
    color: var(--da-yesil-metin);
    font-weight: var(--da-agirlik-cok-kalin);
}

.gh-content > ul > li::marker {
    color: var(--da-turuncu);
}

/* --------------------------------------------------------------------------
   Diyetisyen notu
   Tariflerdeki blockquote yalnizca alinti degil, uzman yorumu. Ortak
   katmandaki krem zeminli kutu burada biraz daha belirgin.
   -------------------------------------------------------------------------- */

.gh-content blockquote {
    border-left-width: 4px;
    line-height: var(--da-satir-govde);
}

/* --------------------------------------------------------------------------
   Liste ve etiketler
   -------------------------------------------------------------------------- */

.gh-list-item-primary-tag,
.gh-article-meta-tag {
    color: var(--da-turuncu-metin);
    font-family: var(--da-font);
    font-weight: var(--da-agirlik-cok-kalin);
    letter-spacing: .08em;
    text-transform: uppercase;
    font-size: var(--da-olcek-kucuk);
}

.gh-card-wrapper {
    padding: var(--da-kart-dolgu);
}

/* --------------------------------------------------------------------------
   Dar ekranda display olcegi
   --------------------------------------------------------------------------
   Taste butun puntolari `calc(<rem> * var(--font-multiplier))` ile yaziyor
   ve `is-font-serif` govdeye 1.1 carpani koyuyor. Serif kalibi icin
   dogru bir tercih ama carpan mobilde de aynen geciyor; 375px'te olculdu:

     hero basligi            41.5px
     one cikan kart basligi  37.8px   (magazine ilk kart, carpan 1.26)
     digerleri               22px
     one cikan ozet          18.75px

   Hero, tarifler kalibinin imzasi -- kaldirilmiyor, kademe indiriliyor.
   One cikan kart 375px'te uc satira sariyordu; 24px'te iki satir.

   One cikan kartin secicisi temada (0,4,0); ayni secici birebir
   tekrarlaniyor, esitlikte kaynak sirasi bu dosyayi kazandiriyor.
   -------------------------------------------------------------------------- */

@media (max-width: 767px) {
    .gh-header-primary {
        font-size: 28px;
    }

    /* Alt satir temada 2.4rem x 1.1 = 26.4px; baslik 28'e inince ikisi
       neredeyse esitlenip hiyerarsi kayboluyordu. Ustelik sans oldugu icin
       serif baslikten daha iri okunuyor. Govde olcegine iniyor. */
    .gh-header-secondary {
        font-size: var(--da-olcek-govde);
    }

    /* Hero'daki "abone ol" alani gercek bir form degil: tek bir <button>,
       icinde sahte yer tutucu metin ve <span> etiket. Temada 2rem x 1.1 =
       22px; 345px genislikte hem yer tutucu hem etiket satir atliyor,
       "Abone ol" iki satira bolunuyordu (kullanicinin bildirdigi kusur).
       Punto dusunce ikisi de tek satira sigiyor; dokunma hedefi 48px'lik
       ic yukseklikle korunuyor. */
    /* Abone ol alani artik ortak katmanda tek dilde (bkz. ghost-ortak.css);
       buradaki mobil yama kaldirildi. */

    .gh-list.grid.magazine .gh-list-item:first-child .gh-list-item-title {
        font-size: 24px;
    }

    .gh-list-item-title {
        font-size: 18px;
    }

    .gh-list-item-excerpt {
        font-size: var(--da-olcek-govde);
    }
}

/* ==========================================================================
   Tarif listesi — kart izgarasi
   --------------------------------------------------------------------------
   Taste'in "magazine grid" akisi geliyordu: 1280px'te DORT sutun, kartlar
   242px genisliginde, basliklar 22px, kabuk yok (gorsel + metin dogrudan
   zeminin uzerinde). Uc tarif oldugu icin ilk satirda iki sutun bos
   kaliyor, sayfa yarim kalmis gibi duruyordu. One cikan ilk kartin basligi
   ise 52.5px -- yazi sayfasinin kendi basligindan (44px) buyuk.

   Yeni duzen ana site ve blogla ayni iskelet: 1/2/3 sutun, ayni kirilma
   noktalari, ayni kart kabugu (beyaz zemin, ince kenarlik, 16px yaricap,
   hover'da 4px yukselme).

   KALIP FARKI KORUNUYOR -- degisen kabuk, icerik degil:
     - metin ortali (blogda sola dayali)
     - serif baslik (blogda Montserrat)
     - ustte turuncu kategori satiri (blogda tarih + okuma suresi altta)
     - one cikan ilk kart tam genislikte, gorsel bir yanda metin diger yanda
     - 3/2 kapak (blogda 16/9) -- yemek fotografi daha kare bir kadraj ister

   OZGULLUK NOTU: Taste bu kurallari `.gh-list.grid...` zincirleriyle (0,4,x)
   yaziyor. Ayni agirliga cikmak icin seciciler birebir tekrarlaniyor;
   esitlikte kaynak sirasi bu dosyayi kazandiriyor.
   ========================================================================== */

/* Sutun sayisi. Temanin en agir kurali `.gh-list.grid:not([data-column="3"])
   .gh-list-feed` (0,4,0) ve 1020px ustunde dorde cikiyor; ayni agirlikta
   yazip sonra geliyoruz. */
/* Ana akis VE etiket listeleri ayni izgarada.
   Etiket listeleri (.gh-list.grid, magazine degil) temada DORT sutundu:
   241px'lik kartlar ana akistaki 359px'lik kartlarin yaninda baska bir
   bilesen gibi duruyordu. Hepsi 1/2/3 sutuna alindi.

   Ozgulluk hesabi: temanin en agir kurali
   `.gh-list.grid:not(.magazine)[data-column="3"] .gh-list-feed`
   = 3 sinif + :not(.magazine) + [data-column] -> (0,5,0).
   Ilk denemede `[data-column]` ile (0,4,0) yazilmisti ve YETMEDI:
   data-column="4" listeleri duzeliyor ama data-column="3" olanlar dortte
   kaliyordu (olculdu: Ana Ogun 4, Pratik 3, Kahvalti 4). `:not(.magazine)`
   eklenerek ayni agirliga cikildi; esitlikte kaynak sirasi bu dosyayi
   kazandiriyor. */
.gh-list.grid.magazine .gh-list-feed,
.gh-list.grid[data-column]:not(.magazine) .gh-list-feed {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--da-bosluk-4);
}

@media (min-width: 768px) {
    .gh-list.grid.magazine .gh-list-feed,
    .gh-list.grid[data-column]:not(.magazine) .gh-list-feed {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    /* IZGARA DEGIL FLEX.
       Eksik satirlar sola yigiliyordu: "Kahvalti"da tek kart solda, sagda
       iki bos iz; ana akista ise one cikan kart `1 / -1` ile butun genisligi
       kapladigi icin izgarada dagitilacak bos alan kalmiyor ve
       `justify-content` hicbir sey yapamiyordu -- alttaki iki kart yine
       solda kaliyordu (olculdu: 78..437 ve 453..812, sagda 375px bosluk).

       Flex'te sarma dogal ve eksik satir kendiliginden ortalaniyor. Ayni
       satirdaki kartlarin esit yuksekligi de korunuyor (align-items varsayilan
       stretch). Dolu satirda sonuc ayni: 3 x 359 + 2 x 16 = 1109 ~ 1110. */
    .gh-list.grid.magazine .gh-list-feed,
    .gh-list.grid[data-column]:not(.magazine) .gh-list-feed {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
    }

    .gh-list.grid.magazine .gh-list-item,
    .gh-list.grid[data-column]:not(.magazine) .gh-list-item {
        flex: 0 1 359px;
    }

    /* One cikan kart tek basina tam satir. */
    .gh-list.grid.magazine .gh-list-item:first-child {
        flex: 0 0 100%;
    }
}

/* Tema dort sutunlu duzen icin iki ozel kural yaziyor: dorduncu kart
   gizleniyor ve ikinci kart iki sutuna yayiliyor. Uc sutunlu izgarada
   ikisi de bozucu; geri aliniyor. */
@media (min-width: 1200px) {
    .gh-list.grid:not(.magazine)[data-column="3"] .gh-list-item:nth-child(4) {
        display: block;
    }

    .gh-list.grid:not(.magazine)[data-column="3"] .gh-list-item:nth-child(2) {
        grid-column: auto;
    }

    .gh-list.grid:not(.magazine)[data-column="3"] .gh-list-item:nth-child(2) .gh-list-item-title {
        --font-multiplier: 1;
    }
}

/* Kart kabugu. Tiklama alani kartin tamami; `height: 100%` satirdaki
   kartlari esitliyor. Gap 0: nefes payini icerik dolgusu veriyor, yoksa
   gorselle metin arasinda hem 20px gap hem 28px dolgu birikiyordu. */
.gh-list-item-inner {
    gap: 0;
    height: 100%;
    background-color: var(--da-zemin);
    border: 1px solid var(--da-cizgi);
    border-radius: var(--da-yaricap-kart);
    overflow: hidden;
    transition: transform var(--da-gecis), box-shadow var(--da-gecis);
}

.gh-list-item-inner:hover {
    transform: translateY(-4px);
    box-shadow: var(--da-golge-yukselti);
}

/* Kapak orani sabit. Tema dosyasinin sonunda `aspect-ratio: unset` ve
   img icin `position/height/object-fit: unset` var; oran serbest kalinca
   Ghost'a farkli oranlarda yuklenen kapaklar satirdaki kartlarin metin
   blogunu farkli yuksekliklerden baslatiyordu. */
.gh-list .gh-list-item-image {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 2;
    margin: 0;
}

.gh-list .gh-list-item-image img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0;
}

.gh-list .gh-list-item-content {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: var(--da-kart-dolgu);
}

.gh-list .gh-list-item-title {
    font-size: var(--da-olcek-3);
    line-height: var(--da-satir-siki);
}

/* Kategori satiri.
   Ortak katman `.gh-list-item-primary-tag`i dokunma hedefi sayip
   `inline-flex` + `min-height: 44px` + negatif dikey marj veriyor. Yazi
   sayfasindaki etiket bir baglanti oldugu icin orada dogru; listedeki bu
   ise sadece bir <span>, tiklanmiyor. Iki zarari vardi:
     - flex kutusu oldugu icin `text-align: center` islemiyor, kategori
       ortali kartta sola yapisik duruyordu;
     - her kartta 44px'lik gereksiz bir dikey blok tutuyordu.
   Duz metne dondurülüyor. */
.gh-list .gh-list-item-primary-tag {
    display: block;
    min-height: 0;
    margin-block: 0 var(--da-bosluk-2);
    letter-spacing: .06em;
}

/* Tema one cikan kart disinda ozeti gizliyor. Kart kabuguna gecince
   basliktan ibaret kart cok bos kaliyor; ozet iki satira kirpilarak geri
   getiriliyor -- ana sitedeki icerik kartlarinin yaptigi is.
   Secici temaninkiyle birebir ayni (0,6,0). */
/* Etiket listelerine sonradan eklenen ozetler de (bkz. kod enjeksiyonu)
   ana akistakiyle ayni kirpma ve olcuyu alsin. */
.gh-list.grid[data-column] .gh-list-item-excerpt,
.gh-list.grid.magazine .gh-list-item:not(:first-child) .gh-list-item-excerpt {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0;
    font-size: var(--da-olcek-kucuk);
    line-height: 1.5;
    color: var(--da-metin);
}

/* --- One cikan ilk kart ---
   Tam genislikte kaliyor: akisin girisi ve tarifler kalibinin imzasi.
   Gorsel sutunu kartin tepesinden dibine kadar uzaniyor (tema `center`
   diyor, kabuk gelince kenarda serit birakiyordu).

   TAMAMI 768 USTUNDE. Tema dar ekranda ayni kartin ic duzenini
   `display: flex` (dikey) yapiyor; `height: 100%` orada auto yukseklikli
   bir flex kabina cozulup gorseli SIFIRA indiriyordu. `aspect-ratio: auto`
   da mobilde 3/2 kadraji iptal ediyordu. */
@media (min-width: 768px) {
    .gh-list.grid.magazine .gh-list-item:first-child .gh-list-item-inner {
        align-items: stretch;
        gap: 0;
    }

    .gh-list.grid.magazine .gh-list-item:first-child .gh-list-item-image {
        height: 100%;
        aspect-ratio: auto;
    }

    .gh-list.grid.magazine .gh-list-item:first-child .gh-list-item-content {
        justify-content: center;
        max-width: 520px;
        padding: var(--da-kart-dolgu);
        margin: 0 auto;
    }

    /* 52.5px -> 32px. Yazi sayfasinin kendi basligi 44px; listedeki bir
       kart onu gecmemeli. (Mobil karsiligi 24px, yukaridaki dar ekran
       blogunda.) */
    .gh-list.grid.magazine .gh-list-item:first-child .gh-list-item-title {
        font-size: 32px;
    }

    .gh-list.grid.magazine .gh-list-item:first-child .gh-list-item-excerpt {
        font-size: var(--da-olcek-govde);
        line-height: var(--da-satir-govde);
    }
}

/* --------------------------------------------------------------------------
   Tarif kunyesi: hazirlik / pisirme / porsiyon
   --------------------------------------------------------------------------
   Bir tarifte en cok goz atilan satir bu, ama duz bir paragraf olarak
   giris metninin arasinda kayboluyordu. Ince cizgiler arasinda ortali bir
   serit haline getiriliyor: tarama sirasinda goz once buraya takiliyor.

   Secici kunyenin hem KONUMUNU hem YAPISINI istiyor: giris paragrafinin
   hemen ardindaki ve ilk cocugu <strong> olan paragraf
   ("<strong>Hazirlik:</strong> 10 dakika · ...").

   Iki sart da gerekli. Yalnizca yapiya bakmak yetmiyordu: blog yazilarinda
   koyu ile baslayan paragraf sayisi bes'e kadar cikiyor. Bu dosya yalnizca
   tariflere yukleniyor, yani blog zaten etkilenmezdi; ama ayni kaliba
   tariflerde de rastlanabilir. Konum sarti riski kapatiyor.
   Uc tarifte de tek eslesme oldugu dogrulandi.
   -------------------------------------------------------------------------- */

.gh-content > p:first-of-type + p:has(> strong:first-child) {
    border-block: 1px solid var(--da-cizgi);
    padding-block: var(--da-bosluk-3);
    text-align: center;
    font-size: var(--da-olcek-kucuk);
    letter-spacing: .01em;
    color: var(--da-metin);
    /* 375px'te satir sigmiyor ve normal sarmada son kelime tek basina
       alt satira dusuyordu ("... Porsiyon: 2" / "kisilik") -- dizgi hatasi
       gibi duruyor. `balance` iki satiri esitliyor:
       "Hazirlik: 10 dakika · Pisirme:" / "25 dakika · Porsiyon: 2 kisilik".
       Ayirac noktalari gorunur oldugu icin okuma bozulmuyor.
       Destegi olmayan tarayicida normal sarmaya duser. */
    text-wrap: balance;
}

.gh-content > p:first-of-type + p:has(> strong:first-child) strong {
    color: var(--da-metin-koyu);
    font-weight: var(--da-agirlik-cok-kalin);
}

/* --------------------------------------------------------------------------
   One cikan kartin dar ekranda dikey dolgusu
   --------------------------------------------------------------------------
   Kart icerigi icin `padding: var(--da-kart-dolgu)` yalnizca 768 ustu
   blogunda yaziliydi. Dar ekranda tema `padding: 0 30px` birakiyor, yani
   DIKEY dolgu sifir: ozetin alt kenari kartin alt kenarindan 1px uzakta
   duruyordu (olculdu, 375px).
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
    .gh-list.grid.magazine .gh-list-item:first-child .gh-list-item-content {
        padding: var(--da-kart-dolgu);
    }
}

/* --------------------------------------------------------------------------
   Yazi sayfasinda abone bolumu yok
   --------------------------------------------------------------------------
   Taste her tarif sayfasinin altina "Yeni tarifler icin e-posta listemize
   katilin" bolumunu koyuyor. Ayni cagri zaten ana sayfanin hero'sunda var;
   yazi sonunda tekrar edince sayfa abonelik istegiyle bitiyordu. Yalnizca
   yazi sayfalarinda gizleniyor (body.post-template), liste sayfalarindaki
   hero cagrisi duruyor.
   -------------------------------------------------------------------------- */
body.post-template .gh-cta {
    display: none;
}
