/*
Theme Name: Alt Metin
Theme URI: https://altmetin.org
Author: Alt Metin
Description: Okuma grubu, film analizi ve atölye düzenleyen topluluklar için sade ve hızlı bir blok tema. Panelden tamamen düzenlenebilir, yerel fontlar, tek küçük betik, Etkinlik Başvuru eklentisi ile uyumlu.
Version: 1.15.4
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: alt-metin
Tags: full-site-editing, block-patterns, one-column, custom-colors, custom-logo, custom-menu, accessibility-ready
*/

/* ==========================================================================
   1. Temel
   ========================================================================== */

/* Safari, yatay çevrilen telefonlarda yazıyı kendiliğinden büyütür. */
html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;

	/* Sayfa içi bağlantılarda (menüdeki #bolum adresleri) yumuşak kaydırma. */
	scroll-behavior: smooth;
}

/*
 * Sayfa içi bağlantıyla gidilen bölüm ekranın tam tepesine yapışmasın;
 * başlığın üstünde nefes payı kalsın.
 */
:where([id]) {
	scroll-margin-top: var(--wp--preset--spacing--40);
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

/* Uzun Türkçe kelimelerin dar ekranda taşmasını engeller. */
body {
	text-wrap: pretty;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

h1, h2, h3, h4 {
	text-wrap: balance;
}

::selection {
	background: var(--wp--preset--color--bordo);
	color: var(--wp--preset--color--krem);
}

/* Klavye ile gezinenler için görünür odak halkası. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--wp--preset--color--bordo);
	outline-offset: 3px;
	border-radius: 1px;
}

/* Görseller asla yatay taşma yapmasın. */
img,
svg,
video {
	max-width: 100%;
	height: auto;
}

/* Sadece ekran okuyucular için. */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/* Logo görseli yüklenene kadar site adı yazı olarak görünür. */
.am-logo-yazi a {
	font-family: var(--wp--preset--font-family--baslik);
	font-size: var(--wp--preset--font-size--lg);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--wp--preset--color--murekkep);
	white-space: nowrap;
}

/* ==========================================================================
   2. Üst bilgi
   ========================================================================== */

.am-ust {
	position: relative;
	z-index: 2;
}

/* --------------------------------------------------------------------------
   Gezinme bloğunun taban düzeni

   Çekirdeğin 20 KB'lık gezinme CSS'i devre dışı (bkz. functions.php); bu
   temanın kullandığı görünüm için gereken kurallar bunlar. Değişken adları
   çekirdekle aynı tutuldu: hizalama seçenekleri panelden değiştirildiğinde
   WordPress'in ürettiği items-justified-* sınıfları çalışmaya devam etsin.
   -------------------------------------------------------------------------- */

.wp-block-navigation {
	position: relative;
	--navigation-layout-direction: row;
	--navigation-layout-wrap: wrap;
	--navigation-layout-justify: flex-start;
	--navigation-layout-align: center;
}

.wp-block-navigation.is-vertical {
	--navigation-layout-direction: column;
	--navigation-layout-justify: initial;
	--navigation-layout-align: flex-start;
}

.wp-block-navigation.no-wrap {
	--navigation-layout-wrap: nowrap;
}

.wp-block-navigation.items-justified-center {
	--navigation-layout-justify: center;
}

.wp-block-navigation.items-justified-right {
	--navigation-layout-justify: flex-end;
}

.wp-block-navigation.items-justified-space-between {
	--navigation-layout-justify: space-between;
}

.wp-block-navigation ul,
.wp-block-navigation ul li {
	margin: 0;
	padding: 0;
	list-style: none;
}

/*
 * Ögeler arasındaki boşluk <nav> üzerinde tanımlanır (aşağıdaki .am-ust
 * kuralı ya da panelden verilen blok aralığı), ögeler ise bir alttaki
 * <ul>'dedir. "gap: inherit" olmadan boşluk o listeye hiç ulaşmaz ve menü
 * bitişik dizilir.
 */
.wp-block-navigation__container,
.wp-block-navigation .wp-block-page-list {
	gap: inherit;
}

.wp-block-navigation__container {
	display: flex;
	flex-wrap: var(--navigation-layout-wrap, wrap);
	flex-direction: var(--navigation-layout-direction, initial);
	justify-content: var(--navigation-layout-justify, initial);
	align-items: var(--navigation-layout-align, initial);
	margin: 0;
	padding-left: 0;
	list-style: none;
}

/* Menü tek çocuksa satırı doldurur; hizalama seçenekleri böyle çalışır. */
.wp-block-navigation__container:only-child,
.wp-block-page-list:only-child {
	flex-grow: 1;
}

/* İçi boş alt menü kabı yer kaplamasın. */
.am-altmenu:empty {
	display: none;
}

.wp-block-navigation .wp-block-navigation-item {
	position: relative;
	display: flex;
	align-items: center;
	background-color: inherit;
}

.wp-block-navigation .wp-block-navigation-item__content {
	display: block;
	color: inherit;
}

.wp-block-navigation :where(a),
.wp-block-navigation :where(a:focus),
.wp-block-navigation :where(a:active) {
	text-decoration: none;
}

.am-ust .wp-block-navigation {
	gap: clamp(1.25rem, 3vw, 2.5rem);
}

.am-ust .wp-block-site-logo img {
	display: block;
}

/* İnce ayraç çizgisi. */
.am-ust--cizgili {
	border-bottom: 1px solid var(--wp--preset--color--cizgi);
}

/* --------------------------------------------------------------------------
   Açılır alt menü

   Kap "am-altmenu" sınıfını functions.php'deki gezinme süzgecinden alır;
   çekirdeğin submenu kuralları buraya hiç değmez. Açılıp kapanma :hover ve
   :focus-within ile olur, betik gerekmez.
   -------------------------------------------------------------------------- */

/* Kabın hizalanacağı kutu üst ögenin kendisidir. */
.am-ust .wp-block-navigation .has-child {
	position: relative;
	display: block;
}

/* Üst öge: adının yanında küçük bir ok. */
.am-ust .wp-block-navigation .has-child > .wp-block-navigation-item__content::after {
	content: "";
	display: inline-block;
	width: 0.34em;
	height: 0.34em;
	margin-left: 0.55em;
	margin-bottom: 0.15em;
	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	transform: rotate(45deg);
	transition: transform 0.2s ease;
}

.am-ust .wp-block-navigation .has-child:hover > .wp-block-navigation-item__content::after,
.am-ust .wp-block-navigation .has-child:focus-within > .wp-block-navigation-item__content::after {
	transform: rotate(-135deg) translate(-0.12em, -0.12em);
}

/*
 * Katman kutu değil, üst bilginin devamı: aynı zemin, tek saç teli çerçeve,
 * gölge yok. Sol kenarı üst ögenin sol kenarıyla aynı hizada başlar.
 */
.am-ust .am-altmenu {
	position: absolute;
	z-index: 30;
	top: calc(100% + 0.8rem);
	left: 0;
	display: block;
	min-width: 100%;
	width: max-content;
	margin: 0;
	padding: 0.35rem 0;
	list-style: none;
	border: 1px solid var(--wp--preset--color--cizgi);
	background: var(--wp--preset--color--krem);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.18s ease, visibility 0.18s;
}

/*
 * Yalnızca geniş ekranda. Dokunmatik cihazlarda :hover bir dokunuştan sonra
 * takılı kalabiliyor; medya sorgusu olmadan bu kural menü katmanı kapalıyken
 * alt menüyü görünür kılabilirdi.
 */
@media (min-width: 861px) {
	.am-ust .wp-block-navigation .has-child:hover > .am-altmenu,
	.am-ust .wp-block-navigation .has-child:focus-within > .am-altmenu {
		opacity: 1;
		visibility: visible;
	}
}

/* Bağlantı ile katman arasındaki boşlukta imleç düşmesin. */
.am-ust .am-altmenu::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 100%;
	height: 0.8rem;
}

.am-ust .am-altmenu > .wp-block-navigation-item {
	display: block;
}

.am-ust .am-altmenu .wp-block-navigation-item__content {
	display: block;
	padding: 0.55rem 1.25rem;
	white-space: nowrap;
}

