/* ==========================================================================
   RF MİRA — tema temel stil dosyası
   Build adımı yok · dış kaynak yok · tek dosya
   Sıra: 1 token · 2 font · 3 reset · 4 tipografi/prose · 5 bileşen · 6 duyarlı

   Kaynak: Claude Design → rfmira-theme.css. WordPress'e uyarlanan iki yer:
   §2 fontlar assets/css/fonts.css'e taşındı (#5 gerçek dosya adları oradadır),
   §4 prose seçicileri blok editörünü de kapsar — gerekçesi §4'ün başında.
   ========================================================================== */

/* 1 ————————————————————————————————————————————————— TOKEN */
:root {
  /* Renk — 6 anlamsal + 3 durum. Yeni ton eklemeyin, var olanı kullanın. */
  --bg:            #ffffff;
  --surface:       #f5f8f9;
  --text:          #10181c;
  --text-muted:    #56666e;
  --accent:        #12566b;
  --border:        #dde5e8;

  --accent-strong: #0e4453;  /* hover, li>strong, h4 */
  --accent-soft:   #e8f0f2;  /* etiket zemini, ikincil buton hover */
  --text-soft:     #3d4a51;  /* prose gövde, ana metinden bir kademe yumuşak */
  --ok:            #1c6b46;
  --err:           #a1341f;
  /* Odak halkası aksan tonunun kendisi: saydam hâli (%35 alfa) beyaz zeminde
     1.83:1 kalıyordu, oysa odak göstergesi de SC 1.4.11'in 3:1 eşiğine tabi.
     Koyu alt bilgide bu ton eşiğin altına düşüyor; değeri .site-footer eziyor. */
  --focus-ring:    var(--accent);

  /* Tipografi */
  --font-sans: Figtree, system-ui, "Segoe UI", sans-serif;
  --font-serif: Lora, Georgia, "Times New Roman", serif;
  --font-mono: ui-monospace, SFMono-Regular, Consolas, monospace;

  --fs-display: clamp(2.0rem,  1.35rem + 2.6vw, 3.5rem);   /* 32 → 56 */
  --fs-h1:      clamp(1.75rem, 1.35rem + 1.7vw, 2.75rem);  /* 28 → 44 */
  --fs-h2:      clamp(1.4375rem, 1.3rem + .6vw, 1.875rem); /* 23 → 30 */
  --fs-h3:      clamp(1.1875rem, 1.13rem + .3vw, 1.375rem);/* 19 → 22 */
  --fs-body:    clamp(1rem, .975rem + .1vw, 1.0625rem);    /* 16 → 17 */
  --fs-small:   .875rem;                                    /* 14 */
  --fs-eyebrow: .75rem;                                     /* 12 */

  --lh-display: 1.08;  --ls-display: -.02em;
  --lh-h1:      1.15;  --ls-h1:      -.015em;
  --lh-h2:      1.25;  --ls-h2:      -.01em;
  --lh-h3:      1.3;
  --lh-body:    1.75;
  --ls-eyebrow: .12em;

  /* Ok işareti: bağlantı metninin yanındaki süsleme. `mask` ile basıldığı için
     rengi `currentColor`dan alıyor ve gövdede bir SVG bloğu taşımak gerekmiyor. */
  --icon-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 10'%3E%3Cpath d='M0 5h16M12 1l4 4-4 4' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");

  /* Boşluk — taban 4px */
  --sp-1: .25rem; --sp-2: .5rem;  --sp-3: 1rem;   --sp-4: 1.5rem;
  --sp-5: 2.5rem; --sp-6: 4rem;   --sp-7: 6rem;

  /* Yuvarlaklık · kenarlık · gölge — her biri 3 kademe */
  --r-1: 2px; --r-2: 6px; --r-3: 999px;
  --bw-1: 1px; --bw-2: 2px; --bw-3: 3px;
  --sh-1: 0 1px 2px rgba(16, 24, 28, .05);
  --sh-2: 0 6px 20px rgba(16, 24, 28, .08);
  --sh-3: 0 16px 40px rgba(16, 24, 28, .12);

  /* Genişlik */
  --w-prose: 720px;
  --w-page: 1200px;
  --pad-page: 2.5rem;   /* mobilde 1.25rem — bkz. §6 */
  /* Yapışkan başlığın yüksekliği: çapa hedefleri ve yapışkan içindekiler
     listesi bu bandın altına girmemeli. Mobilde başlık kompakt — bkz. §6. */
  --header-h: 83px;
  /* Üst şeridin yüksekliği (38px içerik + 1px çizgi). Başlık bu kadar negatif
     `top` ile yapışır: şerit doğal kaydırmayla görünümden çıkar, ana bant 0'a
     çakılır. Mobilde şerit yok, değer 0 — bkz. §6. */
  --topbar-h: 39px;

  --dur: 120ms;
}
@media (prefers-reduced-motion: reduce) { :root { --dur: 0s; } }

/* 2 ————————————————————————————————————————————————— FONT
   @font-face bildirimleri assets/css/fonts.css'te. Tasarım dosyası dört statik
   kesim (figtree-400/500/700) varsayıyordu; #5 bunun yerine Figtree'nin değişken
   kesimini indirdi, dolayısıyla dosya adları tutmuyor. Tek kaynak fonts.css:
   hem ön yüzde hem editörde ondan önce yüklenir. */

/* 3 ————————————————————————————————————————————————— RESET */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--bg); color: var(--text);
  font-family: var(--font-sans); font-size: var(--fs-body); line-height: var(--lh-body);
  -webkit-font-smoothing: antialiased;
}
img, svg { max-width: 100%; height: auto; display: block; }
/* Bileşenlere verilen `display` değeri tarayıcının `[hidden]` kuralını eziyordu:
   form hata kutuları ve başarı paneli sayfa açılır açılmaz görünüyordu. */
[hidden] { display: none !important; }
:where(a):focus-visible, :where(button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--focus-ring); outline-offset: 2px; border-radius: var(--r-1);
}
/* Atlama bağlantısının hedefi; programatik odak görünür halka çizmesin. */
.site-main:focus { outline: none; }
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: var(--sp-3); top: var(--sp-3); z-index: 99; background: var(--bg); padding: var(--sp-2) var(--sp-3); border: var(--bw-1) solid var(--accent); border-radius: var(--r-2); }

.container { max-width: var(--w-page); margin-inline: auto; padding-inline: var(--pad-page); }

/* Çapa hedefi yapışkan başlığın arkasına kaymasın: sıçrama noktası başlık
   yüksekliği + bir satır boşluk kadar aşağıda duruyor. */
#content,
.prose :is(h2, h3)[id] { scroll-margin-top: calc(var(--header-h) + var(--sp-3)); }

/* 4 ————————————————————————————————————————————————— TİPOGRAFİ / PROSE
   .prose = WordPress blok editöründen gelen serbest akan metnin kabı.
   Dikey ritim tek kurala bağlı: başlık üstü boşluk ≈ altının 3 katı.

   Seçiciler `.prose` ile `.editor-styles-wrapper`i birlikte kapsıyor: editörün
   iframe'inde gövde metni doğrudan `<body class="editor-styles-wrapper">` altına
   basılıyor, araya `.prose` koyabileceğimiz bir kanca yok (gövde sınıfları
   block-editor.js içinde sabit bir listeyle süzülüyor). Aynı kuralları ikinci kez
   yazmak yerine seçiciyi genişletmek tek kaynağı koruyor. Özgüllük değişmiyor:
   `:is()` en yüksek argümanını alır, ikisi de sınıf. */
