/* Üst bar — sabit (sticky), duyuru çubuğu sabit değil (Ersin talimatı,
   16.09.2026). Duyuru çubuğu bu elemandan önce, normal akışta kalır;
   `sticky` yalnızca kendi doğal konumunu geçince devreye girer, bu
   yüzden ayrıca bir şey yapmaya gerek yok. */
.ust-bar-wrap {
  position: sticky; top: 0; z-index: 30; background: var(--surface);
  transition: box-shadow 0.2s;
}
.ust-bar-wrap.kaydirilmis { box-shadow: 0 2px 12px rgba(0,0,0,0.07); }

/* Üst bar */
.ust-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
  background: var(--surface);
  transition: padding 0.2s;
}
.ust-bar-wrap.kaydirilmis .ust-bar { padding: 10px 0; border-bottom-color: transparent; }
.ust-bar-wrap.kaydirilmis .logo img { height: 26px; }

.logo {
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.02em;
  text-decoration: none;
  color: var(--ink);
}
.logo img { height: 34px; width: auto; transition: height 0.2s; }

.ust-menu { display: flex; align-items: center; gap: 26px; }
.ust-menu a {
  font-size: 14px;
  color: var(--soft);
  text-decoration: none;
}
.ust-menu a[aria-current="page"] { color: var(--ink); font-weight: 500; }
.ust-menu .devre-disi { color: var(--faint); cursor: default; pointer-events: none; }

/* Açılır alt menü (ör. Hizmetler'in altındaki alt sayfalar). Başlık
   (.menu-tetik) düz bir bağlantıdır — tıklanınca sayfaya gider. Alt
   menüyü açma/kapama işi ayrı, küçük bir ok düğmesine (.menu-ok) ait;
   ikisi tek elemanda birleşirse JS'in preventDefault'u sayfaya gitmeyi
   de engeller (bkz. iş planı v2 §9). */
.menu-oge { position: relative; display: flex; align-items: center; gap: 2px; }
.menu-oge .menu-tetik { font-size: 14px; color: var(--soft); text-decoration: none; }
.menu-oge .menu-ok {
  display: flex; align-items: center; justify-content: center;
  font-size: 10px; color: var(--soft); background: none; border: none;
  cursor: pointer; padding: 4px;
}
.alt-menu {
  display: none;
  position: absolute; top: calc(100% + 18px); left: 50%; transform: translateX(-50%);
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg);
  box-shadow: 0 12px 28px rgba(20,23,26,.1);
  padding: 10px; min-width: 220px; z-index: 20;
}
.menu-oge:hover .alt-menu, .menu-oge:focus-within .alt-menu, .menu-oge.acik-dokunma .alt-menu { display: block; }
.alt-menu a {
  display: block; padding: 10px 12px; border-radius: var(--radius-sm);
  font-size: 14px; color: var(--ink); text-decoration: none;
}
.alt-menu a:hover { background: var(--accent-soft); color: var(--accent); }

/* Gezinme yolu (breadcrumb) */
.gezinme-yolu {
  display: flex; align-items: center; gap: 7px; flex-wrap: wrap;
  font-size: 13px; color: var(--faint); margin-bottom: 18px;
}
.gezinme-yolu a { color: var(--faint); text-decoration: none; }
.gezinme-yolu a:hover { color: var(--accent); }
.gezinme-yolu .aktif { color: var(--ink); }

.hamburger {
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--surface);
  cursor: pointer;
}
.hamburger span,
.hamburger span::before,
.hamburger span::after {
  display: block;
  width: 18px;
  height: 2px;
  background: var(--ink);
  position: relative;
  transition: transform 0.15s ease, opacity 0.15s ease;
}
.hamburger span::before { content: ""; position: absolute; top: -6px; }
.hamburger span::after { content: ""; position: absolute; top: 6px; }

/* Sağ yan menü paneli (Ersin talimatı, 17.09.2026 — "Opsiyonel sağ yan
   akordiyon menü") — mobilde her zaman, masaüstünde yalnızca Tasarım'dan
   "Sağ yan menü (akordiyon)" seçiliyken bu panel kullanılır (bkz.
   body.menu-duzeni-yan aşağıda). Kapalıyken hem sağa kaydırılır hem de
   visibility:hidden — yalnızca transform kullansaydık kapalıyken de
   klavyeyle Tab'a görünmez bağlantılara odaklanılabilirdi (JS kapalıyken
   menü linkleri zaten footer'da listeleniyor, bu panelden değil). */
.yan-menu-panel {
  position: fixed; top: 0; right: 0; height: 100%;
  width: min(380px, 100%);
  background: var(--surface);
  z-index: 110;
  padding: 20px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  visibility: hidden;
  transition: transform 0.25s ease, visibility 0.25s;
  box-shadow: -12px 0 32px rgba(20,23,26,.12);
}
.yan-menu-panel.acik { transform: translateX(0); visibility: visible; }
.yan-menu-backdrop {
  display: none;
  position: fixed; inset: 0;
  background: rgba(14,20,23,0.45);
  z-index: 105;
}
.yan-menu-backdrop.acik { display: block; }
.yan-menu-ust {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}
.yan-menu-nav { display: flex; flex-direction: column; gap: 2px; flex: 1; }
.yan-menu-satir { display: flex; align-items: center; }
.yan-menu-baslik {
  flex: 1;
  font-family: var(--font-display);
  font-size: 17px;
  padding: 13px 4px;
  text-decoration: none;
  color: var(--ink);
  min-height: 44px;
  display: flex;
  align-items: center;
}
.yan-menu-baslik.aktif { color: var(--accent); }
.yan-menu-baslik.devre-disi { color: var(--faint); cursor: default; }
.yan-menu-ok {
  width: 44px; height: 44px;
  display: flex; align-items: center; justify-content: center;
  background: none; border: none; cursor: pointer; color: var(--soft);
  font-size: 12px; transition: transform 0.15s;
}
.yan-menu-dal.acik .yan-menu-ok { transform: rotate(180deg); }
.yan-alt-menu {
  display: none;
  flex-direction: column;
  padding-left: 4px;
  margin: 2px 0 8px 18px;
  border-left: 2px solid var(--line);
}
.yan-menu-dal.acik .yan-alt-menu { display: flex; }
.yan-alt-menu a {
  padding: 10px 14px;
  font-size: 15px;
  color: var(--soft);
  text-decoration: none;
  min-height: 40px;
  display: flex;
  align-items: center;
}
.yan-alt-menu a[aria-current="page"] { color: var(--accent); font-weight: 600; }
.yan-menu-alt-bilgi {
  border-top: 1px solid var(--line);
  padding-top: 16px;
  margin-top: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-size: 14px;
  color: var(--soft);
}
.yan-menu-alt-bilgi a { color: var(--soft); text-decoration: none; }
body.menu-acik { overflow: hidden; }

/* Sağ yan menü düzeni seçiliyken (Tasarım ayarı): üst bardaki ana
   bağlantılar gizlenir, ☰ düğmesi masaüstünde de görünür kalır — mobilde
   zaten görünür (bkz. responsive.css). */
body.menu-duzeni-yan .ust-menu { display: none; }
body.menu-duzeni-yan .hamburger { display: flex; }

