/* ==========================================================================
   Solmaz Yapı — temel katman
   Token'lar, tipografi, buton primitive'i, GeneratePress düzeltmeleri.
   ========================================================================== */

:root {
	--sol-lacivert: #16162E;
	--sol-lacivert-2: #1E1E3F;
	--sol-lacivert-3: #0F0F22;
	--sol-bordo: #8E2226;
	--sol-bordo-2: #B23139;
	--sol-pembe: #E8A0A5;
	--sol-krem: #F6F6F4;
	--sol-beyaz: #FFFFFF;
	--sol-cizgi: #E6E6E3;
	--sol-cizgi-koyu: #D8D8D6;
	--sol-gri: #6A6A7C;
	--sol-gri-acik: #9A9AAC;
	--sol-gri-koyu: #4A4A5C;

	--sol-baslik-font: 'Archivo', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--sol-govde-font: 'Barlow', system-ui, -apple-system, 'Segoe UI', sans-serif;

	--sol-kap: 1360px;
	--sol-pad: clamp(18px, 3.2vw, 40px);
	--sol-bolum-pad: clamp(80px, 10vw, 130px);

	/* Hover eğrileri.
	   easeOutQuint -> easeOutCubic -> easeOutQuad: her adımda başlangıçtaki
	   hızlanma azaldı. Quad, gözün "fırlama" olarak okuduğu ilk ivmeyi
	   neredeyse tamamen kaldırır; hareket baştan sona yayvan akar.
	   --sol-ease-akis simetrik: gidiş ve dönüşün aynı hissettiği süpürmeler için. */
	/* ease-IN-out: hareket yavaş başlar, yavaş biter. easeOut ailesinin tamamı
	   (Quint/Cubic/Quad) tam hızda BAŞLIYOR — sertlik hissinin kökü buydu.
	   Simetrik eğri, hem fareyle girişte hem çıkışta yumuşak okunur. */
	--sol-ease: cubic-bezier(0.4, 0, 0.2, 1);
	--sol-ease-sert: cubic-bezier(0.4, 0, 0.2, 1);
	/* Süpürme ve zoom gibi uzun hareketlerde girişi biraz daha uzun tutar. */
	--sol-ease-akis: cubic-bezier(0.5, 0, 0.2, 1);
}

/* --------------------------------------------------------------------------
   Temel
   -------------------------------------------------------------------------- */

body.solmaz {
	background: var(--sol-krem);
	color: var(--sol-lacivert);
	font-family: var(--sol-govde-font);
	-webkit-font-smoothing: antialiased;
}

body.solmaz h1,
body.solmaz h2,
body.solmaz h3,
body.solmaz h4 {
	font-family: var(--sol-baslik-font);
	letter-spacing: -0.02em;
}

/* DİKKAT: :where() ile sarıldı — özgüllüğü SIFIR olsun ki `.sol-logo__img { height: 58px }`
   gibi tek sınıflı kurallar bunu ezebilsin. Sarmalanmazsa `body.solmaz img` (0,1,2)
   her tek sınıfı yener ve logo doğal boyutunda basılır. */
:where(body.solmaz) img {
	max-width: 100%;
	height: auto;
	display: block;
}

:where(body.solmaz) picture {
	display: contents;
}

/* Yatay taşma emniyeti: `clip` `hidden`in aksine kaydırma bağlamı oluşturmaz,
   böylece position:sticky öğeleri bozulmaz. */
html,
body.solmaz {
	overflow-x: clip;
	max-width: 100%;
}

/* Bağlantı sıfırlaması.
   DİKKAT: :where() ile SIFIR özgüllük — aksi hâlde `.sol-nav__liste a { color:#fff }`
   gibi bileşen kuralları ezilir ve koyu zeminde yazılar görünmez olur (bedeli ödendi).
   Rengi burada BELİRLEMİYORUZ; her bileşen kendi rengini kendisi verir. */
:where(body.solmaz) a {
	text-decoration: none;
	box-shadow: none;
}

