/* =====================================================================
   teknikbul teması — "Teknik Sicil" kabuğu
   ---------------------------------------------------------------------
   KAPSAM: header, footer, sayfa iskeleti, çekirdek blok düzeltmeleri.
   Dizin sayfalarının içeriği (liste/detay) plugin'in `.tb-root`'una aittir
   ve BU DOSYA ORAYA KARIŞMAZ. Tema sınıfları `tbt-` öneklidir; plugin `tb-`.

   @layer KULLANILMAZ. WP core `global-styles`'ı unlayered yayıyor; unlayered
   CSS özgüllükten bağımsız olarak TÜM layer'ları yener. Katmana girmek
   izolasyonu sağlamaz, kaybettirir.

   YÜKLEME SIRASI: bu dosya `tb-app`'e bağımlıdır (functions.php, öncelik 20),
   yani plugin'den SONRA gelir. Bu yüzden burada `.tb-` ile başlayan hiçbir
   seçici yazılmaz — yazılsa plugin'i sessizce ezerdi.

   RENK KİLİDİ (ölçülmüş oranlar):
     #003366 + beyaz = 12.61:1   birincil buton, odak halkası
     #FF6600 + beyaz =  2.94:1   YASAK — 3:1 UI eşiğini bile geçmiyor
     #C75000 + beyaz =  4.59:1   turuncu dolgu gerekirse
     #FF9A4D + navy  =  5.99:1   koyu zeminde turuncu / odak halkası
     #E6EEF5 + navy  = 10.76:1   koyu zeminde ikincil metin
   TURUNCU = SİNYAL: yalnızca seçili durum, odak (koyu zemin), alıntı çubuğu.
   Asla geniş dolgu, asla dekoratif gradient, asla turuncu üstünde beyaz metin.
   ===================================================================== */

/* ---------------------------------------------------------------------
   1) TOKEN'LAR
   Plugin token'ları `.tb-root` içine kapalıdır (DESIGN §9.5). Tema kendi
   kopyasını `:root`'ta tutar — DEĞERLER BİREBİR AYNIDIR, ikisi ayrışırsa
   header ile liste sayfası birbirinden kayar.
   ------------------------------------------------------------------ */
:root {
	/* marka */
	--tbt-navy:        #003366;
	--tbt-navy-700:    #002B57;
	--tbt-navy-300:    #33628F;
	--tbt-navy-50:     #E6EEF5;
	--tbt-orange:      #FF6600;
	--tbt-orange-ink:  #C75000;
	--tbt-orange-dark: #FF9A4D;

	/* nötrler */
	--tbt-ink:         #0F172A;
	--tbt-ink-2:       #334155;
	--tbt-ink-3:       #5A6B7C;
	--tbt-ink-muted:   #8A96A3;
	--tbt-border:      #CBD3DB;
	--tbt-border-soft: #E2E8F0;
	--tbt-surface:     #FFFFFF;
	--tbt-surface-2:   #F7F9FB;

	/* koyu zeminde kenar — navy üstünde beyaz saydamlık */
	--tbt-rule-dark:   rgba(255, 255, 255, .16);

	/* tipografi */
	--tbt-font:      "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--tbt-font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	--tbt-fs-xs:     0.8125rem;
	--tbt-fs-sm:     0.9375rem;
	--tbt-fs-base:   1rem;

	/* boşluk — 4px ölçek */
	--tbt-s-1: 4px;   --tbt-s-2: 8px;   --tbt-s-3: 12px;  --tbt-s-4: 16px;
	--tbt-s-5: 20px;  --tbt-s-6: 24px;  --tbt-s-8: 32px;  --tbt-s-10: 40px;
	--tbt-s-12: 48px; --tbt-s-16: 64px; --tbt-s-20: 80px;

	--tbt-gutter:    clamp(1rem, 0.792rem + 0.926vw, 1.625rem);
	--tbt-section-y: clamp(3.5rem, 2.667rem + 3.704vw, 6rem);
	--tbt-container: 1200px;
	--tbt-measure:   68ch;

	/* kenar / radius */
	--tbt-bw: 1px;
	--tbt-ln:  1px solid var(--tbt-border);
	--tbt-ln2: 1px solid var(--tbt-border-soft);
	--tbt-r-sm: 6px;  --tbt-r: 8px;  --tbt-r-lg: 12px;  --tbt-r-pill: 9999px;

	/* motion */
	--tbt-ease:     cubic-bezier(.44, 0, .56, 1);
	--tbt-ease-out: cubic-bezier(.16, 1, .30, 1);
	--tbt-t-fast:   120ms;
	--tbt-t-base:   200ms;
	--tbt-t-morph:  450ms;
	--tbt-t-slide:  550ms;
	--tbt-t-reveal: 600ms;

	/* ÖLÇÜ KİLİDİ — plugin'in --tb-header-h'i ile AYNI OLMAK ZORUNDA.
	   Liste sayfasının filtre barı `top: var(--tb-header-h)` ile yapışır;
	   burası büyürse filtre barı sabit başlığın ALTINA kayar. */
	--tbt-header-h: 56px;
	--tbt-pill-h:   44px;
	--tbt-pill-px:  var(--tbt-s-3);
	--tbt-logo-h:   26px;
	--tbt-z-header: 40;
}