/* Sol sabit menü (Ersin talimatı, 17.09.2026 — "Sol sabit menü") — sürekli
   açık, sayfa kaydırılırken yerinde sabit kalan dikey menü sütunu.
   Masaüstünde üst bar tamamen kalkıyor (logo/menü/iletişim bu sütunun
   içinde); ≤1023px'te (bkz. responsive.css) sol menü gizlenir, üst bar
   yalnızca logo + ☰ olarak geri döner — mevcut sağdan kayan panel
   (yan-menu-panel) kullanılır, üç menü tipinde de tutarlı. */
.sol-menu { display: none; }
body.menu-duzeni-sol .ust-bar-wrap { display: none; }
body.menu-duzeni-sol .sol-menu {
  display: flex;
  flex-direction: column;
  position: fixed;
  top: 0; left: 0;
  width: 272px;
  height: 100vh;
  background: var(--dark);
  color: var(--text-on-dark);
  overflow-y: auto;
  z-index: 40;
}
body.menu-duzeni-sol .sol-menu:before {
  content: "";
  position: fixed;
  top: 0; left: 0;
  width: 272px; height: 100vh;
  background-image:
    linear-gradient(var(--dark-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--dark-grid) 1px, transparent 1px);
  background-size: 34px 34px;
  opacity: .55;
  pointer-events: none;
}
body.menu-duzeni-sol .sol-menu > * { position: relative; }
body.menu-duzeni-sol > main,
body.menu-duzeni-sol > .footer,
body.menu-duzeni-sol > .icerik-ust-serit {
  margin-left: 272px;
}
.sol-menu-ust {
  padding: 26px 22px 18px;
  border-bottom: 1px solid var(--dark-line);
}
.sol-menu .logo { display: flex; align-items: center; justify-content: center; }
.sol-menu .logo img { height: 118px; width: auto; display: block; }
.sol-menu-etiket {
  margin-top: 14px;
  text-align: center;
  font-size: 11.5px;
  line-height: 1.5;
  color: var(--faint-on-dark);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.sol-menu-nav { display: flex; flex-direction: column; flex: 1; padding: 10px 0; }
.sol-menu-satir { display: flex; align-items: center; }
.sol-menu-baslik {
  flex: 1;
  font-size: 14.5px;
  padding: 0 22px;
  height: 44px;
  text-decoration: none;
  color: var(--soft-on-dark);
  display: flex;
  align-items: center;
  position: relative;
}
.sol-menu-baslik:hover { background: var(--dark-hover); color: #fff; }
.sol-menu-baslik.aktif {
  color: #fff;
  background: linear-gradient(90deg, color-mix(in srgb, var(--accent) 55%, transparent), transparent);
}
.sol-menu-baslik.aktif:before {
  content: "";
  position: absolute;
  left: 0; top: 8px; bottom: 8px;
  width: 3px;
  background: var(--accent-on-dark);
  border-radius: 0 3px 3px 0;
}
.sol-menu-baslik.devre-disi { color: var(--faint-on-dark); cursor: default; padding: 0 22px; height: 44px; }
.sol-menu-ok {
  width: 36px; height: 36px;
  margin-right: 10px;
  display: flex; align-items: center; justify-content: center;
  background: none; border: none; cursor: pointer; color: var(--faint-on-dark);
  transition: transform 0.15s;
}
.sol-menu-dal.acik > .sol-menu-satir .sol-menu-ok { transform: rotate(180deg); }
.sol-alt-menu {
  display: flex;
  flex-direction: column;
  padding: 2px 0 8px 52px;
}
/* JS kapalıyken tüm dallar açık görünsün diye varsayılan görünür; JS
   yüklenince <html> öğesine "js-aktif" eklenir ve kapalı dallar gizlenir
   (bkz. nav.js). */
.js-aktif .sol-menu-dal:not(.acik) .sol-alt-menu { display: none; }
.sol-alt-menu a {
  display: block;
  padding: 7px 0 7px 14px;
  margin-left: -1px;
  border-left: 1px solid var(--dark-line-soft);
  font-size: 13px;
  color: var(--muted-on-dark);
  text-decoration: none;
}
.sol-alt-menu a:hover { color: var(--accent-on-dark); }
.sol-alt-menu a[aria-current="page"] { color: var(--accent-on-dark); font-weight: 600; }
.sol-menu-alt {
  padding: 16px 22px 20px;
  border-top: 1px solid var(--dark-line);
}
.sol-menu-cta {
  display: block;
  text-align: center;
  padding: 11px 12px;
  border-radius: var(--radius-md);
  background: var(--accent);
  color: #fff !important;
  text-decoration: none;
  font-weight: 600;
  font-size: 14px;
}
.sol-menu-alt-bilgi {
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--faint-on-dark);
}
.sol-menu-alt-bilgi a { color: var(--faint-on-dark); text-decoration: none; }
.sol-menu-alt-bilgi .footer-sosyal { margin-top: 6px; gap: 8px; }
.sol-menu-alt-bilgi .sosyal-ikon {
  width: 26px; height: 26px;
  border: 1px solid var(--dark-line);
  border-radius: var(--radius-sm);
  color: var(--faint-on-dark);
}

/* Sol menü açıkken içerik üstünde ince kırıntı (breadcrumb) şeridi —
   üst bar kalktığı için sayfa konumu ve dil/arama burada gösterilir. */
.icerik-ust-serit {
  display: none;
}
body.menu-duzeni-sol .icerik-ust-serit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 56px;
  padding: 0 32px;
  background: var(--surface);
  border-bottom: 1px solid var(--line);
  font-size: 12.5px;
  color: var(--soft);
}
.icerik-ust-serit .kirinti { letter-spacing: .04em; }
.icerik-ust-serit .kirinti a { color: inherit; text-decoration: none; }
.icerik-ust-serit .kirinti a:hover { color: var(--accent); }
.icerik-ust-serit .sag { display: flex; gap: 16px; align-items: center; }

/* Hero */
.hero { padding-block: 64px 56px; }
.hero h1 {
  font-size: 56px;
  line-height: 1.05;
  font-weight: 600;
  max-width: 820px;
}
.hero h1 .vurgu { color: var(--accent); }
.hero .aciklama {
  font-size: 18px;
  line-height: 1.62;
  color: var(--soft);
  margin: 24px 0 0;
  max-width: 560px;
}
.hero .butonlar { display: flex; gap: 12px; margin-top: 30px; flex-wrap: wrap; }

/* Anasayfa slider (bkz. HomeSlide, Ersin talimatı 17.09.2026 — "Ana sayfa
   slider: birden fazla görsel, otomatik geçiş"). .hero-slider kendisi bir
   grid konteyneri; her .hero-slayt aynı hücreye (1/1) yerleştirilip
   üst üste biner — konteynerin yüksekliği en uzun slayta göre otomatik
   belirlenir, position:absolute'e gerek kalmaz. */
