/* ============================================================
   DEFAULT TEMA — "Modern Corporate"
   Kurumsal güven + premium his. Lacivert (navy) çekirdek,
   canlı mavi accent, katmanlı derinlik, ince gradient'ler ve
   yumuşak mikro-etkileşimler. Bootstrap 5.3 üstüne; açık/koyu
   mod [data-bs-theme] ile. Tüm renkler tasarım token'ı (var).
   Token isimleri (--t-*) korunur — tüm şablonlar bunlara bağlı.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;500;600;700&family=Poppins:wght@400;500;600;700;800&display=swap');

/* ---------- Tasarım Token'ları: AÇIK MOD ----------
   FAZ-B (Theme Customizer) köprüsü: aşağıdaki --t-* token'ları artık
   `var(--c-*, <eski-sabit-değer>)` ile tanımlanır. --c-* değişkenleri
   partials/_customizer_vars.html.twig tarafından bu dosyanın <link>'inden
   ÖNCE <head>'e enjekte edilir (bkz. o partial'in yerleşim notu). --c-*
   enjekte edilmemişse (örn. partial include edilmeden bu CSS tek başına
   yüklenirse) fallback değerler devreye girer ve GÖRSEL SONUÇ TAMAMEN
   AYNI kalır — eski sabit tasarım korunur, regresyon riski yok.

   Eşleme (CustomizerService sözleşmesi → bu temanın rolleri):
     --c-primary   → --t-accent        (CTA/link/buton rengi — customizer'ın
                                          "Ana Renk" alanı görsel olarak bu
                                          temanın accent rolüne karşılık gelir,
                                          --t-primary'ye DEĞİL: --t-primary
                                          burada "başlık/koyu yüzey" navy'si,
                                          ayrı bir marka rolü, bilinçli olarak
                                          customizer'a bağlanmadı)
     --c-secondary → --t-secondary
     --c-bg        → --t-bg
     --c-text      → --t-fg            (ana metin rengi)
     --c-radius    → --t-radius        (taban ölçek; --t-radius-sm/-lg aşağıda
                                          calc() ile buna ORANTILI türetilir ki
                                          slider TÜM köşe skalasını [kart, form,
                                          CTA, page-header, buton-dışı öğeler]
                                          tutarlı biçimde etkilesin — bkz. o
                                          satırlardaki ayrı not. --t-radius-pill
                                          BİLİNÇLİ OLARAK sabit 999px kalır:
                                          "pill" kavramı zaten "tam yuvarlak"
                                          demektir, küçük bir taban değerin
                                          küçük bir katı asla pill görünmez.)
     --c-font-*    → --t-font-*
   Dark mode BU BLOĞA dokunmaz; [data-bs-theme="dark"] kendi --t-accent/--t-bg/
   --t-fg vb. tonlarını AŞAĞIDA ayrıca ve bağımsız tanımlar (ters çevirme değil,
   elle ayarlanmış aydınlık/desatüre tonlar) — --c-* değerleri sadece AÇIK
   MOD taban tanımını besler, koyu mod kendi renklerini seçer. Katman sırası:
   1) bu blok (:root, [data-bs-theme="light"]) --c-*'tan türer,
   2) [data-bs-theme="dark"] kendi sabit --t-* değerleriyle override eder. */