@media (min-width: 1024px) {
	:root {
		--tbt-header-h: 72px;
		--tbt-pill-h:   56px;
		--tbt-pill-px:  var(--tbt-s-5);
		--tbt-logo-h:   30px;
	}
}

/* ---------------------------------------------------------------------
   2) TABAN
   ------------------------------------------------------------------ */
html {
	-webkit-text-size-adjust: 100%;
	scroll-padding-top: calc(var(--tbt-header-h) + var(--tbt-s-4));
}

/* `overflow` BURAYA YAZILMAZ: liste sayfasının filtre barı `position:sticky`
   kullanıyor; gövdede bir taşma bağlamı açmak onu sessizce ölü kılar. */
body.tbt {
	font-family: var(--tbt-font);
	color: var(--tbt-ink);
	background: var(--tbt-surface);
}

/* Odak halkası ASLA kaldırılmaz. Değerler plugin ile BİREBİR aynıdır —
   aynı sayfada iki farklı odak dili olmaz. */
.tbt :focus-visible {
	outline: 3px solid var(--tbt-navy);
	outline-offset: 2px;
}
.tbt-on-dark :focus-visible {
	outline-color: var(--tbt-orange-dark);
}

/* Form kontrolleri 16px — iOS Safari daha küçüğünde odakta sayfayı
   otomatik yakınlaştırır ve yapışkan başlık altında layout kayar. */
.tbt input,
.tbt select,
.tbt textarea {
	font-size: var(--tbt-fs-base);
}

/* Çekirdeğin `:where(.wp-site-blocks) > *` margin'i (0,0,0) kabuğu aşağı
   iter. Kendi çocuklarımızda sıfırlarız — özgüllükle, !important'sız. */
.wp-site-blocks > .tbt-header-area,
.wp-site-blocks > .tbt-main,
.wp-site-blocks > .tbt-footer,
.wp-site-blocks > .tb-root,
.wp-site-blocks > .wp-block-template-part {
	margin-block-start: 0;
	margin-block-end: 0;
}

.tbt-main {
	display: block;
	min-height: 40vh;
}

/* ---------------------------------------------------------------------
   3) ATLAMA BAĞLANTISI
   ------------------------------------------------------------------ */
.tbt-skip {
	position: absolute;
	top: var(--tbt-s-2);
	left: var(--tbt-s-2);
	z-index: 2;
	padding: var(--tbt-s-3) var(--tbt-s-4);
	background: var(--tbt-navy);
	color: #FFF;
	border-radius: var(--tbt-r);
	font-size: var(--tbt-fs-sm);
	font-weight: 600;
	text-decoration: none;
	transform: translateY(-200%);
	transition: transform var(--tbt-t-base) var(--tbt-ease);
}
.tbt-skip:focus-visible {
	transform: translateY(0);
}

/* =====================================================================
   4) HEADER — navy tintli cam hap
   ---------------------------------------------------------------------
   Mekanik: sayfa üstünde şeffaf, yalnızca logo. Scroll (>4px) VEYA şerit
   üzerine hover VEYA klavye odağı → hap maddeleşir, menü SAĞDAN içeri kayar.

   `.tbt-shell` SABİT (fixed) konumludur; cam efektinin bulanıklaştıracak
   bir arka planı olması için içerik ONUN ALTINDAN akmak zorundadır. Akışta
   yer `.tbt-header-area` yüksekliğiyle ayrılır — böylece sayfa başında
   içerik başlığın altında kalmaz.

   Etkinleşme üç yoldan olur ve JS SADECE scroll'u ekler:
     .is-active   → JS (scroll + hover grace)
     :hover       → saf CSS
     :focus-within→ saf CSS (klavye)
   JS hiç çalışmazsa menü hover/odakla YİNE açılır; `scripting: none`
   ortamında da kalıcı olarak açık gelir. Menü asla erişilemez kalmaz.
   ================================================================== */
.tbt-header-area {
	height: var(--tbt-header-h);
}

.tbt-shell {
	position: fixed;
	inset: 0 0 auto 0;
	z-index: var(--tbt-z-header);
	display: flex;
	align-items: center;
	justify-content: center;
	height: var(--tbt-header-h);
	padding-inline: var(--tbt-s-3);
	box-sizing: border-box;
}

.tbt-pill {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: center;
	gap: clamp(.5rem, 1.6vw, 1rem);
	box-sizing: border-box;
	width: 100%;
	max-width: var(--tbt-container);
	height: var(--tbt-pill-h);
	padding-inline: var(--tbt-pill-px);
	border: 1px solid transparent;
	border-radius: var(--tbt-r-pill);
	background: transparent;
	box-shadow: 0 0 0 rgba(0, 51, 102, 0);
	backdrop-filter: blur(0px);
	-webkit-backdrop-filter: blur(0px);
	transition:
		max-width var(--tbt-t-slide) var(--tbt-ease),
		padding var(--tbt-t-morph) var(--tbt-ease),
		background var(--tbt-t-morph) var(--tbt-ease),
		border-color var(--tbt-t-morph) var(--tbt-ease),
		box-shadow var(--tbt-t-morph) var(--tbt-ease),
		backdrop-filter var(--tbt-t-morph) var(--tbt-ease);
}

