/* ORFARMA ürün ızgarası ve ürün kartı (Figma "Ürün Kartı"; 📄 06 bileşeni): liste ekranları (orfarma-liste.min.css)
   ve ürün sayfasının "Birlikte bakılanlar" bölümü (orfarma-urun.min.css) aynı kuralları kullanır. liste.css'ten
   taşındı (d1-urun, K122); kart işaretlemesi woocommerce/content-product.php. */

/* ── Ürün ızgarası ─────────────────────────────────────────────────── */
/* Telefonda satır ve sütun arası 16 (Figma 📄 06 mobil 65:2475; KARARLAR §140 T03). */
.orf-urunler { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--orf-bosluk-16); margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) {
	.orf-urunler { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--orf-bosluk-48) var(--orf-bosluk-24); }
	.orf-urunler--paket { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
	.orf-urunler--panelli { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.orf-urunler--genis { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: var(--orf-bosluk-32); } /* Figma 4 × 296, aralık 32 (📄 08/28/30) */
	.orf-urunler--paket { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1200px) {
	.orf-urunler--panelli { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px var(--orf-bosluk-32); } /* Figma 📄 06 64:2200: satır arası 40 */
}
@media (max-width: 767px) {
	.orf-urunler--paket { grid-template-columns: minmax(0, 1fr); row-gap: var(--orf-bosluk-24); }
}

/* Ürün kartı */
.orf-kart { position: relative; display: flex; flex-direction: column; min-width: 0; }
.orf-kart__gorsel {
	position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 296 / 320; overflow: hidden; border-radius: var(--orf-yaricap-kart);
	background: color-mix(in srgb, var(--orf-kart-ton, var(--orf-kum)) 20%, var(--orf-beyaz));
}
/* Figma "Ürün Kartı" 5:25 görsel alanı (KARARLAR §140 T03): düz açık ton (ürün tonunun %20'si — Figma'nın --orf-urun-*-acik
   değerleriyle aynı: #ffc300 → #FFF3CC, #aabe41 → #EEF2D9), üstünde "ışık" (5:27: 240 px beyaz daire, %75, bulanıklık 40,
   merkez ortanın 10 px üstünde) ve ürünün altında "gölge" (5:28: 140×14 elips #1E1A1A %16, bulanıklık 12, alttan 36).
   Ürün görseli ikisinin üstünde (z-index 1); rozet ve eylem düğmeleri z-index 2. */
.orf-kart__gorsel::before, .orf-kart__gorsel::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; }
.orf-kart__gorsel::before { top: calc(50% - 10px); left: 50%; width: 240px; aspect-ratio: 1; background: var(--orf-beyaz); opacity: 0.75; filter: blur(20px); transform: translate(-50%, -50%); }
.orf-kart__gorsel::after { bottom: 36px; left: 50%; width: 140px; height: 14px; background: var(--orf-murekkep); opacity: 0.16; filter: blur(6px); transform: translateX(-50%); }
.orf-kart__gorsel > .orf-kart__resim { z-index: 1; }
.orf-kart__gorsel > .orf-yer-tutucu { position: relative; z-index: 1; }
.orf-katalog__ana[aria-busy="true"] .orf-kart__gorsel::before, .orf-katalog__ana[aria-busy="true"] .orf-kart__gorsel::after,
.orf-urunler.orf-urunler--iskelet .orf-kart__gorsel::before, .orf-urunler.orf-urunler--iskelet .orf-kart__gorsel::after { display: none; }
.orf-kart__resim { width: 100%; height: 100%; object-fit: contain; }
.orf-yer-tutucu { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: color-mix(in srgb, var(--orf-kart-ton, var(--orf-metin-3)) 55%, var(--orf-murekkep)); }
.orf-yer-tutucu__sembol { font-family: var(--orf-font-etiket); font-weight: 700; font-size: clamp(44px, 7vw, 88px); line-height: 1; letter-spacing: -0.03em; opacity: 0.9; }
.orf-kart__rozet {
	position: absolute; top: 16px; left: 16px; z-index: 2; padding: 6px 12px; border-radius: var(--orf-yaricap-kapsul); background: var(--orf-beyaz);
	font-weight: 600; font-size: var(--orf-metin-mikro-boyut); line-height: var(--orf-metin-mikro-satir); letter-spacing: 0.02em; color: var(--orf-murekkep);
}
/* Rozetler gölgesiz, Figma ölçüsünde (📄 06 64:2260; §140 T03). 'İndirimde' rozeti kırmızı hap + beyaz yazı KALIR: sahibin
   kararı KARARLAR §69a (sapma 6 "Böyle kalsın"; denetimde T22 karar-var) ve §140 T04 (kırmızı rozetler sitedeki gibi).
   Doğrulama düzeltmesi (bilesen-katalog-dogrulama): kart-suzgec bu kuralı kaldırmıştı. */
.orf-kart__rozet--sale { background: var(--orf-kirmizi-derin); color: var(--orf-beyaz); }
.orf-kart__govde { display: flex; flex: 1; flex-direction: column; padding: 16px 4px 0; }
.orf-kart__detay { margin: 0 0 8px; font-weight: 600; font-size: var(--orf-metin-mikro-boyut); line-height: var(--orf-metin-mikro-satir); letter-spacing: 0.02em; color: var(--orf-metin-2); } /* gri ton §69a */
/* Detay satırının parçaları: telefonda kompakt kart ilk iki parçayı gösterir (Figma mobil "Kapsül · 60 adet"; masaüstü
   "Kapsül · 60 adet · gündüz" — sahibin Figma'ya dönüş kararı 01.11.2026). */
@media (max-width: 767px) {
	.orf-kart__detay-parca + .orf-kart__detay-parca + .orf-kart__detay-parca { display: none; }
}
.orf-kart__ad { margin: 0; font-family: var(--orf-font-ui); font-weight: 700; font-size: 19px; line-height: 24px; letter-spacing: 0; min-height: 48px; } /* Figma kart adı 19/24; ad kutusu 2 satır yüksekliğinde sabit: yan yana kartlarda puan ve fiyat satırı aynı hizada, kısa adda ad–puan arası boşluk kalır (sahip kararı KARARLAR 157j) */
.orf-kart__baglanti { color: inherit; text-decoration: none; }
.orf-kart__baglanti::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: var(--orf-yaricap-kart); }
.orf-kart__baglanti:focus-visible { outline: none; }
.orf-kart__baglanti:focus-visible::after { outline: 2px solid var(--orf-kirmizi-derin); outline-offset: 4px; }
.orf-kart:hover .orf-kart__ad { color: var(--orf-kirmizi-derin); }
/* Fiyat satırı: ad kutusu 2 satır sabit olunca içeriğin hemen altında (Figma "Bilgi" aralığı 8 + "Fiyat satırı" üst boşluğu 4; §140 T03);
   yan yana kartlarda ad 3 satıra taşarsa ya da puan satırı yoksa fiyat satırı kartın dibinde kalır (margin-top: auto) → aynı hizada (sahip kararı KARARLAR 157j). */
