/*
Theme Name:   Sahifa Prime (Child)
Theme URI:    https://hatayinnabzi.com
Description:  Sahifa temasının 2026 "Prime Haber Sitesi" standartlarına taşınmış child sürümü. Tasarımı bozmadan performans, Core Web Vitals, SEO ve AI altyapısı modernizasyonu buradan yönetilir. Parent temaya dokunulmaz.
Author:       Emrah
Template:     sahifa
Version:      1.0.0
Text Domain:  sahifa-child
*/

/* ==========================================================================
   NOT: Parent temanın asıl 158 KB'lık style.css'i functions.php içinden
   ELLE enqueue edilir (bkz. sahifa_prime_styles). Buraya SADECE parent'ı
   ezmek/iyileştirmek istediğimiz kuralları yazacağız. Boş bırakmak güvenli.
   ========================================================================== */

/* --- Core Web Vitals: CLS'i sıfırlayan görsel yer tutucular --- */
/* Görsellere en/boy oranı vererek yükleme sırasında sayfa kaymasını (CLS) engeller. */
.post-thumbnail img,
.post-listing img,
#featured-posts img,
.slide-content img {
	height: auto;
}

/* Ana içerik görselinin alanını baştan rezerve et (skeleton mantığı) */
img[width][height] {
	max-width: 100%;
	height: auto;
}

/* --- single.php semantik güncelleme güvenliği --- */
/* Yeni <header class="entry-header"> ve <main class="content"> sarmalayıcıları
   parent tasarımını AYNEN korusun: fazladan boşluk/kutu eklemesinler. */
.entry-header {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
}
main.content {
	display: block; /* parent .content div davranışıyla birebir aynı */
}


/* ==========================================================================
   ADIM 3 — SLIDER & ANASAYFA CLS ÇÖZÜMÜ
   --------------------------------------------------------------------------
   Slider görselleri 2:1 oranında (660x330 ve 1050x525). Parent sabit px
   yükseklik kullanıyor (330px / 498px) → alanı rezerve ediyor ama responsive
   değil. Aşağıdaki formül:
     aspect-ratio:2/1 + height:auto + max-height:<orijinal>
   → MASAÜSTÜNDE görsel aynı kalır, MOBİLDE oranla küçülür, HER DURUMDA görsel
   yüklenmeden alan rezerve edilir (CLS = 0). Child, parent'tan SONRA yüklendiği
   için aynı seçiciyle bu kurallar kazanır. !important kullanılmadı.
   ========================================================================== */

/* --- İçerik (sidebar'lı) slider: orijinal 330px --- */
.content .flexslider,
.content .ei-slider {
	height: auto;
	aspect-ratio: 2 / 1;
	max-height: 330px;
}

/* --- Tam genişlik slider: orijinal 498px --- */
.flexslider {
	height: auto;
	aspect-ratio: 2 / 1;
	max-height: 498px;
}
.ei-slider {
	height: auto;
	aspect-ratio: 2 / 1;
	max-height: 498px;
}

/* Slide öğeleri ve görseller container'ı tam doldursun (bozulmadan) --- */
.flexslider .slides,
.content .flexslider .slides {
	height: 100%;
}
.flexslider .slides > li,
.content .flexslider .slides > li,
.full-width .content .flexslider .slides > li,
.ei-slider-large li {
	height: 100%;
}
.flexslider .slides img,
.content .flexslider .slides img,
.ei-slider-large li img {
	height: 100%;
	object-fit: cover;   /* oran birebir 2:1 tutmasa bile ASLA gerilmez/ezilmez */
}

/* Sidebar slider'ına DOKUNMUYORUZ (310x205 sabit, widget için ideal) */


/* --------------------------------------------------------------------------
   SKELETON — yükleme sırasında düz siyah yerine hafif "shimmer"
   (algılanan hız artışı; görsel gelince zaten üstünü kapatır)
   -------------------------------------------------------------------------- */
@keyframes hn-slider-shimmer {
	0%   { background-position: -800px 0; }
	100% { background-position:  800px 0; }
}

.flexslider,
.ei-slider .ei-slider-loading {
	background-color: #0b0b0b;
	background-image: linear-gradient( 100deg, #0b0b0b 30%, #1e1e1e 50%, #0b0b0b 70% );
	background-size: 800px 100%;
	background-repeat: no-repeat;
	animation: hn-slider-shimmer 1.6s infinite linear;
}

/* Erişilebilirlik: hareket azaltma tercihinde animasyonu kapat */
@media (prefers-reduced-motion: reduce) {
	.flexslider,
	.ei-slider .ei-slider-loading {
		animation: none;
	}
}

/* #featured-posts grid slider zaten background-size:cover + sabit 215px ile
   CLS üretmiyor; sadece güvenlik için görsellere object-fit ekliyoruz. */
#featured-posts .featured-post img {
	object-fit: cover;
}


/* ==========================================================================
   ADIM 5 — "Haberin Özeti" (AI) kutusu
   ========================================================================== */
.hn-ai-summary {
	margin: 0 0 25px;
	padding: 18px 22px;
	background: #f7f9fc;
	border-left: 4px solid var(--hn-accent, #003d98);
	border-radius: 4px;
}
.hn-ai-summary-title {
	margin: 0 0 10px;
	font-size: 17px;
	font-weight: 700;
}
.hn-ai-summary ul {
	margin: 0;
	padding-left: 20px;
	list-style: disc;
}
.hn-ai-summary li {
	margin: 4px 0;
	line-height: 1.5;
}
@media (prefers-color-scheme: dark) {
	.hn-ai-summary { background: #1a1d21; }
}
