:root {
  --ana: #c2410c;
  --ana-koyu: #7c2d12;
  --ana-acik: #ffedd5;
  --vurgu: #0f766e;
  --vurgu-koyu: #115e59;
  --vurgu-acik: #ccfbf1;
  --zemin: #ffffff;
  --zemin-2: #faf9f7;
  --metin: #1c1917;
  --metin-2: #78716c;
  --cizgi: #e7e5e4;
  --koyu: #0c0a09;
}

/*
 * Blog temasi.
 *
 * TEMA SOZLESMESI (pazarliksiz):
 *   1. Bu dosyada RENK YAZMAZ. Her renk `var(--jeton)` ile gelir;
 *      jetonlarin degeri siteye gore uretilen `:root` blogundadir
 *      (App\Design\DesignTokens). Boylece ayni tema her sitede farkli
 *      gorunur ve tasarim, HTML/CSS'e dokunmadan degistirilebilir.
 *   2. Her ust duzey bolumun `id`'si var; secici ve sohbet onu kullanir.
 *   3. Yardimci sinif cercevesi (Tailwind/Bootstrap) YOK.
 *
 * Sozlesme testi: ThemeContractTest.
 */

*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--zemin);
  color: var(--metin);
  font-family: Georgia, "Iowan Old Style", "Times New Roman", serif;
  font-size: clamp(1.0625rem, 0.98rem + 0.35vw, 1.1875rem);
  line-height: 1.75;
}

h1, h2, h3, h4, .baslik-yazi {
  font-family: "Helvetica Neue", Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
  line-height: 1.2;
  color: var(--koyu);
  text-wrap: balance;
}

a { color: var(--ana); text-underline-offset: 0.18em; }
a:hover { color: var(--ana-koyu); }
a:focus-visible,
button:focus-visible { outline: 3px solid var(--vurgu); outline-offset: 2px; }

img { max-width: 100%; height: auto; }

.kap { width: min(100% - 2rem, 46rem); margin-inline: auto; }
.genis { width: min(100% - 2rem, 68rem); margin-inline: auto; }

.atla {
  position: absolute; left: -9999px;
  background: var(--zemin); color: var(--metin); padding: 0.75rem 1rem;
}
.atla:focus { left: 1rem; top: 1rem; z-index: 10; }

/* ---------- ust: site adi + gezinme ---------- */
#ust {
  border-bottom: 1px solid var(--cizgi);
  background: var(--zemin);
  padding-block: 1.5rem 0;
}
#ust .site-adi {
  display: inline-block;
  font-family: "Helvetica Neue", Inter, system-ui, sans-serif;
  font-size: clamp(1.4rem, 1.15rem + 1vw, 1.9rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--koyu);
  text-decoration: none;
}
#ust .slogan { margin: 0.35rem 0 0; color: var(--metin-2); font-size: 0.95rem; }

#gezinme { margin-top: 1.1rem; }
#gezinme ul {
  display: flex; flex-wrap: wrap; gap: 0.25rem 1.5rem;
  margin: 0; padding: 0; list-style: none;
}
#gezinme a {
  display: inline-block;
  padding: 0.6rem 0;
  font-family: "Helvetica Neue", Inter, system-ui, sans-serif;
  font-size: 0.95rem;
  color: var(--metin-2);
  text-decoration: none;
  border-bottom: 3px solid transparent;
}
#gezinme a:hover,
#gezinme a[aria-current="page"] { color: var(--koyu); border-bottom-color: var(--ana); }

/* ---------- icerik ---------- */
#icerik { padding-block: 2.5rem 3.5rem; }

.yol {
  margin: 0 0 1rem;
  font-family: "Helvetica Neue", Inter, system-ui, sans-serif;
  font-size: 0.85rem;
  color: var(--metin-2);
}
.yol a { color: var(--metin-2); }

.kunye {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem;
  font-family: "Helvetica Neue", Inter, system-ui, sans-serif;
  font-size: 0.85rem;
  color: var(--metin-2);
}
.kunye .ayrac { color: var(--cizgi); }

.etiket-sponsorlu {
  display: inline-block;
  margin-bottom: 0.75rem;
  padding: 0.2rem 0.6rem;
  background: var(--vurgu-acik);
  color: var(--vurgu-koyu);
  border: 1px solid var(--vurgu);
  border-radius: 999px;
  font-family: "Helvetica Neue", Inter, system-ui, sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

/* ---------- one cikan yazi ---------- */
#one-cikan { margin-bottom: 3rem; }
#one-cikan .kart { display: grid; gap: 1.25rem; }
#one-cikan .gorsel {
  display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover;
  background: var(--zemin-2); border-radius: 0.5rem;
}
/*
 * Kendi olcusunden buyuk cizilmeyen gorsel. Ice aktarilan eski
 * gorsellerin cogu 300 piksel genisliginde; sutun genisligine
 * gerildiklerinde bulanik goruluyorlardi.
 */