.am-ust .am-altmenu .wp-block-navigation-item__content:hover,
.am-ust .am-altmenu .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--bordo);
}

/* --------------------------------------------------------------------------
   Mobil menü katmanı

   Geniş ekranda sarmalayıcılar "display: contents" ile kaybolur, menü doğrudan
   üst bilgi satırındaki yerini alır. Dar ekranda tam ekran bir katmana dönüşür;
   logo ve düğme katmanın üstünde kalır.
   -------------------------------------------------------------------------- */

.am-menu,
.am-menu__panel,
.am-menu__ic {
	display: contents;
}

.am-menu__dugme,
.am-menu__not {
	display: none;
}

@media (max-width: 860px) {
	/* İki sınıf: WordPress'in ürettiği düzen kuralını geçmek için. */
	.wp-block-group.am-ust {
		flex-wrap: nowrap;
		align-items: center;
	}

	.am-menu {
		display: block;
	}

	/* Logo ve düğme katmanın üzerinde kalır. */
	.am-ust .wp-block-site-logo,
	.am-menu__dugme {
		position: relative;
		z-index: 60;
	}

	/* --- Hamburger düğmesi: iki ince çizgi --- */

	.am-menu__dugme {
		display: grid;
		place-items: center;
		width: 44px;
		height: 44px;
		margin-right: -10px;
		padding: 0;
		border: 0;
		background: none;
		color: inherit;
		cursor: pointer;
		-webkit-appearance: none;
		appearance: none;
	}

	.am-menu__cizgi {
		position: relative;
		display: block;
		width: 24px;
		height: 12px;
	}

	.am-menu__cizgi::before,
	.am-menu__cizgi::after {
		content: "";
		position: absolute;
		left: 0;
		width: 24px;
		height: 1.5px;
		background: var(--wp--preset--color--murekkep);
		transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
	}

	.am-menu__cizgi::before {
		top: 0;
	}

	.am-menu__cizgi::after {
		bottom: 0;
	}

	.am-menu--acik .am-menu__cizgi::before {
		transform: translateY(5.25px) rotate(45deg);
	}

	.am-menu--acik .am-menu__cizgi::after {
		transform: translateY(-5.25px) rotate(-45deg);
	}

	/* --- Katman --- */

	.am-menu__panel {
		display: block;
		position: fixed;
		inset: 0;
		z-index: 40;
		overflow-y: auto;
		padding: calc(var(--am-ust-yukseklik, 5.5rem) + 2.5rem) clamp(1.5rem, 6vw, 5rem) 2.5rem;
		background: var(--wp--preset--color--krem);
		opacity: 0;
		visibility: hidden;
		transform: translateY(-6px);
		transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s;

		/*
		 * Kapalı katman dokunuşları yutmasın.
		 *
		 * "visibility: hidden" tek başına yetmiyor: bir alt öge kendi
		 * görünürlüğünü açıkça geri açarsa yeniden tıklanabilir hâle geliyor ve
		 * katman kapalıyken ekranın o noktasına dokunan kişi menü bağlantısına
		 * basmış oluyor. pointer-events, alt ögelerin geri açamayacağı bir
		 * güvence.
		 */
		pointer-events: none;
	}

	.am-menu--acik .am-menu__panel {
		opacity: 1;
		visibility: visible;
		transform: none;
		pointer-events: auto;
	}

	.am-menu__ic {
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		gap: 3rem;
		min-height: 100%;
	}

	/* --- Menü bağlantıları --- */

	.am-menu__panel .wp-block-navigation,
	.am-menu__panel .wp-block-navigation__container,
	.am-menu__panel .wp-block-page-list {
		display: block;
		gap: 0;
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.am-menu__panel .wp-block-navigation-item__content {
		display: block;
		padding: 0.3rem 0;
		font-family: var(--wp--preset--font-family--baslik);
		font-size: clamp(1.875rem, 9vw, 2.75rem);
		font-weight: 400;
		line-height: 1.35;
		letter-spacing: -0.015em;
		text-decoration: none;
		color: var(--wp--preset--color--murekkep);

		/*
		 * Büyük/küçük harf dönüşümü burada zorlanmıyor: menü ne yazıldıysa
		 * öyle görünsün, masaüstüyle katman arasında fark olmasın. Panelden
		 * bir dönüşüm seçilirse o da her iki yerde birden geçerli olur.
		 */
	}

	.am-menu__panel .current-menu-item .wp-block-navigation-item__content,
	.am-menu__panel .wp-block-navigation-item__content:hover {
		color: var(--wp--preset--color--bordo);
	}

	/*
	 * Katmanda açılıp kapanma yok: alt sayfalar üst ögenin hemen altında,
	 * onunla aynı sol hizada, hep açık durur. Ayırt eden şey girinti değil
	 * tipografi; büyük serif başlıkların küçültülmüş kopyası gibi durmasın.
	 */
	.am-menu__panel .am-altmenu {
		position: static;
		display: block;
		width: auto;
		min-width: 0;
		margin: 0;
		padding-left: 2rem;
		border: 0;
		background: none;
		opacity: 1;
		transition: none;

		/*
		 * "visible" değil "inherit": masaüstü kuralı bu kabı gizli tuttuğu için
		 * burada geri açmak gerekiyor, ama sabit bir değer verirsek katman
		 * kapalıyken de görünür kalır ve dokunuşları yakalar. Böyle yazınca
		 * katmanla birlikte açılıp kapanıyor.
		 */
		visibility: inherit;
	}

	.am-menu__panel .am-altmenu::before {
		display: none;
	}

	/*
	 * Alt sayfalar üst ögelerle aynı ailede dizilir, yalnızca bir tık küçük.
	 * Tire mutlak konumlu: metin ikinci satıra taşarsa tirenin altına değil,
	 * ilk satırın hizasına devam eder.
	 */
	.am-menu__panel .am-altmenu .wp-block-navigation-item__content {
		position: relative;
		padding-left: 1.35em;
		font-size: clamp(1.5rem, 7.2vw, 2.2rem);
		white-space: normal;
	}

	.am-menu__panel .am-altmenu .wp-block-navigation-item__content::before {
		content: "–";
		position: absolute;
		left: 0;
	}

	.am-menu__panel .am-altmenu .current-menu-item > .wp-block-navigation-item__content {
		color: var(--wp--preset--color--bordo);
	}

	/* Ok katmanda gereksiz: alt sayfalar zaten görünür durumda. */
	.am-menu__panel .wp-block-navigation .has-child > .wp-block-navigation-item__content::after {
		display: none;
	}

	/* Bağlantılar sırayla belirir. */
	.am-menu__panel .wp-block-navigation-item {
		opacity: 0;
		transform: translateY(12px);
		transition: opacity 0.4s ease, transform 0.4s ease;
	}

	.am-menu--acik .wp-block-navigation-item {
		opacity: 1;
		transform: none;
	}

	.am-menu--acik .wp-block-navigation-item:nth-child(1) { transition-delay: 0.08s; }
	.am-menu--acik .wp-block-navigation-item:nth-child(2) { transition-delay: 0.14s; }
	.am-menu--acik .wp-block-navigation-item:nth-child(3) { transition-delay: 0.20s; }
	.am-menu--acik .wp-block-navigation-item:nth-child(4) { transition-delay: 0.26s; }
	.am-menu--acik .wp-block-navigation-item:nth-child(5) { transition-delay: 0.32s; }
	.am-menu--acik .wp-block-navigation-item:nth-child(6) { transition-delay: 0.38s; }

	/* --- Katmanın altındaki not --- */

	.am-menu__not {
		display: block;
		margin: 0;
		padding-top: 1.5rem;
		border-top: 1px solid var(--wp--preset--color--cizgi);
		font-size: var(--wp--preset--font-size--sm);
		line-height: 1.6;
		color: var(--wp--preset--color--kagit);
		max-width: 28ch;
	}
}

/* Katman açıkken arka plan kaymasın. */
.am-kilit,
.am-kilit body {
	overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
	.am-menu__panel,
	.am-menu__panel .wp-block-navigation-item,
	.am-menu__cizgi::before,
	.am-menu__cizgi::after {
		transition-duration: 0.01ms;
		transition-delay: 0ms;
	}
}

/* ==========================================================================
   3. Alt bilgi
   ========================================================================== */

/* Zemin rengi panelden değiştirilebilir; buradaki hiçbir kural sabit renk
   varsaymaz, hepsi seçilen metin renginden (currentColor) türer. */
.am-alt {
	color: inherit;
}

.am-alt :where(h1, h2, h3, h4, h5, h6, p, li) {
	color: inherit;
}

.am-alt a {
	color: inherit;
	opacity: 0.78;
}

.am-alt a:hover {
	opacity: 1;
	text-decoration: underline;
}

.am-alt .wp-block-navigation {
	gap: 1.5rem;
}

/* Alt bilgi tek sıra kalır; açılır menüler yalnızca üst bilgide çalışır. */
.am-alt .wp-block-navigation .has-child .wp-block-navigation__submenu-container,
.am-alt .wp-block-navigation__submenu-icon,
.am-alt .wp-block-navigation-submenu__toggle {
	display: none;
}

/* Logo, üst bilgideki ile aynı blok; koyu zeminde krem görünür. */
.am-alt .am-logo-yazi a {
	color: inherit;
	opacity: 1;
}

.am-alt .wp-block-site-logo img {
	display: block;
}

/* Telif satırının üstündeki ince çizgi. */
.am-alt__cizgi {
	border-top: 1px solid color-mix(in srgb, currentColor 22%, transparent);
}

/* Slogan Ayarlar'dan gelir; koyu zeminde kendi rengini kullanmasın. */
.am-alt .wp-block-site-tagline {
	color: inherit;
	opacity: 0.8;
}

/*
 * Adresi girilmemiş sosyal simgeyi gizleme kuralı burada DEĞİL: bu dosya
 * editöre de yükleniyor ve kural orada da geçerli olduğu için, adresi henüz
 * girilmemiş simge editörde de kaybolup tıklanamaz hâle geliyordu. Kural
 * yalnızca ön yüze basılıyor (bkz. functions.php).
 */

/* İletişim: Instagram ve e-posta simgeleri.
   Çekirdek blok CSS'i devre dışı (bkz. functions.php); gereken düzen burada. */
.wp-block-social-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.85rem;
	margin: 0.25rem 0 0;
	padding: 0;
	list-style: none;
	background: none;
}