/* GeneratePress bağlantı ve butonlara `transition: color .1s ease-in-out` veriyor.
   0.1s pratikte anlık bir sıçrama — asıl "snap" hissi buradan geliyordu.
   :where() ile SIFIR özgüllük: kendi bileşen geçişlerimizi ezmez, yalnız
   GP'nin aynı özgüllükteki kuralını (sonra yüklendiğimiz için) geçersiz kılar. */
:where(body.solmaz) a,
:where(body.solmaz) button,
:where(body.solmaz) input,
:where(body.solmaz) select,
:where(body.solmaz) textarea {
	transition:
		color 0.5s var(--sol-ease),
		background-color 0.5s var(--sol-ease),
		border-color 0.5s var(--sol-ease);
}

/* GeneratePress'in `a:hover { color: var(--accent) }` kuralı, hover rengi
   tanımlanmamış her bağlantıyı koyu lacivere çeviriyor — koyu zeminde yazı
   okunmaz oluyor. Aynı özgüllükte ama sonra yüklendiğimiz için burada
   nötrleştiriyoruz; hover rengini isteyen bileşen kendisi tanımlar. */
:where(body.solmaz) a:hover,
:where(body.solmaz) a:focus,
:where(body.solmaz) a:active {
	color: inherit;
}

/* GeneratePress `button`, `button:hover`, `button:focus` için kendi dolgu/çerçeve
   renklerini basıyor (0,1,1 özgüllük). Şeffaf butonlarımız (SSS, filtre, slider
   okları, burger) hover'da koyu bir kutuya dönüşüp yazıyı okunmaz hâle getiriyordu.
   Bu yüzden TÜM durumlar açıkça sıfırlanır — :where() burada İŞE YARAMAZ,
   sıfır özgüllük GP'nin kuralını yenemez. */
.sol-sss__btn,
.sol-sss__btn:hover,
.sol-sss__btn:focus,
.sol-sss__btn:active,
.sol-ok,
.sol-ok:hover,
.sol-ok:focus,
.sol-ok:active,
.sol-burger,
.sol-burger:hover,
.sol-burger:focus,
.sol-burger:active {
	background: transparent;
	box-shadow: none;
	color: inherit;
}

.sol-filtre__btn,
.sol-filtre__btn:hover,
.sol-filtre__btn:focus,
.sol-filtre__btn:active {
	background: transparent;
	box-shadow: none;
}

/* Dolgulu buton primitive'i kendi rengini korusun. */
.sol-btn--dolu,
.sol-btn--dolu:hover,
.sol-btn--dolu:focus {
	background: var(--sol-bordo);
	color: var(--sol-beyaz);
}

.sol-btn--koyu,
.sol-btn--koyu:hover,
.sol-btn--koyu:focus {
	background: var(--sol-lacivert);
	color: var(--sol-beyaz);
}

.sol-btn--cizgili,
.sol-btn--cizgili:focus,
.sol-btn--acik-cizgili,
.sol-btn--acik-cizgili:focus,
.sol-btn--link,
.sol-btn--link:hover,
.sol-btn--link:focus {
	background: transparent;
	box-shadow: none;
}

/* Dokunmatikte tarayıcının mavi "tap highlight" katmanı, kart kadar büyük bir
   bağlantıda tüm alanı kaplıyor ve compositor katmanında çizildiği için sabit
   üst bilginin bile ÜSTÜNDE görünüyordu. Kapatıp yerine kendi geri bildirimimizi
   veriyoruz. */
body.solmaz a,
body.solmaz button,
body.solmaz input,
body.solmaz select,
body.solmaz textarea,
body.solmaz label,
body.solmaz [role="button"] {
	-webkit-tap-highlight-color: transparent;
}

/* Dokunmada hover yok; basılı tutma geri bildirimini :active verir. */
.sol-proje:active,
.sol-haber:active,
.sol-alt-sayfa:active {
	transform: translateY(-1px) scale(0.994);
	transition-duration: 0.12s;
}

.sol-btn:active,
.sol-filtre__btn:active,
.sol-ok:active,
.sol-sss__btn:active {
	transform: scale(0.985);
	transition-duration: 0.12s;
}