.hero-slider { position: relative; border-radius: var(--radius-lg); overflow: hidden; background: var(--dark); display: grid; }
.hero-slayt {
  grid-area: 1 / 1;
  display: grid !important;
  grid-template-columns: 1fr 1fr; align-items: center; gap: 24px;
  min-height: 460px; padding: 48px 56px;
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.hero-slayt.aktif { opacity: 1; visibility: visible; pointer-events: auto; }
/* Geçiş efekti "yatay kayma" seçiliyken (panelden ayarlanır) hafif bir
   kaydırma da eklenir — tam genişlikte klasik karusel değil, daha sade
   bir "kayarak beliren" his (bkz. TALIMAT, "yumuşak geçiş"). */
.hero-slider[data-gecis="kaydirma"] .hero-slayt { transform: translateX(24px); }
.hero-slider[data-gecis="kaydirma"] .hero-slayt.aktif { transform: translateX(0); }
@media (prefers-reduced-motion: reduce) {
  .hero-slayt { transition: none; }
}
.hero-eyebrow { font-family: var(--font-display); font-size: 12px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #7FC4BC; margin-bottom: 18px; }
.hero-slayt-baslik { color: #fff; font-size: 44px; line-height: 1.08; margin: 0; font-family: var(--font-display); font-weight: 600; }
.hero-slayt .aciklama { color: #AEB4B8; max-width: 480px; }
.hero-slayt-gorsel { border-radius: var(--radius-md); overflow: hidden; aspect-ratio: 4 / 3; }
.hero-slayt-gorsel img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hero-slider-kontrol {
  position: absolute; left: 56px; right: 56px; bottom: 26px; z-index: 3;
  display: flex; align-items: center; gap: 16px;
}
.hero-noktalar { display: flex; gap: 6px; }
.hero-nokta { width: 6px; height: 6px; border-radius: 3px; background: #3A474B; }
.hero-nokta.aktif { width: 26px; background: #7FC4BC; }
.hero-oklar { display: flex; gap: 10px; }
.hero-ok {
  width: 40px; height: 40px; border-radius: 50%; border: 1px solid #3A474B;
  background: transparent; color: #E8E6E0; font-size: 18px; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.hero-ok:hover { border-color: #7FC4BC; color: #7FC4BC; }

/* Rakam şeridi */
.rakam-seridi {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 32px 0;
}
.rakam-seridi .rakam { padding-left: 28px; border-left: 1px solid var(--line); }
.rakam-seridi .rakam:first-child { padding-left: 0; border-left: none; }
.rakam-seridi .deger {
  font-family: var(--font-display);
  font-size: 40px;
  font-weight: 700;
  color: var(--accent);
  letter-spacing: -0.03em;
  line-height: 1;
}
.rakam-seridi .aciklama { font-size: 13.5px; color: var(--soft); margin-top: 8px; }
/* Sayfa banner'ının altında (ör. Hakkımızda) — anasayfadaki tam genişlik
   şeridin küçük hâli (bkz. TALIMAT 18.09.2026, "Eski banner görsellerini
   kaldır"). Aynı .rakam-seridi dilini kullanır, yalnızca boşluk farklı. */
.sayfa-rakam-seridi { margin-bottom: 32px; padding: 24px 0; }

/* Sık Sorulanlar — kategori başlıklı akordiyon (bkz. TALIMAT 18.09.2026,
   "Sık Sorulan Sorular sayfası boş — içerik hazır, gir"). <details>/
   <summary> kullanılıyor: JS kapalıyken de her soru tıklanıp açılabilir
   (native davranış), ekran okuyucular için ek bir işaretlemeye gerek yok. */
.sss-kategoriler h2 { margin: 40px 0 16px; }
.sss-kategoriler h2:first-child { margin-top: 0; }
.sss-akordiyon { display: flex; flex-direction: column; gap: 10px; }
.sss-soru {
  border: 1px solid var(--line); border-radius: var(--radius-md);
  padding: 16px 20px; background: var(--surface);
}
.sss-soru summary {
  cursor: pointer; list-style: none; display: flex; align-items: center;
  justify-content: space-between; gap: 12px;
}
.sss-soru summary::-webkit-details-marker { display: none; }
.sss-soru summary h3 { margin: 0; font-size: 16.5px; font-weight: 600; color: var(--ink); }
.sss-soru summary::after {
  content: "+"; flex: none; font-size: 20px; color: var(--accent);
  font-family: var(--font-display); line-height: 1;
}
.sss-soru[open] summary::after { content: "–"; }
.sss-soru p { margin: 14px 0 0; color: var(--soft); font-size: 15.5px; line-height: 1.65; }

/* Kart ızgarası — sütun sayısı tasarım ayarından gelir */
.kart-izgara {
  display: grid;
  grid-template-columns: repeat(var(--card-columns), 1fr);
  gap: 14px;
}

/* Anasayfa otomatik bölümleri (Hizmetler, Projeler, Blog…): kayıt sayısına
   göre sütun sayısı (bkz. apps.design.templatetags.design_tags.
   kart_sutun_sinifi) — tek kalan kart hiçbir zaman yalnız satırda sola
   yaslı kalmasın diye (TALIMAT 17.09.2026, "Ana sayfa ve genel yerleşim").
   .kart-izgara ile aynı özgüllükte tutulmuş tablet/mobil kuralları (bkz.
   responsive.css) bu sınıfları geçersiz kılar. */
.kart-izgara.izgara-1 { grid-template-columns: repeat(1, 1fr); }
.kart-izgara.izgara-2 { grid-template-columns: repeat(2, 1fr); }
.kart-izgara.izgara-3 { grid-template-columns: repeat(3, 1fr); }
.kart-izgara.izgara-4 { grid-template-columns: repeat(4, 1fr); }

.gorsel-cerceve {
  aspect-ratio: var(--image-ratio);
  background: var(--accent-soft);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.gorsel-cerceve img, .gorsel-cerceve picture { width: 100%; height: 100%; object-fit: cover; }

/* Hakkımızda benzeri iki sütun */
.iki-sutun {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 32px;
  align-items: start;
}

/* Sayfa içeriği (Trix'ten gelen HTML) — geniş konteynerde (bkz.
   --content-width) uzun paragraflar okunaklı kalsın diye satır genişliği
   sınırlanır; ızgaralar (kart-izgara vb.) bu sınıfın dışında kaldığı için
   tam genişliği kullanmaya devam eder. */
.sayfa-icerik { font-size: 17px; line-height: 1.75; color: var(--soft); max-width: 75ch; }
.sayfa-icerik h2, .sayfa-icerik h3 { color: var(--ink); margin: 1.4em 0 0.5em; }
.sayfa-icerik a { color: var(--accent); }
.sayfa-icerik ul, .sayfa-icerik ol { padding-left: 1.3em; }

/* ---- Sayfa bannerı (İK, İletişim vb.) ---- */
.sayfa-banner {
  display: grid; grid-template-columns: 1.1fr 1fr; gap: 0;
  min-height: 300px; border: 1px solid var(--line); border-radius: var(--radius-lg);
  overflow: hidden; margin-bottom: 32px; background: var(--surface);
}
.sayfa-banner.tek-sutun { grid-template-columns: 1fr; }
.sayfa-banner-metin { display: flex; flex-direction: column; justify-content: center; gap: 14px; padding: 44px 52px; min-width: 0; }
.sayfa-banner-eyebrow {
  font-family: var(--font-display); font-size: 12px; font-weight: 600;
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent);
}
.sayfa-banner-metin h1 {
  font-size: clamp(30px, 4vw, 48px); line-height: 1.08; font-weight: 600;
  margin: 0; text-wrap: balance;
}
.sayfa-banner-aciklama { color: var(--soft); font-size: 16px; line-height: 1.6; max-width: 480px; margin: 0; }
.sayfa-banner-gorsel { background: var(--accent-soft); min-height: 220px; }
.sayfa-banner-gorsel img, .sayfa-banner-gorsel picture { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Banner çizgi illüstrasyonu + animasyonu (bkz. TALIMAT 18.09.2026,
   "Banner animasyonu — illüstrasyonlar hazır, uygula"; referans
   docs/tasarim/banner-anim.html) — fotoğraf yüklenmemiş banner'larda
   gösterilir, banner-anim.js sınıf/gecikme ataması yapar. */
.banner-illustrasyon svg { width: 100%; height: 100%; display: block; }
.banner-illustrasyon-hero svg {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 26%);
  mask-image: linear-gradient(90deg, transparent 0, #000 26%);
}
.gridln { opacity: 0; animation: banner-gridln-belir .9s ease .05s forwards; }
@keyframes banner-gridln-belir { to { opacity: 1; } }
.dr { stroke-dasharray: 1; stroke-dashoffset: 1; animation: banner-cizgi-ciz .85s cubic-bezier(.4,0,.2,1) forwards; }
@keyframes banner-cizgi-ciz { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
.pop {
  opacity: 0; transform-box: fill-box; transform-origin: 50% 50%; transform: scale(.3);
  animation: banner-nokta-belir .5s cubic-bezier(.2,1.3,.4,1) forwards, banner-nefes 5s ease-in-out infinite;
}
@keyframes banner-nokta-belir { to { opacity: 1; transform: scale(1); } }
@keyframes banner-nefes { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.14); } }
.scan { opacity: 0; animation: banner-tarama 7s linear 2.2s infinite; }
@keyframes banner-tarama {
  0% { opacity: 0; transform: translateX(0); }
  6% { opacity: 1; }
  60% { opacity: 1; transform: translateX(var(--w)); }
  70%, 100% { opacity: 0; transform: translateX(var(--w)); }
}
[data-banner-illustrasyon]:not(.gor) .dr,
[data-banner-illustrasyon]:not(.gor) .pop,
[data-banner-illustrasyon]:not(.gor) .gridln,
[data-banner-illustrasyon]:not(.gor) .scan { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
  .gridln, .dr, .pop { animation: none !important; opacity: 1 !important; stroke-dashoffset: 0 !important; transform: none !important; }
  .scan { display: none !important; }
}

.teklif-al-kart {
  background: var(--dark); border-radius: var(--radius-lg); padding: 24px; color: #fff;
  display: flex; flex-direction: column; gap: 8px;
}
.teklif-al-kart h3 { font-size: 18px; margin: 0; color: #fff; }
.teklif-al-kart p { font-size: 13.5px; color: #9CA2A8; margin: 0 0 8px; }
.teklif-al-kart .btn { width: 100%; justify-content: center; }

/* Mülakat kartları (İK sayfası) */
.mulakat-kartlari { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.mulakat-kart { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 22px; }
.mulakat-ikon {
  width: 40px; height: 40px; border-radius: var(--radius-sm); background: var(--accent-soft); color: var(--accent);
  display: flex; align-items: center; justify-content: center; margin-bottom: 12px;
}
.mulakat-kart h3 { font-size: 17px; margin: 0 0 6px; }
.mulakat-kart p { font-size: 14px; color: var(--soft); margin: 0; line-height: 1.55; }
.mulakat-maddeler {
  list-style: none; padding: 0; margin: 12px 0 0; font-size: 13.5px; color: var(--soft);
}
.mulakat-maddeler li { border-top: 1px solid var(--line); padding: 7px 0; }

/* Kariyer sayfası banner görseli — Ersin talimatı (16.09.2026):
   kırpılırken sağ-alt görüşme masası ve sol CV görünür kalsın. Görselin
   1600x1000 oranı banner kutusuna yakın olduğu için yatayda neredeyse
   hiç kırpma olmuyor; asıl risk mobildeki 16:9 oranında dikey kırpma —
   alta ağırlık vererek görüşme masası kesilmiyor. */
.kariyer-banner-gorsel img, .kariyer-banner-gorsel picture { object-position: 50% 80%; }

/* Kariyer bilgi notu kutucukları (Ersin talimatı, 16.09.2026) —
   masaüstü 4, tablet 2, mobil 1 sütun; site kart stiliyle. */
.bilgi-notu-izgara { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.bilgi-notu-kart { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 20px; }
.bilgi-notu-ikon {
  width: 36px; height: 36px; border-radius: var(--radius-sm); background: var(--accent-soft); color: var(--accent);
  display: flex; align-items: center; justify-content: center; margin-bottom: 10px;
}
.bilgi-notu-kart h3 { font-size: 15.5px; margin: 0 0 5px; }
.bilgi-notu-kart p { font-size: 13.5px; color: var(--soft); margin: 0; line-height: 1.5; }

/* Referanslar — kategoriye göre gruplu kutu (kart) ızgarası. Görsel
   dil `docs/projeler/projeler-onizleme.html` önizlemesiyle birebir
   (Ersin talimatı, 16.09.2026): beyaz kart, 1px çerçeve, 12px köşe,
   400:260 oranlı üst alan. Kutular tıklanamaz (referans detay sayfası yok). */
.referans-gruplari { display: flex; flex-direction: column; gap: 36px; }
.referans-grup h3 { font-size: 18px; margin: 0 0 16px; font-weight: 600; }
.grup-sayisi { color: var(--faint); font-weight: 400; font-size: 15px; }
.referans-kutu-izgara { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.referans-kutu {
  border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface);
  overflow: hidden; display: flex; flex-direction: column;
}
.referans-kutu-logo {
  aspect-ratio: 400 / 260; display: flex; align-items: center; justify-content: center;
  background-color: var(--accent-soft); border-bottom: 1px solid var(--line);
  background-image:
    linear-gradient(to right, rgba(15,92,94,0.07) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(15,92,94,0.07) 1px, transparent 1px);
  background-size: 26px 26px;
}
.referans-kutu-logo img, .referans-kutu-logo picture {
  width: 100%; height: 100%; object-fit: contain; filter: grayscale(1); transition: filter 0.2s;
}
.referans-kutu:hover .referans-kutu-logo img, .referans-kutu:hover .referans-kutu-logo picture { filter: grayscale(0); }
.referans-yer-tutucu {
  font-family: var(--font-display); font-weight: 700; font-size: 22px; color: var(--accent);
  border: 1.5px solid var(--accent); border-radius: var(--radius-sm); width: 56px; height: 56px;
  display: flex; align-items: center; justify-content: center; background: var(--surface);
}
.referans-kutu-govde { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 8px; }
.referans-kutu-ad { font-family: var(--font-display); font-weight: 600; font-size: 17px; color: var(--ink); line-height: 1.3; }

/* Projeler — kategoriye göre filtrelenebilir kutu (kart) ızgarası,
   önizlemeyle birebir: görsel (400:260) -> işveren -> başlık -> yıl +
   hizmet rozetleri -> özet -> kapsam maddeleri (ince üst çizgili). */
.proje-kutu-izgara { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.proje-kutu {
  text-decoration: none; color: inherit; display: flex; flex-direction: column;
  border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden; background: var(--surface);
  transition: box-shadow 0.15s;
}
.proje-kutu:hover { box-shadow: 0 6px 20px rgba(0,0,0,0.08); }
.proje-kutu-gorsel { aspect-ratio: 400 / 260; background: var(--accent-soft); border-bottom: 1px solid var(--line); }
.proje-kutu-gorsel img, .proje-kutu-gorsel picture { width: 100%; height: 100%; object-fit: cover; display: block; }
.proje-yer-tutucu {
  width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-weight: 700; font-size: 32px; color: var(--accent);
}
.proje-kutu-govde { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.proje-kutu-isveren { font-size: 13px; color: var(--accent); font-weight: 600; }
.proje-kutu-govde h3 { font-size: 19px; margin: 0; }
.proje-kutu-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 12.5px; color: var(--soft); }
.proje-kutu-govde p { margin: 4px 0 0; font-size: 14px; color: var(--ink); }
.proje-kutu-kapsam ul { margin: 4px 0 0; padding: 0; list-style: none; font-size: 13px; color: var(--soft); }
.proje-kutu-kapsam li { border-top: 1px solid var(--line); padding: 5px 0; }

/* Markalarımız / Ürünlerimiz — anasayfa kutucukları (Ersin talimatı,
   16.09.2026). auto-fit + minmax kasıtlı: sabit 5/3/2 sütun medya
   sorgusu yerine, konteyner genişliğine göre kendiliğinden 5 (masaüstü,
   1120px konteynerde) -> 3 (tablet) -> 1 (mobil, 375px'te 2 sığmıyor)
   sütuna iner; eksik kayıt varsa (ör. 4 aktif marka) kalan öğeler eş
   genişlikte esner, boş hücre kalmaz ("yer yoksa ortalı" talimatı). */
.marka-kutu-izgara {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 18px;
}
.marka-kutu {
  text-decoration: none; color: inherit; display: flex; flex-direction: column;
  border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden; background: var(--surface);
  transition: box-shadow 0.15s;
}
.marka-kutu:hover { box-shadow: 0 6px 20px rgba(0,0,0,0.08); }
.marka-kutu-logo {
  aspect-ratio: 400 / 260; display: flex; align-items: center; justify-content: center;
  background-color: var(--accent-soft); border-bottom: 1px solid var(--line);
  background-image:
    linear-gradient(to right, rgba(15,92,94,0.07) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(15,92,94,0.07) 1px, transparent 1px);
  background-size: 26px 26px;
}
.marka-kutu-logo img { width: 100%; height: 100%; object-fit: contain; padding: 20px; }
.marka-yazi-logo {
  font-family: var(--font-display); font-weight: 700; font-size: 22px; color: var(--accent);
  text-align: center; padding: 0 16px;
}
.marka-kutu-govde { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.marka-kutu-govde h3 { font-size: 17px; margin: 0; }
.marka-kutu-govde p { margin: 0; font-size: 14px; color: var(--soft); }
.marka-kutu-alt {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  margin-top: auto; padding-top: 10px; font-size: 12.5px;
}
.marka-kutu-alan-adi { color: var(--accent); font-weight: 600; }
.marka-kutu-git { color: var(--soft); }

/* Footer / İletişim */
.footer { background: var(--dark); padding: 60px 0 28px; margin-top: 20px; }
.footer, .footer h2 { color: #fff; }
.footer-ust-izgara {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr 1.3fr;
  gap: 32px;
  padding-bottom: 40px;
  border-bottom: 1px solid #242A2F;
  margin-bottom: 20px;
}
.footer-marka-sutun { display: flex; flex-direction: column; gap: 16px; }
.footer-logo { color: #fff; }
.footer-logo img { height: 30px; width: auto; }
.footer-slogan { font-size: 14px; color: #9CA2A8; line-height: 1.6; max-width: 260px; margin: 0; }
.footer-baglanti-sutun { display: flex; flex-direction: column; gap: 9px; }
.footer-baglanti-sutun .footer-satir { margin-top: 3px; }
.footer-baslik {
  font-size: 12.5px;
  color: #7FC4BC;
  margin-bottom: 3px;
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}
.footer-baglanti, .footer-satir {
  font-size: 14.5px; color: #C9CDD0; line-height: 1.6;
  text-decoration: none; display: block;
}
.footer-baglanti:hover, a.footer-satir:hover { color: #fff; }
.footer-alt {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}
.footer-sosyal { display: flex; gap: 10px; }
.footer-sosyal a {
  color: #E8E6E0;
  width: 38px;
  height: 38px;
  border: 1px solid #2F3B3F;
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  font-size: 13px;
}
.telif { font-size: 13px; color: #6B7478; }
.telif a { color: #6B7478; }

/* Duyuru çubuğu (en üstte, tüm sayfalarda) */
.duyuru-cubugu { background: var(--dark); color: #E8E6E0; font-size: 13.5px; }
.duyuru-cubugu-ic { display: flex; align-items: center; gap: 10px; min-height: 40px; flex-wrap: wrap; padding-block: 8px; }
.duyuru-metni { flex-grow: 1; }
.duyuru-detay {
  display: inline-flex; align-items: center; gap: 4px;
  color: #7FC4BC; font-weight: 600; text-decoration: none; white-space: nowrap;
}

/* Sabit WhatsApp düğmesi */
.whatsapp-dugme {
  position: fixed; right: 24px; bottom: 24px; z-index: 40;
  width: 56px; height: 56px; border-radius: 50%;
  background: #25D366; display: flex; align-items: center; justify-content: center;
  box-shadow: 0 12px 28px -8px rgba(37, 211, 102, 0.55);
}

/* "Başa dön" düğmesi (Ersin talimatı, 16.09.2026) — bir ekran boyu
   kaydırılınca görünür (bkz. static/site/js/sabit-menu.js). WhatsApp
   düğmesi açıksa üstünde dursun diye .basa-don-whatsapp-var ile daha
   yukarı taşınıyor (aynı sağ alt köşede üst üste binmemesi için). */
.basa-don-dugme {
  position: fixed; right: 24px; bottom: 24px; z-index: 40;
  width: 46px; height: 46px; border-radius: 50%; border: none; cursor: pointer;
  background: var(--accent); color: #fff;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 10px 24px -8px rgba(0,0,0,0.3);
}
.basa-don-dugme[hidden] { display: none; }
.basa-don-whatsapp-var { bottom: 92px; }

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

/* İletişim sayfası */
.iletisim-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; }
.iletisim-bilgi-satir { padding: 16px 0; border-bottom: 1px solid var(--line); }
.iletisim-bilgi-satir .etiket { font-size: 12.5px; color: var(--faint); font-family: var(--font-display); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 6px; }
.iletisim-bilgi-satir .deger { font-size: 16px; color: var(--ink); }
.iletisim-form input[type="text"], .iletisim-form input[type="email"], .iletisim-form input[type="tel"],
.iletisim-form select, .iletisim-form textarea {
  width: 100%; border: 1px solid var(--line); border-radius: var(--radius-sm);
  padding: 11px 13px; font-size: 14px; font-family: var(--font-body); min-height: 44px;
  background: var(--surface); color: var(--ink);
}
.iletisim-form textarea { min-height: 110px; resize: vertical; }
.iletisim-form .form-alan:has(input[type="checkbox"]) { display: flex; align-items: flex-start; gap: 8px; }
.iletisim-form .form-alan:has(input[type="checkbox"]) label { display: inline; margin: 0; font-weight: 400 !important; }
.iletisim-form input[type="checkbox"] { width: 17px; height: 17px; flex: 0 0 auto; margin-top: 2px; }
.iletisim-form input[type="file"] {
  width: 100%; border: 1px dashed var(--line); border-radius: var(--radius-sm);
  padding: 11px 13px; font-size: 13.5px; background: var(--surface); color: var(--soft);
}

/* Bal küpü — botlar dışında kimse görmez/doldurmaz. */
.gizli-alan { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---- İlan listesi (İnsan Kaynakları sayfası) ---- */
.ilan-listesi { display: flex; flex-direction: column; gap: 10px; }
.ilan-satir { border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); padding: 16px 20px; }
.ilan-baslik-satiri { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.ilan-baslik { font-weight: 600; font-size: 16px; color: var(--ink); font-family: var(--font-display); flex: 1 1 180px; }
.ilan-meta { display: flex; gap: 18px; flex-wrap: wrap; font-size: 13.5px; color: var(--soft); }
.ilan-meta-oge { display: inline-flex; align-items: center; gap: 6px; color: var(--faint); white-space: nowrap; }
.ilan-basvur-btn { flex-shrink: 0; height: 38px; padding: 0 18px; font-size: 14px; margin-left: auto; }
.ilan-detay { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.ilan-detay summary { cursor: pointer; color: var(--accent); font-size: 13.5px; font-weight: 500; list-style: none; }
.ilan-detay summary::-webkit-details-marker { display: none; }
.ilan-detay .sayfa-icerik { margin-top: 12px; font-size: 15px; }

/* ---- İletişim sayfası: WhatsApp kartı, sosyal ağ satırı, harita ---- */
.whatsapp-kart {
  display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap;
  background: var(--dark); color: #fff; border-radius: var(--radius-lg); padding: 18px 22px; margin-top: 18px;
}
.whatsapp-kart .etiket { font-size: 11.5px; letter-spacing: 0.1em; text-transform: uppercase; color: #9CA2A8; font-family: var(--font-display); font-weight: 600; }
.whatsapp-kart .deger { font-size: 17px; font-weight: 600; font-family: var(--font-display); margin-top: 3px; }

.sosyal-satir { display: flex; gap: 10px; margin-top: 18px; }
.sosyal-satir a {
  width: 38px; height: 38px; border-radius: var(--radius-sm); border: 1px solid var(--line);
  background: var(--surface); color: var(--ink); display: flex; align-items: center; justify-content: center;
  text-decoration: none;
}

.harita-alani {
  position: relative; aspect-ratio: 21 / 9; border-radius: var(--radius-lg); overflow: hidden;
  background: var(--accent-soft); display: flex; align-items: center; justify-content: center;
}
.harita-goster-btn {
  display: inline-flex; align-items: center; gap: 8px; height: 46px; padding: 0 22px;
  border-radius: 12px; border: 1px solid var(--line); background: var(--surface); color: var(--ink);
  font-family: var(--font-display); font-weight: 600; font-size: 14.5px; cursor: pointer;
}
.harita-yol-tarifi {
  position: absolute; left: 16px; bottom: 16px; display: flex; align-items: center; gap: 8px;
  background: var(--surface); border-radius: 999px; padding: 8px 16px; font-size: 13.5px; box-shadow: 0 2px 10px rgba(0,0,0,0.08);
}
.harita-yol-tarifi a { color: var(--accent); font-weight: 600; text-decoration: none; }

/* Liste sayfası (Hizmetler/Projeler/Ürünler/Ekip vb. kök sayfası) */
.liste-sayfasi-kart {
  text-decoration: none; display: block; color: inherit;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg);
  padding: 24px;
}
.liste-sayfasi-kart h3 { font-size: 20px; margin: 14px 0 6px; }
.liste-sayfasi-kart p { font-size: 14.5px; color: var(--soft); margin: 0; }

/* Kayıt detay sayfası gövdesi */
/* minmax(0, …) kasıtlı: Grid öğelerinin varsayılan min-width:auto'su,
   uzun gövde metinlerinin sütunu taşırıp sağdan kesilmesine yol
   açıyordu (klasik CSS Grid tuzağı). */
.kayit-govde { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; align-items: start; }
.kayit-govde-sutunlu { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); }

/* Kayıt detay sayfası: yan sütun (diğer kayıtlar) */
.yan-sutun-baslik { font-family: var(--font-display); font-size: 14px; font-weight: 600; margin-bottom: 12px; }
.diger-kayitlar a {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  padding: 11px 0; border-bottom: 1px solid var(--line); text-decoration: none;
  font-size: 14.5px; color: var(--ink);
}
.diger-kayitlar a:last-child { border-bottom: none; }

/* Kayıt detay sayfası: ekip profili / proje bilgisi üst şeridi */
.ekip-meta, .proje-meta {
  display: flex; align-items: center; flex-wrap: wrap; gap: 20px;
  padding: 16px 0; margin-bottom: 8px; border-bottom: 1px solid var(--line);
}
.ekip-unvan { font-family: var(--font-display); font-weight: 600; font-size: 16px; color: var(--soft); }
.ekip-baglantilar { display: flex; gap: 10px; margin-left: auto; }
.proje-meta > div { display: flex; flex-direction: column; gap: 3px; }
.proje-meta-etiket { font-size: 11.5px; color: var(--faint); font-family: var(--font-display); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.proje-meta-deger { font-size: 14.5px; color: var(--ink); font-weight: 500; }

/* Kayıt detay sayfası: süreç adımları */
.surec-adimlari { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 20px; margin-top: 16px; }
.surec-adim { border-top: 2px solid var(--accent); padding-top: 12px; }
.surec-no { font-family: var(--font-display); font-weight: 600; color: var(--accent); font-size: 13px; margin-bottom: 6px; }
.surec-baslik { font-family: var(--font-display); font-weight: 600; font-size: 15.5px; margin-bottom: 4px; }
.surec-aciklama { font-size: 13.5px; color: var(--soft); line-height: 1.5; }

/* Hakkımızda: Misyon/Vizyon kutuları (bkz. TALIMAT 18.09.2026,
   "Hakkımızda sayfasına Misyon ve Vizyon kutucukları") — mevcut .kart
   dilini kullanır, yeni bir stil icat edilmedi. */
.misyon-vizyon-izgara { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 32px; align-items: stretch; }
.misyon-vizyon-kutu { padding: 24px 26px; }
.misyon-vizyon-kutu h2 { font-size: 21px; margin: 0 0 10px; }
.misyon-vizyon-giris { font-style: italic; color: var(--soft); font-size: 15px; line-height: 1.6; margin: 0 0 16px; }
.madde-listesi { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 11px; }
.madde-listesi li {
  position: relative;
  padding-left: 18px;
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--ink);
}
.madde-listesi li:before {
  content: "";
  position: absolute;
  left: 0; top: 8px;
  width: 7px; height: 2px;
  background: var(--accent);
  border-radius: 1px;
}

/* Kayıt detay sayfası: galeri */
.galeri-izgara { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 16px; }
.galeri-izgara .gorsel-cerceve { aspect-ratio: 4 / 3; }

/* Kayıt detay sayfası: proje ekibi */
.proje-ekibi { display: flex; flex-direction: column; gap: 4px; margin-top: 16px; }
.proje-ekip-kart {
  display: flex; align-items: center; gap: 12px; padding: 10px 0;
  border-bottom: 1px solid var(--line); text-decoration: none; color: inherit;
}
.proje-ekip-kart:last-child { border-bottom: none; }
.proje-ekip-ad { font-weight: 600; font-size: 14.5px; }
.proje-ekip-rol { font-size: 13px; color: var(--soft); }

/* Kayıt detay sayfası: uzmanlık alanları + deneyim */
.uzmanlik-etiketleri { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.deneyim-cizelgesi { display: flex; flex-direction: column; gap: 16px; margin-top: 16px; }
.deneyim-satir { display: grid; grid-template-columns: 100px 1fr; gap: 16px; }
.deneyim-yil { font-family: var(--font-display); font-weight: 600; font-size: 13.5px; color: var(--accent); }
.deneyim-kurum { font-weight: 600; font-size: 14.5px; margin-bottom: 3px; }
.deneyim-aciklama { font-size: 13.5px; color: var(--soft); line-height: 1.5; }

/* Blog: Konular / Yazarlar sekmeleri (bkz. TALIMAT 17.09.2026, "Banner
   altına Konular / Yazarlar sekmeleri") — gerçek adresli, dolu değil
   beyaz zemin + petrol yazı ile aktif gösterilir. */
.blog-sekmeler { display: flex; gap: 10px; margin: 26px 0 18px; border-bottom: 1px solid var(--line); }
.blog-sekme {
  padding: 10px 18px; border-radius: var(--radius-md) var(--radius-md) 0 0;
  font-weight: 600; font-size: 14.5px; color: var(--soft); text-decoration: none;
  border: 1px solid transparent; border-bottom: none; margin-bottom: -1px;
}
.blog-sekme.aktif { background: var(--surface); border-color: var(--line); color: var(--accent); }

/* Kapak görseli olmayan blog kartları için sade çizgili yer tutucu. */
.blog-kutu-yer-tutucu { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: var(--accent); }

/* Yazarlar sekmesi — yazar kartı ızgarası (bkz. onay-v3.html referansı,
   TALIMAT 17.09.2026 "Yazarlar sekmesi, yazar sayfası ve panel alanları"). */
.yazar-kart-izgara { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.yazar-kart {
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md);
  overflow: hidden; text-align: center; padding-bottom: 14px; text-decoration: none; color: inherit;
  display: block; transition: box-shadow 0.15s;
}
.yazar-kart:hover { box-shadow: 0 6px 20px rgba(0,0,0,0.08); }
.yazar-kart-foto {
  aspect-ratio: 1 / 1; background: var(--accent-soft); display: grid; place-items: center;
  border-bottom: 1px solid var(--line); color: var(--accent); font-family: var(--font-display);
  font-weight: 600; font-size: 30px; overflow: hidden;
}
.yazar-kart-foto img, .yazar-kart-foto picture { width: 100%; height: 100%; object-fit: cover; display: block; }
.yazar-kart h3 { font-size: 15.5px; margin: 12px 0 3px; }
.yazar-kart-unvan { font-size: 12px; color: var(--soft); }
.yazar-kart-sayi { margin-top: 7px; font-size: 11.5px; color: var(--accent); font-weight: 600; display: block; }

/* Yazar sayfası — mini banner + Yazıları/Biyografi sekmeleri. */
.yazar-ahero {
  display: flex; gap: 22px; align-items: center; background: var(--surface);
  border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 22px 26px;
}
.yazar-ahero .yazar-kart-foto { width: 104px; height: 104px; flex-shrink: 0; border-radius: var(--radius-md); border: none; font-size: 30px; }
.yazar-ahero h1 { margin: 0 0 4px; font-size: 26px; }
.yazar-ahero .unvan { color: var(--soft); font-size: 13.5px; }
.yazar-ahero .baglantilar { margin-top: 10px; display: flex; gap: 10px; font-size: 12.5px; }
.yazar-ahero .baglantilar a { color: var(--accent); text-decoration: none; }
.yazar-bio { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); padding: 20px 24px; font-size: 14px; color: var(--ink); line-height: 1.7; }
.yazar-sekme-radio { position: absolute; opacity: 0; pointer-events: none; }
.yazar-sekmeler { display: flex; gap: 10px; margin: 22px 0 14px; }
.yazar-sekme-etiket {
  padding: 10px 18px; border-radius: var(--radius-md); font-weight: 600; font-size: 14.5px;
  color: var(--soft); cursor: pointer; border: 1px solid var(--line); background: var(--bg);
}
#yazar-sekme-yazilar:checked ~ .yazar-sekmeler .yazar-sekme-etiket-yazilar,
#yazar-sekme-biyografi:checked ~ .yazar-sekmeler .yazar-sekme-etiket-biyografi {
  background: var(--surface); color: var(--accent); border-color: var(--line);
}
.yazar-sekme-panel { display: none; }
#yazar-sekme-yazilar:checked ~ .yazar-sekme-panel-yazilar,
#yazar-sekme-biyografi:checked ~ .yazar-sekme-panel-biyografi {
  display: block;
}

/* Filtre çipleri (kategori) */
.filtre-cipleri { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 26px; }
.filtre-cipleri a, .filtre-cipleri button {
  padding: 8px 15px; border-radius: 999px; font-size: 13.5px; text-decoration: none;
  border: 1px solid var(--line); color: var(--soft); background: var(--surface);
  font-family: var(--font-body); cursor: pointer;
}
.filtre-cipleri a.aktif, .filtre-cipleri button.aktif { background: var(--accent); border-color: var(--accent); color: #fff; }
.filtre-cipleri a b, .filtre-cipleri button b { font-weight: 600; opacity: .6; margin-left: 4px; font-size: 11.5px; }

/* Haber/blog kartı */
.etiket-kucuk {
  display: inline-block; background: var(--accent-soft); color: var(--accent);
  border-radius: 6px; padding: 3px 9px; font-size: 11.5px; font-family: var(--font-display);
  font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase;
}
.yazi-kart { text-decoration: none; color: inherit; display: block; }
.one-cikan-kart {
  display: grid; grid-template-columns: 1.1fr 1fr; gap: 0;
  border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; margin-bottom: 30px;
}
.yazi-kart .meta { display: flex; align-items: center; gap: 10px; margin: 14px 0 8px; font-size: 12.5px; color: var(--faint); }
.yazi-kart h3 { font-size: 19px; line-height: 1.3; margin: 0; }
.yazi-kart p { font-size: 14.5px; color: var(--soft); margin: 9px 0 0; }
.yazar-satiri { display: flex; align-items: center; gap: 9px; margin-top: 15px; padding-top: 14px; border-top: 1px solid var(--line); font-size: 13.5px; }
.avatar {
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  width: 34px; height: 34px; border-radius: 50%; overflow: hidden;
  background: var(--accent-soft); color: var(--accent);
  font-family: var(--font-display); font-weight: 700; font-size: 13px;
}
.avatar img { width: 100%; height: 100%; object-fit: cover; }
.avatar.buyuk { width: 64px; height: 64px; font-size: 22px; }

/* Yazar kutusu / bülten / ilgili yazılar (detay sayfası yan sütun) */
.yazar-kutusu { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.yazar-kutusu .bio { font-size: 14px; color: var(--soft); line-height: 1.6; margin: 12px 0; }
.sosyal-mini { display: flex; gap: 8px; }
.sosyal-mini a {
  width: 32px; height: 32px; border-radius: 8px; background: var(--bg);
  display: flex; align-items: center; justify-content: center; text-decoration: none;
  font-size: 12px; color: var(--soft);
}
.bulten-kutusu { background: var(--accent-soft); border-radius: var(--radius-lg); padding: 20px; }
.bulten-kutusu h4 { font-size: 17px; margin: 0 0 7px; }
.bulten-kutusu p { font-size: 13.5px; color: var(--soft); margin: 0 0 14px; }
.bulten-kutusu form { display: flex; flex-direction: column; gap: 8px; }
.bulten-kutusu input[type="email"] {
  border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 11px 13px;
  font-size: 14px; min-height: 44px;
}

/* Paylaşım düğmeleri */
.paylas-satiri { display: flex; align-items: center; gap: 10px; padding-top: 22px; margin-top: 8px; border-top: 1px solid var(--line); }
.paylas-satiri .etiket { font-size: 13.5px; color: var(--faint); }
.paylas-dugme {
  width: 36px; height: 36px; border-radius: var(--radius-sm); border: 1px solid var(--line);
  background: var(--surface); display: flex; align-items: center; justify-content: center;
  text-decoration: none; font-size: 13px; color: var(--soft);
}

/* Okuma süresi / tarih rozeti */
.oku-suresi { display: inline-flex; align-items: center; gap: 4px; }

/* ---- Video bölümü ---- */
.video-seridi-sarici { position: relative; display: flex; align-items: center; gap: 8px; }
.video-seridi {
  display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x proximity;
  padding-bottom: 4px; flex: 1; scrollbar-width: thin;
}
.video-karti { flex: 0 0 280px; scroll-snap-align: start; }
.video-izgara { display: grid; grid-template-columns: repeat(var(--card-columns), 1fr); gap: 16px; }
.video-izgara .video-karti { flex: none; }

.video-oynat-alani {
  position: relative; display: block; width: 100%;
  aspect-ratio: 16/9; border-radius: var(--radius-lg); overflow: hidden;
  border: none; padding: 0; cursor: pointer; background: var(--dark);
}
.video-oynat-alani img { width: 100%; height: 100%; object-fit: cover; }
.video-oynat-dugmesi {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: 56px; height: 56px; border-radius: 50%; background: rgba(255,255,255,.92);
  color: var(--ink); display: flex; align-items: center; justify-content: center;
  font-size: 18px; padding-left: 3px;
}
.video-karti iframe { width: 100%; aspect-ratio: 16/9; border-radius: var(--radius-lg); border: none; display: block; }

.video-bilgi { padding-top: 10px; }
.video-baslik { font-family: var(--font-display); font-size: 15px; font-weight: 600; color: var(--ink); }
.video-aciklama { font-size: 13px; color: var(--soft); margin-top: 3px; }

.video-ok {
  flex-shrink: 0; width: 40px; height: 40px; border-radius: 50%;
  border: 1px solid var(--line); background: var(--surface); color: var(--ink);
  font-size: 18px; cursor: pointer; display: none;
  align-items: center; justify-content: center;
}
@media (min-width: 768px) { .video-ok { display: flex; } }

/* ---- Doküman listesi (Medya ve Dokümanlar sayfası) ---- */
.dokuman-tablosu { border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; background: var(--surface); }
.dokuman-satir {
  display: grid; grid-template-columns: 48px 1fr auto auto auto; align-items: center; gap: 16px;
  padding: 14px 18px; border-bottom: 1px solid var(--line);
}
.dokuman-satir:last-child { border-bottom: none; }
.dokuman-ikon {
  display: flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: var(--radius-sm);
  color: #fff; font-family: var(--font-display); font-weight: 700; font-size: 10.5px; letter-spacing: 0.02em;
}
.dokuman-ikon.tur-pdf { background: #B23A2E; }
.dokuman-ikon.tur-doc, .dokuman-ikon.tur-docx { background: #2E5AAC; }
.dokuman-ikon.tur-xls, .dokuman-ikon.tur-xlsx { background: #1F7A4D; }
.dokuman-ad { font-family: var(--font-display); font-weight: 600; font-size: 15px; color: var(--ink); }
.dokuman-boyut, .dokuman-tarih { font-size: 13.5px; color: var(--soft); white-space: nowrap; }

/* Bakım modu şeridi — sadece giriş yapmış personele görünür (bkz.
   apps.common.context_processors.maintenance_status). */
.bakim-seridi {
  background: #FBEEDB; color: #7a4d05; text-align: center;
  font-size: 13px; font-weight: 600; font-family: var(--font-display);
  padding: 8px 16px;
}

/* "Benzer işler" bölümü — proje detay sayfası altı (TALIMAT §D.4,
   mockup 07-web-projedetay.png). */
.benzer-isler-bolum { margin-top: 56px; }
.benzer-isler-baslik-satir {
  display: flex; align-items: baseline; justify-content: space-between;
  flex-wrap: wrap; gap: 10px; margin-bottom: 20px;
}
.benzer-isler-baslik-satir h2 { margin: 0; }
.benzer-isler-tumu { color: var(--accent); font-weight: 600; text-decoration: none; font-size: 14.5px; }

/* Madde listesi görünümü (TALIMAT §D.3) — hizmet/hakkımızda gibi geniş
   kayıt detay gövdesindeki (.kayit-govde) zengin metin listeleri katalogdaki
   gibi iki sütunlu, ince çizgili gösterilir. Dar bağlamlarda (iletişim
   girişi, kariyer, blog gövdesi) .sayfa-icerik bu sarmalayıcının dışında
   kullanıldığından etkilenmez — bkz. responsive.css için mobil tek sütun. */
.kayit-govde .sayfa-icerik ul,
.kayit-govde .sayfa-icerik ol {
  columns: 2;
  column-gap: 32px;
  list-style: none;
  padding: 0;
  margin: 16px 0;
}
.kayit-govde .sayfa-icerik li {
  break-inside: avoid;
  padding: 10px 0;
  border-top: 1px solid var(--line);
}

/* Giriş animasyonu (intro) — ASARGE logosunun 13 üçgenden kurulması
   (Ersin talimatı, 17.09.2026 — "Giriş animasyonu — ASARGE üçgenleri";
   yöntem docs/tasarim/intro-canli.html referansından — her üçgen,
   amblem görselinin clip-path: polygon(...) ile kesilmiş bir katmanı,
   JS transform ile dağınık halden yerine oturur, sonra kilit küçülüp
   sol menü/üst bardaki gerçek logonun yerine uçar). Yalnızca anasayfada,
   oturumda bir kez gösterilir (bkz. home.html "intro" bloğu + intro.js).
   Hareket azaltma tercihinde hiç gösterilmez — bu, JS'in yetişip
   yetişmediğinden bağımsız garanti olsun diye saf CSS ile de zorlanıyor. */
.intro-katman {
  position: fixed;
  inset: 0;
  z-index: 500;
  background: var(--dark);
  overflow: hidden;
  transition: opacity 0.4s ease;
}
.intro-katman:before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(var(--dark-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--dark-grid) 1px, transparent 1px);
  background-size: 44px 44px;
  opacity: .5;
}
.intro-katman.kayboluyor { opacity: 0; pointer-events: none; }
.intro-lock { position: absolute; left: 0; top: 0; transform-origin: 0 0; z-index: 2; }
.intro-mk { position: absolute; }
.intro-pc {
  position: absolute;
  inset: 0;
  display: block;
  background-image: var(--intro-mk-img);
  background-size: 100% 100%;
  transform-origin: 50% 50%;
  opacity: 0;
}
.intro-wd { position: absolute; background-size: 100% 100%; background-repeat: no-repeat; background-position: center; opacity: 0; }
.intro-ilerleme {
  position: absolute; left: 50%; bottom: 12%; width: 220px; height: 2px;
  margin-left: -110px; background: var(--dark-line-soft); z-index: 2;
}
.intro-ilerleme-cubuk { position: absolute; left: 0; top: 0; bottom: 0; width: 0%; background: var(--accent-on-dark); }
.intro-atla {
  position: absolute;
  right: 24px;
  bottom: 24px;
  z-index: 3;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.3);
  color: #fff;
  padding: 10px 20px;
  border-radius: var(--radius-sm);
  font-size: 13.5px;
  font-family: var(--font-body);
  cursor: pointer;
  min-height: 44px;
}
.intro-atla:hover { border-color: #fff; }
@media (prefers-reduced-motion: reduce) {
  .intro-katman { display: none !important; }
}