.wp-block-social-link {
	display: block;
	margin: 0;
	line-height: 0;
}

.wp-block-social-link a {
	display: flex;
	align-items: center;
	padding: 0;
	line-height: 0;
	color: inherit;
	text-decoration: none;
}

.wp-block-social-link svg {
	display: block;
	width: 1.45em;
	height: 1.45em;
	fill: currentColor;
}

/*
 * Servis adını burada gizlemiyoruz. Çekirdek, blokta "Etiketleri göster"
 * kapalıyken etikete zaten screen-reader-text sınıfını veriyor; biz de
 * gizleseydik o seçenek hiç çalışmazdı. İletişim sayfası etiketleri açık
 * kullanıyor.
 */

/* --------------------------------------------------------------------------
   İletişim sayfasındaki sosyal medya listesi

   Simge + servis adı, alt alta satırlar hâlinde. Blok panelde normal
   çalışmaya devam eder: servis eklenip çıkarılabilir, sıraları değişir.
   -------------------------------------------------------------------------- */

.am-iletisim__sosyal {
	display: block;
	margin: 0;
	border-top: 1px solid var(--wp--preset--color--cizgi);
}

.am-iletisim__sosyal .wp-block-social-link {
	display: block;
	margin: 0;
	line-height: inherit;
	border-bottom: 1px solid var(--wp--preset--color--cizgi);
}

.am-iletisim__sosyal .wp-block-social-link a {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	padding: 1rem 0.25rem;
	line-height: 1;
	color: inherit;
	transition: color 0.18s ease, padding-left 0.18s ease;
}

.am-iletisim__sosyal .wp-block-social-link a:hover,
.am-iletisim__sosyal .wp-block-social-link a:focus-visible {
	color: var(--wp--preset--color--bordo);
	padding-left: 0.75rem;
}

.am-iletisim__sosyal .wp-block-social-link svg {
	width: 1.3em;
	height: 1.3em;
	flex: 0 0 auto;
}