/* Klavye odağı: GP'nin siyah kutusu yerine markanın rengi. */
body.solmaz button:focus-visible,
body.solmaz a:focus-visible {
	outline: 2px solid var(--sol-bordo-2);
	outline-offset: 3px;
}

body.solmaz button:focus:not(:focus-visible) {
	outline: none;
}

/* Kart başlığındaki bağlantı, kartın rengini sürdürsün. */
.sol-hizmet__baslik a {
	color: inherit;
	transition: color 0.5s var(--sol-ease);
}

.sol-hizmet__baslik a:hover,
.sol-hizmet__baslik a:focus-visible {
	color: var(--sol-pembe);
}

/* GeneratePress tam genişlik (CLAUDE.md tuzak #6 — 100vw hilesi KULLANILMAZ) */
body.solmaz #page,
body.solmaz #content,
body.solmaz .site-content,
body.solmaz #primary,
body.solmaz .content-area,
body.solmaz .entry-content,
body.solmaz .inside-article {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

body.solmaz .site-content {
	display: block !important;
}

body.solmaz .entry-content > *:first-child {
	margin-top: 0;
}

/* --------------------------------------------------------------------------
   Konteyner + yardımcılar
   -------------------------------------------------------------------------- */

.sol-kap {
	width: 100%;
	max-width: var(--sol-kap);
	margin: 0 auto;
	padding-left: var(--sol-pad);
	padding-right: var(--sol-pad);
}

.sol-ortala {
	display: flex;
	justify-content: center;
	margin-top: 56px;
}

.sol-gizli-etiket,
.sol-bal {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* Yerel SEO sinyali — görünür ama sessiz (CLAUDE.md §3) */
.sol-yerel-h2 {
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--sol-gri);
	margin: 0 0 34px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--sol-cizgi);
}

.sol-bolum--koyu .sol-yerel-h2 {
	color: #A6A6B8;
	border-bottom-color: rgba(255, 255, 255, 0.1);
}

/* --------------------------------------------------------------------------
   Kicker + bölüm başlığı
   -------------------------------------------------------------------------- */

.sol-bolum-basligi--orta {
	text-align: center;
	max-width: 660px;
	margin: 0 auto;
}

.sol-kicker {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 24px;
}

.sol-bolum-basligi--orta .sol-kicker {
	justify-content: center;
}

.sol-kicker__cizgi {
	display: block;
	width: 52px;
	height: 3px;
	background: var(--sol-bordo);
	transform-origin: left center;
}

.sol-kicker__yazi {
	font-family: var(--sol-baslik-font);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--sol-bordo);
}

.sol-kicker--acik .sol-kicker__yazi,
.sol-bolum-basligi--acik .sol-kicker__yazi {
	color: var(--sol-pembe);
}

.sol-kicker--acik .sol-kicker__yazi {
	color: var(--sol-beyaz);
	font-weight: 600;
}

.sol-bolum-basligi__h {
	font-size: clamp(32px, 4vw, 54px);
	font-weight: 800;
	line-height: 1.04;
	margin: 0;
	color: var(--sol-lacivert);
	text-wrap: balance;
}

.sol-bolum-basligi--acik .sol-bolum-basligi__h {
	color: var(--sol-beyaz);
}

/* --------------------------------------------------------------------------
   Metin
   -------------------------------------------------------------------------- */

.sol-p {
	font-size: 18px;
	line-height: 1.75;
	font-weight: 300;
	color: var(--sol-gri-koyu);
	margin: 22px 0 0;
}

.sol-bolum-basligi + .sol-p {
	margin-top: 28px;
}

/* Başlığın hemen ardından gelen ızgara/galeri bloğu. Bu boşluk yokken kutular
   başlığın kutusuna bitişikti; kartların hover'daki 3px'lik kalkışı "İlgili
   Sayfalar" gibi başlıkların alt uzantılarının (y, ğ) üzerine biniyordu —
   transform yığın bağlamı yarattığı için kart yazının önüne geçiyordu.
   Başlık `.sol-bolum__ust` içindeyken zaten 56px veren o sarmalayıcı geçerli;
   burası yalnız sarmalayıcısız kullanımları hedefler. */
