/*
Theme Name:   Candır & Eser
Theme URI:    https://candireserhukukburosu.com
Description:  Candır & Eser Hukuk Bürosu için GeneratePress child teması. Tasarım token'ları bu dosyada tanımlıdır; Customizer üzerinden renk veya tipografi ayarı YAPILMAMALIDIR.
Author:       Invictum Bilişim Ajans Hizmetleri
Author URI:   https://invictum.co
Template:     generatepress
Version:      1.0.0
Text Domain:  candir-eser
*/

/* ==========================================================================
   1. TASARIM TOKEN'LARI
   Tek doğruluk kaynağı. Değer değişecekse SADECE burada değişir.
   ========================================================================== */

:root {
  /* — Renk ————————————————————————————————————————
     Altın (--ce-gold) beyaz üzerinde 1.75:1 kontrast verir; ERİŞİLEBİLİR DEĞİL.
     Altın YALNIZCA koyu yeşil zeminde metin olarak kullanılır (8.35:1).
     Açık zeminde altın yerine --ce-gold-ink kullanılır (6.20:1).                 */
  --ce-green-900:    #0E2216;   /* en koyu yüzey — alt bilgi                     */
  --ce-green-800:    #132E1D;   /* marka yeşili — logo zemini, ana koyu yüzey    */
  --ce-green-600:    #3D5A46;   /* koyu zeminde kenarlık                         */
  --ce-green-500:    #2C4A36;   /* koyu zeminde saç teli çizgi                   */

  --ce-gold:         #ECBE3A;   /* SADECE koyu zeminde                           */
  --ce-gold-ink:     #6B5A1E;   /* açık zeminde altın karşılığı                  */

  --ce-paper:        #F7F5EF;   /* ana zemin                                     */
  --ce-paper-2:      #EFEBE1;   /* ikincil zemin — şerit bölümler                */
  --ce-ink:          #14211A;   /* ana metin — 15.26:1                           */
  --ce-ink-muted:    #4A5A50;   /* ikincil metin — 6.71:1                        */
  --ce-line:         #C9C2B0;   /* saç teli çizgi                                */

  --ce-on-dark:      #C2CEC4;   /* koyu zeminde gövde metni — 8.33:1             */
  --ce-on-dark-mut:  #9CAF9F;   /* koyu zeminde ikincil metin                    */

  /* — Tipografi ————————————————————————————————————— */
  --ce-font-display: 'Spectral', Georgia, 'Times New Roman', serif;
  --ce-font-ui:      'IBM Plex Sans', system-ui, -apple-system, sans-serif;

  --ce-fs-display:   clamp(2.5rem, 6.4vw, 5.875rem);  /*  40 →  94 */
  --ce-fs-h1:        clamp(2.1rem, 4.8vw, 4.25rem);   /*  34 →  68 */
  --ce-fs-h2:        clamp(1.8rem, 3.4vw, 3.125rem);  /*  29 →  50 */
  --ce-fs-h3:        clamp(1.5rem, 2.4vw, 2.125rem);  /*  24 →  34 */
  --ce-fs-h4:        clamp(1.3rem, 1.8vw, 1.75rem);   /*  21 →  28 */
  --ce-fs-lead:      clamp(1.15rem, 1.5vw, 1.625rem); /*  18 →  26 */
  --ce-fs-body:      1.1875rem;                       /*  19       */
  --ce-fs-ui:        0.9375rem;                       /*  15       */
  --ce-fs-meta:      0.875rem;                        /*  14       */
  --ce-fs-label:     0.6875rem;                       /*  11       */

  --ce-lh-display:   1.06;
  --ce-lh-heading:   1.24;
  --ce-lh-body:      1.86;   /* uzun hukuk metni için bilinçli olarak geniş */

  --ce-ls-display:   -0.03em;
  --ce-ls-heading:   -0.02em;
  --ce-ls-label:     0.2em;

  /* — Boşluk (8px tabanlı) ———————————————————————————— */
  --ce-s1:  8px;
  --ce-s2:  16px;
  --ce-s3:  24px;
  --ce-s4:  32px;
  --ce-s5:  44px;
  --ce-s6:  56px;
  --ce-s7:  80px;
  --ce-s8:  104px;

  --ce-gutter:       80px;
  --ce-measure:      780px;  /* okuma genişliği üst sınırı */
}

@media (max-width: 768px) {
  :root { --ce-gutter: 20px; }
}

/* ==========================================================================
   2. YAZI TİPİ YÜKLEME
   woff2 dosyaları assets/fonts/ içine konur. Detay: README.md
   unicode-range Türkçe karakterleri kapsayacak şekilde latin-ext dahil.
   ========================================================================== */

