/* ==========================================================================
   utilities.css — küçük tek amaçlı sınıflar ve scroll reveal
   ========================================================================== */

/* --------------------------------------------------------------- Gizleme */

/* Tarayıcının [hidden] kuralı display:grid/flex taşıyan sınıflara yenilir;
   filtre ve mobil menü el.hidden ile çalıştığı için bunu zorluyoruz. */
[hidden] {
	display: none !important;
}

/* -------------------------------------------------------- Erişilebilirlik */

.screen-reader-text,
.sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/* ------------------------------------------------------------ Tipografi */

.mono {
	font-family: var(--font-mono);
}

.mono-sm {
	font-family: var(--font-mono);
	font-size: var(--text-mono-sm);
}

.meta {
	font-family: var(--font-mono);
	font-size: var(--text-meta);
	color: hsl(var(--muted-foreground));
}

.display {
	font-family: var(--font-display);
	font-weight: 700;
	letter-spacing: -.025em;
}

.muted {
	color: hsl(var(--muted-foreground));
}

.accent {
	color: hsl(var(--primary));
}

.clamp-2,
.clamp-3 {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.clamp-2 {
	-webkit-line-clamp: 2;
	line-clamp: 2;
}

.clamp-3 {
	-webkit-line-clamp: 3;
	line-clamp: 3;
}

/* ------------------------------------------------------------- Konum */

.relative {
	position: relative;
}

.text-center {
	text-align: center;
}

.mx-auto {
	margin-inline: auto;
}

/* --------------------------------------------------------- Bağlantı */

/* Kartın tamamını tıklanabilir yapan görünmez katman. */
.stretched-link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

/* ----------------------------------------------------- Scroll reveal */

.js [data-reveal] {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity .6s var(--ease), transform .6s var(--ease);
}

.js [data-reveal].is-visible {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.js [data-reveal] {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

/* --------------------------------------------- Taşma güvenliği (Faz 9) */

/* Uzun URL veya kesintisiz kelimeler dar ekranda kartı taşırmasın. */
.card__title,
.post-featured__title,
.single__title,
.page__title,
.timeline__title,
.post-mini__title,
.gundem-card__title {
	overflow-wrap: anywhere;
}

/* Metin logosu uzun site adında navbar'ı kırmasın. */
.site-logo {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
}