#one-cikan .gorsel.kucuk { width: auto; max-width: 100%; aspect-ratio: auto; object-fit: none; }
#one-cikan h2 { margin: 0; font-size: clamp(1.7rem, 1.3rem + 1.8vw, 2.6rem); font-weight: 800; letter-spacing: -0.02em; }
#one-cikan h2 a { color: var(--koyu); text-decoration: none; }
#one-cikan h2 a:hover { color: var(--ana-koyu); }
#one-cikan p { margin: 0.75rem 0 0; color: var(--metin-2); }

/* ---------- yazi listesi ---------- */
#son-yazilar h2.bolum-basligi,
#ilgili-yazilar h2.bolum-basligi {
  margin: 0 0 1.25rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--cizgi);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--metin-2);
}

.liste { display: grid; gap: 2rem; }
.liste-ozet { display: grid; grid-template-columns: 1fr; gap: 0.75rem; }
.liste-ozet .gorsel {
  width: 100%; aspect-ratio: 3 / 2; object-fit: cover;
  background: var(--zemin-2); border-radius: 0.4rem;
}
.liste-ozet h3 { margin: 0; font-size: 1.3rem; font-weight: 700; }
.liste-ozet h3 a { color: var(--koyu); text-decoration: none; }
.liste-ozet h3 a:hover { color: var(--ana-koyu); text-decoration: underline; }
.liste-ozet p { margin: 0; color: var(--metin-2); font-size: 0.97rem; }

@media (min-width: 40rem) {
  .liste-ozet { grid-template-columns: 13rem 1fr; align-items: start; gap: 1.25rem; }
  .liste-ozet.gorselsiz { grid-template-columns: 1fr; }
  #one-cikan .kart { gap: 1.5rem; }
}

/* ---------- tek yazi ---------- */
#yazi h1 {
  margin: 0 0 0.75rem;
  font-size: clamp(1.9rem, 1.4rem + 2.2vw, 3rem);
  font-weight: 800;
  letter-spacing: -0.025em;
}
#yazi .kapak {
  width: 100%; margin: 1.75rem 0; border-radius: 0.5rem;
  background: var(--zemin-2);
}
#yazi .kapak.kucuk { width: auto; max-width: 100%; }
#yazi .govde > * { margin-block: 1.35em; }
#yazi .govde > :first-child { margin-top: 0; }
#yazi .govde h2 { margin-top: 2.2em; font-size: 1.6rem; font-weight: 700; }
#yazi .govde h3 { margin-top: 1.8em; font-size: 1.3rem; font-weight: 700; }
#yazi .govde blockquote {
  margin-inline: 0; padding: 0.25rem 0 0.25rem 1.25rem;
  border-left: 4px solid var(--ana);
  color: var(--metin-2); font-style: italic;
}
#yazi .govde figure { margin-inline: 0; }
#yazi .govde figcaption { margin-top: 0.5rem; color: var(--metin-2); font-size: 0.85rem; }
#yazi .govde iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; border: 0; }
#yazi .govde table { width: 100%; border-collapse: collapse; font-size: 0.95rem; }
#yazi .govde th,
#yazi .govde td { padding: 0.6rem 0.75rem; border: 1px solid var(--cizgi); text-align: start; }
#yazi .govde th { background: var(--zemin-2); }
#yazi .govde code {
  padding: 0.15em 0.35em; background: var(--zemin-2); border-radius: 0.25rem;
  font-size: 0.9em;
}
#yazi .govde pre {
  padding: 1rem; background: var(--koyu); color: var(--zemin);
  border-radius: 0.5rem; overflow-x: auto;
}
#yazi .govde pre code { background: transparent; color: inherit; padding: 0; }

#yazi .etiketler { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 2rem; padding: 0; list-style: none; }
#yazi .etiketler a {
  display: inline-block; padding: 0.25rem 0.7rem;
  background: var(--zemin-2); border: 1px solid var(--cizgi); border-radius: 999px;
  font-family: "Helvetica Neue", Inter, system-ui, sans-serif;
  font-size: 0.8rem; color: var(--metin-2); text-decoration: none;
}
#yazi .etiketler a:hover { border-color: var(--ana); color: var(--ana-koyu); }

/* ---------- yazar kutusu ---------- */
#yazar-kutusu {
  display: grid; gap: 1rem; margin-top: 3rem; padding: 1.5rem;
  background: var(--zemin-2); border: 1px solid var(--cizgi); border-radius: 0.5rem;
}
#yazar-kutusu .ad { margin: 0; font-size: 1.1rem; font-weight: 700; }
#yazar-kutusu p { margin: 0.4rem 0 0; color: var(--metin-2); font-size: 0.95rem; }
#yazar-kutusu .avatar { width: 4rem; height: 4rem; border-radius: 999px; object-fit: cover; }
@media (min-width: 30rem) {
  #yazar-kutusu { grid-template-columns: auto 1fr; align-items: center; }
}

/* ---------- ilgili yazilar ---------- */
#ilgili-yazilar { margin-top: 3.5rem; }
#ilgili-yazilar .liste { gap: 1.5rem; }