@font-face {
  font-family: 'Spectral';
  src: url('assets/fonts/spectral-400.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0100-024F, U+0131, U+0152-0153, U+2000-206F, U+2C60-2C7F;
}
@font-face {
  font-family: 'Spectral';
  src: url('assets/fonts/spectral-400i.woff2') format('woff2');
  font-weight: 400; font-style: italic; font-display: swap;
  unicode-range: U+0000-00FF, U+0100-024F, U+0131, U+0152-0153, U+2000-206F, U+2C60-2C7F;
}
@font-face {
  font-family: 'Spectral';
  src: url('assets/fonts/spectral-600.woff2') format('woff2');
  font-weight: 600; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0100-024F, U+0131, U+0152-0153, U+2000-206F, U+2C60-2C7F;
}
@font-face {
  font-family: 'IBM Plex Sans';
  src: url('assets/fonts/plexsans-400.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0100-024F, U+0131, U+0152-0153, U+2000-206F, U+2C60-2C7F;
}
@font-face {
  font-family: 'IBM Plex Sans';
  src: url('assets/fonts/plexsans-500.woff2') format('woff2');
  font-weight: 500; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0100-024F, U+0131, U+0152-0153, U+2000-206F, U+2C60-2C7F;
}

/* ==========================================================================
   3. TEMEL
   ========================================================================== */

body {
  background: var(--ce-paper);
  color: var(--ce-ink);
  font-family: var(--ce-font-display);
  font-size: var(--ce-fs-body);
  line-height: var(--ce-lh-body);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--ce-font-display);
  font-weight: 400;
  color: var(--ce-ink);
  line-height: var(--ce-lh-heading);
  letter-spacing: var(--ce-ls-heading);
}

h1 { font-size: var(--ce-fs-h1); line-height: var(--ce-lh-display); letter-spacing: var(--ce-ls-display); }
h2 { font-size: var(--ce-fs-h2); }
h3 { font-size: var(--ce-fs-h3); }
h4 { font-size: var(--ce-fs-h4); }

a         { color: var(--ce-gold-ink); text-decoration: none; }
a:hover,
a:focus   { color: var(--ce-green-800); }

:focus-visible {
  outline: 2px solid var(--ce-gold-ink);
  outline-offset: 3px;
}

/* Görsellerde oran korunur — flex kutularında esnemeyi engeller */
img { max-width: 100%; height: auto; }
.ce-logo { align-self: flex-start; display: block; }

/* ==========================================================================
   4. YARDIMCI SINIFLAR
   ========================================================================== */

.ce-label {
  font-family: var(--ce-font-ui);
  font-size: var(--ce-fs-label);
  letter-spacing: var(--ce-ls-label);
  text-transform: uppercase;
  color: var(--ce-gold-ink);
  display: block;
}
.ce-dark .ce-label { color: var(--ce-gold); }

.ce-ui   { font-family: var(--ce-font-ui); font-size: var(--ce-fs-ui); line-height: 1.66; }
.ce-meta { font-family: var(--ce-font-ui); font-size: var(--ce-fs-meta); color: var(--ce-ink-muted); }

.ce-dark            { background: var(--ce-green-800); color: var(--ce-paper); }
.ce-dark h1,
.ce-dark h2,
.ce-dark h3         { color: var(--ce-paper); }
.ce-dark p          { color: var(--ce-on-dark); }
.ce-dark a          { color: var(--ce-gold); }
.ce-dark hr,
.ce-dark .ce-rule   { border-color: var(--ce-green-500); }

.ce-paper-2 { background: var(--ce-paper-2); }

.ce-measure { max-width: var(--ce-measure); }

/* Bölüm başlığı — başlık solda, bağlantı sağda, altında çizgi */
.ce-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--ce-s4);
  border-bottom: 1px solid var(--ce-green-800);
  padding-bottom: var(--ce-s3);
  margin-bottom: var(--ce-s6);
}
.ce-dark .ce-section-head { border-bottom-color: var(--ce-green-500); }
.ce-section-head h2 { margin: 0; }
.ce-section-head .ce-meta { padding-bottom: var(--ce-s1); }

/* Buton */
.ce-btn {
  display: inline-flex;
  align-items: center;
  min-height: 56px;
  padding: 0 34px;
  font-family: var(--ce-font-ui);
  font-size: var(--ce-fs-ui);
  letter-spacing: 0.02em;
  background: var(--ce-green-800);
  color: var(--ce-paper);
  border: 1px solid var(--ce-green-800);
}
.ce-btn:hover { background: var(--ce-green-900); color: var(--ce-paper); }