:root,
[data-bs-theme="light"] {
    --t-primary: #0f172a;          /* slate-900 — başlık/metin ve koyu yüzeyler (navy); customizer'a bağlı DEĞİL, bkz. yukarıdaki eşleme notu */
    --t-on-primary: #ffffff;
    --t-secondary: var(--c-secondary, #334155);        /* slate-700 */
    --t-accent: var(--c-primary, #2563eb);              /* mavi CTA — customizer "Ana Renk" */
    --t-accent-hover: #1d4ed8;     /* blue-700 — hover tonu sabit kalır (customizer tek ton verir, otomatik koyulaştırma CSS'te yok) */
    --t-accent-soft: rgba(37, 99, 235, .10);
    --t-accent-2: #0ea5e9;         /* sky-500 — gradient ikinci tonu */
    --t-bg: var(--c-bg, #f8fafc);                       /* slate-50 — sayfa zemini */
    --t-surface: #ffffff;          /* kart/panel zemini */
    --t-surface-2: #f1f5f9;        /* slate-100 — alternatif bölüm zemini */
    --t-surface-glass: rgba(255, 255, 255, .72);
    --t-fg: var(--c-text, #0f172a);                     /* ana metin */
    --t-muted: #64748b;            /* slate-500 — ikincil metin (AA uyumlu) */
    --t-border: #e2e8f0;           /* slate-200 */
    --t-border-strong: #cbd5e1;    /* slate-300 */
    --t-danger: #dc2626;
    --t-success: #16a34a;
    --t-warning: #f59e0b;

    --t-font-heading: var(--c-font-heading, 'Poppins'), system-ui, -apple-system, sans-serif;
    --t-font-body: var(--c-font-body, 'Open Sans'), system-ui, -apple-system, sans-serif;

    /* 8px ritim */
    --t-space-1: 0.5rem;
    --t-space-2: 1rem;
    --t-space-3: 1.5rem;
    --t-space-4: 2rem;
    --t-space-6: 3rem;
    --t-space-8: 4rem;
    --t-space-10: 6rem;

    --t-radius: var(--c-radius, 1rem);                  /* 16px varsayılan — daha yumuşak */
    --t-radius-sm: calc(var(--t-radius) * 0.625);        /* orijinal 10px oranı (0.625rem / 1rem) korunur */
    --t-radius-lg: calc(var(--t-radius) * 1.5);          /* orijinal 24px oranı (1.5rem / 1rem) korunur */
    --t-radius-pill: 999px;        /* bilinçli sabit — "pill" = tam yuvarlak, bkz. yukarıdaki not */

    /* Katmanlı, yumuşak gölge skalası (renk tonlu) */
    --t-shadow-xs: 0 1px 2px rgba(15, 23, 42, .06);
    --t-shadow-sm: 0 1px 3px rgba(15, 23, 42, .08), 0 1px 2px rgba(15, 23, 42, .04);
    --t-shadow: 0 4px 6px -1px rgba(15, 23, 42, .07), 0 2px 4px -2px rgba(15, 23, 42, .05);
    --t-shadow-md: 0 10px 20px -8px rgba(15, 23, 42, .12), 0 4px 8px -4px rgba(15, 23, 42, .06);
    --t-shadow-lg: 0 24px 48px -12px rgba(15, 23, 42, .18), 0 8px 16px -8px rgba(15, 23, 42, .08);
    --t-shadow-accent: 0 12px 28px -8px rgba(37, 99, 235, .45);

    --t-gradient-accent: linear-gradient(135deg, var(--t-accent) 0%, var(--t-accent-2) 100%);
    --t-gradient-hero: linear-gradient(120deg, rgba(15,23,42,.92) 0%, rgba(15,23,42,.62) 45%, rgba(15,23,42,.18) 100%);

    --t-transition: 220ms cubic-bezier(.4, 0, .2, 1);
    --t-transition-slow: 420ms cubic-bezier(.4, 0, .2, 1);

    /* Bootstrap köprüsü */
    --bs-primary: var(--t-accent);
    --bs-body-bg: var(--t-bg);
    --bs-body-color: var(--t-fg);
    --bs-border-color: var(--t-border);
    --bs-link-color: var(--t-accent);
    --bs-link-hover-color: var(--t-accent-hover);
    --bs-emphasis-color: var(--t-primary);
}

/* ---------- Tasarım Token'ları: KOYU MOD ----------
   Ters çevirme değil; desatüre/aydınlatılmış tonlar.
   FAZ-B KATMANLAMA KARARI: bu blok BİLİNÇLİ OLARAK --c-*'a hiç referans
   VERMEZ (yukarıdaki açık mod bloğunun aksine). Customizer sadece açık modun
   taban tonunu besler; koyu mod WCAG AA doğrulanmış kendi sabit paletini
   korur — aksi halde kullanıcının seçtiği rastgele bir açık-mod rengi koyu
   zeminde kontrast garantisi olmadan kullanılırdı (erişilebilirlik riski).
   Sonuç: customizer + dark mode ÇAKIŞMAZ, ikisi ayrı eksenler. */
[data-bs-theme="dark"] {
    --t-primary: #f8fafc;
    --t-on-primary: #0f172a;
    --t-secondary: #cbd5e1;
    --t-accent: #3b82f6;           /* blue-500 — koyu zeminde daha okunur */
    --t-accent-hover: #60a5fa;
    --t-accent-soft: rgba(59, 130, 246, .16);
    --t-accent-2: #38bdf8;
    --t-bg: #020617;               /* slate-950 */
    --t-surface: #0f172a;          /* slate-900 */
    --t-surface-2: #1e293b;        /* slate-800 */
    --t-surface-glass: rgba(15, 23, 42, .72);
    --t-fg: #f1f5f9;
    --t-muted: #94a3b8;            /* slate-400 — koyu zeminde AA */
    --t-border: #1e293b;
    --t-border-strong: #334155;
    --t-danger: #f87171;
    --t-success: #4ade80;
    --t-warning: #fbbf24;

    --t-shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);
    --t-shadow-sm: 0 1px 3px rgba(0, 0, 0, .5);
    --t-shadow: 0 4px 6px -1px rgba(0, 0, 0, .5);
    --t-shadow-md: 0 10px 20px -8px rgba(0, 0, 0, .6);
    --t-shadow-lg: 0 24px 48px -12px rgba(0, 0, 0, .7);
    --t-shadow-accent: 0 12px 28px -8px rgba(59, 130, 246, .4);

    --t-gradient-hero: linear-gradient(120deg, rgba(2,6,23,.94) 0%, rgba(2,6,23,.7) 45%, rgba(2,6,23,.3) 100%);

    --bs-body-bg: var(--t-bg);
    --bs-body-color: var(--t-fg);
    --bs-border-color: var(--t-border);
    --bs-emphasis-color: var(--t-primary);
}

/* ---------- Temel ---------- */
* { scroll-behavior: smooth; }

body {
    font-family: var(--t-font-body);
    background-color: var(--t-bg);
    color: var(--t-fg);
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6,
.t-heading {
    font-family: var(--t-font-heading);
    font-weight: 700;
    color: var(--t-primary);
    line-height: 1.15;
    letter-spacing: -0.02em;
}

a { color: var(--t-accent); text-decoration: none; transition: color var(--t-transition); }
a:hover { color: var(--t-accent-hover); }

.t-muted { color: var(--t-muted) !important; }
.t-bg-surface { background-color: var(--t-surface); }
.t-bg-alt { background-color: var(--t-surface-2); }
.text-accent { color: var(--t-accent) !important; }

/* Vurgu gradient metin (başlıklarda parça vurgu için) */
.t-grad-text {
    background: var(--t-gradient-accent);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

/* Bölüm ritmi */
.t-section { padding-block: clamp(3.5rem, 8vw, var(--t-space-10)); position: relative; }
.t-section-title { margin-bottom: var(--t-space-6); }
.t-section-title h2 { font-size: clamp(1.75rem, 3.5vw, 2.5rem); }
.t-section-title p { color: var(--t-muted); max-width: 56ch; font-size: 1.05rem; }

/* Bölüm üstü küçük etiket */
.t-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-family: var(--t-font-heading);
    font-weight: 600;
    font-size: .8rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--t-accent);
    margin-bottom: .75rem;
}
.t-eyebrow::before {
    content: "";
    width: 1.75rem; height: 2px;
    background: var(--t-gradient-accent);
    border-radius: 2px;
}
.t-section-title.text-center .t-eyebrow { justify-content: center; }

/* Erişilebilir focus halkası */
a:focus-visible,
button:focus-visible,
.btn:focus-visible,
.form-control:focus-visible,
.t-card:focus-visible {
    outline: 3px solid var(--t-accent);
    outline-offset: 2px;
    border-radius: var(--t-radius-sm);
}

/* ---------- Scroll Reveal (progressive enhancement) ----------
   Gizleme yalnızca JS aktifken (html.js) uygulanır; JS yoksa içerik görünür kalır. */
.js [data-reveal] {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity var(--t-transition-slow), transform var(--t-transition-slow);
    will-change: opacity, transform;
}
.js [data-reveal].is-visible {
    opacity: 1;
    transform: none;
}

/* ---------- Navbar (glassmorphism) ---------- */
.t-navbar {
    background-color: var(--t-surface-glass);
    -webkit-backdrop-filter: saturate(180%) blur(14px);
    backdrop-filter: saturate(180%) blur(14px);
    border-bottom: 1px solid transparent;
    transition: border-color var(--t-transition), box-shadow var(--t-transition), background-color var(--t-transition);
    padding-block: .65rem;
}
.t-navbar.is-scrolled {
    border-bottom-color: var(--t-border);
    box-shadow: var(--t-shadow-sm);
}
.t-navbar .navbar-brand {
    font-family: var(--t-font-heading);
    font-weight: 800;
    color: var(--t-primary);
    font-size: 1.3rem;
    letter-spacing: -0.02em;
}
.t-navbar .nav-link {
    color: var(--t-secondary);
    font-weight: 500;
    padding-inline: var(--t-space-2) !important;
    position: relative;
    transition: color var(--t-transition);
}
.t-navbar .nav-link::after {
    content: "";
    position: absolute;
    left: var(--t-space-2); right: var(--t-space-2);
    bottom: .35rem;
    height: 2px;
    background: var(--t-gradient-accent);
    border-radius: 2px;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--t-transition);
}
.t-navbar .nav-link:hover { color: var(--t-accent); }
.t-navbar .nav-link:hover::after,
.t-navbar .nav-link.active::after { transform: scaleX(1); }
.t-navbar .nav-link.active { color: var(--t-accent); font-weight: 600; }

/* Min dokunma alanı ikon butonları */
.t-iconbtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    border: 1px solid var(--t-border);
    border-radius: var(--t-radius-sm);
    background: var(--t-surface);
    color: var(--t-secondary);
    transition: background var(--t-transition), color var(--t-transition), border-color var(--t-transition), transform var(--t-transition);
    cursor: pointer;
}
.t-iconbtn:hover { background: var(--t-accent-soft); color: var(--t-accent); border-color: var(--t-accent); }
.t-iconbtn:active { transform: scale(.94); }

/* ---------- Butonlar ----------
   FAZ-B: köşe + buton stili köprüsü.
   `--c-button-style` diye bir CSS DEĞİŞKENİ YOK (backend sözleşmesi) —
   customizer.js customizer_button_style değerini body'ye
   `data-btn-style="solid|outline|pill"` attribute'u olarak yazar (bkz.
   _customizer_vars.html.twig başındaki not). Varsayılan/"solid": taban
   kural artık --t-radius-pill DEĞİL --t-radius kullanır (aşağıda değişti)
   ki "Köşe Yuvarlaklığı" slider'ı BUTONLARDA DA görünür olsun (önceden
   butonlar sabit pill idi, slider'a hiç tepki vermiyordu — bu gerçek bir
   işlevsel boşluktu, bkz. dosya başı FAZ-B yorumu). "pill" seçilirse köşe
   slider'dan BAĞIMSIZ her zaman tam yuvarlanır ("hap" tanımı gereği).
   "outline" seçilirse ANA CTA (.btn-accent) dolgu yerine çerçeveli olur
   (ikincil .btn-outline-accent zaten çerçeveli olduğundan görünürde
   değişmez — beklenen/doğru davranış). */
.btn {
    border-radius: var(--t-radius);
    font-family: var(--t-font-heading);
    transition: background var(--t-transition), color var(--t-transition), transform var(--t-transition), box-shadow var(--t-transition);
}
.btn-accent {
    background: var(--t-gradient-accent);
    color: #fff;
    border: none;
    font-weight: 600;
    padding: 0.7rem 1.6rem;
    border-radius: var(--t-radius);
    box-shadow: var(--t-shadow-sm);
}
.btn-accent:hover {
    color: #fff;
    transform: translateY(-2px);
    box-shadow: var(--t-shadow-accent);
}
.btn-accent:active { transform: translateY(0); }
.btn-accent.btn-lg { padding: 0.9rem 2rem; font-size: 1.05rem; }

.btn-outline-accent {
    background: transparent;
    color: var(--t-accent);
    border: 1.5px solid var(--t-border-strong);
    font-weight: 600;
    padding: 0.7rem 1.6rem;
    border-radius: var(--t-radius);
}
.btn-outline-accent:hover {
    background: var(--t-accent);
    color: #fff;
    border-color: var(--t-accent);
    transform: translateY(-2px);
    box-shadow: var(--t-shadow-accent);
}
.btn-outline-accent.btn-lg { padding: 0.9rem 2rem; font-size: 1.05rem; }

/* "outline" stili: ana CTA (.btn-accent) dolgu yerine çerçeveli olur. */
[data-btn-style="outline"] .btn-accent {
    background: transparent;
    color: var(--t-accent);
    border: 1.5px solid var(--t-accent);
    box-shadow: none;
}
[data-btn-style="outline"] .btn-accent:hover {
    background: var(--t-accent);
    color: #fff;
}

/* "pill" stili: köşe --c-radius'tan BAĞIMSIZ her zaman tam yuvarlak. */
[data-btn-style="pill"] .btn-accent,
[data-btn-style="pill"] .btn-outline-accent {
    border-radius: var(--t-radius-pill);
}

/* Filtre çipleri (kategori) */
.btn-sm.btn-outline-accent,
.btn-sm.btn-accent { padding: .4rem 1rem; font-size: .875rem; }

/* ---------- Hero / Slider ----------
   Hero her zaman beyaz metin taşır (görsel + koyu scrim üstünde ya da
   görselsizken düz koyu zemin). Bu yüzden zemin mod-aware --t-primary'ye
   DEĞİL sabit koyu renge bağlanır; aksi halde koyu modda görselsiz hero
   beyaza döner ve "beyaz üzerine beyaz" olur. */
.t-hero {
    position: relative;
    min-height: clamp(480px, 68vh, 720px);
    display: flex;
    align-items: center;
    color: #fff;
    background: #0f172a; /* sabit koyu navy — scrim/metin her modda okunur */
    overflow: hidden;
}
.t-hero__media { position: absolute; inset: 0; }
.t-hero__media img {
    width: 100%; height: 100%; object-fit: cover;
    transform: scale(1.06);
    animation: t-hero-zoom 14s ease-out forwards;
}
@keyframes t-hero-zoom { to { transform: scale(1); } }
.t-hero__scrim {
    position: absolute; inset: 0;
    background: var(--t-gradient-hero);
}
/* Hero alt yumuşak geçiş ve dekoratif ışık */
.t-hero::after {
    content: "";
    position: absolute;
    top: -30%; right: -10%;
    width: 50rem; height: 50rem;
    background: radial-gradient(circle, rgba(37,99,235,.35) 0%, transparent 60%);
    pointer-events: none;
    z-index: 1;
}
.t-hero__content { position: relative; z-index: 2; max-width: 46rem; }
/* FAZ-H 4.2: h1 VE h2 birlikte hedeflenir — carousel'de yalnızca ilk
   (aktif) slayt <h1>, sonraki slaytlar <h2> kullanır (tek sayfa-başlığı
   kuralı, bkz. home.html.twig'teki gerekçe); görsel stil ikisinde de
   AYNI kalmalı ki slaytlar arasında geçişte hiçbir boyut/ağırlık sıçraması
   olmasın. */
.t-hero__content h1,
.t-hero__content h2 {
    color: #fff;
    font-size: clamp(2.25rem, 5.5vw, 3.75rem);
    font-weight: 800;
    letter-spacing: -0.03em;
}
.t-hero__content p {
    font-size: clamp(1.05rem, 2vw, 1.3rem);
    color: rgba(255,255,255,.88);
    max-width: 40ch;
    line-height: 1.6;
}
.t-hero__content .btn-outline-accent {
    color: #fff;
    border-color: rgba(255,255,255,.4);
}
.t-hero__content .btn-outline-accent:hover {
    background: #fff;
    color: var(--t-primary);
    border-color: #fff;
}

/* Hero carousel kontrolleri */
.t-hero-carousel .carousel-control-prev,
.t-hero-carousel .carousel-control-next { width: 8%; z-index: 3; }
.t-hero-carousel .carousel-indicators { z-index: 3; margin-bottom: 1.5rem; }
.t-hero-carousel .carousel-indicators [data-bs-target] {
    width: 28px; height: 4px; border-radius: 4px;
    background: rgba(255,255,255,.5); border: none;
}
.t-hero-carousel .carousel-indicators .active { background: #fff; }

/* ---------- Kartlar ---------- */
.t-card {
    background: var(--t-surface);
    border: 1px solid var(--t-border);
    border-radius: var(--t-radius);
    overflow: hidden;
    height: 100%;
    display: flex;
    flex-direction: column;
    transition: transform var(--t-transition), box-shadow var(--t-transition), border-color var(--t-transition);
}
.t-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--t-shadow-lg);
    border-color: var(--t-border-strong);
}
.t-card__media {
    aspect-ratio: 16 / 10;
    background: var(--t-surface-2);
    overflow: hidden;
    position: relative;
}
.t-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--t-transition-slow); }
.t-card:hover .t-card__media img { transform: scale(1.06); }
.t-card__body { padding: var(--t-space-3); display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.t-card__title {
    font-family: var(--t-font-heading);
    font-size: 1.2rem; font-weight: 600; color: var(--t-primary);
    letter-spacing: -0.01em;
    transition: color var(--t-transition);
}
.t-card:hover .t-card__title { color: var(--t-accent); }
.t-card__text { color: var(--t-muted); font-size: 0.95rem; flex: 1; line-height: 1.6; }

/* Kart "Detay" link satırı + ok kayması */
.t-card__more {
    display: inline-flex; align-items: center; gap: .4rem;
    color: var(--t-accent); font-weight: 600; font-size: .9rem;
    margin-top: .25rem;
}
.t-card__more i { transition: transform var(--t-transition); }
.t-card:hover .t-card__more i { transform: translateX(4px); }

/* Görseli olmayan kartlar için yer tutucu (CLS önleme) */
.t-card__media--empty {
    display: flex; align-items: center; justify-content: center;
    color: var(--t-border-strong);
    background: linear-gradient(135deg, var(--t-surface-2), var(--t-surface));
}

/* Genel içerik kartı (display:block varyantı şablonlarda kullanılıyor) */
.t-card.p-4, .t-card.p-md-5 { transition: transform var(--t-transition), box-shadow var(--t-transition), border-color var(--t-transition); }

/* ---------- Rozet / etiket ---------- */
.t-badge {
    display: inline-block;
    font-family: var(--t-font-heading);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: .02em;
    padding: 0.3rem 0.75rem;
    border-radius: var(--t-radius-pill);
    background: var(--t-surface-2);
    color: var(--t-secondary);
}
.t-badge--accent { background: var(--t-accent-soft); color: var(--t-accent); }

/* ---------- İkon balonu (özellik/değer bölümleri) ---------- */
.t-icon-circle {
    display: inline-flex; align-items: center; justify-content: center;
    width: 3.25rem; height: 3.25rem;
    border-radius: var(--t-radius);
    background: var(--t-accent-soft);
    color: var(--t-accent);
    font-size: 1.5rem;
    transition: transform var(--t-transition), background var(--t-transition);
}
.t-card:hover .t-icon-circle { transform: scale(1.08); }

/* ---------- Referans logoları ---------- */
.t-logo-strip { display: flex; flex-wrap: wrap; gap: var(--t-space-6); align-items: center; justify-content: center; }
.t-logo-strip img {
    height: 44px; width: auto; object-fit: contain;
    filter: grayscale(1); opacity: .55;
    transition: filter var(--t-transition), opacity var(--t-transition), transform var(--t-transition);
}
.t-logo-strip a:hover img { filter: grayscale(0); opacity: 1; transform: scale(1.05); }

/* ---------- İstatistik / sayaç ---------- */
.t-stat { text-align: center; }
.t-stat__num {
    font-family: var(--t-font-heading);
    font-size: clamp(2.25rem, 4.5vw, 3rem);
    font-weight: 800; color: var(--t-accent);
    font-variant-numeric: tabular-nums;
    line-height: 1;
}
.t-stat__label { color: var(--t-muted); font-weight: 500; margin-top: .5rem; }

/* ---------- Testimonial ---------- */
.t-quote {
    background: var(--t-surface);
    border: 1px solid var(--t-border);
    border-radius: var(--t-radius);
    padding: var(--t-space-4);
    height: 100%;
    position: relative;
    transition: transform var(--t-transition), box-shadow var(--t-transition);
}
.t-quote:hover { transform: translateY(-4px); box-shadow: var(--t-shadow-md); }
.t-quote::before {
    content: "\201C";
    position: absolute; top: .25rem; right: 1.25rem;
    font-family: Georgia, serif;
    font-size: 4.5rem; line-height: 1;
    color: var(--t-accent-soft);
}
.t-quote__text { color: var(--t-fg); font-size: 1.05rem; line-height: 1.7; position: relative; }
.t-quote__author { display: flex; align-items: center; gap: var(--t-space-1); margin-top: var(--t-space-3); }
.t-quote__author img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.t-quote__name { font-weight: 600; color: var(--t-primary); }
.t-quote__role { color: var(--t-muted); font-size: 0.875rem; }
.t-stars { color: var(--t-warning); letter-spacing: 2px; }

/* ---------- Footer ----------
   Footer her iki modda da KOYU zemin + açık metin (tasarım niyeti).
   Bu yüzden mod-aware --t-primary'ye DEĞİL, footer'a özel sabit
   token'lara bağlanır; böylece koyu modda zemin beyaza dönüp
   "beyaz üzerine beyaz yazı" oluşmaz. Tek kaynak: --t-footer-*. */
.t-footer {
    --t-footer-bg: #0f172a;                  /* sabit koyu navy zemin */
    --t-footer-fg: #ffffff;                  /* başlık/marka — tam beyaz */
    --t-footer-muted: rgba(255, 255, 255, .72); /* gövde/link — okunur */
    --t-footer-hover: #ffffff;
    --t-footer-border: rgba(255, 255, 255, .14);
    --t-footer-chip: rgba(255, 255, 255, .08);

    position: relative;
    background: var(--t-footer-bg);
    color: var(--t-footer-fg);
    padding-block: var(--t-space-10) var(--t-space-4);
    margin-top: var(--t-space-10);
    overflow: hidden;
}
.t-footer::before {
    content: "";
    position: absolute; top: 0; left: 0; right: 0; height: 3px;
    background: var(--t-gradient-accent);
}
.t-footer::after {
    content: "";
    position: absolute; bottom: -40%; left: -5%;
    width: 40rem; height: 40rem;
    background: radial-gradient(circle, rgba(37,99,235,.18) 0%, transparent 60%);
    pointer-events: none;
}
.t-footer > .container { position: relative; z-index: 1; }
.t-footer h5 {
    color: var(--t-footer-fg);
    font-size: .8rem; text-transform: uppercase; letter-spacing: .08em;
    margin-bottom: var(--t-space-3); opacity: .7;
}
.t-footer a { color: var(--t-footer-muted); transition: color var(--t-transition), padding-left var(--t-transition); }
.t-footer ul a:hover { color: var(--t-footer-hover); padding-left: .35rem; }
.t-footer__brand { font-family: var(--t-font-heading); font-weight: 800; font-size: 1.4rem; color: var(--t-footer-fg); }
.t-footer__social a {
    display: inline-flex; align-items: center; justify-content: center;
    width: 42px; height: 42px; border-radius: 50%;
    background: var(--t-footer-chip);
    border: 1px solid var(--t-footer-border);
    color: var(--t-footer-muted);
    transition: background var(--t-transition), color var(--t-transition), transform var(--t-transition), border-color var(--t-transition);
}
.t-footer__social a:hover { background: var(--t-accent); color: #fff; transform: translateY(-3px); padding-left: 0; border-color: var(--t-accent); }
.t-footer__bottom {
    border-top: 1px solid var(--t-footer-border);
    margin-top: var(--t-space-6); padding-top: var(--t-space-3);
    font-size: 0.875rem;
}

/* ---------- Formlar ---------- */
.t-form .form-label { font-weight: 600; color: var(--t-secondary); margin-bottom: .4rem; }
.t-form .form-control,
.t-form .form-select {
    border-radius: var(--t-radius-sm);
    border: 1.5px solid var(--t-border);
    background: var(--t-surface);
    color: var(--t-fg);
    min-height: 48px;
    padding: .65rem .9rem;
    transition: border-color var(--t-transition), box-shadow var(--t-transition);
}
.t-form .form-control:focus,
.t-form .form-select:focus {
    border-color: var(--t-accent);
    box-shadow: 0 0 0 4px var(--t-accent-soft);
}
.t-form textarea.form-control { min-height: 9rem; }
.t-required { color: var(--t-danger); }

/* ---------- Dosya seçici (kariyer başvuru formu: CV yükleme) ----------
   Native <input type="file"> label içine gizlenir (opacity:0 — display:none
   DEĞİL, klavye/screen reader erişimi ve :invalid stilleri korunur). Kart
   görünümü .form-control ile aynı border/radius dilini paylaşır. */
.t-file-picker {
    position: relative;
    display: flex; align-items: center; gap: var(--t-space-3);
    border: 1.5px dashed var(--t-border);
    border-radius: var(--t-radius-sm);
    background: var(--t-surface);
    padding: .85rem 1rem;
    cursor: pointer;
    transition: border-color var(--t-transition), background var(--t-transition);
}
.t-file-picker:hover { border-color: var(--t-accent); background: var(--t-surface-2); }
.t-file-picker.has-file { border-style: solid; border-color: var(--t-accent); background: var(--t-accent-soft); }
.t-file-picker__icon {
    flex-shrink: 0;
    display: inline-flex; align-items: center; justify-content: center;
    width: 2.5rem; height: 2.5rem;
    border-radius: var(--t-radius-sm);
    background: var(--t-surface-2);
    color: var(--t-accent);
    font-size: 1.15rem;
}
.t-file-picker.has-file .t-file-picker__icon { background: #fff; }
.t-file-picker__text { flex: 1 1 auto; min-width: 0; }
.t-file-picker__title {
    display: block; font-weight: 600; color: var(--t-fg);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.t-file-picker__hint { display: block; font-size: .78rem; color: var(--t-muted); margin-top: .1rem; }
.t-file-picker__btn { flex-shrink: 0; pointer-events: none; }
.t-file-picker__input {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    opacity: 0; cursor: pointer;
    margin: 0; padding: 0; border: 0;
}
.t-file-picker__input:focus-visible ~ .t-file-picker__btn,
.t-file-picker:has(.t-file-picker__input:focus-visible) { outline: 2px solid var(--t-ring, var(--t-accent)); outline-offset: 2px; }

/* ---------- İçerik (rich text) ---------- */
.t-prose { color: var(--t-fg); line-height: 1.8; max-width: 72ch; font-size: 1.02rem; }
.t-prose img { max-width: 100%; height: auto; border-radius: var(--t-radius-sm); margin-block: 1rem; }
.t-prose h2, .t-prose h3 { margin-top: var(--t-space-4); margin-bottom: .75rem; }
.t-prose p { margin-bottom: 1.1rem; }
.t-prose ul, .t-prose ol { padding-left: 1.25rem; margin-bottom: 1.1rem; }
.t-prose li { margin-bottom: .4rem; }
.t-prose a { font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.t-prose blockquote {
    border-left: 3px solid var(--t-accent);
    padding-left: 1.25rem; margin: 1.5rem 0;
    color: var(--t-muted); font-style: italic;
}

/* ---------- İç sayfa başlık şeridi ---------- */
.t-page-header {
    position: relative;
    background:
        radial-gradient(60rem 30rem at 100% -20%, var(--t-accent-soft) 0%, transparent 60%),
        var(--t-surface-2);
    border-bottom: 1px solid var(--t-border);
    padding-block: clamp(2.5rem, 6vw, 4.5rem);
}
.t-page-header h1 { font-size: clamp(1.85rem, 4vw, 2.75rem); }
.t-page-header p { color: var(--t-muted); font-size: 1.1rem; max-width: 60ch; }

/* ---------- Breadcrumb ---------- */
.t-breadcrumb { font-size: 0.875rem; color: var(--t-muted); }
.t-breadcrumb a { color: var(--t-muted); }
.t-breadcrumb a:hover { color: var(--t-accent); }

/* ---------- Boş durum ---------- */
.t-empty {
    text-align: center; padding: var(--t-space-10) var(--t-space-2); color: var(--t-muted);
    border: 1.5px dashed var(--t-border); border-radius: var(--t-radius);
    background: var(--t-surface);
}
.t-empty i { color: var(--t-border-strong); }

/* ---------- CTA bandı ----------
   Beyaz metin taşır → zemin mod-aware --t-primary'ye DEĞİL sabit koyu
   navy'ye bağlanır (koyu modda beyaza dönüp metni kaybetmesin). */
.t-cta {
    position: relative;
    background: #0f172a; /* sabit koyu navy */
    border-radius: var(--t-radius-lg);
    padding: clamp(2.5rem, 6vw, 4.5rem);
    color: #fff;
    overflow: hidden;
    text-align: center;
}
.t-cta::before {
    content: "";
    position: absolute; inset: 0;
    background:
        radial-gradient(40rem 20rem at 0% 0%, rgba(37,99,235,.4) 0%, transparent 55%),
        radial-gradient(40rem 20rem at 100% 100%, rgba(14,165,233,.35) 0%, transparent 55%);
    pointer-events: none;
}
.t-cta > * { position: relative; z-index: 1; }
.t-cta h2 { color: #fff; font-size: clamp(1.75rem, 3.5vw, 2.5rem); }
.t-cta p { color: rgba(255,255,255,.85); }
.t-cta .btn-outline-accent { color: #fff; border-color: rgba(255,255,255,.45); }
.t-cta .btn-outline-accent:hover { background: #fff; color: var(--t-primary); border-color: #fff; }

/* ---------- Sayfalama ---------- */
.pagination { gap: .35rem; }
.pagination .page-link {
    border-radius: var(--t-radius-sm);
    border-color: var(--t-border);
    color: var(--t-secondary);
    min-width: 44px; min-height: 44px;
    display: flex; align-items: center; justify-content: center;
    background: var(--t-surface);
}
.pagination .page-link:hover { background: var(--t-accent-soft); color: var(--t-accent); border-color: var(--t-accent); }
.pagination .page-item.active .page-link {
    background: var(--t-gradient-accent); border-color: transparent; color: #fff;
}

/* ---------- FAZ-E: Yüzen WhatsApp butonu ----------
   "Modern Corporate" dili: yuvarlak FAB, gradient dolgu, yumuşak glow gölge —
   theme.css'in geri kalanıyla aynı token'lar (--t-gradient-accent,
   --t-shadow-accent, --t-radius-pill), sabit renk/hex YOK. FAZ-B Theme
   Customizer'daki "Ana Renk" slider'ı bu butonu da otomatik günceller.
   Sağ-alt sabit köşe; z-index 1030 = Bootstrap sticky-top navbar'ın (1020)
   üstünde, dropdown/modal (1050+) altında — hiçbir katman çakışmaz. Mobilde
   metin etiketi gizlenir (dar ekranda yer kaplamasın), yalnızca ikon kalır;
   58px çap 44px asgari dokunma hedefinin üstünde. */
.t-floating-whatsapp {
    position: fixed;
    right: var(--t-space-2);
    bottom: var(--t-space-2);
    z-index: 1030;
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    padding: .8rem 1.15rem .8rem .8rem;
    background: var(--t-gradient-accent);
    color: #fff;
    border-radius: var(--t-radius-pill);
    box-shadow: var(--t-shadow-accent);
    text-decoration: none;
    line-height: 1;
    transition: transform var(--t-transition), box-shadow var(--t-transition);
}
.t-floating-whatsapp:hover,
.t-floating-whatsapp:focus-visible {
    color: #fff;
    transform: translateY(-3px);
    box-shadow: var(--t-shadow-lg);
}
.t-floating-whatsapp:active { transform: translateY(-1px); }
.t-floating-whatsapp__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .18);
    font-size: 1.35rem;
    flex-shrink: 0;
}
.t-floating-whatsapp__label {
    font-weight: 600;
    font-size: .92rem;
    white-space: nowrap;
    max-width: 14rem;
}
@media (max-width: 575.98px) {
    .t-floating-whatsapp {
        right: var(--t-space-1);
        bottom: var(--t-space-1);
        padding: .55rem;
    }
    .t-floating-whatsapp__label { display: none; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
        scroll-behavior: auto !important;
    }
    .js [data-reveal] { opacity: 1 !important; transform: none !important; }
    .t-card:hover { transform: none; }
    .t-card:hover .t-card__media img { transform: none; }
    .t-hero__media img { animation: none; transform: none; }
    .t-floating-whatsapp:hover { transform: none; }
}

/* ============================================================
   FAZ-F — İçerik Modülleri (SSS, Fiyatlandırma, Newsletter, Arama)
   "Modern Corporate" dili: yumuşak köşe, katmanlı gölge, gradient
   accent — mevcut .t-card/.t-badge/.t-form token'larıyla tutarlı,
   yeni renk/hex İCAT EDİLMEDİ, hepsi --t-* değişkenlerinden gelir.
   ============================================================ */

/* ---------- SSS: Bootstrap accordion, tema token'larına bağlanmış ----------
   Özel bir accordion component'i yazmak yerine Bootstrap'in native
   .accordion sınıflarını temanın --t-* token'larıyla köprülüyoruz
   (yeni CSS component İCAT ETMEDEN Bootstrap'in a11y/klavye davranışını
   olduğu gibi kullanıyoruz — collapse/aria-expanded zaten Bootstrap JS'inde). */
.t-faq-accordion .accordion-item {
    background: var(--t-surface);
    border: 1px solid var(--t-border);
    border-radius: var(--t-radius);
    margin-bottom: var(--t-space-1);
    overflow: hidden;
}
.t-faq-accordion .accordion-item:last-child { margin-bottom: 0; }
.t-faq-accordion .accordion-button {
    font-family: var(--t-font-heading);
    font-weight: 600;
    color: var(--t-primary);
    background: var(--t-surface);
    padding: 1.25rem 1.5rem;
    box-shadow: none;
}
.t-faq-accordion .accordion-button:not(.collapsed) {
    /* NOT: metin rengi BİLİNÇLİ OLARAK --t-accent DEĞİL --t-primary kalır.
       --t-accent-soft (%10 alfa) zemin üstünde --t-accent metni WCAG AA
       4.5:1'i garanti edemiyor (Theme Customizer'ın canlı "Ana Renk"
       değerine göre — özellikle #0d6efd gibi orta parlaklıkta tonlarda
       ölçülüp doğrulandı, ~3.9:1'e düşebiliyor). Vurgu, kontrast riski
       taşımayan sol kenarlık + zemin renginden gelir (ui-ux-pro-max:
       color-not-only — rengi TEK vurgu taşıyıcısı yapma). */
    color: var(--t-primary);
    background: var(--t-accent-soft);
    border-left: 3px solid var(--t-accent);
    box-shadow: none;
}
.t-faq-accordion .accordion-button:focus { box-shadow: none; }
.t-faq-accordion .accordion-button:focus-visible {
    outline: 3px solid var(--t-accent);
    outline-offset: -3px;
}
.t-faq-accordion .accordion-button::after { filter: none; }
.t-faq-accordion .accordion-body { padding: .25rem 1.5rem 1.5rem; }

/* ---------- Fiyatlandırma: 3 sütun karşılaştırma kartı ----------
   .isFeatured olan kart görsel olarak vurgulu: kalın accent kenarlık,
   yükseltilmiş gölge, "En Popüler" rozeti ve hafif ölçek — grid'in geri
   kalanından net biçimde ayrışır (ui-ux-pro-max: featured plan highlight). */
.t-pricing-card {
    background: var(--t-surface);
    border: 1.5px solid var(--t-border);
    border-radius: var(--t-radius-lg);
    padding: var(--t-space-4) var(--t-space-3);
    height: 100%;
    display: flex;
    flex-direction: column;
    transition: transform var(--t-transition), box-shadow var(--t-transition), border-color var(--t-transition);
}
.t-pricing-card:hover { transform: translateY(-4px); box-shadow: var(--t-shadow-md); border-color: var(--t-border-strong); }
.t-pricing-card--featured {
    border-color: var(--t-accent);
    box-shadow: var(--t-shadow-lg);
    position: relative;
}
@media (min-width: 992px) {
    .t-pricing-card--featured { transform: scale(1.04); z-index: 1; }
    .t-pricing-card--featured:hover { transform: scale(1.04) translateY(-4px); }
}
.t-pricing-card__badge {
    position: absolute;
    top: -.8rem;
    left: 50%;
    transform: translateX(-50%);
    background: var(--t-gradient-accent);
    color: #fff;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .02em;
    padding: .35rem 1rem;
    border-radius: var(--t-radius-pill);
    box-shadow: var(--t-shadow-sm);
    white-space: nowrap;
}
.t-pricing-card__name { font-size: 1.25rem; margin-bottom: .25rem; }
.t-pricing-card__price {
    font-family: var(--t-font-heading);
    font-weight: 800;
    font-size: clamp(2rem, 4vw, 2.5rem);
    color: var(--t-primary);
    line-height: 1.1;
    margin-top: .75rem;
}
.t-pricing-card--featured .t-pricing-card__price { color: var(--t-accent); }
.t-pricing-card__period { color: var(--t-muted); font-size: .9rem; margin-left: .35rem; }
.t-pricing-card__features {
    list-style: none;
    padding: 0;
    margin: var(--t-space-3) 0;
    display: flex;
    flex-direction: column;
    gap: .65rem;
    flex: 1;
}
.t-pricing-card__features li {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    font-size: .95rem;
    color: var(--t-fg);
}
.t-pricing-card__features i { color: var(--t-success); margin-top: .2rem; flex-shrink: 0; }
.t-pricing-card .btn { width: 100%; margin-top: auto; }

/* ---------- Newsletter: footer abonelik formu ----------
   Tek satır input+buton (masaüstü), dikey yığın (mobil). Başarı/hata
   mesajı JS ile aynı konumda inline gösterilir (sayfa yenilenmeden). */
.t-newsletter-form {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
}
.t-newsletter-form .form-control {
    flex: 1 1 14rem;
    min-width: 0;
    background: var(--t-surface-2);
    border-color: var(--t-border);
    color: var(--t-fg);
}
.t-newsletter-form .btn { flex-shrink: 0; }
.t-newsletter-form__feedback {
    font-size: .875rem;
    margin-top: .6rem;
    display: none;
    align-items: center;
    gap: .4rem;
}
.t-newsletter-form__feedback.is-visible { display: flex; }
.t-newsletter-form__feedback--success { color: var(--t-success); }
.t-newsletter-form__feedback--error { color: var(--t-danger); }

/* ---------- Arama: navbar ikon-tetikleyici + açılır kutu ----------
   Navbar'a 10. kalabalık öge eklemek yerine ikon-only bir buton +
   üstten açılan/genişleyen kompakt bir arama paneli (FAZ-E frontend
   notunun devamı: navbar zaten 9 öge taşıyor). */
.t-search-toggle { }
.t-search-panel {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--t-surface);
    border-bottom: 1px solid var(--t-border);
    box-shadow: var(--t-shadow-md);
    padding: var(--t-space-2) 0;
    display: none;
}
.t-search-panel.is-open { display: block; }
.t-search-panel form { display: flex; gap: .5rem; }
.t-search-panel .form-control { flex: 1 1 auto; }

/* ---------- Arama sonuç sayfası ---------- */
.t-search-group + .t-search-group { margin-top: var(--t-space-4); }
.t-search-group__title {
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-bottom: var(--t-space-2);
    padding-bottom: .6rem;
    border-bottom: 1px solid var(--t-border);
}
.t-search-group__title .t-badge { font-weight: 700; }
.t-search-result-card {
    display: block;
    background: var(--t-surface);
    border: 1px solid var(--t-border);
    border-radius: var(--t-radius);
    padding: 1.1rem 1.25rem;
    text-decoration: none;
    transition: border-color var(--t-transition), transform var(--t-transition), box-shadow var(--t-transition);
    height: 100%;
}
.t-search-result-card:hover { border-color: var(--t-accent); transform: translateY(-2px); box-shadow: var(--t-shadow-sm); color: inherit; }
.t-search-result-card__title { color: var(--t-primary); font-weight: 600; margin-bottom: .35rem; }
.t-search-result-card:hover .t-search-result-card__title { color: var(--t-accent); }
.t-search-result-card__snippet { color: var(--t-muted); font-size: .9rem; line-height: 1.6; margin: 0; }

/* ============================================================
   FAZ-G — Blog Geliştirmeleri (okuma süresi, paylaşım, etiketler,
   sidebar). "Modern Corporate" dili: yumuşak kart, rounded köşe,
   ince gölge — mevcut .t-card/.t-badge token'larıyla tutarlı.
   ============================================================ */

/* ---------- Okuma süresi rozeti ---------- */
.t-reading-time {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    color: var(--t-muted);
    font-size: .85rem;
}
.t-reading-time i { color: var(--t-accent); }
/* Liste kartında: kartın meta satırına (başlık üstü) küçük ek bilgi */
.t-card__meta {
    display: flex;
    align-items: center;
    gap: .75rem;
    color: var(--t-muted);
    font-size: .78rem;
}

/* ---------- Sosyal paylaşım butonları ---------- */
.t-share {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .6rem;
}
.t-share__label { color: var(--t-muted); font-size: .85rem; font-weight: 600; margin-right: .2rem; }
.t-share__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: var(--t-radius-pill);
    background: var(--t-surface-2);
    color: var(--t-secondary);
    font-size: 1.05rem;
    border: 1px solid transparent;
    transition: background var(--t-transition), color var(--t-transition), transform var(--t-transition);
}
.t-share__btn:hover { background: var(--t-accent); color: #fff; transform: translateY(-2px); }
.t-share__btn:focus-visible { outline: 3px solid var(--t-accent); outline-offset: 2px; }
.t-share__btn--copy { position: relative; }
.t-share__btn--copy.is-copied { background: var(--t-success); color: #fff; }
/* Kopyalandı geri bildirimi: buton üstünde beliren küçük balon */
.t-share__feedback {
    position: absolute;
    bottom: calc(100% + .5rem);
    left: 50%;
    transform: translateX(-50%) translateY(4px);
    background: var(--t-primary);
    color: #fff;
    font-size: .72rem;
    font-weight: 600;
    padding: .35rem .65rem;
    border-radius: var(--t-radius-sm);
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--t-transition), transform var(--t-transition);
}
.t-share__btn--copy.is-copied .t-share__feedback { opacity: 1; transform: translateX(-50%) translateY(0); }

/* ---------- Yazı etiketleri (detay sayfası) ---------- */
.t-post-tags { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.t-post-tags .t-badge:hover { background: var(--t-accent); color: #fff; }

/* ---------- Blog sidebar ---------- */
.t-blog-sidebar__panel {
    background: var(--t-surface);
    border: 1px solid var(--t-border);
    border-radius: var(--t-radius);
    padding: var(--t-space-3);
    box-shadow: var(--t-shadow-xs);
}
.t-blog-sidebar__title {
    font-size: .95rem;
    font-weight: 700;
    margin-top: 0;
    margin-bottom: var(--t-space-2);
    padding-bottom: .75rem;
    border-bottom: 1px solid var(--t-border);
}
.t-blog-sidebar__recent-item {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    color: var(--t-fg);
    transition: color var(--t-transition);
}
.t-blog-sidebar__recent-item:hover { color: var(--t-accent); }
.t-blog-sidebar__recent-title { font-size: .92rem; font-weight: 600; line-height: 1.35; }
.t-blog-sidebar__recent-date { font-size: .76rem; color: var(--t-muted); }
.t-blog-sidebar__cat-link {
    color: var(--t-fg);
    padding: .4rem .1rem;
    font-size: .92rem;
    transition: color var(--t-transition);
}
.t-blog-sidebar__cat-link:hover, .t-blog-sidebar__cat-link.is-active { color: var(--t-accent); }
.t-blog-sidebar__cat-link.is-active .t-badge { background: var(--t-accent); color: #fff; }

/* Etiket rozeti aktif durumu (etiket liste sayfasında görüntülenen etiket) */
.t-badge.is-active { background: var(--t-accent); color: #fff; }

/* Blog liste/detay: içerik + sidebar 2 sütun grid (mobilde sidebar altta akar) */
.t-blog-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: var(--t-space-4); align-items: start; }
.t-blog-layout__sidebar { position: sticky; top: calc(var(--t-space-4) + 64px); }
@media (max-width: 991.98px) {
    .t-blog-layout { grid-template-columns: 1fr; }
    .t-blog-layout__sidebar { position: static; }
}

/* ============================================================
   FAZ-H 4.2: :focus-visible — genel klavye odak göstergesi.
   Bootstrap'in varsayılan mavi glow'u --c-primary/--t-accent'ten
   BAĞIMSIZDIR (customizer rengini yansıtmaz); bu kural tüm interaktif
   ögelerde (link, buton, form kontrolü, native Bootstrap bileşenleri)
   temanın kendi accent rengiyle tutarlı, 3:1+ kontrastlı bir halka
   sağlar. Var olan .t-faq-accordion .accordion-button:focus-visible
   kuralı (yukarıda) ile AYNI dil/kalınlık — burada GENELLEŞTİRİLİYOR.
   :focus (fare tıklamasında da tetiklenir) DEĞİL, yalnızca
   :focus-visible (klavye/programatik odak) kullanılır — fare
   kullanıcısında gereksiz halka göstermez (WCAG 2.4.7 + modern UX). */
:focus-visible {
    outline: 2px solid var(--t-accent);
    outline-offset: 2px;
    border-radius: var(--t-radius-sm);
}
/* Bootstrap'in kendi mavi box-shadow glow'u :focus-visible ile ÇAKIŞMASIN
   diye form kontrollerinde ve butonlarda söndürülür (üstteki outline
   tek gösterge kalır — çift halka görsel karmaşa yaratmaz). */
.btn:focus-visible,
.form-control:focus-visible,
.form-select:focus-visible,
.form-check-input:focus-visible {
    box-shadow: none;
}

/* ============================================================
   FAZ-H 4.1: RTL desteği — [dir="rtl"] override bloğu.
   YAKLAŞIM: mevcut LTR kurallarının HİÇBİRİ değiştirilmedi (regresyon
   sıfır); bu blok SADECE dosyanın en sonunda, yukarıdaki fiziksel-yön
   (margin-left/right, padding-left/right, border-left/right) kurallarını
   [dir="rtl"] altında tersine çeviren ek kurallar tanımlar. Kaynak sırası
   gereği bu blok her zaman KAZANIR (aynı özgüllük, sonra tanımlı).
   Bootstrap'in KENDİ utility/bileşenleri (ms-*/me-*/ps-*/pe-*, dropdown,
   navbar-toggler, carousel, breadcrumb vb.) burada ELE ALINMIYOR — onlar
   layout.html.twig'in koşullu bootstrap.rtl.min.css yüklemesiyle çözülüyor
   (standart bootstrap.min.css [dir=rtl] SIFIR selector içerir, kendiliğinden
   dönmez — doğrulandı). Burada SADECE bu temanın kendi .t-* sınıflarındaki
   sabit fiziksel yönler ele alınıyor. */
[dir="rtl"] {
    text-align: right;
}

/* Footer link hover kayması (satır 610-621) */
[dir="rtl"] .t-footer a { transition: color var(--t-transition), padding-right var(--t-transition); }
[dir="rtl"] .t-footer ul a:hover { padding-left: 0; padding-right: .35rem; }
[dir="rtl"] .t-footer__social a:hover { padding-right: 0; }

/* Yüzen WhatsApp butonu iç boşluk asimetrisi (satır 787) — ikon/etiket
   DOM sırası flex `row` olduğu için RTL'de zaten görsel olarak otomatik
   ayna olur (Flexbox row, `direction`'a duyarlıdır), AMA `padding: T R B L`
   fiziksel shorthand'ı bundan ETKİLENMEZ — "nefes boşluğu" olan taraf
   (etiketin dış kenarı) elle tersine çevrilmezse yanlış tarafta (artık
   ikonun bitişik olduğu kenarda) kalır. Konum (position:fixed; right:)
   BİLİNÇLİ OLARAK değiştirilmedi: yüzen aksiyon butonları (WhatsApp dahil)
   dilden bağımsız hep aynı fiziksel köşede kalması yaygın bir konvansiyondur. */
[dir="rtl"] .t-floating-whatsapp { padding: .8rem .8rem .8rem 1.15rem; }

/* Zengin içerik (rich text) listeleri ve alıntı (satır 695-701) */
[dir="rtl"] .t-prose ul,
[dir="rtl"] .t-prose ol { padding-left: 0; padding-right: 1.25rem; }
[dir="rtl"] .t-prose blockquote {
    border-left: none;
    border-right: 3px solid var(--t-accent);
    padding-left: 0;
    padding-right: 1.25rem;
}

/* SSS akordeon aktif durum sol kenarlığı (satır 882) */
[dir="rtl"] .t-faq-accordion .accordion-button:not(.collapsed) {
    border-left: none;
    border-right: 3px solid var(--t-accent);
}

/* Fiyat kartı periyot etiketi boşluğu (satır 942) */
[dir="rtl"] .t-pricing-card__period { margin-left: 0; margin-right: .35rem; }

/* Paylaşım butonları etiket boşluğu (satır 1067) */
[dir="rtl"] .t-share__label { margin-right: 0; margin-left: .2rem; }

/* Breadcrumb ok ikonu ve kart "detay" oku — Bootstrap Icons yönlü glif,
   metin akışı tersine döndüğünde görsel olarak da tersine çevrilir
   (basit trick — yeni ikon seti İCAT EDİLMEDİ). */
[dir="rtl"] .t-breadcrumb i.bi-chevron-right,
[dir="rtl"] .t-card__more i.bi-arrow-right,
[dir="rtl"] .btn i.bi-arrow-right {
    transform: scaleX(-1);
}

/* Bootstrap carousel ok ikonları (home hero slider) — Bootstrap'in kendi
   maskeli SVG'leri yön-nötr ok şekli kullanır, RTL'de sadece prev/next
   pozisyonları mantıksal olarak zaten Bootstrap tarafından ayna kullanılmaz;
   burada yalnızca ok GLİFİNİN görsel yönünü çeviriyoruz (konum Bootstrap'in
   kendi .carousel-control-prev/.carousel-control-next'i solda/sağda sabit
   kalır — bu bilinçli, "geri" hep aynı fiziksel tarafta kalması karışıklığı
   azaltır, yalnızca ok GLİFİ dil akışına uyum sağlar). */
[dir="rtl"] .carousel-control-prev-icon,
[dir="rtl"] .carousel-control-next-icon {
    transform: scaleX(-1);
}

/* Responsive Logo Sizing */
.navbar-logo-img,
.navbar-brand img {
    max-height: 90px;
    height: auto;
    width: auto;
    display: block;
    object-fit: contain;
}

@media (max-width: 991.98px) {
    .navbar-logo-img,
    .navbar-brand img {
        max-height: 48px !important;
        height: auto !important;
    }
}