.am-iletisim__sosyal .wp-block-social-link-label {
	font-family: var(--wp--preset--font-family--govde);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* Satırın sonunda ince bir ok. */
.am-iletisim__sosyal .wp-block-social-link a::after {
	content: "";
	width: 0.4em;
	height: 0.4em;
	margin-left: auto;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	transform: rotate(45deg);
	opacity: 0.45;
}

/* Öne çıkan e-posta bağlantısı. */
.am-iletisim__posta a {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid var(--wp--preset--color--cizgi);
	transition: color 0.18s ease, border-color 0.18s ease;
}

.am-iletisim__posta a:hover,
.am-iletisim__posta a:focus-visible {
	color: var(--wp--preset--color--bordo);
	border-bottom-color: currentColor;
}

.am-alt .wp-block-social-links {
	color: inherit;
}

.am-alt .wp-block-social-link a {
	opacity: 0.85;
	transition: opacity 0.2s ease;
}

.am-alt .wp-block-social-link a:hover,
.am-alt .wp-block-social-link a:focus-visible {
	opacity: 1;
}

.am-alt .is-style-am-etiket {
	color: inherit;
	opacity: 0.65;
}

/* ==========================================================================
   4. Kayık çerçeve (hero görseli)
   ========================================================================== */

.is-style-am-cerceve {
	position: relative;
	isolation: isolate;
}

.is-style-am-cerceve::before {
	content: "";
	position: absolute;
	inset: -16px 16px 16px -16px;
	border: 1px solid var(--wp--preset--color--bordo);
	z-index: -1;
	pointer-events: none;
}

.is-style-am-cerceve img {
	display: block;
	width: 100%;
}

@media (max-width: 700px) {
	.is-style-am-cerceve::before {
		inset: -10px 10px 10px -10px;
	}
}

/* Çekirdek ayraç 2px; bu tasarımda saç teli inceliği isteniyor. */
.wp-block-separator {
	border-top-width: 1px;
	opacity: 1;
}

/*
 * Giriş bölümündeki dikey görsel çok büyümesin.
 *
 * Sınır görsele değil çerçeveye veriliyor: çerçeve sütun genişliğinde kalsaydı
 * altına yazılan altyazı görselden geniş olur, sağ kenarları tutmazdı.
 */
.am-hero-gorsel {
	max-width: 380px;
}

.am-hero-gorsel img {
	width: 100%;
	height: auto;
}

/* --- Kurucular --- */

/* Portre; yüklenen fotoğraf hangi ölçüde olursa olsun aynı orana oturur. */
.am-kisi__gorsel img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

/*
 * Köşe yuvarlaklığı bilerek ağırlıksız yazıldı.
 *
 * Çekirdeğin "Yuvarlatılmış" biçemi :where() içinde tanımlı, yani ağırlığı
 * çok düşük. Buraya normal bir seçici yazsaydık panelden seçilen biçemi
 * ezerdi ve seçenek çalışmazdı. :where() ile bu kural yalnızca varsayılan
 * olur, panelden bir biçem seçilince kenara çekilir.
 */
:where(.am-kisi__gorsel img) {
	border-radius: 2px;
}

/*
 * Hakkımızda sayfasındaki kurucu kartlarında portre sütunu tam doldurmuyor:
 * biraz küçülüp ortalanınca kartlar daha dengeli duruyor. Kurucunun kendi
 * sayfasındaki büyük portre bundan etkilenmez, orada sınır .am-kisi yok.
 */
.am-kisi .am-kisi__gorsel {
	width: 80%;
	margin-inline: auto;
}

/*
 * Kart kişinin sayfasına bağlıysa görsel ve ad tek parça gibi davranır:
 * ikisinden birinin üzerine gelmek her ikisini birden tepki verdirir.
 */
.am-kisi__gorsel a {
	display: block;
	overflow: hidden;
	border-radius: 2px;
}

/*
 * Yakınlaşma efekti sarmalayıcının kenarında kırpılıyor. Görsel yuvarlaksa
 * sarmalayıcı da yuvarlak olmalı; yoksa büyüyen daire köşelerden düz kesilir.
 */
.am-kisi__gorsel.is-style-rounded a {
	border-radius: 9999px;
}

.am-kisi__gorsel img {
	transition: transform 0.6s cubic-bezier(0.2, 0, 0.2, 1);
}

.am-kisi:hover .am-kisi__gorsel img,
.am-kisi:focus-within .am-kisi__gorsel img {
	transform: scale(1.04);
}

.am-kisi :where(h2, h3) a {
	color: inherit;
	text-decoration: none;
}

.am-kisi:hover :where(h2, h3) a,
.am-kisi :where(h2, h3) a:focus-visible {
	color: var(--wp--preset--color--bordo);
}

@media (prefers-reduced-motion: reduce) {
	.am-kisi__gorsel img {
		transition: none;
	}

	.am-kisi:hover .am-kisi__gorsel img,
	.am-kisi:focus-within .am-kisi__gorsel img {
		transform: none;
	}
}

.am-kisi__sosyal {
	color: var(--wp--preset--color--bordo);
}

.am-kisi__sosyal .wp-block-social-link svg {
	width: 1.35em;
	height: 1.35em;
}

.am-kisi__sosyal .wp-block-social-link a {
	transition: opacity 0.2s ease;
}

.am-kisi__sosyal .wp-block-social-link a:hover,
.am-kisi__sosyal .wp-block-social-link a:focus-visible {
	opacity: 0.7;
}

/*
 * İkincil buton. Panelde: buton > Stiller > İkincil.
 * Yan yana iki buton varken biri asıl eylem, diğeri yan yol olsun diye.
 * Panelden renk seçilirse o renk geçerli olur; buradaki kurallar yalnızca
 * varsayılanı kurar.
 */
.wp-block-button.is-style-am-ikincil > .wp-block-button__link:not(.has-background) {
	background-color: transparent;
}

.wp-block-button.is-style-am-ikincil > .wp-block-button__link:not(.has-text-color) {
	color: var(--wp--preset--color--murekkep);
}

.wp-block-button.is-style-am-ikincil > .wp-block-button__link {
	box-shadow: inset 0 0 0 1px currentColor;
}

.wp-block-button.is-style-am-ikincil > .wp-block-button__link:hover:not(.has-background),
.wp-block-button.is-style-am-ikincil > .wp-block-button__link:focus-visible:not(.has-background) {
	background-color: var(--wp--preset--color--murekkep);
	color: var(--wp--preset--color--krem);
}

/*
 * Metin içi vurgu — fareyle seçilmiş gibi, yazıya yapışık renk.
 *
 * Panelde: yazıyı seçin, araç çubuğunun sonundaki oku açın, "Vurgula".
 * Blok arka planından farkı, rengin bloğun tamamına değil yalnızca seçilen
 * kelimelere uygulanması.
 *
 * Renk seçilmezse tema bordoyu kullanır; panelden renk verilirse çekirdek
 * satır içi stil yazar ve onu ezer, buradaki dolgu ile satır kırılma
 * davranışı yine geçerli kalır.
 */
mark {
	background-color: var(--wp--preset--color--bordo);
	color: var(--wp--preset--color--krem);

	/*
	 * Tarayıcının seçim vurgusu satır kutusunun tamamını kaplar; harfe yapışık
	 * bir dolgu ondan dar görünür. Üstten alta göre biraz daha fazla veriyoruz:
	 * büyük harf ve uzayan harfler üstte daha çok yer istiyor.
	 */
	padding: 0.24em 0.45em 0.16em;
	border-radius: 1px;

	/* Dolgu satırı yükselttiği için komşu satırlara yer açıyoruz. */
	line-height: 1.9;

	/* Vurgu iki satıra bölünürse dolgu her satırın başına ve sonuna uygulanır. */
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

/* Küçük büyük harf üst başlık. Panelde: Stiller > Etiket */
.is-style-am-etiket {
	font-family: var(--wp--preset--font-family--govde);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--kagit);
}

/* ==========================================================================
   5. Duyuru şeridi ve katmanı
   ========================================================================== */

/*
 * Sarmalayıcıya bilerek konum/z-index verilmiyor.
 *
 * Verilseydi iki sorun birden çıkardı: şerit üst bilgiyi geçip açılır alt
 * menünün üstüne biner, ayrıca yığın bağlamı kurulduğu için içerideki katman
 * (fixed, z-index 90) o bağlamın içine hapsolur ve üst bilginin altında kalır.
 * Konumsuz bırakınca şerit akışta kalır, katman ise en üste çıkar.
 */

/* --- Şerit --- */

/*
 * Şerit sayfanın ilk bloğuysa üst bilgiye yapışsın.
 *
 * WordPress üst düzey bloklara blok aralığı kadar üst boşluk veriyor
 * (:where(.wp-site-blocks) > *). Şerit tam genişlikte ve sayfanın tepesinde
 * durduğunda o boşluk üst bilgiyle arasında bir şerit krem alan bırakıyor.
 */
.wp-site-blocks > main:has(> .wp-block-post-content > .am-duyuru:first-child) {
	margin-block-start: 0;
}

/*
 * Bildirim çubuğu değil, derginin sayı başlığı gibi: solda çerçeveli dönem
 * rozeti, yanında küçük tür etiketi ve altında serif cümle.
 */
.am-duyuru__serit {
	position: relative;
	display: flex;
	align-items: center;
	gap: clamp(0.9rem, 2.5vw, 1.75rem);
	width: 100%;
	margin: 0;
	padding-block: clamp(0.85rem, 2vw, 1.25rem);

	/*
	 * Zemin uçtan uca, yazı ise üst bilgideki logo ve menüyle aynı sütunda.
	 * İki değerin büyüğü alınıyor: dar ekranda sayfanın kenar payı, geniş
	 * ekranda içeriği geniş sütuna ortalayacak pay.
	 */
	padding-inline: max(
		clamp(1.25rem, 6vw, 5rem),
		calc((100% - var(--wp--style--global--wide-size)) / 2)
	);
	border: 0;
	font: inherit;
	text-align: left;
	cursor: pointer;
	overflow: hidden;
	transition: background-color 0.3s ease;
	-webkit-appearance: none;
	appearance: none;
}

/* Panelden renk seçilmediyse tema varsayılanı geçerli. */
.am-duyuru:not(.has-background) .am-duyuru__serit {
	background-color: var(--wp--preset--color--bordo);
}

.am-duyuru:not(.has-text-color) .am-duyuru__serit {
	color: var(--wp--preset--color--krem);
}

/*
 * Posterdeki gravür taramasına gönderme: çok soluk, eğik saç teli çizgiler.
 * Yakından bakılmadıkça fark edilmez, zemine kâğıt dokusu hissi verir.
 */
.am-duyuru__serit::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image: repeating-linear-gradient(
		-45deg,
		transparent 0 6px,
		color-mix(in srgb, var(--wp--preset--color--krem) 7%, transparent) 6px 7px
	);
}

.am-duyuru__serit:hover,
.am-duyuru__serit:focus-visible {
	background-color: color-mix(in srgb, var(--wp--preset--color--murekkep) 20%, var(--wp--preset--color--bordo));
}

/* Dönem rozeti: derginin sayı numarası gibi. Boş bırakılırsa basılmaz. */
.am-duyuru__rozet {
	flex: 0 0 auto;
	padding: 0.45em 0.8em;
	border: 1px solid currentColor;
	font-family: var(--wp--preset--font-family--govde);
	font-size: 0.6875rem;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	white-space: nowrap;
}

.am-duyuru__metin {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	flex: 1 1 auto;
	min-width: 0;
}

.am-duyuru__etiket {
	font-family: var(--wp--preset--font-family--govde);
	font-size: 0.6875rem;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	opacity: 0.75;
}