/* cam katmanı 1 — üst kenar parlaması (rim light) */
.tbt-pill::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
	pointer-events: none;
	background: linear-gradient(
		180deg,
		rgba(255, 255, 255, .60) 0%,
		rgba(255, 255, 255, .18) 26%,
		rgba(255, 255, 255, 0) 56%,
		rgba(230, 238, 245, .10) 100%
	);
	opacity: 0;
	mix-blend-mode: overlay;
	transition: opacity var(--tbt-t-morph) var(--tbt-ease);
}

/* cam katmanı 2 — kenar kırılması + NAVY tintli halo (beyaz cam jeneriktir) */
.tbt-pill::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	border-radius: inherit;
	pointer-events: none;
	background:
		radial-gradient(120% 100% at 50% -10%, rgba(255, 255, 255, .30), transparent 55%),
		radial-gradient(120% 100% at 50% 110%, rgba(0, 51, 102, .12), transparent 60%);
	opacity: 0;
	mix-blend-mode: soft-light;
	transition: opacity var(--tbt-t-morph) var(--tbt-ease);
}

.tbt-pill > * {
	position: relative;
	z-index: 3;
}

/* --- marka --- */
.tbt-brand {
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
	margin-right: auto;
	text-decoration: none;
}
.tbt-brand__img {
	display: block;
	width: auto;
	height: var(--tbt-logo-h);
	transition: height var(--tbt-t-morph) var(--tbt-ease);
}

/* --- menü: kapalıyken sağa toplanmış ve görünmez --- */
.tbt-nav {
	position: relative;
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	justify-content: flex-end;
}
.tbt-nav__list {
	display: flex;
	align-items: center;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
	opacity: 0;
	transform: translateX(24px);
	pointer-events: none;
	transition:
		opacity var(--tbt-t-morph) var(--tbt-ease),
		transform var(--tbt-t-slide) var(--tbt-ease);
}
.tbt-nav__list li {
	opacity: 0;
	transform: translateX(20px);
	transition:
		opacity var(--tbt-t-slide) var(--tbt-ease),
		transform var(--tbt-t-slide) var(--tbt-ease);
	transition-delay: 0ms;
}
.tbt-nav__list a {
	position: relative;
	display: inline-block;
	padding: var(--tbt-s-2) var(--tbt-s-3);
	border-radius: var(--tbt-r-pill);
	color: var(--tbt-ink-2);
	font-size: var(--tbt-fs-sm);
	font-weight: 500;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
	transition:
		color var(--tbt-t-base) var(--tbt-ease),
		background-color var(--tbt-t-base) var(--tbt-ease);
}
.tbt-nav__list a:hover {
	color: var(--tbt-navy);
	background: rgba(0, 51, 102, .06);
}

/* SEÇİLİ DURUM = turuncunun izinli olduğu üç yerden biri.
   Metinsiz aksan (altçizgi) olduğu için kontrast eşiğine takılmaz. */
.tbt-nav__list a[aria-current="page"] {
	color: var(--tbt-navy);
}
.tbt-nav__list a[aria-current="page"]::after {
	content: "";
	position: absolute;
	right: var(--tbt-s-3);
	bottom: 3px;
	left: var(--tbt-s-3);
	height: 2px;
	background: var(--tbt-orange);
	border-radius: 2px;
}

/* --- CTA --- */
.tbt-cta {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	gap: var(--tbt-s-2);
	height: calc(var(--tbt-pill-h) - 12px);
	padding-inline: var(--tbt-s-4);
	background: var(--tbt-navy);
	border: 1px solid var(--tbt-navy);
	border-radius: var(--tbt-r-pill);
	color: #FFF;
	font-size: var(--tbt-fs-xs);
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	white-space: nowrap;
	opacity: 0;
	transform: translateX(16px) scale(.96);
	pointer-events: none;
	transition:
		opacity var(--tbt-t-morph) var(--tbt-ease),
		transform var(--tbt-t-slide) var(--tbt-ease),
		background-color var(--tbt-t-base) var(--tbt-ease);
	transition-delay: 0ms;
}
.tbt-cta:hover {
	background: var(--tbt-navy-700);
	border-color: var(--tbt-navy-700);
	color: #FFF;
}
.tbt-cta__arrow {
	transition: transform var(--tbt-t-base) var(--tbt-ease);
}
.tbt-cta:hover .tbt-cta__arrow {
	transform: translateX(3px);
}

/* --- hamburger --- */
.tbt-burger {
	display: none;
	position: relative;
	flex: 0 0 auto;
	width: var(--tbt-s-10);
	height: var(--tbt-s-10);
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: var(--tbt-r);
	cursor: pointer;
}
.tbt-burger span {
	position: absolute;
	left: 50%;
	display: block;
	width: 18px;
	height: 2px;
	background: var(--tbt-navy);
	border-radius: 2px;
	transform: translateX(-50%);
	transition:
		top var(--tbt-t-base) var(--tbt-ease),
		transform var(--tbt-t-base) var(--tbt-ease),
		opacity var(--tbt-t-fast) linear;
}
.tbt-burger span:nth-child(1) { top: 13px; }
.tbt-burger span:nth-child(2) { top: 19px; }
.tbt-burger span:nth-child(3) { top: 25px; }
.tbt-burger[aria-expanded="true"] span:nth-child(1) { top: 19px; transform: translateX(-50%) rotate(45deg); }
.tbt-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.tbt-burger[aria-expanded="true"] span:nth-child(3) { top: 19px; transform: translateX(-50%) rotate(-45deg); }