.sol-bolum-basligi + .sol-izgara,
.sol-bolum-basligi + .sol-galeri {
	margin-top: 48px;
}

.sol-p--acik {
	color: #C6C6D2;
}

.sol-p--orta {
	text-align: center;
	max-width: 620px;
	margin: 18px auto 0;
	color: var(--sol-gri);
}

/* --------------------------------------------------------------------------
   Buton primitive'i
   Hover: arka plandan süpürerek gelen dolgu + etiketin yukarı kayıp ikizinin
   alttan gelmesi + okun ileri atması.
   -------------------------------------------------------------------------- */

.sol-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding: 17px 38px;
	border: 1px solid transparent;
	background: transparent;
	font-family: var(--sol-baslik-font);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	line-height: 1;
	cursor: pointer;
	overflow: hidden;
	isolation: isolate;
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
	transition: color 0.6s var(--sol-ease), border-color 0.6s var(--sol-ease);
}

/* Dolgu, keskin kenarlı bir "silme" yerine süpürürken aynı anda soluyor.
   Sertliğin ikinci kaynağı bu keskin kenardı; 0.35'ten başlayıp opaklıkla
   gelmesi, gözün takip ettiği kenarı belirsizleştirip hareketi yumuşatıyor. */
.sol-btn__dolgu {
	position: absolute;
	inset: 0;
	z-index: -1;
	opacity: 0;
	transform: scaleX(0.35);
	transform-origin: right center;
	transition: transform 0.95s var(--sol-ease-akis), opacity 0.6s var(--sol-ease);
}

.sol-btn:hover .sol-btn__dolgu,
.sol-btn:focus-visible .sol-btn__dolgu {
	opacity: 1;
	transform: scaleX(1);
	transform-origin: left center;
}

/* DİKKAT: etiket, kayma animasyonu için maskelenir (overflow:hidden).
   line-height:1 ile satır kutusu tam em yüksekliğinde kalıyor ve Türkçe büyük
   İ'nin noktası ile Ş/Ç kuyrukları maskenin dışında kalıp KIRPILIYOR.
   Satır yüksekliğini büyütüp pay bırakıyoruz; buton dolgusu buna göre azaltıldı. */
.sol-btn__yazi {
	position: relative;
	display: block;
	overflow: hidden;
	line-height: 1.4;
}

.sol-btn__kat {
	display: block;
	transition: transform 0.8s var(--sol-ease-akis), opacity 0.5s var(--sol-ease);
}

.sol-btn__kat--ikiz {
	position: absolute;
	inset: 0;
	transform: translateY(105%);
}

.sol-btn:hover .sol-btn__kat,
.sol-btn:focus-visible .sol-btn__kat {
	transform: translateY(-105%);
}

.sol-btn:hover .sol-btn__kat--ikiz,
.sol-btn:focus-visible .sol-btn__kat--ikiz {
	transform: translateY(0);
}

.sol-btn__ok {
	display: flex;
	align-items: center;
	transition: transform 0.75s var(--sol-ease);
}

.sol-btn:hover .sol-btn__ok,
.sol-btn:focus-visible .sol-btn__ok {
	transform: translateX(4px);
}

.sol-btn:focus-visible {
	outline: 2px solid var(--sol-pembe);
	outline-offset: 3px;
}

/* Varyantlar */

.sol-btn--dolu {
	background: var(--sol-bordo);
	color: var(--sol-beyaz);
}

.sol-btn--dolu .sol-btn__dolgu {
	background: var(--sol-bordo-2);
}

.sol-btn--koyu {
	background: var(--sol-lacivert);
	color: var(--sol-beyaz);
}

.sol-btn--koyu .sol-btn__dolgu {
	background: var(--sol-bordo);
}

.sol-btn--cizgili {
	border-color: var(--sol-lacivert);
	color: var(--sol-lacivert);
}