/* Serif cümle: şerit bir bildirim değil, bir davet gibi okunsun. */
.am-duyuru__baslik {
	position: relative;
	align-self: flex-start;
	max-width: 100%;
	font-family: var(--wp--preset--font-family--baslik);
	font-size: clamp(1.0625rem, 1.9vw, 1.375rem);
	line-height: 1.25;
	overflow-wrap: anywhere;
}

/* Üzerine gelince altı soldan sağa çizilir. */
.am-duyuru__baslik::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -0.16em;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.4s cubic-bezier(0.2, 0, 0.2, 1);
}

.am-duyuru__serit:hover .am-duyuru__baslik::after,
.am-duyuru__serit:focus-visible .am-duyuru__baslik::after {
	transform: scaleX(1);
}

.am-duyuru__eylem {
	display: inline-flex;
	align-items: center;
	gap: 0.7em;
	flex: 0 0 auto;
	font-family: var(--wp--preset--font-family--govde);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	white-space: nowrap;
	opacity: 0.85;
}

.am-duyuru__ok {
	width: 0.42em;
	height: 0.42em;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	transform: rotate(45deg);
	transition: transform 0.3s ease;
}

.am-duyuru__serit:hover .am-duyuru__ok,
.am-duyuru__serit:focus-visible .am-duyuru__ok {
	transform: rotate(45deg) translate(0.16em, -0.16em);
}

/* Dar ekranda eylem yazısı düşer, yalnızca ok kalır. */
@media (max-width: 640px) {
	.am-duyuru__serit {
		gap: 0.8rem;
	}

	.am-duyuru__eylem {
		font-size: 0;
		gap: 0;
	}

	.am-duyuru__ok {
		width: 0.5rem;
		height: 0.5rem;
	}
}

/* --- Katman --- */

.am-duyuru__katman {
	position: fixed;
	inset: 0;
	z-index: 90;
	display: grid;
	place-items: center;
	padding: clamp(1rem, 5vw, 3rem);
	background: color-mix(in srgb, var(--wp--preset--color--lacivert) 80%, transparent);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.28s ease, visibility 0.28s;

	/* Kapalıyken dokunuşları yutmasın. */
	pointer-events: none;
}

@supports (backdrop-filter: blur(3px)) {
	.am-duyuru__katman {
		backdrop-filter: blur(3px);
	}
}

.am-duyuru--acik .am-duyuru__katman {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.am-duyuru__kutu {
	position: relative;
	width: min(42rem, 100%);
	max-height: min(82vh, 44rem);
	overflow-y: auto;
	padding: clamp(1.75rem, 5vw, 3rem);
	background: var(--wp--preset--color--kutu);
	border: 1px solid var(--wp--preset--color--cizgi);
	transform: translateY(0.75rem) scale(0.985);
	transition: transform 0.28s cubic-bezier(0.2, 0, 0.2, 1);
}

.am-duyuru--acik .am-duyuru__kutu {
	transform: none;
}

.am-duyuru__kapat {
	position: absolute;
	top: 0.85rem;
	right: 0.85rem;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

.am-duyuru__kapat span {
	position: relative;
	display: block;
	width: 15px;
	height: 15px;
}

.am-duyuru__kapat span::before,
.am-duyuru__kapat span::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 15px;
	height: 1.5px;
	background: currentColor;
	transition: background-color 0.2s ease;
}

.am-duyuru__kapat span::before { transform: rotate(45deg); }
.am-duyuru__kapat span::after  { transform: rotate(-45deg); }

.am-duyuru__kapat:hover span::before,
.am-duyuru__kapat:hover span::after {
	background: var(--wp--preset--color--bordo);
}

.am-duyuru__kutu-etiket {
	margin: 0;
	font-family: var(--wp--preset--font-family--govde);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--bordo);
}

.am-duyuru__kutu-baslik {
	margin: 0.6rem 0 0;
	font-family: var(--wp--preset--font-family--baslik);
	font-size: clamp(1.5rem, 3.4vw, 2rem);
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: -0.01em;
	color: var(--wp--preset--color--murekkep);
}

/* Başlığın altında ince bir ayraç: içerik ayrı bir bölüm gibi başlasın. */
.am-duyuru__icerik {
	margin-top: var(--wp--preset--spacing--30);
	padding-top: var(--wp--preset--spacing--30);
	border-top: 1px solid var(--wp--preset--color--cizgi);
}

.am-duyuru__icerik > :first-child { margin-top: 0; }
.am-duyuru__icerik > :last-child  { margin-bottom: 0; }

.am-duyuru__icerik p {
	margin: 0 0 1em;
}

.am-duyuru__icerik :where(h2, h3, h4) {
	margin: 1.6em 0 0.5em;
	font-size: var(--wp--preset--font-size--lg);
}

@media (prefers-reduced-motion: reduce) {
	.am-duyuru__nokta,
	.am-duyuru__ok,
	.am-duyuru__kutu,
	.am-duyuru__katman {
		animation: none;
		transition-duration: 0.01ms;
	}

	.am-duyuru__kutu {
		transform: none;
	}
}

/* ==========================================================================
   6. Etkinlikler bloğu
   ========================================================================== */

/* Ölçüler "em" cinsinden: panelden yazı boyutu değiştirilince hepsi birlikte ölçeklenir. */
.am-etk {
	--am-etk-soluk: var(--wp--preset--color--kagit);
	--am-etk-cizgi: var(--wp--preset--color--cizgi);
	--am-etk-vurgu: var(--wp--preset--color--bordo);
}

.am-etk__ic {
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
}

.am-etk__ust {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem 1.5rem;
	margin-bottom: var(--wp--preset--spacing--30);
}

.am-etk__baslik {
	margin: 0;
	font-family: var(--wp--preset--font-family--baslik);
	font-size: 1.45em;
	font-weight: 400;
	line-height: 1.2;
	color: inherit;
}

.am-etk__tum {
	font-size: 0.85em;
	color: var(--am-etk-vurgu);
	text-decoration: none;
	white-space: nowrap;
}

.am-etk__tum:hover {
	text-decoration: underline;
}

.am-etk__liste {
	list-style: none;
	margin: 0;
	padding: 0;
}

.am-etk__bos {
	margin: 0;
	color: var(--am-etk-soluk);
	font-size: 0.9em;
}

.am-etk__link {
	display: flex;
	gap: 1.15rem;
	align-items: flex-start;
	text-decoration: none;
	color: inherit;
}

.am-etk__tarih {
	display: flex;
	flex-direction: column;
	align-items: center;
	flex: 0 0 auto;
	min-width: 2.75em;
	line-height: 1;
}

.am-etk__gun {
	font-family: var(--wp--preset--font-family--baslik);
	font-size: 1.7em;
	color: var(--am-etk-vurgu);
}

.am-etk__ay {
	margin-top: 0.35em;
	font-size: 0.65em;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--am-etk-soluk);
}

.am-etk__ad {
	display: block;
	font-family: var(--wp--preset--font-family--baslik);
	font-size: 1.15em;
	line-height: 1.3;
}

.am-etk__link:hover .am-etk__ad {
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.am-etk__alt {
	display: block;
	margin-top: 0.4em;
	font-size: 0.85em;
	color: var(--am-etk-soluk);
}

.am-etk__rozet {
	display: inline-block;
	margin-top: 0.6em;
	padding: 0.2em 0.65em;
	border: 1px solid currentColor;
	border-radius: 999px;
	font-size: 0.72em;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--bordo);
}

/* --- Görünüm: Şerit (koyu bant) --- */

/* Renkler currentColor türevi: panelden metin rengi değiştirilirse hepsi uyar. */
.am-etk--serit {
	--am-etk-soluk: color-mix(in srgb, currentColor 62%, transparent);
	--am-etk-cizgi: color-mix(in srgb, currentColor 22%, transparent);
	--am-etk-vurgu: currentColor;
	padding-block: var(--wp--preset--spacing--50);
	padding-inline: clamp(1.25rem, 6vw, 5rem);
}

/* Panelden renk seçilmediyse tema varsayılanı geçerli. */
.am-etk--serit:not(.has-background) {
	background-color: var(--wp--preset--color--lacivert);
}