.prose { max-width: var(--w-prose); }

:is(.prose, .editor-styles-wrapper) { counter-reset: h2; }
:is(.prose, .editor-styles-wrapper) > * + * { margin-top: var(--sp-3); }
:is(.prose, .editor-styles-wrapper) p { margin: 0 0 1.25rem; color: var(--text-soft); }
.prose > :last-child { margin-bottom: 0; }

/* Bölüm başlığı seviyesi `h2`. Sayfa başlığı `h1`, gövdedeki ilk başlık `h2`:
   seviye atlanmadığı için ekran okuyucu belge yapısını olduğu gibi okur (WCAG
   2.1 AA, SC 1.3.1). Alt kademeler `h3` ve `h4`; serif görünüm artık bir prose
   seviyesi değil, `.credentials__title` gibi bileşen başlıklarının kendi işi. */
:is(.prose, .editor-styles-wrapper) h2 { font-family: var(--font-sans); font-weight: 700; font-size: var(--fs-h3); line-height: var(--lh-h3); color: var(--text); margin: 2.5rem 0 .75rem; }
:is(.prose, .editor-styles-wrapper) h3 { font-family: var(--font-sans); font-weight: 700; font-size: 1.125rem; line-height: 1.4; color: var(--accent-strong); margin: 1.75rem 0 var(--sp-2); }
:is(.prose, .editor-styles-wrapper) h4 { font-family: var(--font-sans); font-weight: 700; font-size: 1rem; line-height: 1.45; color: var(--text); margin: 1.5rem 0 var(--sp-1); }
:is(.prose, .editor-styles-wrapper) :is(h2, h3, h4):first-child { margin-top: 0; }
:is(.prose, .editor-styles-wrapper) :is(h2, h3, h4) + p { margin-top: 0; }

/* Bölüm başlıkları otomatik numaralanır: "01" "02" … sol oluğa yerleşir.
   İçerik yazarı başlığa elle numara yazmaz.

   Sınıfı `__title` ile biten başlıklar bileşen başlığıdır (desen kartları,
   arşiv özeti): bölüm sayılmazlar, numara ve çizgi almazlar. Aynı kuralı
   `rfmira_prose_anchors()` de uyguluyor, böylece içindekiler listesindeki
   numaralar CSS sayacıyla aynı sayımı izliyor. */
:is(.prose, .editor-styles-wrapper) h2:not([class*="__title"]) { counter-increment: h2; padding-left: 3.25rem; position: relative; padding-top: var(--sp-4); border-top: var(--bw-1) solid var(--border); }
:is(.prose, .editor-styles-wrapper) h2:not([class*="__title"])::before {
  content: counter(h2, decimal-leading-zero);
  position: absolute; left: 0; top: var(--sp-4);
  font-family: var(--font-mono); font-size: 1rem; font-weight: 400; color: var(--accent);
}
:is(.prose, .editor-styles-wrapper) h2:not([class*="__title"]):first-of-type { border-top-color: var(--text); border-top-width: var(--bw-2); }
/* Bölüm başlığından sonraki gövde de aynı oluktan başlar */
:is(.prose, .editor-styles-wrapper) h2 ~ :is(p, ul, ol) { margin-left: 3.25rem; }

:is(.prose, .editor-styles-wrapper) a { color: var(--accent); text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: color-mix(in srgb, var(--accent) 40%, transparent); text-underline-offset: 3px; transition: color var(--dur), text-decoration-thickness var(--dur); }
:is(.prose, .editor-styles-wrapper) a:hover { color: var(--accent-strong); text-decoration-thickness: 2px; text-decoration-color: currentColor; }

/* Liste — kalın etiketli madde deseni. İşaret ::before ile üretilir,
   editör çıktısındaki markup'a dokunulmaz. */
:is(.prose, .editor-styles-wrapper) :is(ul, ol) { list-style: none; margin: 0 0 var(--sp-4); padding: 0; }
:is(.prose, .editor-styles-wrapper) li { position: relative; padding-left: 1.25rem; color: var(--text-soft); }
:is(.prose, .editor-styles-wrapper) li + li { margin-top: .875rem; }
:is(.prose, .editor-styles-wrapper) ul > li::before { content: ""; position: absolute; left: 0; top: .75em; width: 8px; height: 1px; background: var(--accent); }
:is(.prose, .editor-styles-wrapper) ol { counter-reset: ol; }
:is(.prose, .editor-styles-wrapper) ol > li { counter-increment: ol; padding-left: 2.125rem; }
:is(.prose, .editor-styles-wrapper) ol > li::before { content: counter(ol) "."; position: absolute; left: 0; top: 0; font-family: var(--font-mono); font-size: .9375rem; color: var(--accent); }
:is(.prose, .editor-styles-wrapper) li > strong:first-child { font-weight: 700; color: var(--accent-strong); }
/* İç içe liste: bir kademe geri, nokta işaretli, hairline'lı */
:is(.prose, .editor-styles-wrapper) li :is(ul, ol) { margin: .75rem 0 0; padding-left: 1.125rem; border-left: var(--bw-1) solid var(--border); font-size: 1rem; }
:is(.prose, .editor-styles-wrapper) li li { padding-left: 1rem; }
:is(.prose, .editor-styles-wrapper) li li::before { content: ""; width: 4px; height: 4px; border-radius: 50%; top: .65em; background: var(--accent); }

:is(.prose, .editor-styles-wrapper) blockquote { margin: 2rem 0; border-left: var(--bw-3) solid var(--accent); padding: .25rem 0 .25rem var(--sp-4); font-family: var(--font-serif); font-weight: 600; font-size: 1.3125rem; line-height: 1.5; color: var(--accent-strong); }
:is(.prose, .editor-styles-wrapper) hr { border: 0; border-top: var(--bw-1) solid var(--border); margin: var(--sp-5) 0; }

:is(.prose, .editor-styles-wrapper) figure { margin: var(--sp-4) 0; }
:is(.prose, .editor-styles-wrapper) figure img,
:is(.prose, .editor-styles-wrapper) > img { width: 100%; border: var(--bw-1) solid var(--border); border-radius: var(--r-2); }
:is(.prose, .editor-styles-wrapper) figcaption { margin-top: .625rem; padding-left: .75rem; border-left: var(--bw-2) solid var(--border); font-size: var(--fs-small); line-height: 1.6; color: var(--text-muted); }

:is(.prose, .editor-styles-wrapper) table { width: 100%; border-collapse: collapse; margin: 0 0 var(--sp-4); font-size: 1rem; }
:is(.prose, .editor-styles-wrapper) th { text-align: left; background: var(--surface); border-block: var(--bw-1) solid var(--border); padding: .75rem .875rem; font-size: .8125rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); }
:is(.prose, .editor-styles-wrapper) td { border-bottom: var(--bw-1) solid var(--border); padding: .75rem .875rem; }
:is(.prose, .editor-styles-wrapper) .wp-block-table { overflow-x: auto; }   /* dar ekranda kaydırılır, kırpılmaz */

:is(.prose, .editor-styles-wrapper) code { font-family: var(--font-mono); font-size: .9375em; background: var(--surface); border: var(--bw-1) solid var(--border); border-radius: var(--r-1); padding: 1px 5px; }

/* 5 ————————————————————————————————————————————————— BİLEŞEN */
.eyebrow { font-size: var(--fs-eyebrow); font-weight: 700; letter-spacing: var(--ls-eyebrow); text-transform: uppercase; color: var(--accent); }