/* ---------- arsiv ve sayfa ---------- */
#arsiv > header,
#sayfa > header { margin-bottom: 2rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--cizgi); }
#arsiv h1,
#sayfa h1 { margin: 0; font-size: clamp(1.7rem, 1.35rem + 1.6vw, 2.4rem); font-weight: 800; }
#arsiv .aciklama { margin: 0.6rem 0 0; color: var(--metin-2); }
#sayfa .govde > * { margin-block: 1.35em; }

/* ---------- sayfalama ---------- */
#sayfalama {
  display: flex; justify-content: space-between; gap: 1rem;
  margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--cizgi);
  font-family: "Helvetica Neue", Inter, system-ui, sans-serif; font-size: 0.95rem;
}
#sayfalama a {
  padding: 0.55rem 1rem; border: 1px solid var(--cizgi); border-radius: 0.4rem;
  color: var(--ana); text-decoration: none;
}
#sayfalama a:hover { border-color: var(--ana); background: var(--ana-acik); }

/* ---------- bos / hata durumlari ---------- */
#bulunamadi,
#kaldirildi { padding-block: 3rem; text-align: center; }
#bulunamadi h1,
#kaldirildi h1 { font-size: clamp(1.6rem, 1.3rem + 1.4vw, 2.2rem); }
#bulunamadi p,
#kaldirildi p { color: var(--metin-2); }

/* ---------- alt ---------- */
#alt {
  margin-top: 4rem; padding-block: 2rem;
  border-top: 1px solid var(--cizgi); background: var(--zemin-2);
  font-family: "Helvetica Neue", Inter, system-ui, sans-serif;
  font-size: 0.9rem; color: var(--metin-2);
}
#alt .satir { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; }
#alt a { color: var(--metin-2); }
#alt a:hover { color: var(--koyu); }

@media print {
  #ust, #gezinme, #sayfalama, #ilgili-yazilar, #alt { display: none; }
}

/*
 * Blog (Editoryel) - `blog` temasini miras alir.
 *
 * Ortalanmis logo, bol bosluk, koyu kusakli bolum basliklari, tek sutun
 * okuma. Kisisel siteler ve dosya yazilari icin.
 *
 * SOZLESME: dosyada dogrudan renk yok, her ust duzey bolumde id,
 * yardimci sinif cercevesi yok.
 */

body { background: var(--zemin-2); }

/* ---------- ust: ortali, ince ---------- */
#ust { background: var(--zemin); border-bottom: 1px solid var(--cizgi); padding: 2.5rem 0 0; text-align: center; }
#ust .site-adi {
  font-family: "Helvetica Neue", Inter, system-ui, sans-serif;
  font-size: clamp(1.5rem, 1.1rem + 1.8vw, 2.2rem);
  font-weight: 800; letter-spacing: 0.22em; text-transform: uppercase;
}
#ust .slogan { margin-top: 0.5rem; font-size: 0.8rem; letter-spacing: 0.18em; text-transform: uppercase; }

#gezinme { margin-top: 1.75rem; border-top: 1px solid var(--cizgi); }
#gezinme ul { justify-content: center; gap: 0 2rem; }
#gezinme a { font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase; }

/* ---------- icerik: kagit uzerinde ---------- */
#icerik { padding-block: 3rem 4rem; }
#icerik > .kap { background: var(--zemin); padding: 2.5rem clamp(1rem, 4vw, 3rem); border: 1px solid var(--cizgi); }

/* ---------- one cikan ---------- */
#one-cikan { padding-bottom: 2.5rem; border-bottom: 1px solid var(--cizgi); }
#one-cikan h2 { font-size: clamp(1.6rem, 1.2rem + 1.8vw, 2.4rem); letter-spacing: -0.015em; }
#one-cikan .gorsel { border-radius: 0; }

/* ---------- bolum basligi: koyu kusak ---------- */
#son-yazilar h2.bolum-basligi,
#ilgili-yazilar h2.bolum-basligi {
  display: block; margin-bottom: 1.75rem; padding: 0.55rem 1rem;
  background: var(--koyu); color: var(--zemin);
  border-bottom: 0; text-align: center; letter-spacing: 0.24em;
}

/* ---------- listeler ---------- */
.liste { gap: 2.5rem; }
.liste-ozet h3 { font-size: 1.25rem; letter-spacing: -0.01em; }
.liste-ozet .gorsel { border-radius: 0; }

/* ---------- yazi ---------- */
#yazi h1 { letter-spacing: -0.02em; }
#yazi .kapak { border-radius: 0; }
#yazi .govde { max-width: 38rem; margin-inline: auto; }
#yazi .govde blockquote { border-left: 0; padding: 1.25rem 0; border-top: 2px solid var(--koyu); border-bottom: 2px solid var(--koyu); text-align: center; font-style: normal; }

#yazar-kutusu { border-radius: 0; background: var(--zemin-2); }
#sayfalama a { border-radius: 0; }