.am-etk--serit:not(.has-text-color) {
	color: var(--wp--preset--color--krem);
}

.am-etk--serit .am-etk__rozet {
	color: color-mix(in srgb, currentColor 75%, transparent);
}

.am-etk--serit .am-etk__liste {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	border-top: 1px solid var(--am-etk-cizgi);
}

.am-etk--serit .am-etk__oge {
	padding: var(--wp--preset--spacing--30) 0;
	border-bottom: 1px solid var(--am-etk-cizgi);
}

@media (min-width: 782px) {
	.am-etk--serit .am-etk__oge + .am-etk__oge {
		padding-left: var(--wp--preset--spacing--30);
		border-left: 1px solid var(--am-etk-cizgi);
	}

	.am-etk--serit .am-etk__oge {
		padding-right: var(--wp--preset--spacing--30);
	}
}

/* --- Görünüm: Kart --- */

/*
 * "auto-fill", "auto-fit" değil.
 *
 * auto-fit boş kalan sütunları çökertir; tek etkinlik olduğunda o tek kart
 * bütün satırı kaplardı. auto-fill sütunları yerinde bırakır, kart her zaman
 * aynı genişlikte olur — üç etkinlik varken nasılsa bir etkinlik varken de öyle.
 */
.am-etk--kart .am-etk__liste {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
	gap: var(--wp--preset--spacing--30);
}

.am-etk--kart .am-etk__oge {
	display: flex;
	background: var(--wp--preset--color--kutu);
	border: 1px solid var(--am-etk-cizgi);
	border-radius: 2px;
	overflow: hidden;
}

.am-etk--kart .am-etk__link {
	flex-direction: column;
	gap: 0;
	width: 100%;

	/*
	 * Taban kural "align-items: flex-start" veriyor; orada bağlantı satır
	 * yönünde olduğu için doğru. Kartta sütuna dönünce aynı değer yatay eksene
	 * geçiyor ve çocuklar içeriklerinin genişliğine büzülüyor. Görsel kabının
	 * içindeki resim "width: 100%" olduğu için genişlik belirsiz kalıyor,
	 * kutu sıfıra iniyor ve tembel yüklenen resim hiç istenmiyordu.
	 */
	align-items: stretch;
}

.am-etk--kart .am-etk__gorsel {
	display: block;

	/* Genişlik her hâlükârda belirli olsun; tembel yükleme buna bağlı. */
	width: 100%;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: var(--wp--preset--color--krem);
}

.am-etk--kart .am-etk__gorsel img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.am-etk--kart .am-etk__govde {
	padding: 0 var(--wp--preset--spacing--30) var(--wp--preset--spacing--30);
}

.am-etk--kart .am-etk__tarih {
	flex-direction: row;
	align-items: baseline;
	gap: 0.45em;
	margin-bottom: 0.5em;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--30) 0;
}

.am-etk--kart .am-etk__gun {
	font-size: 1.5rem;
}

.am-etk--kart .am-etk__ay {
	margin-top: 0;
}

/* --- Görünüm: Liste --- */

.am-etk--liste .am-etk__oge {
	border-top: 1px solid var(--am-etk-cizgi);
}

.am-etk--liste .am-etk__oge:last-child {
	border-bottom: 1px solid var(--am-etk-cizgi);
}

.am-etk--liste .am-etk__link {
	align-items: center;
	padding-block: var(--wp--preset--spacing--30);
}

.am-etk--liste .am-etk__tarih {
	flex-direction: row;
	align-items: baseline;
	gap: 0.45em;
	min-width: 5.5em;
}

.am-etk--liste .am-etk__ay {
	margin-top: 0;
}

/*
 * Geçmiş / tamamlanmış etkinlikler geri çekilir. Saydamlık tek tek renklere
 * değil ögenin tamamına verilir: böylece gün, ad, ay, alt satır, rozet ve
 * çerçeve aynı oranda soluklaşır, hepsi palet renklerinin aynı ölçüde
 * saydam hâli olur.
 */
.am-etk__oge--gecmis {
	opacity: 0.65;
}

/* ==========================================================================
   7. Başvuru ekranları

   Şablonlar temada (basvuru/form.php, basvuru/status.php), eklentinin kendi
   CSS'i devre dışı (bkz. functions.php). Görünümün tamamı burada.
   am-bsv-* sınıfları bizim, bsv-* sınıfları eklentinin form üreticisinden gelir.
   ========================================================================== */

/* Sayfanın tamamı bu dört adımı kullanır; başka dikey boşluk yok. */
.am-bsv {
	--am-bsv-cerceve: var(--wp--preset--color--bordo); /* künye, kutu ve ayraçlar */
	--am-bsv-alan: var(--wp--preset--color--cizgi);    /* form alanlarının kenarı */
	--am-bsv-yakin: 0.6rem;   /* etiket ↔ değer */
	--am-bsv-ic: 1.25rem;     /* kutu içi bloklar */
	--am-bsv-blok: 1.75rem;   /* ardışık bloklar */
	--am-bsv-bolum: 2.5rem;   /* bölüm ayracının iki yanı */
}

.bsv-wrap {
	width: min(760px, 100% - 2.5rem);
	margin-inline: auto;
	padding-block: 3rem 4rem;
}

/* --- Başlık --- */

.am-bsv__ust {
	margin-bottom: var(--am-bsv-bolum);
}

.am-bsv__etiket {
	margin: 0 0 0.6rem;
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--kagit);
}

.am-bsv__baslik {
	margin: 0;
	font-family: var(--wp--preset--font-family--baslik);
	font-size: var(--wp--preset--font-size--xxl);
	font-weight: 400;
	line-height: 1.15;
	letter-spacing: -0.01em;
}

.am-bsv__gorsel {
	margin: 0 0 var(--am-bsv-bolum);
	border-radius: 2px;
	overflow: hidden;
}

.am-bsv__gorsel img {
	display: block;
	width: 100%;
	height: auto;

	/*
	 * Etkinlik kartlarıyla aynı oran (3:2). İkisi ayrı orandayken aynı
	 * fotoğraf iki sayfada iki farklı biçimde kırpılıyordu. Yüklenen görsel
	 * de 3:2 ise hiçbir yerde kırpılmaz.
	 */
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

/* --- Künye: tarih, yer, ücret, kontenjan ---
   Eşit kutucuk ızgarası değil; her bilgi ağırlığına göre yerleşir, hiçbir
   koşulda boş hücre kalmaz. --- */

.am-bsv__kunye {
	margin-bottom: var(--am-bsv-bolum);
	border: 1px solid var(--am-bsv-cerceve);
	border-radius: 2px;
	background: var(--wp--preset--color--kutu);
	overflow: hidden;
}

/* Tarih: en önemli bilgi, en büyük yer. */
.am-bsv__tarih {
	display: flex;
	align-items: center;
	gap: 1.15rem;
	padding: 1.15rem 1.35rem;
}

.am-bsv__yaprak {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 4.1rem;
	padding: 0.55rem 0;
	border: 1px solid var(--am-bsv-cerceve);
	border-radius: 2px;
	background: var(--wp--preset--color--kutu);
	line-height: 1;
}

.am-bsv__gun {
	font-family: var(--wp--preset--font-family--baslik);
	font-size: 1.75rem;
	color: var(--wp--preset--color--bordo);
}

.am-bsv__ay {
	margin-top: 0.35em;
	font-size: 0.625rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--kagit);
}

.am-bsv__tarih-metin {
	min-width: 0;
}

.am-bsv__gun-adi {
	margin: 0;
	font-family: var(--wp--preset--font-family--baslik);
	font-size: var(--wp--preset--font-size--lg);
	line-height: 1.3;
	text-transform: capitalize;
}

.am-bsv__tarih-tam {
	margin: 0.2em 0 0;
	font-size: var(--wp--preset--font-size--sm);
	color: var(--wp--preset--color--kagit);
}

.am-bsv__ayirac {
	margin: 0 0.25em;
	opacity: 0.6;
}

/* Yer ve ücret: tek satır. Biri yoksa diğeri satırı kaplar, delik kalmaz. */
.am-bsv__satir {
	display: flex;
	flex-wrap: wrap;
	border-top: 1px solid var(--am-bsv-cerceve);
}