.orf-kart__alt { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 12px; }
.orf-kart__fiyat { margin: 0; }
.orf-kart__fiyat .woocommerce-Price-amount, .orf-kart__fiyat ins { font-weight: 800; font-size: var(--orf-metin-fiyat-boyut); line-height: var(--orf-metin-fiyat-satir); text-decoration: none; color: var(--orf-murekkep); }
.orf-kart__fiyat, .orf-paket-kart__tutar { display: inline-flex; flex-direction: row-reverse; flex-wrap: wrap; align-items: baseline; justify-content: flex-end; gap: 2px 8px; }
/* Eski fiyat Figma'da üstü çizili değil, 14/20 500 (📄 06 64:2260; "Paket Kartı" 171:2514 açıklaması; §140 T03); gri ton §69a. */
.orf-kart__fiyat del, .orf-paket-kart__tutar del { color: var(--orf-metin-2); text-decoration: none; }
.orf-kart__fiyat del .woocommerce-Price-amount, .orf-paket-kart__tutar del .woocommerce-Price-amount { font-weight: 500; font-size: var(--orf-metin-govde-s-boyut); line-height: var(--orf-metin-govde-s-satir); color: var(--orf-metin-2); }
.orf-kart__sepet {
	position: relative; z-index: 2; display: inline-flex; flex: none; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%;
	background: var(--orf-kirmizi-derin); color: var(--orf-beyaz); text-decoration: none; transition: background 0.2s;
}
.orf-kart__sepet:hover, .orf-kart__sepet:focus-visible { background: var(--orf-murekkep); color: var(--orf-beyaz); }
.orf-kart__sepet.loading, .orf-paket-kart__sepet.loading { opacity: 0.6; pointer-events: none; }
.orf-kart__porsiyon { margin: 6px 0 0; font-weight: 500; font-size: var(--orf-metin-mikro-boyut); line-height: var(--orf-metin-mikro-satir); color: var(--orf-metin-2); }
/* Puan satırı (Figma "Puan" 4:169; KARARLAR §43): 16 px yıldız, ortalama 700 ve parantez içinde değerlendirme sayısı
   500, 14/20, aralık 6 px (görünen satır aria-hidden; ekran okuyucu tek cümle okur). Kartta ad ile fiyat satırı
   arasında: üstte 8 px, altta 8 + 4 px (Figma "Bilgi" aralığı + "Fiyat satırı" üst boşluğu). Ürün sayfası başlığının
   altında da aynı bileşen (urun.css). Parantez içindeki sayı Figma'daki gibi #8E8682 (--orf-metin-3; liste sayaçlarıyla
   aynı renk). */