.ce-btn--gold { background: var(--ce-gold); border-color: var(--ce-gold); color: var(--ce-green-800); font-weight: 500; }
.ce-btn--gold:hover { background: #F3D468; color: var(--ce-green-800); }

.ce-btn--ghost { background: transparent; border-color: var(--ce-line); color: var(--ce-ink); }
.ce-dark .ce-btn--ghost { border-color: var(--ce-green-600); color: var(--ce-paper); }

/* Etiket rozeti — çalışma alanı listelerinde */
.ce-tag {
  display: inline-flex;
  align-items: center;
  min-height: 46px;
  padding: 0 22px;
  border: 1px solid var(--ce-line);
  font-family: var(--ce-font-ui);
  font-size: var(--ce-fs-ui);
  color: var(--ce-ink);
}
.ce-tag--solid { background: var(--ce-green-800); border-color: var(--ce-green-800); color: var(--ce-paper); }

/* ==========================================================================
   5. BAŞLIK VE ALT BİLGİ
   ========================================================================== */

.site-header,
.ce-header {
  background: var(--ce-green-800);
  padding: 0 var(--ce-gutter);
}
.ce-header-inner {
  min-height: 108px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ce-s4);
}
.ce-nav {
  display: flex;
  align-items: center;
  gap: 38px;
  font-family: var(--ce-font-ui);
  font-size: 0.8125rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.ce-nav a            { color: var(--ce-on-dark); }
.ce-nav a:hover,
.ce-nav .current-menu-item > a { color: var(--ce-gold); }

.ce-footer {
  background: var(--ce-green-900);
  color: var(--ce-on-dark-mut);
  padding: var(--ce-s6) var(--ce-gutter);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--ce-s5);
  flex-wrap: wrap;
}
.ce-footer a { color: var(--ce-on-dark-mut); }
.ce-footer a:hover { color: var(--ce-gold); }
.ce-footer .ce-ui { font-size: 0.8125rem; line-height: 1.8; }

/* ==========================================================================
   6. YAZI SAYFASI
   ========================================================================== */

.ce-article { max-width: var(--ce-measure); }

.ce-article > p,
.ce-article > ul,
.ce-article > ol { font-size: var(--ce-fs-body); line-height: var(--ce-lh-body); }

.ce-article > h2 { font-size: var(--ce-fs-h3); margin: var(--ce-s5) 0 var(--ce-s2); }
.ce-article > h3 { font-size: var(--ce-fs-h4); margin: var(--ce-s4) 0 var(--ce-s2); }

/* Giriş paragrafı */
.ce-lede {
  font-size: var(--ce-fs-lead);
  line-height: 1.62;
  letter-spacing: -0.008em;
  color: var(--ce-ink);
}

/* İçtihat künyesi bloğu */
.ce-citation {
  background: var(--ce-paper-2);
  padding: var(--ce-s4) 38px var(--ce-s5);
  display: flex;
  flex-direction: column;
  gap: var(--ce-s2);
  margin: var(--ce-s5) 0;
}
.ce-citation__row {
  display: flex;
  flex-wrap: wrap;
  gap: 48px;
  font-family: var(--ce-font-ui);
  font-size: var(--ce-fs-meta);
}
.ce-citation__row div { display: flex; flex-direction: column; gap: 5px; }
.ce-citation__row span:first-child { color: var(--ce-ink-muted); }
.ce-citation__row span:last-child  { color: var(--ce-ink); }
.ce-citation__excerpt {
  border-top: 1px solid var(--ce-line);
  padding-top: var(--ce-s2);
  line-height: 1.8;
}

/* Yazar kutusu */
.ce-authorbox {
  background: var(--ce-green-800);
  padding: var(--ce-s4) 38px var(--ce-s5);
  display: flex;
  gap: var(--ce-s4);
  align-items: flex-start;
  margin: var(--ce-s5) 0;
}
.ce-authorbox__photo {
  width: 112px; height: 140px;
  object-fit: cover;
  flex-shrink: 0;
  display: block;
}
.ce-authorbox__body { display: flex; flex-direction: column; gap: 12px; }
.ce-authorbox__name {
  font-size: 1.875rem;
  letter-spacing: -0.018em;
  color: var(--ce-paper);
}
.ce-authorbox__name:hover { color: var(--ce-gold); }
.ce-authorbox__credentials {
  font-family: var(--ce-font-ui);
  font-size: 0.8125rem;
  letter-spacing: 0.06em;
  color: var(--ce-gold);
}
.ce-authorbox__bio {
  font-family: var(--ce-font-ui);
  font-size: var(--ce-fs-ui);
  line-height: 1.7;
  color: var(--ce-on-dark);
  margin: 0;
}