/* --- ETKİN DURUM (üç tetikleyici tek kural bloğunda) --- */
.tbt-shell.is-active .tbt-pill,
.tbt-shell:hover .tbt-pill,
.tbt-shell:focus-within .tbt-pill {
	max-width: 1080px;
	background: linear-gradient(180deg, rgba(255, 255, 255, .82) 0%, rgba(230, 238, 245, .62) 100%);
	border-color: rgba(0, 51, 102, .14);
	backdrop-filter: blur(30px) saturate(220%) brightness(1.08);
	-webkit-backdrop-filter: blur(30px) saturate(220%) brightness(1.08);
	box-shadow:
		0 1px 0 rgba(255, 255, 255, .92) inset,
		0 -1px 0 rgba(0, 51, 102, .06) inset,
		1px 0 0 rgba(255, 255, 255, .45) inset,
		-1px 0 0 rgba(255, 255, 255, .45) inset,
		0 16px 44px -12px rgba(0, 51, 102, .18),
		0 4px 14px -4px rgba(0, 51, 102, .08),
		0 8px 28px -10px rgba(0, 51, 102, .22);
}

.tbt-shell.is-active .tbt-pill::before,
.tbt-shell:hover .tbt-pill::before,
.tbt-shell:focus-within .tbt-pill::before,
.tbt-shell.is-active .tbt-pill::after,
.tbt-shell:hover .tbt-pill::after,
.tbt-shell:focus-within .tbt-pill::after {
	opacity: 1;
}

.tbt-shell.is-active .tbt-brand__img,
.tbt-shell:hover .tbt-brand__img,
.tbt-shell:focus-within .tbt-brand__img {
	height: calc(var(--tbt-logo-h) - 2px);
}

.tbt-shell.is-active .tbt-nav__list,
.tbt-shell:hover .tbt-nav__list,
.tbt-shell:focus-within .tbt-nav__list {
	opacity: 1;
	transform: translateX(0);
	pointer-events: auto;
}
.tbt-shell.is-active .tbt-nav__list li,
.tbt-shell:hover .tbt-nav__list li,
.tbt-shell:focus-within .tbt-nav__list li {
	opacity: 1;
	transform: translateX(0);
}

/* Kademe SAĞDAN SOLA: en sağdaki öğe ÖNCE yerine oturur; menü dışarıdan
   içeri akıyormuş gibi okunur. CTA en son (320ms) gelir. */
.tbt-shell.is-active .tbt-nav__list li:nth-child(1),
.tbt-shell:hover .tbt-nav__list li:nth-child(1),
.tbt-shell:focus-within .tbt-nav__list li:nth-child(1) { transition-delay: 280ms; }
.tbt-shell.is-active .tbt-nav__list li:nth-child(2),
.tbt-shell:hover .tbt-nav__list li:nth-child(2),
.tbt-shell:focus-within .tbt-nav__list li:nth-child(2) { transition-delay: 240ms; }
.tbt-shell.is-active .tbt-nav__list li:nth-child(3),
.tbt-shell:hover .tbt-nav__list li:nth-child(3),
.tbt-shell:focus-within .tbt-nav__list li:nth-child(3) { transition-delay: 200ms; }
.tbt-shell.is-active .tbt-nav__list li:nth-child(4),
.tbt-shell:hover .tbt-nav__list li:nth-child(4),
.tbt-shell:focus-within .tbt-nav__list li:nth-child(4) { transition-delay: 160ms; }
.tbt-shell.is-active .tbt-nav__list li:nth-child(5),
.tbt-shell:hover .tbt-nav__list li:nth-child(5),
.tbt-shell:focus-within .tbt-nav__list li:nth-child(5) { transition-delay: 120ms; }

.tbt-shell.is-active .tbt-cta,
.tbt-shell:hover .tbt-cta,
.tbt-shell:focus-within .tbt-cta {
	opacity: 1;
	transform: translateX(0) scale(1);
	pointer-events: auto;
	transition-delay: 320ms;
}