.orf-puan { display: flex; align-items: center; margin: 0; font-family: var(--orf-font-ui); font-size: var(--orf-metin-govde-s-boyut); line-height: var(--orf-metin-govde-s-satir); letter-spacing: 0; }
.orf-puan__gorunur { display: inline-flex; align-items: center; gap: 6px; }
.orf-puan__yildiz { display: block; width: 16px; height: 16px; color: var(--orf-yildiz); }
.orf-puan__deger { font-weight: 700; color: var(--orf-murekkep); }
.orf-puan__adet { font-weight: 500; color: var(--orf-metin-3); }
.orf-kart__puan { margin-top: 8px; }
/* Liste yenilenirken iskelet (mini-sepet.css; Figma İskelet/Ürün Kartı 129:2137'deki 84×14 çubuk). */
.orf-katalog__ana[aria-busy="true"] .orf-kart__puan,
.orf-urunler.orf-urunler--iskelet .orf-kart__puan { position: relative; }
.orf-katalog__ana[aria-busy="true"] .orf-kart__puan > *,
.orf-urunler.orf-urunler--iskelet .orf-kart__puan > * { visibility: hidden; }
/* p23-27 (Figma 129:2137; KARARLAR 140b, paket sayfa-23-26): 84×14 çubuk ad çubuğunun (230×18, üstten 3) 10 px altında — ad
   kutusu 2 satır (48 px, telefonda 40) + 8 px pay olduğundan çubuk yukarı çekilir, kart ölçüsü değişmez. Düz krem, parıltı yok. */
.orf-katalog__ana[aria-busy="true"] .orf-kart__puan::before,
.orf-urunler.orf-urunler--iskelet .orf-kart__puan::before {
	content: ""; position: absolute; top: -25px; left: 0; width: 84px; height: 14px; border-radius: var(--orf-yaricap-kapsul);
	background: var(--orf-krem);
}
@media (max-width: 767px) {
	.orf-katalog__ana[aria-busy="true"] .orf-kart__puan::before,
	.orf-urunler.orf-urunler--iskelet .orf-kart__puan::before { top: -17px; }
}
@media (prefers-reduced-motion: reduce) {
	.orf-katalog__ana[aria-busy="true"] .orf-kart__puan::before,
	.orf-urunler.orf-urunler--iskelet .orf-kart__puan::before { animation: none; }
}
/* Telefon: Figma "Ürün Kartı/Kompakt" 62:1783 (171 px) — köşe 28, rozet 28 px / 12 px yazı ve kalp 40 px kenardan 16,
   görsel → detay 16, ad 15/20, fiyat 800 18/24, sepet 44; ışık 150 px sol üstte (−34, −32), gölge 96×10 (16, alttan 40). */
@media (max-width: 767px) {
	.orf-kart__gorsel { aspect-ratio: 171 / 196; }
	.orf-kart__gorsel::before { top: -32px; left: -34px; width: 150px; transform: none; }
	.orf-kart__gorsel::after { bottom: 40px; left: 16px; width: 96px; height: 10px; transform: none; }
	.orf-kart__ad { font-size: 15px; line-height: 20px; min-height: 40px; }
	.orf-kart__fiyat .woocommerce-Price-amount, .orf-kart__fiyat ins { font-size: 18px; }
}

/* ── d1-gorseller BAŞ: ürün görseli (K026) ──
   Şeffaf ambalaj kesiği Figma'daki gibi kartın içindeki kutuya FIT oturur: masaüstü 296×320 kartta 200×236 (üstten 44,
   alttan 40; Figma Ürün Kartı 5:29), mobil 171×196 kartta 132×118 (üstten 52, alttan 26; Ürün Kartı/Kompakt 62:1787).
   Görsel yokken yer tutucu kartı doldurmaya devam eder.
   Seçici ".orf-kart__gorsel > img" (0,2,1): Elementor sayfalarında (anasayfa, favoriler) Elementor'un sonradan yüklenen
   ".elementor img { height: auto; max-width: 100% }" kuralı (0,1,1) kutu yüksekliğini ezmesin — anasayfada uzun tüp
   kesikleri (C Vitamini, Kara Mürver) 316 px kutuda 770–798 px boyla taşıyordu (d4-gorsel-duzeltme). */
.orf-kart__gorsel > img.orf-kart__resim { position: absolute; top: 13.75%; left: 16.22%; width: 67.57%; height: 73.75%; max-width: none; object-fit: contain; }
@media (max-width: 767px) {
	.orf-kart__gorsel > img.orf-kart__resim { top: 26.53%; left: 11.7%; width: 77.19%; height: 60.2%; }
}
/* ── d1-gorseller SON ── */