/* Sorumluluk reddi */
.ce-disclaimer {
  font-family: var(--ce-font-ui);
  font-size: 0.8125rem;
  line-height: 1.72;
  color: var(--ce-ink-muted);
  border-top: 1px solid var(--ce-line);
  padding-top: var(--ce-s3);
  margin-top: var(--ce-s5);
}

/* ==========================================================================
   7. YAZI LİSTESİ (editöryel satır düzeni)
   ========================================================================== */

.ce-postlist { display: flex; flex-direction: column; }
.ce-postlist__item {
  display: flex;
  gap: var(--ce-s6);
  align-items: baseline;
  border-top: 1px solid var(--ce-line);
  padding: var(--ce-s3) 0;
}
.ce-postlist__item:last-child { border-bottom: 1px solid var(--ce-line); }
.ce-postlist__cat {
  width: 220px; flex-shrink: 0;
  font-family: var(--ce-font-ui);
  font-size: 0.75rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ce-gold-ink);
}
.ce-postlist__title {
  flex-grow: 1;
  font-size: 1.75rem;
  line-height: 1.34;
  letter-spacing: -0.014em;
  color: var(--ce-ink);
}
.ce-postlist__author { flex-shrink: 0; font-family: var(--ce-font-ui); font-size: var(--ce-fs-meta); color: var(--ce-ink-muted); }

@media (max-width: 880px) {
  .ce-postlist__item { flex-direction: column; gap: var(--ce-s1); align-items: stretch; }
  .ce-postlist__cat  { width: auto; }
  .ce-postlist__title { font-size: 1.375rem; }
}

/* ==========================================================================
   8. ÇALIŞMA ALANI IZGARASI (hiyerarşili)
   ========================================================================== */

.ce-areas-featured {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--ce-s3);
  margin-bottom: var(--ce-s6);
}
.ce-areas-featured > *:nth-child(1) { grid-column: span 6; }
.ce-areas-featured > *:nth-child(2),
.ce-areas-featured > *:nth-child(3) { grid-column: span 3; }

.ce-area-card {
  padding: var(--ce-s4) 40px var(--ce-s5);
  display: flex;
  flex-direction: column;
  gap: var(--ce-s2);
  min-height: 268px;
  background: var(--ce-paper-2);
}
.ce-area-card--dark { background: var(--ce-green-800); }
.ce-area-card--dark .ce-area-card__title { color: var(--ce-paper); }
.ce-area-card--dark .ce-area-card__desc  { color: var(--ce-on-dark); }
.ce-area-card__title { font-size: 1.875rem; line-height: 1.24; letter-spacing: -0.012em; color: var(--ce-ink); }
.ce-areas-featured > *:nth-child(1) .ce-area-card__title { font-size: 2.5rem; line-height: 1.2; }
.ce-area-card__desc  { font-family: var(--ce-font-ui); font-size: var(--ce-fs-ui); line-height: 1.66; color: var(--ce-ink-muted); }

.ce-areas-rest {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ce-s5) var(--ce-s6);
}
.ce-area-entry {
  display: flex;
  flex-direction: column;
  gap: 10px;
  border-top: 1px solid var(--ce-line);
  padding-top: var(--ce-s3);
}
.ce-area-entry__title { font-size: 1.6875rem; letter-spacing: -0.01em; color: var(--ce-ink); }

@media (max-width: 1024px) {
  .ce-areas-featured > * { grid-column: span 12 !important; }
  .ce-areas-rest { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .ce-areas-rest { grid-template-columns: 1fr; }
}

/* ==========================================================================
   9. KÜNYE TABLOSU (avukat profili)
   ========================================================================== */

.ce-credentials {
  background: var(--ce-green-800);
  padding: var(--ce-s5) var(--ce-s4) 38px;
  display: flex;
  flex-direction: column;
  gap: var(--ce-s3);
}
.ce-credentials__row {
  display: flex;
  justify-content: space-between;
  gap: var(--ce-s2);
  border-bottom: 1px solid var(--ce-green-500);
  padding-bottom: 13px;
  font-family: var(--ce-font-ui);
  font-size: var(--ce-fs-meta);
}
.ce-credentials__row:last-child { border-bottom: 0; padding-bottom: 0; }
.ce-credentials__row dt { color: var(--ce-on-dark-mut); margin: 0; }
.ce-credentials__row dd { color: var(--ce-paper); margin: 0; text-align: right; }

/* ==========================================================================
   10. BASKI
   ========================================================================== */

@media print {
  .ce-header, .ce-footer, .ce-nav { display: none; }
  body { background: #fff; color: #000; font-size: 11pt; }
  .ce-article { max-width: none; }
}