/* --- MOBİL PANEL — `hidden` niteliği TEK doğruluk kaynağıdır --- */
.tbt-panel[hidden] { display: none; }
.tbt-panel {
	position: absolute;
	top: calc(100% - 6px);
	right: var(--tbt-s-3);
	left: var(--tbt-s-3);
	display: flex;
	flex-direction: column;
	gap: var(--tbt-s-1);
	max-height: calc(100vh - var(--tbt-header-h) - var(--tbt-s-6));
	padding: var(--tbt-s-3);
	overflow-y: auto;
	background: linear-gradient(180deg, rgba(255, 255, 255, .90) 0%, rgba(230, 238, 245, .78) 100%);
	border: 1px solid rgba(0, 51, 102, .14);
	border-radius: var(--tbt-r-lg);
	backdrop-filter: blur(30px) saturate(220%) brightness(1.08);
	-webkit-backdrop-filter: blur(30px) saturate(220%) brightness(1.08);
	box-shadow:
		0 1px 0 rgba(255, 255, 255, .92) inset,
		0 18px 40px -12px rgba(0, 51, 102, .20),
		0 4px 14px -4px rgba(0, 51, 102, .08);
	animation: tbt-panel-in 220ms var(--tbt-ease-out);
}
@keyframes tbt-panel-in {
	from { opacity: 0; transform: translateY(-8px); }
	to   { opacity: 1; transform: translateY(0); }
}
.tbt-panel__list {
	margin: 0;
	padding: 0;
	list-style: none;
}
.tbt-panel__link,
.tbt-panel__cta {
	display: flex;
	align-items: center;
	min-height: var(--tbt-s-12);
	padding-inline: var(--tbt-s-4);
	border-radius: var(--tbt-r);
	color: var(--tbt-ink);
	font-size: var(--tbt-fs-base);
	font-weight: 500;
	text-decoration: none;
}
.tbt-panel__link:hover { background: rgba(0, 51, 102, .06); }
.tbt-panel__link[aria-current="page"] {
	color: var(--tbt-navy);
	box-shadow: inset 3px 0 0 var(--tbt-orange);
}
.tbt-panel__cta {
	justify-content: center;
	margin-top: var(--tbt-s-2);
	background: var(--tbt-navy);
	color: #FFF;
	font-weight: 600;
}
.tbt-panel__cta:hover { background: var(--tbt-navy-700); color: #FFF; }

/* --- kırılım: 900px altında menü hamburgere düşer --- */
@media (max-width: 899px) {
	.tbt-nav,
	.tbt-cta { display: none; }
	.tbt-burger { display: block; }

	/* Mobilde hap her zaman maddedir: dokunmatikte hover yoktur, şeffaf bir
	   şeritte hamburger'in nereye basılacağı belirsiz kalır. */
	.tbt-pill {
		max-width: 720px;
		background: linear-gradient(180deg, rgba(255, 255, 255, .90) 0%, rgba(230, 238, 245, .74) 100%);
		border-color: rgba(0, 51, 102, .12);
		backdrop-filter: blur(20px) saturate(180%);
		-webkit-backdrop-filter: blur(20px) saturate(180%);
		box-shadow:
			0 1px 0 rgba(255, 255, 255, .90) inset,
			0 10px 26px -14px rgba(0, 51, 102, .22);
	}
}
@media (min-width: 900px) {
	.tbt-panel { display: none; }
}

/* 900–1023px: menü göründüğü ilk aralık ve hap en dar hâlinde.
   Ölçüm — logo 97px + 5 menü öğesi + CTA 172px; 12px'lik öğe dolgusuyla
   toplam ~802px, kullanılabilir genişlik ~852px. 50px pay yeterli değil:
   Montserrat yüklenmeden önceki yedek yüzde etiketler genişler ve CTA
   alta sarar. Dolgu 8px'e inince toplam ~722px olur, pay 130px'e çıkar. */
@media (min-width: 900px) and (max-width: 1023px) {
	.tbt-nav__list a { padding-inline: var(--tbt-s-2); }
	.tbt-cta { padding-inline: var(--tbt-s-3); }
}

/* =====================================================================
   5) FOOTER — navy otorite bandı, hairline ızgara
   ================================================================== */
.tbt-on-dark {
	background: var(--tbt-navy);
	color: #FFF;
}

.tbt-footer {
	padding-block: var(--tbt-section-y) var(--tbt-s-8);
	border-top: 1px solid var(--tbt-border);
}
.tbt-footer__inner {
	box-sizing: border-box;
	max-width: var(--tbt-container);
	margin-inline: auto;
	padding-inline: var(--tbt-gutter);
}

.tbt-footer__cols {
	display: grid;
	gap: var(--tbt-s-8);
}
@media (min-width: 640px) {
	.tbt-footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
	.tbt-footer__cols {
		grid-template-columns: 1.4fr repeat(3, minmax(0, 1fr));
		gap: 0;
	}
	/* KUTU İÇİNDE KUTU YASAK: kolonlar kartla değil, dikey hairline'la
	   ayrılır. Çizgi iki yandan eşit uzaklıkta durur — teknik çizim
	   disiplini budur. */
	.tbt-footer__col + .tbt-footer__col {
		margin-left: var(--tbt-s-8);
		padding-left: var(--tbt-s-8);
		border-left: 1px solid var(--tbt-rule-dark);
	}
}

.tbt-footer__logo {
	display: block;
	width: auto;
	height: 34px;
	margin-bottom: var(--tbt-s-4);
}
.tbt-footer__blurb {
	max-width: 34ch;
	margin: 0 0 var(--tbt-s-3);
	color: #FFF;
	font-size: var(--tbt-fs-sm);
	line-height: 1.55;
}
.tbt-footer__note {
	max-width: 40ch;
	margin: var(--tbt-s-3) 0 0;
	color: var(--tbt-navy-50);
	font-size: var(--tbt-fs-xs);
	line-height: 1.5;
}

.tbt-footer__list {
	margin: 0;
	padding: 0;
	list-style: none;
}
.tbt-footer__list li + li { margin-top: 2px; }
.tbt-footer__list a {
	display: flex;
	align-items: center;
	min-height: var(--tbt-s-10);
	color: var(--tbt-navy-50);
	font-size: var(--tbt-fs-sm);
	text-decoration: none;
}
.tbt-footer__list a:hover {
	color: #FFF;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* --- sicil dizini: kayıt defteri satırları --- */
.tbt-footer__index {
	margin-top: var(--tbt-s-12);
	padding-top: var(--tbt-s-6);
	border-top: 1px solid var(--tbt-rule-dark);
}
.tbt-index {
	display: grid;
	margin: var(--tbt-s-4) 0 0;
	padding: 0;
	list-style: none;
}
@media (min-width: 640px) {
	.tbt-index { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--tbt-s-8); }
}
@media (min-width: 1024px) {
	.tbt-index { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.tbt-index__row { border-top: 1px solid var(--tbt-border-soft); }
.tbt-on-dark .tbt-index__row { border-top-color: var(--tbt-rule-dark); }

.tbt-index__link {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: var(--tbt-s-3);
	align-items: baseline;
	min-height: var(--tbt-s-12);
	padding-block: var(--tbt-s-3);
	color: var(--tbt-ink-2);
	font-size: var(--tbt-fs-sm);
	text-decoration: none;
}
.tbt-on-dark .tbt-index__link { color: var(--tbt-navy-50); }
.tbt-index__link:hover { color: var(--tbt-navy); }
.tbt-on-dark .tbt-index__link:hover { color: #FFF; }

.tbt-index__plate {
	font-size: var(--tbt-fs-xs);
	color: var(--tbt-ink-3);
}
/* ÖLÇÜLDÜ: --tbt-navy-300 (#33628F) navy (#003366) üstünde 1.97:1 — 3:1 UI
   eşiğini bile geçmiyor, plaka ve kategori fiilen okunmuyordu. #87A4C4 =
   4.89:1 (AA), --tbt-navy-50'nin 10.76:1'inin altında kaldığı için ikincil
   okuma sırası korunuyor. navy-300 koyu zeminde YALNIZCA kenar rengidir. */
.tbt-on-dark .tbt-index__plate { color: #87A4C4; }
.tbt-on-dark .tbt-index__link:hover .tbt-index__plate { color: var(--tbt-orange-dark); }

.tbt-index__name {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.tbt-index__cat {
	color: var(--tbt-ink-3);
	font-size: var(--tbt-fs-xs);
}
.tbt-on-dark .tbt-index__cat { color: #87A4C4; }
.tbt-index__n { font-size: var(--tbt-fs-xs); }

/* --- alt bant --- */
.tbt-footer__bar {
	display: flex;
	flex-wrap: wrap;
	gap: var(--tbt-s-2) var(--tbt-s-6);
	justify-content: space-between;
	margin-top: var(--tbt-s-10);
	padding-top: var(--tbt-s-5);
	border-top: 1px solid var(--tbt-rule-dark);
}
.tbt-footer__copy,
.tbt-footer__legal {
	margin: 0;
	color: var(--tbt-navy-50);
	font-size: var(--tbt-fs-xs);
	line-height: 1.5;
}
.tbt-footer__legal a {
	color: var(--tbt-navy-50);
	text-underline-offset: 3px;
}
.tbt-footer__legal a:hover { color: #FFF; }

/* =====================================================================
   6) SİCİL DİLİ — belge tipografisi ve hairline sistemi
   ================================================================== */

/* MONO = VERİ. Süsleme için kullanılmaz. Kayıt no, sayı, tarih, plaka,
   yol, sorgu, kanun maddesi. Metin ise Montserrat. Bu kontrast imzadır. */
.tbt-mono {
	font-family: var(--tbt-font-mono);
	font-weight: 500;
	font-variant-numeric: tabular-nums;
	font-feature-settings: "tnum" 1;
	letter-spacing: 0;
}

.tbt-kicker {
	margin: 0 0 var(--tbt-s-4);
	color: var(--tbt-ink-3);
	font-size: var(--tbt-fs-xs);
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.tbt-on-dark .tbt-kicker { color: var(--tbt-navy-50); }

/* mühendislik çizimindeki kot çizgisi: başlık biter, hairline devam eder */
.tbt-ruled {
	display: flex;
	align-items: center;
	gap: var(--tbt-s-4);
}
.tbt-ruled::after {
	content: "";
	flex: 1 1 auto;
	height: 1px;
	background: var(--tbt-border);
}
.tbt-on-dark .tbt-ruled::after { background: var(--tbt-rule-dark); }

.tbt-rule {
	height: 0;
	margin: 0;
	border: 0;
	border-top: 1px solid var(--tbt-border);
}

/* belge başlığı — kutu değil, iki hairline arası bir alan */
.tbt-sheet {
	box-sizing: border-box;
	max-width: var(--tbt-container);
	margin-inline: auto;
	padding: var(--tbt-s-10) var(--tbt-gutter) var(--tbt-s-8);
	border-bottom: 1px solid var(--tbt-border);
}
.tbt-sheet__title {
	margin: var(--tbt-s-3) 0 0;
	max-width: 22ch;
}
.tbt-sheet__lead {
	max-width: var(--tbt-measure);
	margin: var(--tbt-s-4) 0 0;
	color: var(--tbt-ink-2);
	font-size: clamp(1.125rem, 1.042rem + 0.370vw, 1.375rem);
	line-height: 1.45;
}

/* anahtar/değer kayıt satırı — mono değer, versal etiket */
.tbt-record {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: var(--tbt-s-1) var(--tbt-s-5);
	margin: var(--tbt-s-5) 0 0;
	padding-top: var(--tbt-s-3);
	border-top: 1px solid var(--tbt-border-soft);
}
.tbt-record__k {
	color: var(--tbt-ink-3);
	font-size: var(--tbt-fs-xs);
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.tbt-record__v {
	min-width: 0;
	color: var(--tbt-ink);
	font-size: var(--tbt-fs-sm);
	overflow-wrap: anywhere;
}
/* ÖLÇÜLDÜ: `core/post-date` displayType:"modified", değişiklik tarihi yayın
   tarihiyle AYNI GÜN ise BOŞ döner (çekirdek davranışı). Sonuç: hiç
   düzenlenmemiş her sayfada "SON GÜNCELLEME" etiketi DEĞERSİZ basılıyordu.
   Değer yoksa satırın tamamı düşer; `:has` desteklenmezse bugünkü davranış
   sürer — gerileme yok. */
.tbt-record:not(:has(.tbt-record__v)) { display: none; }

/* durum işareti — turuncu YALNIZCA burada, metinsiz bir sinyal olarak */
.tbt-flag {
	display: inline-flex;
	align-items: center;
	gap: var(--tbt-s-2);
}
.tbt-flag::before {
	content: "";
	width: 3px;
	height: 1em;
	background: var(--tbt-orange);
	border-radius: 2px;
}

/* çip — plugin'in `.tb-chip` anatomisiyle aynı: 32px görünür, 48px hedef */
.tbt-chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--tbt-s-2);
	margin: 0;
	padding: 0;
	list-style: none;
}
.tbt-chip {
	position: relative;
	display: inline-flex;
	align-items: center;
	min-height: var(--tbt-s-8);
	padding-inline: var(--tbt-s-3);
	background: var(--tbt-surface);
	border: var(--tbt-ln);
	border-radius: var(--tbt-r-pill);
	color: var(--tbt-ink-2);
	font-size: var(--tbt-fs-xs);
	font-weight: 500;
	text-decoration: none;
	transition: color var(--tbt-t-base) var(--tbt-ease), border-color var(--tbt-t-base) var(--tbt-ease);
}
.tbt-chip::before {
	content: "";
	position: absolute;
	inset: -8px;
}
.tbt-chip:hover {
	color: var(--tbt-navy);
	border-color: var(--tbt-navy);
}

/* =====================================================================
   7) İÇERİK ALANLARI
   ================================================================== */
.tbt-wrap {
	box-sizing: border-box;
	max-width: var(--tbt-container);
	margin-inline: auto;
	padding: var(--tbt-s-10) var(--tbt-gutter) var(--tbt-section-y);
}

/* `[tb_yardim_paneli]` kendi `.tbt-wrap`'ini basar ve arama şablonunda
   zaten bir `.tbt-wrap` içine düşer. İç içe geçince kenar dolgusu ikiye
   katlanır; iç kopya nötrlenir. */
.tbt-wrap .tbt-wrap {
	max-width: none;
	margin-inline: 0;
	padding: 0;
}

/* Hukuki metinler tek paragraf halinde uzundur. 1200px'lik kolonda 200
   karakterlik satırlar okunmaz; ölçü 68ch'e kilitlenir. */
.tbt-prose {
	max-width: var(--tbt-measure);
	color: var(--tbt-ink-2);
}
.tbt-prose > * + * { margin-top: var(--tbt-s-4); }
.tbt-prose h2 { margin-top: var(--tbt-s-10); color: var(--tbt-ink); }
.tbt-prose h3 { margin-top: var(--tbt-s-8); color: var(--tbt-ink); }
.tbt-prose ul,
.tbt-prose ol { padding-left: var(--tbt-s-5); }
.tbt-prose li + li { margin-top: var(--tbt-s-2); }
.tbt-prose a { color: var(--tbt-navy); text-underline-offset: 3px; }
.tbt-prose code {
	font-family: var(--tbt-font-mono);
	font-size: .9em;
}

.tbt-block {
	margin-top: var(--tbt-s-12);
}

.tbt-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--tbt-s-3);
	margin-top: var(--tbt-s-12);
}

/* Buton — plugin'in `.tb-btn`'i ile aynı anatomi: 48px, 8px radius,
   navy dolgu, GÖLGE YOK. Turuncu dolgu YASAK (beyazla 2.94:1). */
.tbt-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--tbt-s-2);
	min-height: var(--tbt-s-12);
	padding-inline: var(--tbt-s-5);
	background: var(--tbt-surface);
	border: var(--tbt-ln);
	border-radius: var(--tbt-r);
	color: var(--tbt-navy);
	font-size: var(--tbt-fs-sm);
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--tbt-t-base) var(--tbt-ease);
}
.tbt-btn:hover { background: var(--tbt-surface-2); }
.tbt-btn:active {
	transform: translateY(1px);
	transition-duration: var(--tbt-t-fast);
}
.tbt-btn--primary {
	background: var(--tbt-navy);
	border-color: var(--tbt-navy);
	color: #FFF;
}
.tbt-btn--primary:hover {
	background: var(--tbt-navy-700);
	border-color: var(--tbt-navy-700);
	color: #FFF;
}
.tbt-btn--lg {
	min-height: 56px;
	padding-inline: var(--tbt-s-6);
	font-size: var(--tbt-fs-base);
}

/* Arama formu — girdi 16px (iOS), buton navy. */
.tbt-search {
	display: flex;
	flex-wrap: wrap;
	gap: var(--tbt-s-2);
	max-width: 560px;
}
.tbt-search__input {
	flex: 1 1 220px;
	min-width: 0;
	min-height: var(--tbt-s-12);
	padding-inline: var(--tbt-s-4);
	background: var(--tbt-surface);
	border: var(--tbt-ln);
	border-radius: var(--tbt-r);
	color: var(--tbt-ink);
	font-family: inherit;
	font-size: var(--tbt-fs-base);
}
.tbt-search__input::placeholder { color: var(--tbt-ink-3); }

/* Yalnızca ekran okuyucu — odaklanabilir olmadığı için `clip` güvenli. */
.tbt-sr {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/* yardım blokları: alt yüzey + hairline, gölge YOK */
.tbt-panel-flat {
	padding: var(--tbt-s-6) var(--tbt-s-5);
	background: var(--tbt-surface-2);
	border: var(--tbt-ln2);
	border-radius: var(--tbt-r-lg);
}

/* =====================================================================
   8) ÇEKİRDEK BLOK DÜZELTMELERİ
   Yalnızca tema sayfalarında görünen bloklar. `.tb-root` içindeki hiçbir
   şeye dokunulmaz.
   ================================================================== */
.tbt .wp-block-search__inside-wrapper {
	gap: var(--tbt-s-2);
	border: 0;
}
.tbt .wp-block-search__input {
	min-height: var(--tbt-s-12);
	padding: 0 var(--tbt-s-4);
	background: var(--tbt-surface);
	border: var(--tbt-ln);
	border-radius: var(--tbt-r);
	color: var(--tbt-ink);
	font-family: inherit;
	font-size: var(--tbt-fs-base);
}
.tbt .wp-block-search__input::placeholder { color: var(--tbt-ink-3); }
.tbt .wp-block-search__button {
	min-height: var(--tbt-s-12);
	padding-inline: var(--tbt-s-5);
	background: var(--tbt-navy);
	border: 1px solid var(--tbt-navy);
	border-radius: var(--tbt-r);
	color: #FFF;
	font-size: var(--tbt-fs-sm);
	font-weight: 600;
	cursor: pointer;
	transition: background-color var(--tbt-t-base) var(--tbt-ease);
}
.tbt .wp-block-search__button:hover { background: var(--tbt-navy-700); }

.tbt .wp-block-post-title { margin-block: 0; }
.tbt .wp-block-post-date,
.tbt .wp-block-post-terms {
	color: var(--tbt-ink-3);
	font-size: var(--tbt-fs-xs);
}

.tbt .wp-block-query-pagination {
	gap: var(--tbt-s-2);
	margin-top: var(--tbt-s-10);
	padding-top: var(--tbt-s-5);
	border-top: var(--tbt-ln2);
}
.tbt .wp-block-query-pagination a,
.tbt .wp-block-query-pagination .current {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding-inline: var(--tbt-s-3);
	border-radius: var(--tbt-r);
	font-size: var(--tbt-fs-sm);
	text-decoration: none;
}
.tbt .wp-block-query-pagination a:hover { background: var(--tbt-surface-2); }
.tbt .wp-block-query-pagination .current {
	background: var(--tbt-navy);
	color: #FFF;
}

/* Yazı listesi — kutu içinde kutu yok: satırlar hairline ile ayrılır. */
.tbt-post-row {
	padding-block: var(--tbt-s-6);
	border-top: var(--tbt-ln2);
}
.tbt-post-row__title {
	margin: 0 0 var(--tbt-s-2);
	font-size: clamp(1.25rem, 1.083rem + 0.741vw, 1.750rem);
	line-height: 1.2;
	font-weight: 600;
}
.tbt-post-row__title a {
	color: var(--tbt-ink);
	text-decoration: none;
}
.tbt-post-row__title a:hover { color: var(--tbt-navy); }

/* =====================================================================
   9) MOTION
   Reveal, plugin'in E7 politikasıyla aynı eğri ve süredir: 600ms,
   cubic-bezier(.44,0,.56,1), translateY(20px). Tek fark kapsamıdır.
   ================================================================== */
.tbt-reveal {
	opacity: 0;
	transform: translateY(20px);
	transition:
		opacity var(--tbt-t-reveal) var(--tbt-ease),
		transform var(--tbt-t-reveal) var(--tbt-ease);
}
.tbt-reveal.is-in {
	opacity: 1;
	transform: none;
}

/* JS yoksa içerik GÖRÜNÜR başlar ve menü kalıcı olarak açıktır.
   Bir animasyon hatası sayfayı boş bırakamaz. */
@media (scripting: none) {
	.tbt-reveal { opacity: 1; transform: none; }
	.tbt-nav__list,
	.tbt-nav__list li,
	.tbt-cta {
		opacity: 1;
		transform: none;
		pointer-events: auto;
		transition-delay: 0ms;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tbt *,
	.tbt *::before,
	.tbt *::after {
		animation-duration: .001ms !important;
		transition-duration: .001ms !important;
		transition-delay: 0ms !important;
	}
	.tbt-reveal { opacity: 1; transform: none; }
	.tbt-panel { animation: none; }
}

/* =====================================================================
   10) BASKI — hukuki metinler yazdırılır
   ================================================================== */
@media print {
	.tbt-header-area,
	.tbt-shell,
	.tbt-footer__index,
	.tbt-footer__cols,
	.tbt-skip { display: none; }

	.tbt-footer {
		padding-block: var(--tbt-s-4);
		background: transparent;
		color: #000;
		border-top: 1px solid #000;
	}
	.tbt-footer__copy,
	.tbt-footer__legal { color: #000; }

	.tbt-wrap { padding: 0; }
	.tbt-prose { max-width: none; color: #000; }
	.tbt-prose a::after { content: " (" attr(href) ")"; font-size: .85em; }
}