/* Gutenberg'in buton bloğu tema butonuyla aynı şey: `className` sarmalayıcıya
   (`.wp-block-button`) iner, biçim bağlantının kendisine gerekir. İkinci seçici
   (0,2,0) çekirdeğin `.wp-block-button__link` kuralını (0,1,0) geçiyor. */
.btn,
.wp-block-button .wp-block-button__link { display: inline-block; font: 700 1rem/1 var(--font-sans); padding: .875rem 1.625rem; border: var(--bw-1) solid transparent; border-radius: var(--r-2); text-decoration: none; cursor: pointer; transition: background var(--dur), border-color var(--dur), color var(--dur); }
.btn--primary,
.btn--primary .wp-block-button__link { background: var(--accent); color: #fff; }
.btn--primary:hover,
.btn--primary .wp-block-button__link:hover { background: var(--accent-strong); color: #fff; }
.btn--primary:active,
.btn--primary .wp-block-button__link:active { background: #0a333e; transform: translateY(1px); }
.btn--secondary,
.btn--secondary .wp-block-button__link { background: transparent; border-color: var(--accent); color: var(--accent); }
.btn--secondary:hover,
.btn--secondary .wp-block-button__link:hover { background: var(--accent-soft); color: var(--accent-strong); }
.btn--secondary:active,
.btn--secondary .wp-block-button__link:active { background: #d5e2e6; border-color: #0a333e; color: #0a333e; transform: translateY(1px); }
.btn[disabled], .btn[aria-disabled="true"] { background: #eaeef0; border-color: var(--border); color: #97a4aa; cursor: not-allowed; transform: none; }

/* Negatif `top` başlığı kısmen yapışkan yapıyor: üst şerit kadarı görünümün
   üstüne taşar, geri kalan bant 0'a çakılır. Şerit böylece sayfanın kendi
   kaydırmasıyla çıkıp giriyor — bir sınıf onu `display: none` yaptığında
   başlık 122px'ten 83px'e düşüyor ve altındaki içerik tek kare içinde 39px
   zıplıyordu, iki yönde de. Burada hiçbir şeyin yüksekliği değişmiyor. */
.site-header { border-bottom: var(--bw-1) solid var(--border); background: var(--bg); position: sticky; top: calc(-1 * var(--topbar-h)); z-index: 20; transition: box-shadow var(--dur) ease; }
.site-header.is-stuck { box-shadow: var(--sh-1); }
.header-topbar { background: var(--surface); border-bottom: var(--bw-1) solid var(--border); font-size: .8125rem; color: var(--text-muted); }
.header-topbar a { color: inherit; text-decoration: none; }
.header-main { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-5); padding-block: 1.125rem; }
.nav { display: flex; align-items: center; gap: 1.3125rem; }   /* 6 madde 1200px'e sığar */
.nav a { font-size: .9375rem; font-weight: 500; color: var(--text); text-decoration: none; padding-block: .375rem; border-bottom: var(--bw-2) solid transparent; }
.nav a:hover { color: var(--accent); }
.nav .current-menu-item > a, .nav a[aria-current="page"] { font-weight: 700; color: var(--accent); border-bottom-color: var(--accent); }
.nav-toggle { display: none; width: 44px; height: 44px; border: var(--bw-1) solid var(--border); border-radius: var(--r-2); background: var(--bg); }
.header-topbar__inner { display: flex; align-items: center; justify-content: space-between; height: 38px; }
.header-topbar__links { display: flex; align-items: center; gap: 1.25rem; }
.header-topbar__link { display: flex; align-items: center; gap: .375rem; }

.brand { display: flex; flex-direction: column; gap: 2px; text-decoration: none; }
.brand__name { font: 600 1.6875rem/1 var(--font-serif); letter-spacing: -.01em; color: var(--text); }
.brand__name-accent { color: var(--accent); }
.brand__tagline { font-size: .59375rem; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--text-muted); }
.brand--logo img { max-height: 44px; width: auto; }   /* metin kilit unitesinin yuksekligi */

.header-actions { display: flex; align-items: center; gap: .5rem; }

.page-head { background: var(--surface); border-bottom: var(--bw-1) solid var(--border); padding-block: var(--sp-5); }
.page-head h1 { margin: 0 0 var(--sp-3); font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-h1); line-height: var(--lh-h1); letter-spacing: var(--ls-h1); }
.page-head .lede { margin: 0; max-width: var(--w-prose); font-size: 1.1875rem; line-height: 1.6; color: var(--text-muted); }
.breadcrumb { display: flex; gap: var(--sp-2); font-size: .8125rem; color: var(--text-muted); margin-bottom: 1.125rem; }
.breadcrumb a { color: inherit; text-decoration: none; }

.toc { position: sticky; top: calc(var(--header-h) + var(--sp-3)); border-left: var(--bw-1) solid var(--border); padding-left: var(--sp-4); display: grid; gap: .875rem; }
.toc summary { display: flex; align-items: center; justify-content: space-between; cursor: pointer; color: var(--text-muted); list-style: none; }
.toc summary::-webkit-details-marker { display: none; }
.toc summary::after { content: ""; }   /* mobilde acilir ucgene donusuyor — bkz. §6 */
.toc__list { display: grid; gap: .875rem; }
.toc a { font-size: .9375rem; color: var(--text-muted); text-decoration: none; line-height: 1.4; }
.toc a[aria-current] { font-weight: 700; color: var(--accent); }
.page-body { display: grid; grid-template-columns: var(--w-prose) 1fr; gap: var(--sp-6); align-items: start; padding-block: var(--sp-5) var(--sp-7); }
/* Icindekiler DOM'da once, masaustunde sag sutunda: odak sirasi ile gorsel sira
   mobilde de masaustunde de ayni kaliyor, mobilde liste icerigin ustune geciyor. */
.page-body > .toc { grid-column: 2; grid-row: 1; }
.page-body > .prose { grid-column: 1; grid-row: 1; }
/* İçindekiler basılmayan sayfalarda (arşiv, arama, başlıksız içerik) ikinci ray
   boş bir sütun olarak kalıyordu. */
.page-body:not(:has(> .toc)) { grid-template-columns: minmax(0, 1fr); }

.field { display: grid; gap: .375rem; }
.field > label { font-size: var(--fs-small); font-weight: 500; }
.field :is(input, select, textarea) { font: 400 1rem/1.5 var(--font-sans); color: var(--text); background: var(--bg); border: var(--bw-1) solid var(--border); border-radius: var(--r-2); padding: .75rem .875rem; transition: border-color var(--dur); }
.field :is(input, select, textarea):focus-visible { border-color: var(--accent); }
.field textarea { min-height: 148px; resize: vertical; }
.field[data-state="error"] > label { color: var(--err); }
.field[data-state="error"] :is(input, select, textarea) { border-color: var(--err); }
.field[data-state="success"] :is(input, select, textarea) { border-color: var(--ok); background: #f4faf7; }
.field-msg { font-size: .8125rem; color: var(--err); display: flex; align-items: center; gap: .375rem; }
.form-alert { border: var(--bw-1) solid var(--err); background: #fdf6f4; border-radius: var(--r-2); padding: .875rem 1rem; color: #7d2817; }
.form-success { border: var(--bw-1) solid var(--ok); background: #f4faf7; border-radius: var(--r-2); padding: var(--sp-4); }

.site-footer { background: var(--text); color: #cfd8dc; --focus-ring: #7fb3c2; }
.site-footer a { color: #cfd8dc; text-decoration: none; }
.site-footer a:hover { color: #fff; text-decoration: underline; }
.site-footer h2 { font-size: var(--fs-eyebrow); font-weight: 700; letter-spacing: var(--ls-eyebrow); text-transform: uppercase; color: #7fb3c2; margin: 0; }
.footer-cols { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1.2fr) minmax(0, 1.2fr); gap: var(--sp-5); padding-block: var(--sp-5) 2rem; }
.footer-legal { border-top: var(--bw-1) solid #26333a; font-size: .8125rem; color: #78868c; padding-block: 1.25rem; }
.footer-brand { display: flex; flex-direction: column; gap: .875rem; }
.footer-brand__name { margin: 0; font: 600 1.5rem/1 var(--font-serif); color: #fff; }
.footer-brand__name-accent { color: #7fb3c2; }
.footer-brand__text { margin: 0; max-width: 380px; font-size: .9375rem; line-height: 1.7; color: #9aa8ae; }
.footer-col { display: flex; flex-direction: column; gap: .75rem; }
.footer-col a { font-size: .9375rem; }
.footer-col__address { font-style: normal; font-size: .9375rem; line-height: 1.6; color: #9aa8ae; }

/* Alt bilgideki site içi arama. §5'teki `.search-form` açık zemine göre yazıldı:
   koyu alt bilgide alan beyaz kalıyor, buton ise aksan tonu yerine açık tonu
   alıyor — aksan bu zeminde 3:1 eşiğinin altında (SC 1.4.11). */
.footer-search .search-form { margin-top: 0; }
.footer-search .search-form__field { border-color: #7fb3c2; }
.footer-search .btn--primary { padding: .75rem 1.125rem; background: #7fb3c2; border-color: #7fb3c2; color: #0a333e; }
.footer-search .btn--primary:hover { background: #a8ccd6; color: #0a333e; }

/* Ürün kartı — fotoğrafı olan ve olmayan iki hâl */
.product { border-top: var(--bw-1) solid var(--border); margin-top: 4.5rem; padding-top: 2rem; }
.product:first-of-type { border-top: var(--bw-2) solid var(--text); }
.product__meta { display: flex; align-items: center; gap: .75rem; margin-bottom: var(--sp-3); flex-wrap: wrap; }
.product__no { font-family: var(--font-mono); font-size: 1rem; color: var(--accent); }
.product h2 { font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-h2); line-height: var(--lh-h2); letter-spacing: var(--ls-h2); margin: 0 0 var(--sp-4); }
.product--hero .product__body { display: grid; grid-template-columns: 1fr 360px; gap: var(--sp-6); align-items: start; }
.product--split .product__body { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-5); align-items: start; }
.product--split.is-reversed figure { order: -1; }

.tag { display: inline-block; font-size: var(--fs-eyebrow); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; border-radius: var(--r-1); padding: .3125rem .625rem; }
.tag--solid { background: var(--accent); color: #fff; }
.tag--soft  { background: var(--accent-soft); color: var(--accent-strong); }

/* Teknik özet künyesi */
.specs { border: var(--bw-1) solid var(--border); border-radius: var(--r-2); overflow: hidden; }
.specs > h3 { margin: 0; background: var(--surface); border-bottom: var(--bw-1) solid var(--border); padding: .875rem 1.25rem; font-size: var(--fs-eyebrow); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); }
.specs dl { margin: 0; }
.specs dl > div { display: flex; justify-content: space-between; gap: var(--sp-3); padding: .875rem 1.25rem; border-bottom: var(--bw-1) solid var(--border); }
.specs dl > div:last-child { border-bottom: 0; }
.specs dt { font-size: .9375rem; color: var(--text-muted); }
.specs dd { margin: 0; font-size: .9375rem; font-weight: 500; text-align: right; }

/* Fotoğraf bekleyen alan — yayına alınmadan önce doldurulur veya kaldırılır */
.photo-slot { border: var(--bw-1) dashed #c2ced3; border-radius: var(--r-2); background: var(--surface); aspect-ratio: 4 / 3; display: grid; place-content: center; justify-items: center; gap: .625rem; padding: var(--sp-4); text-align: center; }
/* Renk tasarımdaki #7d8b91 değil: 13px metin --surface üzerinde 3.29:1 veriyor,
   WCAG AA eşiği 4.5:1 (#20). */
.photo-slot p { margin: 0; font-size: .8125rem; line-height: 1.5; color: var(--text-muted); max-width: 16rem; }

/* Belge / başarı kartı */
.credential { border: var(--bw-1) solid var(--border); border-radius: var(--r-2); display: grid; grid-template-columns: 300px 1fr; overflow: hidden; }
.credential__visual { background: var(--surface); border-right: var(--bw-1) solid var(--border); display: grid; place-items: center; padding: var(--sp-4); }
.credential__visual img { border: var(--bw-1) solid var(--border); border-radius: var(--r-1); background: var(--bg); }
.credential__body { padding: 1.75rem 2rem; display: grid; gap: .875rem; align-content: start; }

/* LinkedIn şeridi — elle girilen kartlar, harici widget YOK (mixed-content) */
.social-strip ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-4); }
.social-strip a { height: 100%; border: var(--bw-1) solid var(--border); border-radius: var(--r-2); padding: var(--sp-4); display: flex; flex-direction: column; gap: .875rem; text-decoration: none; color: inherit; transition: border-color var(--dur), background var(--dur); }
.social-strip a:hover { border-color: var(--accent); background: var(--surface); }
.social-strip time { font-size: .8125rem; color: var(--text-muted); }
.social-strip .cta { margin-top: auto; font-size: .9375rem; font-weight: 700; color: var(--accent); }

/* 404 — tasarım bölüm 08. Bu sayfada .page-head bandı yok: hata metni ve beş
   bağlantı tek bir alanda açılıyor, radar şeması zeminde kalıyor. */
.error-404 { position: relative; overflow: hidden; }
.error-404__radar { position: absolute; right: 60px; top: 30px; width: 440px; height: 440px; color: var(--accent); opacity: .35; pointer-events: none; }
.error-404__inner { position: relative; padding-block: var(--sp-7) 6.5rem; }
.error-404__inner > * { max-width: 640px; }
.error-404__code { margin: 0 0 1.25rem; font-family: var(--font-mono); font-size: .9375rem; letter-spacing: .2em; color: var(--accent); }
.error-404__title { margin: 0 0 1.25rem; font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-h1); line-height: var(--lh-h1); letter-spacing: var(--ls-h1); }
.error-404__lede { margin: 0; font-size: 1.1875rem; line-height: 1.65; color: var(--text-muted); }
.error-404__links { margin-top: 2rem; display: flex; flex-direction: column; border-top: var(--bw-1) solid var(--border); }
.error-404__links a { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); border-bottom: var(--bw-1) solid var(--border); padding-block: var(--sp-3); font-size: 1.125rem; font-weight: 500; color: var(--text); text-decoration: none; transition: color var(--dur); }
.error-404__links a:hover { color: var(--accent); }
.error-404__links span { color: var(--accent); }

/* Yazı listesi — arama, arşiv ve son çare şablonları. Tasarımda karşılığı yok;
   ölçüler .prose ritmini izliyor. */
.entry-meta { font-family: var(--font-mono); font-size: var(--fs-small); color: var(--text-muted); }
.page-head .entry-meta { margin: 0; }
.prose .entry-meta { margin: 0 0 .75rem; }
.prose .entry-summary { border-top: var(--bw-1) solid var(--border); padding-top: var(--sp-4); margin-top: var(--sp-5); }
.prose .entry-summary:first-of-type { border-top: var(--bw-2) solid var(--text); margin-top: 0; }
.prose .entry-summary__title { margin: 0 0 .5rem; font-size: var(--fs-h3); line-height: var(--lh-h3); font-family: var(--font-sans); font-weight: 700; padding-left: 0; border-top: 0; }
.prose .entry-summary__title::before { content: none; }
.prose .entry-summary__title a { color: var(--text); text-decoration: none; }
.prose .entry-summary__title a:hover { color: var(--accent); text-decoration: underline; }
.prose .entry-summary__thumb { display: block; margin-bottom: var(--sp-3); }
.prose .entry-summary__thumb img { border: var(--bw-1) solid var(--border); border-radius: var(--r-2); }
.prose .entry-summary__excerpt > :last-child { margin-bottom: 0; }

.search-form { display: flex; gap: var(--sp-2); margin-top: var(--sp-4); max-width: var(--w-prose); }
.search-form__field { flex: 1 1 auto; min-width: 0; font: 400 1rem/1.5 var(--font-sans); color: var(--text); background: var(--bg); border: var(--bw-1) solid var(--border); border-radius: var(--r-2); padding: .75rem .875rem; transition: border-color var(--dur); }
.search-form__field:focus-visible { border-color: var(--accent); }

.pagination { margin-top: var(--sp-5); border-top: var(--bw-1) solid var(--border); padding-top: var(--sp-4); }
.pagination .nav-links { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); }
.pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 2.5rem; padding: .5rem .75rem; border: var(--bw-1) solid var(--border); border-radius: var(--r-2); font-size: .9375rem; font-weight: 500; color: var(--text); text-decoration: none; }
.pagination .page-numbers:hover { border-color: var(--accent); color: var(--accent); text-decoration: none; }
.pagination .page-numbers.current { background: var(--accent); border-color: var(--accent); color: #fff; }
.pagination .page-numbers.dots { border-color: transparent; }
.prose .page-links { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); margin-top: var(--sp-4); font-size: .9375rem; }
/* ——— Ana sayfa (#12). Ölçüler tasarımın 03 (masaüstü) ve 10 (mobil) bölümlerinden.
   Hero'nun hareket katmanı #1'in kararı: V1'in düzeni, V2'nin animasyonları. */

.home-hero { position: relative; background: var(--surface); border-bottom: var(--bw-1) solid var(--border); overflow: hidden; }
.home-hero__radar { position: absolute; right: -90px; top: -70px; width: 620px; height: 620px; max-width: none; color: var(--accent); opacity: .5; }
.home-hero__inner { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: var(--sp-4); padding-block: 5.25rem 5.5rem; }
.home-hero__inner > * { max-width: 45rem; }
.home-hero__eyebrow { margin: 0; }
.home-hero__title { margin: 0; font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-display); line-height: var(--lh-display); letter-spacing: var(--ls-display); }
.home-hero__lede { margin: 0; max-width: 38.75rem; font-size: 1.1875rem; line-height: 1.65; color: var(--text-muted); }
.home-hero__actions { display: flex; flex-wrap: wrap; gap: .875rem; padding-top: var(--sp-2); }
.home-hero__pulse { display: none; }   /* yalnızca hareket serbestken görünür */

/* Fotoğraf geldiğinde (tasarım bölüm 11): `.home-hero`ya `.home-hero--photo`
   eklenir, `--home-hero-photo` görselin `url()`i olur. Radar motifi kalkmıyor,
   fotoğrafın üstünde dönmeye devam ediyor — motife ayrı bir kural gerekmiyor,
   fotoğraflı hâl için yazılacak bir `opacity` mobildeki .4'ü özgüllükte ezerdi. */
/* Uc adresi de PHP satir ici basiyor (`rfmira_hero_photo_sources()`); secim
   burada. `background-image` `srcset` bilmiyor, tarayici olcegi kendi secemiyor;
   medya sorgusu bunun yerine geciyor. Kirilimlar dosyanin genisligine gore:
   1024 / 1536 / tam boy. */
.home-hero--photo { background-image: linear-gradient(90deg, rgba(255,255,255,.94) 0 46%, rgba(255,255,255,.55)), var(--home-hero-photo-sm); background-size: cover; background-position: 50% 42%; }
@media (min-width: 641px)  { .home-hero--photo { background-image: linear-gradient(90deg, rgba(255,255,255,.94) 0 46%, rgba(255,255,255,.55)), var(--home-hero-photo-md, var(--home-hero-photo-sm)); } }
@media (min-width: 1537px) { .home-hero--photo { background-image: linear-gradient(90deg, rgba(255,255,255,.94) 0 46%, rgba(255,255,255,.55)), var(--home-hero-photo-lg, var(--home-hero-photo-md, var(--home-hero-photo-sm))); } }

@keyframes rfmira-up { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
@keyframes rfmira-ring { from { transform: scale(.28); opacity: .9; } to { transform: scale(1.55); opacity: 0; } }
@keyframes rfmira-sweep { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: no-preference) {
  .home-hero__pulse { display: block; }
  .home-hero__ring { stroke-opacity: .55; transform-box: view-box; transform-origin: 260px 260px; animation: rfmira-ring 4.2s cubic-bezier(.2,.6,.3,1) infinite; }
  .home-hero__ring:nth-child(2) { animation-delay: 1.4s; }
  .home-hero__ring:nth-child(3) { animation-delay: 2.8s; }
  .home-hero__sweep { transform-box: view-box; transform-origin: 260px 260px; animation: rfmira-sweep 7s linear infinite; }
  /* `both`: gecikme boyunca başlangıç karesi, sonrasında bitiş karesi geçerli —
     böylece kuralın kendisi opacity: 0 bırakmıyor, animasyon hiç çalışmazsa
     içerik yine görünür kalıyor. */
  .home-hero__inner > * { animation: rfmira-up .8s cubic-bezier(.2,.7,.2,1) both; }
  .home-hero__eyebrow { animation-duration: .7s; animation-delay: .1s; }
  .home-hero__title { animation-delay: .22s; }
  .home-hero__lede { animation-delay: .34s; }
  .home-hero__actions { animation-delay: .46s; }
}

/* Spec §5: hareket `reduce` altında tamamen durur — `--dur: 0s` yetmez. */
@media (prefers-reduced-motion: reduce) {
  .home-hero__pulse { display: none; }
  .home-hero__ring,
  .home-hero__sweep,
  .home-hero__inner > * { animation: none !important; opacity: 1; transform: none; }
}

.home-section { border-bottom: var(--bw-1) solid var(--border); padding-block: var(--sp-6); }
.home-section--surface { background: var(--surface); }
.home-section__head { display: flex; align-items: baseline; gap: var(--sp-3); margin: 0 0 var(--sp-5); }
.home-section__head--split { justify-content: space-between; }
.home-section__head h2 { margin: 0; font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-h2); line-height: var(--lh-h2); letter-spacing: var(--ls-h2); }
.home-section__head::after { content: ""; flex: 1; height: 1px; background: var(--border); }
.home-section__head--split::after { content: none; }
.home-section__head:has(+ .home-section__lede) { margin-bottom: var(--sp-2); }
.home-section__lede { margin: 0 0 1.75rem; max-width: 45rem; font-size: 1rem; line-height: 1.65; color: var(--text-muted); }

.home-topics { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-5); }
.home-topic { display: flex; flex-direction: column; gap: .875rem; }
.home-topic__icon { color: var(--accent); }
.home-topic h3 { margin: 0; font-size: 1.1875rem; font-weight: 700; line-height: 1.35; }
.home-topic p { margin: 0; font-size: 1rem; line-height: 1.65; color: var(--text-muted); }

/* Raylar `minmax(0, 1fr)`: cıplak `1fr` en az içerik genişliği kadar kalır, yazı
   iki katına çıkarıldığında (SC 1.4.4) ızgara kabından taşardı. */
.home-cards { counter-reset: home-card; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-4); }
.home-card::before { content: counter(home-card, decimal-leading-zero); font-size: var(--fs-eyebrow); font-weight: 700; letter-spacing: var(--ls-eyebrow); color: var(--accent); }
.home-card { counter-increment: home-card; background: var(--bg); border: var(--bw-1) solid var(--border); border-radius: var(--r-2); padding: 1.75rem; display: flex; flex-direction: column; gap: .75rem; }
.home-card h3 { margin: 0; font-size: var(--fs-h3); font-weight: 700; line-height: var(--lh-h3); }
.home-card p { margin: 0; flex: 1; font-size: 1rem; line-height: 1.65; color: var(--text-muted); }
.home-card__cta { margin: 0; }
.home-card__cta > a::after { content: ""; width: 1rem; height: .625rem; background: currentColor; -webkit-mask: var(--icon-arrow) no-repeat center / contain; mask: var(--icon-arrow) no-repeat center / contain; }
.home-card__link,
.home-card__cta > a { display: inline-flex; align-items: center; gap: var(--sp-2); font-size: .9375rem; font-weight: 700; color: var(--accent); text-decoration: none; transition: color var(--dur); }
.home-card__link:hover,
.home-card__cta > a:hover { color: var(--accent-strong); text-decoration: underline; }
.home-card > .home-card__link,
.home-card > .home-card__cta { align-self: flex-start; }

.home-featured { position: relative; background: var(--accent); color: #fff; overflow: hidden; }
.home-featured__grid { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; color: #fff; opacity: .16; }
.home-featured__inner { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 3.5rem; padding-block: 3.75rem; }
.home-featured__body { display: flex; flex-direction: column; gap: var(--sp-3); max-width: 47.5rem; }
.home-featured__eyebrow { margin: 0; font-size: var(--fs-eyebrow); font-weight: 700; letter-spacing: var(--ls-eyebrow); text-transform: uppercase; color: #a8ccd6; }
.home-featured__claim { margin: 0; font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-h2); line-height: 1.32; letter-spacing: var(--ls-h2); }
.home-featured__note { margin: 0; font-size: 1.0625rem; line-height: 1.7; color: #cfe2e8; }
/* Sınıf buton bloğunun sarmalayıcısına (`.wp-block-buttons`) düşüyor, boyanan
   ise içindeki bağlantı: sarmalayıcının kendisi boyanırsa buton çevresinde
   görünmez ama `:hover`da renklenen bir kutu kalıyor. */
.home-featured__cta .wp-block-button__link { background: var(--bg); color: var(--accent); white-space: nowrap; }
.home-featured__cta .wp-block-button__link:hover { background: var(--accent-soft); color: var(--accent-strong); }

.home-partners { counter-reset: home-partner; list-style: none; margin: 0; padding: 0; }
.home-partner { counter-increment: home-partner; display: grid; grid-template-columns: 3.5rem 1fr auto; gap: var(--sp-4); align-items: center; border-top: var(--bw-1) solid var(--border); padding-block: 1.375rem; }
.home-partner:last-child { border-bottom: var(--bw-1) solid var(--border); }
.home-partner::before { content: "0" counter(home-partner); font-family: var(--font-mono); font-size: .8125rem; color: var(--text-muted); }
.home-partner__name { margin: 0; font-family: var(--font-serif); font-weight: 600; font-size: 1.625rem; letter-spacing: -.01em; }
.home-partner__kind { margin: 0; font-size: var(--fs-small); color: var(--text-muted); }

/* Bağlantısız LinkedIn kartı: adres gelene kadar `<div>` basılıyor, `.social-strip a`
   ile aynı kutu. */
.social-strip__card { height: 100%; border: var(--bw-1) solid var(--border); border-radius: var(--r-2); padding: var(--sp-4); display: flex; flex-direction: column; gap: .875rem; }
.home-social__meta { display: flex; align-items: center; gap: .625rem; }
.home-social__badge { color: var(--accent); flex: none; }
.home-social__excerpt { font-size: 1.0625rem; font-weight: 500; line-height: 1.55; }

.home-contact { background: var(--surface); }
.home-contact__inner { display: flex; align-items: center; justify-content: space-between; gap: 3.5rem; padding-block: 3.5rem; }
.home-contact__items { display: flex; flex-wrap: wrap; gap: 3.5rem; }
.home-contact__item { display: flex; flex-direction: column; gap: .375rem; }
.home-contact__label { font-size: var(--fs-eyebrow); font-weight: 700; letter-spacing: var(--ls-eyebrow); text-transform: uppercase; color: var(--text-muted); }
.home-contact__value { font-size: 1.1875rem; font-weight: 500; color: var(--accent); text-decoration: none; }
.home-contact__value:hover { color: var(--accent-strong); text-decoration: underline; }
.home-contact__value--plain { font-style: normal; color: var(--text); }
/* Belgeler ve Başarılar bölümü — patterns/belgeler-ve-basarilar.php bu sınıfları taşır.
   Sınıflar çift seçicili yazıldı: bölüm `.prose` içinde akıyor ve §4'teki
   `:is(.prose, …) p / h3` kuralları tek sınıflı bir seçiciden daha özgül.
   Bölüm başlığı `.credentials__title` numaralanmıyor: sınıfı `__title` ile
   bittiği için §4'teki numaralandırma seçicisinin `:not()` süzgecine takılıyor.
   Serif görünümü buradan geliyor — `.prose h2` artık bölüm başlığı görünümünü
   taşıdığından tipografiyi bileşenin kendisi yazmak zorunda. */
.credentials { margin-top: 5rem; border-top: var(--bw-2) solid var(--text); padding-top: var(--sp-4); }
.credentials > * { margin-block: 0; }
.credentials .credentials__title { display: flex; align-items: baseline; gap: var(--sp-3); margin: 0 0 .75rem; font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-h2); line-height: var(--lh-h2); letter-spacing: var(--ls-h2); color: var(--text); }
.credentials .credentials__title::after { content: ""; flex: 1 1 auto; height: 1px; background: var(--border); }
.credentials .credentials__lede { margin: 0 0 2.25rem; }
.credentials__list { display: grid; gap: var(--sp-4); }
.credentials__list > * { margin-block: 0; }
.credential--plain { grid-template-columns: 1fr; }
.credential__visual > * { margin-block: 0; }
.credential__body > * { margin-block: 0; }
.credential__meta { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.credential__meta > * { margin-block: 0; }
.credential__body .tag--solid { color: #fff; }
.credential__body .tag--soft { color: var(--accent-strong); }
.credential__body .credential__source { font-size: .8125rem; color: var(--text-muted); }
.credential__body .credential__title { margin: 0; font-family: var(--font-sans); font-weight: 700; font-size: var(--fs-h3); line-height: var(--lh-h3); color: var(--text); }
.credential__body .credential__text { margin: 0; }
.credential__body .credential__cta { margin: 0; font-weight: 700; }
.credential__facts { margin-top: var(--sp-2); }
.credential__body .credential__label { margin: 0 0 var(--sp-1); font-size: var(--fs-eyebrow); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); }
.credential__body .credential__value { margin: 0; color: var(--text); }
.credential__body .credential__value--mono { font-family: var(--font-mono); }

/* Altıncı madde (#15 Ürünlerimiz) menüyü 1070px altında iki satıra kırıyordu.
   Mobil menü hâlâ 960px'te devreye giriyor — `.nav[data-open]` tam ekran
   katmanının `inset: 68px` değeri oradaki `.header-main` yüksekliğine bağlı,
   kırılmayı yukarı taşımak onu bozardı. Aradaki bant sıkıştırmayla kapanıyor. */
@media (max-width: 1080px) and (min-width: 961px) {
  .nav { gap: .625rem; }
  .nav a { font-size: .8125rem; }
  .header-actions .btn { font-size: .875rem; padding: .6875rem .875rem; }
}

/* 6 ————————————————————————————————————————————————— DUYARLI
   Tek büyük kırılma 960px, ince ayar 640px. */
@media (max-width: 960px) {
  :root { --header-h: 68px; --topbar-h: 0px; }
  .nav { display: none; }
  .nav[data-open="true"] { display: flex; flex-direction: column; position: fixed; inset: 68px 0 0; background: var(--bg); padding: var(--sp-2) var(--pad-page) 0; gap: 0; overflow-y: auto; z-index: 30; }
  .nav[data-open="true"] a { font-size: 1.25rem; padding-block: 1.125rem; border-bottom: var(--bw-1) solid var(--border); border-top: 0; }
  .nav[data-open="true"] > a:last-child { border-bottom: 0; }
  .nav-toggle { display: flex; align-items: center; justify-content: center; }
  .header-topbar { display: none; }
  .header-main { padding-block: .75rem; }        /* 68px yukseklik: .nav[data-open] inset'i buna dayali */
  .header-actions .btn { font-size: .875rem; padding: .6875rem .875rem; }
  .brand { gap: 1px; }
  .brand__name { font-size: 1.375rem; }
  .brand__tagline { font-size: .5rem; letter-spacing: .14em; }
  .page-body { grid-template-columns: 1fr; gap: var(--sp-4); }
  .page-body > :is(.toc, .prose) { grid-column: auto; grid-row: auto; }
  .toc { position: static; border: var(--bw-1) solid var(--border); border-radius: var(--r-2); padding: 0; background: var(--bg); }
  .toc summary { padding: .875rem 1.25rem; font-size: var(--fs-small); color: var(--accent); }
  .toc summary::after { content: "\25BE"; }
  .toc__list { padding: 0 1.25rem .875rem; gap: .625rem; }
  .footer-cols { grid-template-columns: 1fr; gap: var(--sp-4); }
  .product--hero .product__body, .product--split .product__body { grid-template-columns: 1fr; gap: var(--sp-4); }
  .product--split.is-reversed figure { order: 0; }
  .credential { grid-template-columns: 1fr; }
  .credential__visual { border-right: 0; border-bottom: var(--bw-1) solid var(--border); }
  .social-strip ul { grid-template-columns: 1fr; }
  /* `:not()` burada da şart: masaüstü kuralı (0,2,1) özgüllüğünde, çıplak `h2`
     (0,1,1) onu ezemez ve oluk 960px altında açık kalır. */
  :is(.prose, .editor-styles-wrapper) h2:not([class*="__title"]),
  :is(.prose, .editor-styles-wrapper) h2 ~ :is(p, ul, ol) { padding-left: 0; margin-left: 0; }
  :is(.prose, .editor-styles-wrapper) h2:not([class*="__title"])::before { position: static; display: block; margin-bottom: .375rem; }
  .error-404__radar { display: none; }
  .error-404__inner { padding-block: var(--sp-5) var(--sp-6); }
  .search-form { flex-wrap: wrap; }

  /* Ana sayfa (#12) — mobil ölçüler tasarımın 10. bölümünden */
  .home-hero__radar { right: -110px; top: auto; bottom: -110px; width: 300px; height: 300px; opacity: .4; }
  .home-hero__inner { padding-block: 2.25rem 2.5rem; gap: var(--sp-3); }
  .home-hero__actions { flex-direction: column; align-self: stretch; gap: .625rem; }
  .home-hero__actions .btn,
  .home-hero__actions .wp-block-button__link { text-align: center; }
  /* Buton bloğunda esnek öğe sarmalayıcı; genişliği o taşıyor. */
  .home-hero__actions .wp-block-button { width: 100%; }
  .home-section { padding-block: 2.25rem; }
  .home-section__head { margin-bottom: var(--sp-4); }
  .home-topics { grid-template-columns: 1fr; gap: var(--sp-4); }
  .home-topic__icon { width: 30px; height: 30px; }
  .home-topic h3 { font-size: 1.125rem; }
  .home-cards { grid-template-columns: 1fr; gap: .875rem; }
  .home-card { padding: 1.25rem; gap: .625rem; }
  .home-card p { font-size: .9375rem; line-height: 1.6; }
  .home-partner { grid-template-columns: 1fr; gap: var(--sp-1); padding-block: 1rem; }
  .home-partner::before { content: none; }
  .home-partner__name { font-size: 1.1875rem; }
  .home-featured__inner,
  .home-contact__inner { flex-direction: column; align-items: flex-start; gap: var(--sp-4); padding-block: 2.25rem; }
  .home-contact__items { flex-direction: column; gap: 1.25rem; }
  .home-contact__inner > .btn { align-self: stretch; text-align: center; }
  .home-contact__value { font-size: 1.0625rem; }
}
@media (max-width: 640px) {
  :root { --pad-page: 1.25rem; }
  .footer-brand { gap: .625rem; }
  .footer-brand__name { font-size: 1.3125rem; }
  .footer-brand__text { font-size: .875rem; }
  .footer-col { gap: .625rem; }
  .footer-col__address { font-size: .875rem; }
  .footer-legal { font-size: .75rem; line-height: 1.5; padding-block: 1rem; }
  .form-grid { grid-template-columns: 1fr; }
}

/* 7 ————————————————————————————————————————————————— İLETİŞİM (#13)
   Tasarım bölüm 07. Alan/hata/başarı ilkelleri (.field, .field-msg,
   .form-alert, .form-success) §5'te; burada yalnızca sayfanın düzeni ve
   ilkellerin bu sayfaya özgü parçaları var.

   Kurallar mobil öncelikli yazıldı: §6'daki 640px bloğu bu satırlardan önce
   geldiği için, iki kolonlu hâller kendi `min-width` sorgularında duruyor —
   aksi hâlde dar ekranda tek kolona inen kuralı ezerlerdi. */
.contact-layout { display: grid; grid-template-columns: 1fr; gap: var(--sp-5); padding-block: var(--sp-5) 3.5rem; align-items: start; }
.contact-aside { display: grid; gap: var(--sp-4); align-content: start; }
.contact-main { display: grid; gap: var(--sp-4); }
.contact-intro { max-width: none; }

.contact-form { display: grid; gap: 1.25rem; }
.contact-form__title { margin: 0; font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-h2); line-height: var(--lh-h2); letter-spacing: var(--ls-h2); }
.form-grid { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }

.field__req { color: var(--err); }
.field__optional { color: var(--text-muted); font-weight: 400; }

/* KVKK onayı: 24px kutu + metin — SC 2.5.8'in 24x24 hedef alanı. Kutu `.field`in
   ızgara hücresi olduğu için §5'teki `.field :is(input…)` dolgusu geçersiz. */
.field--consent { grid-template-columns: 1.5rem 1fr; column-gap: .75rem; row-gap: .375rem; align-items: start; }
.field--consent input { width: 1.5rem; height: 1.5rem; padding: 0; margin: 0; accent-color: var(--accent); }
.field--consent > label { grid-column: 2; font-size: var(--fs-small); font-weight: 400; line-height: 1.6; color: var(--text-soft); }
.field--consent > .field-msg { grid-column: 2; }

.form-actions { display: flex; align-items: center; gap: 1.25rem; flex-wrap: wrap; padding-top: var(--sp-1); }
.form-note { margin: 0; font-size: .8125rem; line-height: 1.6; color: var(--text-muted); }
.form-note--how { max-width: 46rem; }

.contact-form .form-alert { display: flex; align-items: flex-start; gap: .625rem; color: #7d2817; }
.form-alert__icon { flex: none; margin-top: .125rem; color: var(--err); }
.form-alert__text { margin: 0; font-size: .9375rem; line-height: 1.55; }

.contact-form .form-success { display: grid; justify-items: start; gap: .75rem; }
.form-success__badge { width: 2.5rem; height: 2.5rem; border-radius: var(--r-3); background: var(--ok); color: #fff; display: grid; place-items: center; }
.form-success__title { margin: 0; font-family: var(--font-sans); font-size: 1.25rem; font-weight: 700; }
.form-success__text { margin: 0; font-size: .9375rem; line-height: 1.65; color: var(--text-soft); }

/* Sağ kolon — form çalışmadığı sürece sayfayı ayakta tutan bilgi. */
.contact-card { border: var(--bw-1) solid var(--border); border-radius: var(--r-2); padding: 1.75rem; display: grid; gap: 1.375rem; }
.contact-card__row { display: grid; gap: .3125rem; }
.contact-card__rule { height: 1px; background: var(--border); }
.contact-card__label { font-size: var(--fs-eyebrow); font-weight: 700; letter-spacing: var(--ls-eyebrow); text-transform: uppercase; color: var(--text-muted); }
.contact-card__value { font-size: 1.1875rem; font-weight: 500; color: var(--accent); text-decoration: none; }
a.contact-card__value:hover { color: var(--accent-strong); text-decoration: underline; }
.contact-card__value--plain { font-style: normal; font-size: 1.0625rem; font-weight: 400; line-height: 1.6; color: var(--text); }

/* Harita gömme yok (#13): şematik kroki tema içinde duran SVG. */
.contact-map { margin: 0; border: var(--bw-1) solid var(--border); border-radius: var(--r-2); overflow: hidden; }
.contact-map svg { width: 100%; height: auto; background: var(--surface); }
.contact-map figcaption { border-top: var(--bw-1) solid var(--border); padding: .875rem 1.125rem; font-size: var(--fs-small); color: var(--text-muted); display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.contact-map__link { font-weight: 700; color: var(--accent); text-decoration: none; }
.contact-map__link:hover { color: var(--accent-strong); text-decoration: underline; }

@media (min-width: 641px) {
  .form-grid { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 961px) {
  .contact-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 380px); gap: var(--sp-6); padding-block: 3.5rem 5.5rem; }
  /* DOM'da bilgi kartı önce: form çalışmadığı sürece e-posta ve telefon dar
     ekranda ilk sırada olmalı. Masaüstünde sıra görsel olarak tersine dönüyor. */
  .contact-main { gap: var(--sp-5); order: 1; }
  .contact-aside { order: 2; }
}

/* ——— Ürünlerimiz (#15). Ölçüler tasarımın 12. bölümünden.
   §5'teki `.product`, `.specs`, `.tag` iskeleti #8'den geliyor; buradakiler o
   iskeletin içini dolduran tipografi ve iki ek hâl: künyesiz `.product--hero`
   ile görselsiz `.product--plain`. Dosya sonuna ekleniyor, üsttekiler değişmedi. */
.products { padding-top: 3.5rem; }
/* §5'teki `.product` her karta 4.5rem üst boşluk veriyor; ilkinin boşluğunu
   kabın kendi padding'i taşıyor. */
.products > .product:first-of-type { margin-top: 0; }
/* Giriş metni artık ürün kabının içinde değil, gövdedeki ayrı bir bölüm
   (`rfmira/urunler-giris`): üst boşluğu kendi taşıyor, listeyle arasındaki
   boşluğu da liste kabı. Metin yokken `.products` eski üst boşluğunu koruyor. */
.products__intro { padding-top: 3.5rem; }
.products__intro + .products { padding-top: var(--sp-5); }
.product__source { font-size: .8125rem; color: var(--text-muted); }
.product__text { font-size: var(--fs-body); line-height: var(--lh-body); }
.product__lead { margin: 0 0 1.25rem; color: var(--text-soft); }
.product__points { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .875rem; }
/* Izgara değil konumlandırma: `li` gövdesi `<strong>` + çıplak metin düğümü
   taşıyor, ızgarada metin ikinci satırın 1.25rem'lik kolonuna düşüp kelime
   kelime kırılıyordu. */
.product__points li { position: relative; padding-left: 1.25rem; }
/* Tasarımın çizgi işareti: 8px'lik yatay hairline, ilk satırın ortasına oturur */
.product__points li::before { content: ""; position: absolute; left: 0; top: .75rem; width: 8px; height: 1px; background: var(--accent); }
.product__points strong { font-weight: 700; color: var(--accent-strong); }

.product__figure { margin: 0; }
.product--hero > .product__figure { margin-bottom: 2rem; }
.product__figure img { width: 100%; height: auto; display: block; border: var(--bw-1) solid var(--border); border-radius: var(--r-2); background: var(--surface); }
.product__figure figcaption { margin-top: .625rem; padding-left: .75rem; border-left: var(--bw-2) solid var(--border); font-size: var(--fs-small); line-height: 1.6; color: var(--text-muted); }
/* Temsilî görselin altyazısı bir uyarı, açıklama değil — gövdeden ayrılıyor. */
.product__figure--placeholder figcaption { border-left-color: var(--err); color: var(--err); }

/* Görseli olmayan `--split` iki boş yarım kolon demek; metin tek kolona çekiliyor */
.product--plain .product__body { max-width: var(--w-prose); }

.product__aside { display: grid; gap: var(--sp-4); align-content: start; }
.product__ask .btn { display: block; text-align: center; }
.specs__value--mono { font-family: var(--font-mono); }
/* Yalnızca oturum açmış yetkiliye basılır: künye değerleri yazılı teyit bekliyor.
   Ziyaretçi bu kutuyu hiç görmez — bkz. page-urunlerimiz.php */
.specs-pending { margin: 0; border: var(--bw-1) dashed var(--err); border-radius: var(--r-2); background: #fdf6f4; padding: var(--sp-3); font-size: var(--fs-small); line-height: 1.6; color: #7d2817; }

/* İletişim şeridi ana sayfanınkiyle aynı bileşen; iç sayfada üstündeki
   boşluğu kendi taşıyor. */
.home-featured--page { margin-top: 5rem; }

/* Faaliyet alanları dört karta çıktı (#2 kararı: Ürünlerimiz kartı geri geldi).
   1200px'lik kapta dört kolon 262px'e düşüyor, 1120px altında ikişerli. */
.home-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); }

@media (max-width: 1120px) {
  .home-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
  .home-cards { grid-template-columns: 1fr; }
  .products,
  .products__intro { padding-top: var(--sp-4); }
  .product--hero > .product__figure { margin-bottom: var(--sp-4); }
  .home-featured--page { margin-top: 2.5rem; }
}

/* LinkedIn kartının isteğe bağlı görseli (#16): kart kabı flex sütun olduğu için
   görsel kendi oranı olmadan içeriğe göre uzuyor; sabit oran üç kartı aynı
   yükseklikte tutuyor. */
.home-social__thumb { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--r-1); }