.am-bsv__tarih + .am-bsv__satir {
	border-top: 1px solid var(--am-bsv-cerceve);
}

.am-bsv__hucre {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	flex: 1 1 12rem;
	min-width: 0;
	padding: 1rem 1.35rem;
}

.am-bsv__hucre + .am-bsv__hucre {
	border-left: 1px solid var(--am-bsv-cerceve);
}

.am-bsv__hucre-etiket {
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--kagit);
}

.am-bsv__hucre-deger {
	font-family: var(--wp--preset--font-family--baslik);
	font-size: 1.0625rem;
	line-height: 1.35;
	overflow-wrap: anywhere;
}

.am-bsv__hucre-deger--serbest {
	color: var(--wp--preset--color--bordo);
}

/* Kontenjan: sayı değil, doluluk hissi. */
.am-bsv__kontenjan {
	padding: 1rem 1.35rem 1.15rem;
	border-top: 1px solid var(--am-bsv-cerceve);
}

.am-bsv__kontenjan-ust {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.35rem 1rem;
	margin-bottom: 0.7rem;
}

.am-bsv__kontenjan-sayi {
	font-size: var(--wp--preset--font-size--sm);
	color: var(--wp--preset--color--kagit);
}

.am-bsv__kontenjan-sayi strong {
	font-family: var(--wp--preset--font-family--baslik);
	font-size: 1.0625rem;
	font-weight: 400;
	color: var(--wp--preset--color--murekkep);
}

.am-bsv__olcer {
	height: 3px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--am-bsv-cerceve) 20%, transparent);
	overflow: hidden;
}

.am-bsv__olcer-dolu {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: var(--wp--preset--color--bordo);
}

.am-bsv__kontenjan--az .am-bsv__olcer-dolu,
.am-bsv__kontenjan--dolu .am-bsv__olcer-dolu {
	background: var(--wp--preset--color--bordo);
}

.am-bsv__kontenjan--az .am-bsv__kontenjan-sayi strong,
.am-bsv__kontenjan--dolu .am-bsv__kontenjan-sayi {
	color: var(--wp--preset--color--bordo);
}

/* Durum sayfası: homojen anahtar-değer listesi, satır satır. */
.am-bsv__liste {
	margin: 0;
	padding: 0;
	border: 1px solid var(--am-bsv-cerceve);
	border-radius: 2px;
	background: var(--wp--preset--color--kutu);
	overflow: hidden;
}

.am-bsv__liste-satir {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.2rem 1.5rem;
	padding: 0.8rem 1.35rem;
}

.am-bsv__liste-satir + .am-bsv__liste-satir {
	border-top: 1px solid var(--am-bsv-cerceve);
}

.am-bsv__liste dt {
	flex: 0 0 9.5rem;
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--kagit);
}

.am-bsv__liste dd {
	flex: 1 1 12rem;
	margin: 0;
	font-family: var(--wp--preset--font-family--baslik);
	font-size: 1.0625rem;
	line-height: 1.4;
	overflow-wrap: anywhere;
}

@media (max-width: 520px) {
	.am-bsv__hucre + .am-bsv__hucre {
		border-left: 0;
		border-top: 1px solid var(--am-bsv-cerceve);
	}

	.am-bsv__liste dt {
		flex-basis: 100%;
	}
}

/* --- Açıklama metni --- */

.am-bsv__metin {
	margin-bottom: var(--am-bsv-bolum);
}

.am-bsv__metin > :first-child {
	margin-top: 0;
}

.am-bsv__metin > :last-child {
	margin-bottom: 0;
}

/* --- Bölümler --- */

.am-bsv__bolum {
	margin-top: var(--am-bsv-bolum);
	padding-top: var(--am-bsv-bolum);
	border-top: 1px solid var(--am-bsv-alan);
}

.am-bsv__bolum-ust {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.9rem 1.5rem;
	margin-bottom: var(--am-bsv-blok);
}

.am-bsv__bolum-baslik,
.bsv-subtitle {
	margin: 0;
	font-family: var(--wp--preset--font-family--baslik);
	font-size: var(--wp--preset--font-size--xl);
	font-weight: 400;
	line-height: 1.25;
}

/*
 * Son başvuru tarihi. Künyedeki hücrelerle aynı dil: üstte küçük harf etiket,
 * altında serif değer, solunda künyenin ayraçlarıyla aynı çizgi. Böylece
 * formun başlığının yanında iliştirilmiş bir not gibi değil, künyenin devamı
 * gibi duruyor.
 */
.am-bsv__bolum-bilgi {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	margin: 0;
	padding-left: 1rem;
	border-left: 1px solid var(--am-bsv-cerceve);
}

.am-bsv__bolum-bilgi-etiket {
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--kagit);
}

.am-bsv__bolum-bilgi-deger {
	font-family: var(--wp--preset--font-family--baslik);
	font-size: 1.0625rem;
	line-height: 1.3;
	white-space: nowrap;
}

/* Dar ekranda alt satıra düşer; orada dikey çizgi anlamını yitirir. */
@media (max-width: 520px) {
	.am-bsv__bolum-bilgi {
		width: 100%;
		padding-left: 0;
		padding-top: 0.9rem;
		border-left: 0;
		border-top: 1px solid var(--am-bsv-cerceve);
	}
}

.am-bsv__alt-baslik {
	margin: 0 0 var(--am-bsv-ic);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--kagit);
}

/* --- Form ızgarası --- */

.bsv-form {
	margin: 0;
}

/* Dar ekranda kendiliğinden tek sütuna iner; satır aralığı ayrı yazıldı ki
   kısaltma yorumundan kaynaklı bindirme ihtimali kalmasın. */
.bsv-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
	column-gap: 1.5rem;
	row-gap: 1.5rem;
	align-items: start;
}

.bsv-field {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.45rem;
	min-width: 0;
	margin: 0;
}

.bsv-field > label {
	margin: 0;
	line-height: 1.4;
}

.bsv-field--wide,
.bsv-field--consent,
.bsv-paybox {
	grid-column: 1 / -1;
}

.bsv-field > label {
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	line-height: 1.4;
	color: var(--wp--preset--color--murekkep);
}

/* Girdiler blok seviyesinde kalsın; satır içi kalırlarsa taban çizgisi
   boşluğu satırların birbirine yaklaşmasına yol açıyor. */
.bsv-form input,
.bsv-form select,
.bsv-form textarea {
	display: block;
	margin: 0;
	box-sizing: border-box;
}

.bsv-req {
	margin-left: 0.15em;
	color: var(--wp--preset--color--bordo);
}

/* --- Girdiler --- */

.bsv-form input[type="text"],
.bsv-form input[type="email"],
.bsv-form input[type="tel"],
.bsv-form input[type="number"],
.bsv-form input[type="date"],
.bsv-form select,
.bsv-form textarea {
	width: 100%;
	padding: 0.8rem 0.95rem;
	border: 1px solid var(--am-bsv-alan);
	border-radius: 2px;
	background: var(--wp--preset--color--kutu);
	font-family: inherit;
	font-size: var(--wp--preset--font-size--md);
	line-height: 1.5;
	color: var(--wp--preset--color--murekkep);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
	-webkit-appearance: none;
	appearance: none;
}

.bsv-form textarea {
	min-height: 7.5rem;
	resize: vertical;
}

/* Tarayıcının kendi okunu kaldırıp tema okunu koyuyoruz. */
.bsv-form select {
	padding-right: 2.4rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%236E675D' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.95rem center;
	background-size: 12px 8px;
}

.bsv-form ::placeholder {
	color: var(--wp--preset--color--kagit);
	opacity: 0.7;
}

.bsv-form input:focus,
.bsv-form select:focus,
.bsv-form textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--bordo);
	box-shadow: 0 0 0 3px rgba(102, 3, 3, 0.14);
}

.bsv-field.has-error input,
.bsv-field.has-error select,
.bsv-field.has-error textarea {
	border-color: var(--wp--preset--color--bordo);
}