.sol-btn--cizgili .sol-btn__dolgu {
	background: var(--sol-lacivert);
}

.sol-btn--cizgili:hover,
.sol-btn--cizgili:focus-visible {
	color: var(--sol-beyaz);
}

.sol-btn--acik-cizgili {
	border-color: rgba(255, 255, 255, 0.3);
	color: var(--sol-beyaz);
}

.sol-btn--acik-cizgili .sol-btn__dolgu {
	background: rgba(255, 255, 255, 0.12);
}

.sol-btn--acik-cizgili:hover,
.sol-btn--acik-cizgili:focus-visible {
	border-color: rgba(255, 255, 255, 0.55);
}

.sol-btn--kucuk {
	padding: 12px 26px;
	font-size: 13.5px;
	gap: 8px;
}

/* Alt çizgili "link" butonu */
.sol-btn--link {
	padding: 0 0 8px;
	gap: 12px;
	color: var(--sol-lacivert);
	border-bottom: 2px solid var(--sol-bordo);
	overflow: visible;
}

.sol-btn--link .sol-btn__dolgu {
	display: none;
}

.sol-btn--link .sol-btn__yazi {
	overflow: hidden;
}

.sol-btn--link:hover,
.sol-btn--link:focus-visible {
	color: var(--sol-bordo);
}

.sol-btn--link-acik {
	color: var(--sol-beyaz);
	border-bottom-color: transparent;
	font-size: 13px;
	letter-spacing: 0.12em;
}

.sol-btn--link-acik:hover,
.sol-btn--link-acik:focus-visible {
	color: var(--sol-pembe);
}

/* --------------------------------------------------------------------------
   Erişilebilirlik: hareket azaltma
   -------------------------------------------------------------------------- */

/* --------------------------------------------------------------------------
   Hareketi azaltma
   -------------------------------------------------------------------------- */

/* DİKKAT: Burada eskiden `transition-duration: 0.001ms !important` vardı ve
   HER geçişi öldürüyordu. Sonuç: bu modda tüm hover'lar anında sıçrıyor,
   arayüz "sert/kopuk" hissediliyordu — eğri ya da süre değiştirmenin hiçbir
   etkisi olmuyordu, çünkü geçiş hiç çalışmıyordu.

   Şartnamenin amacı vestibüler rahatsızlık yaratan BÜYÜK hareketi kaldırmak;
   renk ve opaklık geçişlerini yok etmek değil. Bu yüzden artık yalnızca yer
   değiştirme / zoom / parallax iptal ediliyor, yumuşak renk geçişleri kalıyor. */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
	}

	/* Büyük yer değiştirme ve yakınlaştırmalar kapalı. */
	.sol-proje:hover,
	.sol-haber:hover,
	.sol-hizmet:hover,
	.sol-alt-sayfa:hover,
	.sol-proje:active,
	.sol-haber:active,
	.sol-alt-sayfa:active,
	.sol-btn:active,
	.sol-filtre__btn:active,
	.sol-ok:active,
	.sol-sss__btn:active,
	.sol-serit__sosyal a:hover,
	.sol-altbilgi__sosyal a:hover,
	.sol-altbilgi__linkler a:hover,
	.sol-serit__tel:hover .sol-serit__tel-ikon,
	.sol-proje:hover .sol-proje__img,
	.sol-haber:hover .sol-haber__img,
	.sol-hizmet:hover .sol-hizmet__img,
	.sol-galeri__oge:hover .sol-galeri__img,
	.sol-vitrin__kare:hover .sol-vitrin__kare-img,
	.sol-cerceve__img,
	.sol-vitrin__fon-img,
	.sol-detay__kapak-gorsel img {
		transform: none;
	}

	/* Etiket kaymasını sabitle, dolgu yalnızca solarak gelsin. */
	.sol-btn:hover .sol-btn__kat,
	.sol-btn:focus-visible .sol-btn__kat {
		transform: none;
	}

	.sol-btn__kat--ikiz {
		display: none;
	}

	.sol-btn__dolgu {
		transform: scaleX(1);
	}
}