.bsv-error {
	font-size: 0.8125rem;
	line-height: 1.4;
	color: var(--wp--preset--color--bordo);
}

/* --- Dosya seçimi --- */

.bsv-form input[type="file"] {
	width: 100%;
	padding: 0.75rem 0.95rem;
	border: 1px dashed var(--am-bsv-alan);
	border-radius: 2px;
	background: var(--wp--preset--color--kutu);
	font-family: inherit;
	font-size: var(--wp--preset--font-size--sm);
	color: var(--wp--preset--color--kagit);
	cursor: pointer;
}

.bsv-form input[type="file"]::file-selector-button {
	margin-right: 0.85rem;
	padding: 0.45rem 0.9rem;
	border: 1px solid var(--am-bsv-alan);
	border-radius: 2px;
	background: var(--wp--preset--color--krem);
	font-family: inherit;
	font-size: 0.8125rem;
	font-weight: 500;
	color: var(--wp--preset--color--murekkep);
	cursor: pointer;
}

/* --- Onay kutusu ve seçenekler --- */

.bsv-check {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 400;
	line-height: 1.6;
	cursor: pointer;
}

/*
 * Kutuyu tarayıcıya bırakmıyoruz: "accent-color" verildiğinde üzerine
 * gelme ve basılı tutma hâllerini tarayıcı kendi türettiği renkle çiziyor.
 * Kendimiz çizince her durumda bordo kalıyor.
 */
.bsv-check input[type="checkbox"],
.bsv-check input[type="radio"] {
	flex: 0 0 auto;
	width: 1.05rem;
	height: 1.05rem;
	margin: 0.25rem 0 0;
	border: 1px solid var(--am-bsv-alan);
	background: var(--wp--preset--color--kutu) no-repeat center;
	background-size: 0.85rem;
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease;
	-webkit-appearance: none;
	appearance: none;
}

.bsv-check input[type="checkbox"] {
	border-radius: 2px;
}

.bsv-check input[type="radio"] {
	border-radius: 50%;
}

.bsv-check:hover input:not(:checked) {
	border-color: var(--wp--preset--color--bordo);
}

.bsv-check input:checked {
	background-color: var(--wp--preset--color--bordo);
	border-color: var(--wp--preset--color--bordo);
}

.bsv-check input[type="checkbox"]:checked {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.6 6.3 4.9 8.6 9.4 3.7' fill='none' stroke='%23F7F4EF' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.bsv-check input[type="radio"]:checked {
	background-image: radial-gradient(circle, var(--wp--preset--color--krem) 0 32%, transparent 34%);
}

.bsv-field--consent {
	margin-top: var(--am-bsv-blok);
	padding: 1.1rem 1.25rem;
	background: var(--wp--preset--color--kutu);
	border: 1px solid var(--am-bsv-alan);
	border-radius: 2px;
}

.bsv-field--consent.has-error {
	border-color: var(--wp--preset--color--bordo);
}

.bsv-radios {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
}

/* --- Puanlama --- */

.bsv-rating {
	display: flex;
	gap: 0.5rem;
}

.bsv-rating__item {
	position: relative;
}

.bsv-rating__item input {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: pointer;
}

.bsv-rating__item span {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.85rem;
	height: 2.85rem;
	border: 1px solid var(--am-bsv-alan);
	border-radius: 2px;
	background: var(--wp--preset--color--kutu);
	font-family: var(--wp--preset--font-family--baslik);
	font-size: 1.0625rem;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.bsv-rating__item input:checked + span {
	background: var(--wp--preset--color--bordo);
	border-color: var(--wp--preset--color--bordo);
	color: var(--wp--preset--color--krem);
}

.bsv-rating__item:hover input:not(:checked) + span {
	border-color: var(--wp--preset--color--bordo);
}

.bsv-rating__item input:focus-visible + span {
	outline: 2px solid var(--wp--preset--color--bordo);
	outline-offset: 2px;
}

/* --- Ödeme kutusu --- */

.bsv-paybox {
	margin-top: var(--am-bsv-blok);
	padding: 1.35rem 1.5rem;
	background: var(--wp--preset--color--kutu);
	border: 1px solid var(--am-bsv-cerceve);
	border-radius: 2px;
}

.bsv-paybox__title {
	margin: 0 0 var(--am-bsv-ic);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--kagit);
}

.bsv-paybox__fee {
	margin: 0 0 var(--am-bsv-ic);
	font-family: var(--wp--preset--font-family--baslik);
	font-size: var(--wp--preset--font-size--lg);
}

.bsv-payment {
	padding: 1rem 1.15rem;
	background: var(--wp--preset--color--kutu);
	border: 1px solid var(--am-bsv-cerceve);
	border-radius: 2px;
	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.8;
	overflow-wrap: anywhere;
}

.bsv-paybox .bsv-field {
	margin-top: var(--am-bsv-ic);
}

.bsv-note {
	margin: 0;
	font-size: 0.8125rem;
	line-height: 1.6;
	color: var(--wp--preset--color--kagit);
}

/* --- Gönder düğmesi --- */

.bsv-submit {
	margin-top: var(--am-bsv-blok);
	padding: 0.95rem 2rem;
	border: 0;
	border-radius: 2px;
	background: var(--wp--preset--color--lacivert);
	color: var(--wp--preset--color--krem);
	font-family: var(--wp--preset--font-family--govde);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 500;
	letter-spacing: 0.03em;
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.bsv-submit:hover,
.bsv-submit:focus-visible {
	background: var(--wp--preset--color--murekkep);
}

/* --- Dekont yükleme satırı --- */

.bsv-upload {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.85rem 1rem;
	margin-top: var(--am-bsv-ic);
}

.bsv-upload input[type="file"] {
	flex: 1 1 16rem;
	width: auto;
}

.bsv-upload .bsv-submit {
	margin-top: 0;
	padding: 0.8rem 1.5rem;
}

.bsv-upload .bsv-note {
	flex-basis: 100%;
}

/* --- Uyarı kutuları --- */

.bsv-alert {
	margin: 0 0 var(--am-bsv-blok);
	padding: 0.95rem 1.15rem;
	border: 1px solid;
	border-left-width: 3px;
	border-radius: 2px;
	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.6;
}

.bsv-alert--error {
	background: #FAEFEF;
	border-color: #D8B3B3;
	border-left-color: var(--wp--preset--color--bordo);
	color: #5A0202;
}

.bsv-alert--info {
	background: var(--wp--preset--color--kutu);
	border-color: var(--am-bsv-cerceve);
	border-left-color: var(--wp--preset--color--lacivert);
	color: var(--wp--preset--color--murekkep);
}

.bsv-alert--success {
	background: #EEF3ED;
	border-color: #BCD1BA;
	border-left-color: #3A6640;
	color: #254D2A;
}

/* --- Durum rozeti --- */

.bsv-status {
	display: inline-block;
	margin: var(--am-bsv-ic) 0 0;
	padding: 0.4em 1em;
	border: 1px solid currentColor;
	border-radius: 999px;
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.bsv-status--pending {
	color: #7A5200;
}

.bsv-status--approved {
	color: #3A6640;
}

.bsv-status--rejected {
	color: var(--wp--preset--color--bordo);
}

/* --- Geri bildirim formu --- */

/* Ödeme kutusu ile Dekont bloğu bitişikti. */
.am-bsv__dekont {
	margin-top: var(--am-bsv-bolum);
}

.am-bsv__dekont .bsv-note + .bsv-form,
.bsv-feedback .bsv-note + .bsv-form {
	margin-top: var(--am-bsv-ic);
}

.bsv-feedback {
	margin: 0;
}

.bsv-feedback .bsv-note {
	margin-bottom: var(--am-bsv-ic);
}

.bsv-feedback .bsv-subtitle {
	margin-bottom: var(--am-bsv-blok);
}

/* --- Bot tuzağı: ekranda görünmemeli --- */

.bsv-hp {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

@media (max-width: 600px) {
	.bsv-grid {
		grid-template-columns: 1fr;
	}

	.bsv-submit {
		width: 100%;
	}

	.bsv-paybox {
		padding: 1.15rem 1.15rem;
	}
}

