/* ==========================================================================
   RAFF COMMERCE EXPERIENCE 2.0
   Ürün detay + sepet + checkout + hesabım/form/notice ortak sistemi.
   raff.css'in ÜZERİNE yüklenir (bkz. inc/enqueue.php sıralaması); mevcut
   --kestane/--siyah/--tutsu token'larını yeniden kullanır, sadece bu dosyaya
   özel yeni token'lar aşağıda eklenir. raff.css'e dokunulmaz.
   ========================================================================== */

:root {
	/* Marka renkleri (görev kapsamında istenen isimlerle, mevcut değerlerle birebir) */
	--kestane-koyu: #7b461b;
	--zemin: #f7f6f2;
	--zemin-alt: #f1f0ec;
	--cizgi: rgba(13, 12, 10, 0.22);
	--soluk-metin: rgba(13, 12, 10, 0.58);
	--beyaz: #ffffff;

	/* Commerce ortak ölçüler */
	--commerce-content-max: 1460px;
	--commerce-gutter: clamp(16px, 3.4vw, 48px);
	--commerce-line: var(--cizgi);
	--commerce-field-height: 44px;
	--commerce-sticky-height: 64px;
	--commerce-ui-font: var(--sans);
	--commerce-label-size: 11px;
	--commerce-body-size: clamp(13px, 1.05vw, 14px);
	--commerce-title-size: clamp(20px, 2.2vw, 28px);

	/* ============================================================
	   STYLE 9 "İSVİÇRE" + RAFF KESTANE — tek doğruluk kaynağı.
	   raff-10-stil.html / raff-sepet-10-stil.html referansındaki
	   [data-theme="isvicre"] paletinden alınmıştır, TEK FARKLA: referansın
	   --accent (#e0392b kırmızı) değeri KULLANILMADI — yerine RAFF'ın gerçek
	   marka rengi (raff.css, --kestane: #a96827) tek doğruluk kaynağı olarak
	   buraya bağlandı (bkz. artifacts/raff-style9-commerce/reference-analysis.md).
	   Önceki "Gazete" (Bodoni Moda/Cormorant/IBM Plex Mono, krem zemin) token
	   seti TAMAMEN KALDIRILDI — kullanıcı geri bildirimi: fazla editorial/
	   wireframe hissi yarattı. Ürün fotoğraflarına referansın grayscale
	   filtresi UYGULANMADI — gerçek renk korunur (görev şartı §3).
	   Bu token'lar yalnızca .raff-product-summary / .raff-product-gallery /
	   .woocommerce-cart / .woocommerce-checkout kapsamında kullanılır;
	   header/footer/anasayfa marka renklerine (raff.css) dokunulmaz. */
	--raff-bg: #ffffff;
	--raff-ink: #0a0a0a;
	--raff-muted: #7d7d7d;
	--raff-line: rgba(10, 10, 10, 0.12);
	--raff-accent: var(--kestane);
	--raff-accent-hover: var(--kestane-koyu);
	--raff-accent-ink: #ffffff;
	--raff-sale: var(--kestane);
	--raff-surface: #f7f7f5;
	--raff-display: "Archivo", sans-serif;
	--raff-body: "Archivo", sans-serif;
	--raff-caption: "Archivo", sans-serif;
}

/* ============================================================
   0 · Yardımcılar
   ============================================================ */
.raff-sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.raff-icon {
	display: inline-flex;
	width: 1em;
	height: 1em;
	flex: none;
}
.raff-icon svg {
	width: 100%;
	height: 100%;
}

/* ============================================================
   1 · WooCommerce notice sistemi (hesabım/sepet/checkout ortak)
   ============================================================ */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info,
.woocommerce-noreviews,
p.no-comments {
	background: var(--zemin-alt);
	border: none;
	border-left: 2px solid var(--kestane);
	border-radius: 0;
	padding: 14px 18px;
	margin: 0 0 20px;
	font-family: var(--commerce-ui-font);
	font-size: var(--commerce-body-size);
	color: var(--siyah);
	list-style: none;
	display: block;
}
.woocommerce-error {
	border-left-color: #8a2f1e;
}
.woocommerce-message::before,
.woocommerce-error::before,
.woocommerce-info::before {
	content: none;
}
.woocommerce-message li,
.woocommerce-error li,
.woocommerce-info li {
	list-style: none;
	margin: 0;
	padding: 0;
}
.woocommerce-message a,
.woocommerce-error a,
.woocommerce-info a {
	color: var(--kestane);
	text-decoration: underline;
	text-underline-offset: 2px;
}
.woocommerce-message .button,
.woocommerce-error .button {
	display: inline-block;
	margin-top: 10px;
	background: var(--siyah);
	color: var(--tutsu);
	padding: 10px 20px;
	font-size: 10px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

/* ============================================================
   2 · Ortak form alanı sistemi (underline input)
   Hesabım / Checkout / Kupon / Sepet güncelle formlarında ortak.
   ============================================================ */
.raff-field {
	margin-bottom: 22px;
}
.raff-field label,
.woocommerce-checkout .form-row label,
.woocommerce-account .woocommerce-form-row label,
.woocommerce-form-login label,
.woocommerce-form-register label {
	display: block;
	font-family: var(--commerce-ui-font);
	font-size: var(--commerce-label-size);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--soluk-metin);
	margin-bottom: 8px;
}
.woocommerce-checkout .form-row .required,
.woocommerce-account .required {
	color: var(--kestane);
	text-decoration: none;
	font-weight: 400;
}

.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout input[type="password"],
.woocommerce-checkout input[type="number"],
.woocommerce-checkout textarea,
.woocommerce-checkout select,
.woocommerce-checkout .select2-selection,
.woocommerce-account input[type="text"],
.woocommerce-account input[type="email"],
.woocommerce-account input[type="password"],
.woocommerce-form-coupon input[type="text"] {
	width: 100%;
	min-height: var(--commerce-field-height);
	padding: 10px 2px;
	border: none;
	border-bottom: 1px solid var(--cizgi);
	border-radius: 0;
	background: transparent;
	font-family: var(--commerce-ui-font);
	font-size: var(--commerce-body-size);
	color: var(--siyah);
	transition: border-color 0.2s ease;
}
.woocommerce-checkout textarea {
	min-height: 80px;
	padding-top: 10px;
}
.woocommerce-checkout input:focus,
.woocommerce-checkout select:focus,
.woocommerce-checkout textarea:focus,
.woocommerce-account input:focus,
.woocommerce-form-coupon input:focus {
	outline: none;
	border-bottom-color: var(--kestane);
}
.woocommerce-checkout ::placeholder,
.woocommerce-account ::placeholder {
	color: rgba(13, 12, 10, 0.34);
}
.woocommerce-checkout select {
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%230d0c0a' stroke-width='1.4' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 2px center;
	background-size: 11px;
	padding-right: 18px;
}
.woocommerce-checkout .woocommerce-input-wrapper {
	display: block;
}
.select2-container--default .select2-selection--single {
	height: var(--commerce-field-height);
	border: none;
	border-bottom: 1px solid var(--cizgi);
	border-radius: 0;
	background: transparent;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
	padding: 0 18px 0 2px;
	line-height: var(--commerce-field-height);
	font-size: var(--commerce-body-size);
	color: var(--siyah);
}
.select2-container--default .select2-selection--single .select2-arrow,
.select2-container--default .select2-selection--single .select2-selection__arrow {
	height: var(--commerce-field-height);
}
.select2-dropdown {
	border: 1px solid var(--cizgi);
	border-radius: 0;
}

/* checkbox / radio: WooCommerce çekirdek görünümü sadeleştirilir, işlev aynen kalır */
.woocommerce-checkout input[type="checkbox"],
.woocommerce-checkout input[type="radio"],
.woocommerce-account input[type="checkbox"],
.woocommerce-account input[type="radio"],
.woocommerce-cart input[type="checkbox"] {
	width: 16px;
	height: 16px;
	accent-color: var(--kestane);
	margin-right: 8px;
	vertical-align: middle;
}

/* Şirket alanı: toggle switch */
.raff-toggle-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 12px 0;
	border-bottom: 1px solid var(--cizgi);
	margin-bottom: 20px;
}
.raff-toggle-row__label {
	font-size: var(--commerce-label-size);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--soluk-metin);
}
.raff-toggle {
	position: relative;
	display: inline-block;
	width: 40px;
	height: 22px;
	flex: none;
}
.raff-toggle input {
	position: absolute;
	opacity: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	cursor: pointer;
}
.raff-toggle__track {
	position: absolute;
	inset: 0;
	background: rgba(13, 12, 10, 0.22);
	transition: background 0.2s ease;
}
.raff-toggle__thumb {
	position: absolute;
	top: 2px;
	left: 2px;
	width: 18px;
	height: 18px;
	background: var(--beyaz);
	transition: transform 0.2s ease;
}
.raff-toggle input:checked ~ .raff-toggle__track {
	background: var(--kestane);
}
.raff-toggle input:checked ~ .raff-toggle__thumb {
	transform: translateX(18px);
}
.raff-toggle input:focus-visible ~ .raff-toggle__track {
	outline: 2px solid var(--kestane);
	outline-offset: 2px;
}

/* Disclosure (kupon / farklı adres / şirket / hediye) ortak görünüm */
.raff-disclosure__trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 14px 0;
	border-top: 1px solid var(--cizgi);
	border-bottom: 1px solid var(--cizgi);
	font-size: var(--commerce-label-size);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	background: none;
	cursor: pointer;
}
.raff-disclosure__trigger .raff-icon {
	transition: transform 0.2s ease;
}
.raff-disclosure__trigger[aria-expanded="true"] .raff-icon {
	transform: rotate(180deg);
}
.raff-disclosure__panel {
	padding: 18px 0;
}

/* Odak durumu: tüm form/interaktif öğeler için tutarlı */
.woocommerce a:focus-visible,
.woocommerce button:focus-visible,
.woocommerce input:focus-visible,
.woocommerce select:focus-visible,
.raff-empty-state__cta:focus-visible,
.raff-mobile-buybar__cta:focus-visible,
.raff-qty-btn:focus-visible,
.raff-size-btn:focus-visible {
	outline: 2px solid var(--kestane);
	outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
	.raff-toggle__thumb,
	.raff-toggle__track,
	.raff-disclosure__trigger .raff-icon,
	.raff-mobile-buybar,
	.raff-qty-btn,
	.raff-size-btn {
		transition: none !important;
	}
}

/* ============================================================
   3 · Ürün detay
   ============================================================ */
.raff-product {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	padding: 0 0 clamp(48px, 6vw, 90px);
	align-items: start;
	/* Grid item'ların varsayılan min-width:auto (içerik-tabanlı) davranışı, flexslider'ın
	   henüz genişlik hesaplamadığı/yanlış hesapladığı anlarda gallery hücresinin (ve
	   dolayısıyla tüm satırın) viewport'tan geniş kalmasına izin verir — bkz. aynı
	   düzeltmenin masaüstü (min-width:1024px) kuralında da uygulanmış hali aşağıda.
	   Kök neden CSS Grid'in kendisi; bu satır olmadan görsel taşması yatay scrollbar'a
	   dönüşür. min-width:0 bu davranışı KAPATIR, içeriğin normal şekilde küçülmesine izin verir. */
	min-width: 0;
}
.raff-product-gallery {
	background: none;
	border: none;
	margin: 0 calc(var(--commerce-gutter) * -1);
	min-width: 0;
	max-width: 100%;
}
.woocommerce-product-gallery {
	position: relative;
	max-width: 100%;
	overflow: hidden;
}
.woocommerce-product-gallery__wrapper {
	margin: 0;
	max-width: none; /* flexslider N slide'ı yan yana dizer, JS genişliği hesaplar — burada sınırlanmaz */
}
.woocommerce-product-gallery .flex-viewport {
	max-width: 100%;
	overflow: hidden;
}
.woocommerce-product-gallery__image {
	background: var(--zemin-alt);
	max-width: 100%;
}
.woocommerce-product-gallery__image img {
	max-width: 100%;
	height: auto;
}
.woocommerce-product-gallery__image + .woocommerce-product-gallery__image {
	margin-top: 2px;
}
.raff-product .woocommerce-product-gallery__image img,
.raff-product .woocommerce-product-gallery__image--placeholder img {
	width: 100%;
	height: auto;
	aspect-ratio: 2 / 3;
	object-fit: cover;
	display: block;
}
.woocommerce-product-gallery__trigger {
	position: absolute;
	z-index: 2;
	top: 16px;
	right: 16px;
	width: 34px;
	height: 34px;
	display: grid;
	place-items: center;
	font-size: 0 !important;
	background: rgba(247, 246, 242, 0.88);
	color: var(--siyah);
}
.woocommerce-product-gallery__trigger::before {
	content: "";
	width: 16px;
	height: 16px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E") center / contain no-repeat;
}
.woocommerce-product-gallery--without-images .woocommerce-product-gallery__trigger {
	display: none;
}

/* ============================================================
   Lightbox (PhotoSwipe, WC çekirdeği) — premium overlay
   Animasyon süresi PHP tarafında geri açıldı (inc/woocommerce.php,
   woocommerce_single_product_photoswipe_options) — kütüphanenin KENDİ
   .pswp__bg (opacity) / .pswp__zoom-wrap (transform) transition'ları burada devreye giriyor.
   Burada yalnızca RENK/BLUR override ediliyor — "tam siyah, başka ekrana geçmiş" hissi
   yerine arka sayfa hafifçe seçilebilir kalsın. bgOpacity (PHP, 0.82) ile birlikte çalışır.
   ============================================================ */
.pswp__bg {
	background: rgb(10, 10, 10);
	backdrop-filter: blur(3px);
	-webkit-backdrop-filter: blur(3px);
	/* PhotoSwipe'ın kendi bundled CSS'i 333ms kullanıyor (photoswipe.css) — görev hedefi
	   180-260ms'e çekmek için burada override edilir. JS tarafındaki showAnimationDuration/
	   hideAnimationDuration (inc/woocommerce.php) BU sürelerle eşleşecek şekilde ayarlandı
	   (220/200ms) — ikisi birbirinden bağımsız çalışırsa animasyon JS'in "bitti" varsaydığı
	   an ile CSS'in gerçekte bitirdiği an uyuşmaz, ufak bir "sıçrama" hissi kalabilirdi. */
	transition-duration: 220ms !important;
}
.pswp__zoom-wrap {
	transition-duration: 220ms !important;
}
.pswp__caption {
	background: none;
}
.pswp__caption__center {
	font-family: var(--commerce-ui-font);
	font-size: 12px;
	letter-spacing: 0.02em;
	text-align: center;
	color: rgba(247, 246, 242, 0.85);
	max-width: none;
}
/* İnce, premium kontroller — büyük beyaz yuvarlak buton yok */
.pswp__button {
	width: 40px;
	height: 40px;
	opacity: 0.85;
	transition: opacity 0.15s ease;
}
.pswp__button:hover {
	opacity: 1;
}
.pswp__counter {
	font-family: var(--commerce-ui-font);
	font-size: 12px;
	letter-spacing: 0.04em;
	opacity: 0.8;
}
@media (prefers-reduced-motion: reduce) {
	.pswp__bg,
	.pswp__zoom-wrap {
		transition: none !important;
	}
}

/* Thumbnail şeridi: WooCommerce'in kendi flexslider JS'i (`ol.flex-control-nav.flex-control-thumbs`)
   çalışma anında ekler, önceden hiç stillenmemişti (çekirdek varsayılan görünüm). WP'nin
   "thumbnail" boyutu sabit kare kırpma olduğundan (ana görsel 2:3 iken), kare kutu +
   object-fit:cover ile bilinçli olarak farklı/tutarlı bir küçük-önizleme sistemi kurulur —
   ana görselle aynı orana zorlamak küçük kareleri gereksiz yere kırpardı. */
.woocommerce-product-gallery .flex-control-thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 8px 0 0;
	padding: 0;
}
.woocommerce-product-gallery .flex-control-thumbs li {
	width: calc(25% - 6px);
	flex: none;
}
.woocommerce-product-gallery .flex-control-thumbs img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	cursor: pointer;
	opacity: 0.55;
	border: 1px solid transparent;
	transition: opacity 0.15s ease, border-color 0.15s ease;
}
.woocommerce-product-gallery .flex-control-thumbs img:hover {
	opacity: 0.85;
}
.woocommerce-product-gallery .flex-control-thumbs img.flex-active {
	opacity: 1;
	border-color: var(--siyah);
}
/* Not: seçili renkle eşleşmeyen görseller artık CSS ile soluklaştırılmıyor — raff-commerce.js
   (applyColorGalleryFilter) galeriyi yalnızca eşleşen slide'larla YENİDEN KURUYOR, off-color
   görseller DOM'dan tamamen çıkarılıyor (bkz. görev şartı §9: "gösterilmemeli"). */

.raff-product-summary {
	padding: clamp(20px, 3vw, 32px) var(--commerce-gutter) 0;
}
.raff-product-summary .product_title {
	font-size: var(--commerce-title-size);
	text-transform: none;
	margin-bottom: 10px;
	letter-spacing: 0;
}
.raff-product-summary .price {
	font-family: var(--commerce-ui-font);
	font-size: 16px;
	color: var(--siyah);
	margin-bottom: 14px;
	display: block;
}
.raff-product-summary .price del {
	color: var(--soluk-metin);
	text-decoration: line-through;
	margin-right: 8px;
	font-size: 13px;
}
/* Bir varyasyon seçiliyken üst seviyedeki parent aralığı (ör. "₺999,00 – ₺1.199,00")
   gizlenir — WooCommerce bu aralığı ve seçilen varyasyonun tekil del/ins fiyatını
   (.woocommerce-variation-price .price) aynı anda görünür bırakıyordu, bu da iki farklı
   fiyatın üst üste görünmesine yol açıyordu (raff-commerce.js, toggleVariationPriceMode). */
.raff-product-summary.raff-has-variation-price .summary.entry-summary > p.price {
	display: none;
}
/* Seçim yokken gösterilen ham ARALIK (yalnızca gerçekten min≠max olan ~3/74 üründe
   görülür — raff-commerce.js bu durumu tespit edip .raff-price--range class'ını ekler):
   normal/net fiyatlardan daha soluk bir ton — "kesin" bir fiyat değil, bir önizleme
   olduğunu ima eder. Tekil (uniform) fiyatlı ürünlerde bu class hiç eklenmez, üst
   seviye fiyat her zamanki gibi net/koyu kalır. */
.raff-product-summary .summary.entry-summary > p.price.raff-price--range {
	color: var(--soluk-metin);
	font-variant-numeric: tabular-nums;
}
.raff-product-summary .price ins {
	text-decoration: none;
	color: var(--kestane);
}
/* Seçili renk içinde bedene göre GERÇEK fiyat farkı varsa (nadir): sahte fiyat/aralık
   göstermek yerine "Beden seçiniz" — beden seçilince found_variation gerçek fiyatı basar. */
.raff-product-summary .summary.entry-summary > p.price.raff-price--select-size {
	color: var(--soluk-metin);
	font-size: var(--commerce-label-size);
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.raff-product-summary .stock {
	font-family: var(--commerce-ui-font);
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: none;
	color: var(--soluk-metin);
	margin-bottom: 18px;
	display: block;
}
.raff-product-summary .stock.out-of-stock {
	color: #8a2f1e;
}
.raff-product-summary .woocommerce-product-details__short-description {
	margin-bottom: 22px;
	font-size: var(--commerce-body-size);
	color: var(--siyah);
	line-height: 1.6;
}
.raff-product-summary form.cart {
	margin-bottom: 22px;
}

/* Varyasyon: gerçek <select> erişilebilirlik için DOM'da kalır ama görsel olarak gizlenir;
   raff-commerce.js bu select'in option'larından buton satırı üretir. JS kapalıysa select
   normal şekilde görünür kalır (progressive enhancement, form bozulmaz). */
.raff-product-summary table.variations {
	width: 100%;
	margin-bottom: 4px;
	border: none;
}
.raff-product-summary table.variations tr {
	display: block;
}
.raff-product-summary table.variations tr + tr {
	margin-top: 18px;
}
.raff-product-summary table.variations th.label {
	display: block;
	font-family: var(--commerce-ui-font);
	font-size: var(--commerce-label-size);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--soluk-metin);
	padding: 0 0 10px;
	text-align: left;
	font-weight: 400;
}
.raff-product-summary table.variations td {
	display: block;
	padding: 0;
}
.raff-product-summary table.variations select {
	width: 100%;
	min-height: var(--commerce-field-height);
	padding: 10px 18px 10px 2px;
	border: none;
	border-bottom: 1px solid var(--cizgi);
	background: transparent;
	font-family: var(--commerce-ui-font);
	font-size: var(--commerce-body-size);
	text-transform: none;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%230d0c0a' stroke-width='1.4' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 2px center;
	background-size: 11px;
}
/* Kök neden düzeltmesi: gizleme artık TABLO genelinde değil, yalnızca butonlaştırılmış
   select'e özel bir class ile yapılır (raff-commerce.js, initVariationButtons) — aksi
   halde tablodaki tüm select'ler (Renk + Beden) birlikte gizlenip yalnızca ilkine
   (Renk) buton satırı üretildiğinde ikinci attribute (Beden) tamamen seçilemez kalıyordu. */
.raff-product-summary table.variations select.raff-variation-select--enhanced {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}
.raff-size-row {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 4px;
}
.raff-size-btn {
	min-width: 46px;
	height: 40px;
	padding: 0 12px;
	border: 1px solid var(--cizgi);
	background: var(--beyaz);
	color: var(--siyah);
	font-family: var(--commerce-ui-font);
	font-size: 12px;
	letter-spacing: 0.04em;
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.raff-size-btn:hover {
	border-color: var(--siyah);
}
.raff-size-btn.is-selected {
	background: var(--siyah);
	border-color: var(--siyah);
	color: var(--tutsu);
}
.raff-size-btn:disabled,
.raff-size-btn.is-disabled {
	color: rgba(13, 12, 10, 0.3);
	border-color: var(--cizgi);
	background: repeating-linear-gradient(-45deg, var(--zemin-alt) 0 4px, var(--beyaz) 4px 8px);
	cursor: not-allowed;
}
/* Stok dışı (kombinasyon GERÇEKTEN var ama stokta yok) — "hiç var olmayan" .is-disabled
   çapraz-çizgili dolgudan kasıtlı olarak farklı: düz zemin + üstü çizili metin, "bu seçenek
   var ama şu an alınamaz" anlamını netleştirir. */
.raff-size-btn.is-outofstock {
	color: rgba(13, 12, 10, 0.38);
	border-color: var(--cizgi);
	background: var(--beyaz);
	text-decoration: line-through;
	cursor: not-allowed;
}
/* Seçili AMA stokta olmayan durum (ör. renk değişince önceki beden seçimi yeni
   renkte stokta çıkmadı): sade .is-outofstock ile karışıp "seçim kayboldu" hissi
   vermesin diye seçili-koyu zemin korunur, üstü çizili kalır — kullanıcı hâlâ
   neyin seçili olduğunu ve neden alınamaz olduğunu aynı anda görür. */
.raff-size-btn.is-selected.is-outofstock {
	background: var(--siyah);
	border-color: var(--siyah);
	color: rgba(245, 243, 239, 0.5);
}
a.reset_variations {
	display: inline-block;
	font-family: var(--commerce-ui-font);
	font-size: 11px;
	letter-spacing: 0.04em;
	color: var(--soluk-metin);
	text-decoration: none;
	border-bottom: 1px solid var(--cizgi);
	padding-bottom: 1px;
	margin: 2px 0 18px;
	transition: color 0.15s ease, border-color 0.15s ease;
}
a.reset_variations:hover {
	color: var(--siyah);
	border-color: var(--siyah);
}
.woocommerce-variation-price {
	margin-bottom: 10px;
}
.woocommerce-variation-availability {
	margin-bottom: 10px;
}

/* Adet stepper: native input korunur, +/- buton raff-commerce.js ile eklenir */
.raff-product-summary .quantity,
.woocommerce-cart .quantity,
.woocommerce-checkout .quantity {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid var(--cizgi);
	height: var(--commerce-field-height);
}
.raff-product-summary .quantity input.qty,
.woocommerce-cart .quantity input.qty {
	width: 46px;
	height: 100%;
	border: none;
	background: transparent;
	text-align: center;
	font-family: var(--commerce-ui-font);
	font-size: 13px;
	padding: 0;
	-moz-appearance: textfield;
}
.quantity input.qty::-webkit-inner-spin-button,
.quantity input.qty::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.raff-qty-btn {
	width: 34px;
	height: 100%;
	border: none;
	background: none;
	color: var(--siyah);
	font-size: 15px;
	line-height: 1;
	cursor: pointer;
	display: grid;
	place-items: center;
}
.raff-qty-btn:hover {
	background: var(--zemin-alt);
}
.raff-qty-btn:disabled {
	color: rgba(13, 12, 10, 0.28);
	cursor: not-allowed;
}
.raff-qty-btn:disabled:hover {
	background: none;
}

.raff-product-summary .single_add_to_cart_button {
	background: var(--siyah);
	color: var(--tutsu);
	border: 1px solid var(--siyah);
	height: 50px;
	padding: 0 38px;
	font-size: 11px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	margin-top: 18px;
}
.raff-product-summary .single_add_to_cart_button:hover {
	background: var(--kestane);
	border-color: var(--kestane);
}
.raff-product-summary .single_add_to_cart_button.disabled,
.raff-product-summary .single_add_to_cart_button:disabled {
	background: var(--zemin-alt);
	border-color: var(--cizgi);
	color: var(--soluk-metin);
	cursor: not-allowed;
}
/* SKU/kategori: satın alma akışından ayrı, küçük teknik bilgi */
.raff-product-summary .product_meta {
	font-family: var(--mono);
	font-size: 10.5px;
	letter-spacing: 0.02em;
	color: var(--soluk-metin);
	padding-top: 16px;
	border-top: 1px solid var(--cizgi);
}
.raff-product-summary .product_meta a {
	color: var(--soluk-metin);
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Sekmeler: dikey liste değil, ince altı çizgili yatay/kaydırılabilir tab satırı */
.raff-accordion {
	padding: 0 var(--commerce-gutter);
	margin-top: clamp(16px, 3vw, 30px);
}
.raff-accordion .woocommerce-tabs {
	border-top: none;
}
.raff-accordion ul.tabs {
	list-style: none;
	display: flex;
	gap: clamp(16px, 2.4vw, 30px);
	overflow-x: auto;
	border-bottom: 1px solid var(--cizgi);
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}
.raff-accordion ul.tabs::-webkit-scrollbar {
	display: none;
}
.raff-accordion ul.tabs li {
	border-bottom: none;
	flex: none;
}
.raff-accordion ul.tabs li a {
	display: block;
	padding: 14px 0;
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--soluk-metin);
	white-space: nowrap;
	position: relative;
}
.raff-accordion ul.tabs li.active a {
	color: var(--siyah);
}
.raff-accordion ul.tabs li.active a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	height: 2px;
	background: var(--kestane);
}
.raff-accordion .panel {
	padding: 22px 0 8px;
}
.raff-accordion .panel > h2 {
	font-family: var(--commerce-ui-font);
	font-size: var(--commerce-label-size);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--soluk-metin);
	margin-bottom: 12px;
	font-weight: 400;
}
.raff-accordion .panel p {
	font-size: var(--commerce-body-size);
	line-height: 1.7;
	color: var(--siyah);
}
.raff-policy-list li {
	padding: 6px 0;
	font-size: var(--commerce-body-size);
	position: relative;
	padding-left: 16px;
	line-height: 1.6;
}
.raff-policy-list li::before {
	content: "—";
	position: absolute;
	left: 0;
	color: var(--kestane);
}

.related.products {
	padding: 0 var(--commerce-gutter);
	margin-top: clamp(56px, 8vw, 90px);
}
.related.products > h2 {
	font-size: clamp(20px, 2.6vw, 30px);
	text-transform: none;
	margin-bottom: 20px;
}

/* Mobil sticky satın alma barı */
.raff-mobile-buybar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 70;
	display: none;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 12px var(--commerce-gutter);
	padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
	background: var(--beyaz);
	border-top: 1px solid var(--cizgi);
	box-shadow: 0 -4px 16px rgba(13, 12, 10, 0.08);
	transform: translateY(100%);
	transition: transform 0.25s ease;
}
.raff-mobile-buybar.is-visible {
	display: flex;
	transform: translateY(0);
}
.raff-mobile-buybar__price {
	font-family: var(--commerce-ui-font);
	font-size: 15px;
	flex: none;
}
.raff-mobile-buybar__cta {
	flex: 1;
	max-width: 220px;
	height: 46px;
	background: var(--siyah);
	color: var(--tutsu);
	border: none;
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	cursor: pointer;
}
.raff-mobile-buybar__cta:hover {
	background: var(--kestane);
}
.raff-mobile-buybar__cta:disabled {
	background: var(--zemin-alt);
	color: var(--soluk-metin);
	cursor: not-allowed;
}
body.raff-has-mobile-buybar {
	padding-bottom: 74px;
}

@media (min-width: 1024px) {
	.raff-product {
		/* Görev şartı: galeri ~%55-58, ürün bilgisi ~%42-45 (1440px masaüstünde ölçüldü,
		   canlı DOM ölçümüne göre kalibre edildi — bkz. desktop-test.md). */
		grid-template-columns: 1.3fr 1fr;
		gap: clamp(32px, 4vw, 64px);
	}
	.raff-product-gallery {
		margin: 0;
		min-width: 0;
	}
	.raff-product-summary {
		position: sticky;
		top: var(--commerce-sticky-height);
		align-self: start;
		padding: clamp(24px, 3vw, 40px) 0 0;
		max-height: calc(100vh - var(--commerce-sticky-height) - 24px);
		overflow-y: auto;
		min-width: 0;
	}
	.raff-mobile-buybar {
		display: none !important;
	}
	body.raff-has-mobile-buybar {
		padding-bottom: 0;
	}
}

/* ============================================================
   4 · Sepet — editorial rebuild (görev: raff-final-commerce-ux)
   Kök neden notu: WooCommerce çekirdek `cart.php` şablonu `<table><thead>ÜRÜN/FİYAT/
   MİKTAR/ARA TOPLAM</thead>` spreadsheet yapısı kullanıyordu — CSS ile "table hissini"
   gizlemek (görev talimatının kendi deyimiyle "yama yığma") yerine `woocommerce/cart/
   cart.php` Raff için override edildi (semantic div listesi, TÜM hook/filtre/class adı
   korunarak — bkz. changed-files.md). Bu bölüm o YENİ markup'a göre yazıldı.
   ============================================================ */
body.woocommerce-cart .raff-page-content {
	max-width: var(--commerce-content-max);
}
.raff-shipping-progress {
	background: none;
	border: none;
	border-bottom: 1px solid var(--cizgi);
	padding: 0 0 18px;
	margin-bottom: 24px;
}
.raff-shipping-progress__text {
	font-family: var(--commerce-ui-font);
	font-size: 12px;
	letter-spacing: 0.04em;
	text-transform: none;
	color: var(--siyah);
	margin-bottom: 10px;
}
.raff-shipping-progress__track {
	background: var(--zemin-alt);
}

/* --- Ürün listesi (table DEĞİL) --- */
.raff-cart-list {
	display: block;
}
.raff-cart-row {
	display: flex;
	gap: clamp(20px, 2.4vw, 28px);
	padding: clamp(24px, 2.6vw, 32px) 0;
	border-bottom: 1px solid var(--cizgi);
}
.raff-cart-row:first-child {
	border-top: 1px solid var(--cizgi);
}
.raff-cart-row__media {
	flex: 0 0 auto;
}
.raff-cart-row__media a {
	display: block;
}
.raff-cart-row__media img {
	width: 160px;
	height: 240px;
	object-fit: cover;
	background: var(--zemin-alt);
	display: block;
}
.raff-cart-row__body {
	flex: 1 1 auto;
	min-width: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 96px 132px 108px;
	gap: clamp(12px, 1.6vw, 24px);
	align-items: center;
}
.raff-cart-row__info {
	min-width: 0;
}
.raff-cart-row__name {
	font-family: var(--serif, var(--display));
	font-size: 16px;
	font-weight: 400;
	line-height: 1.35;
	margin: 0 0 6px;
	letter-spacing: 0;
}
.raff-cart-row__name a {
	color: var(--siyah);
}
.raff-cart-row__variation {
	font-family: var(--commerce-ui-font);
	font-size: 12.5px;
	color: var(--soluk-metin);
	line-height: 1.6;
	margin-bottom: 10px;
}
.raff-cart-row__variation dl.variation {
	margin: 0;
}
.raff-cart-row__variation dl.variation dt,
.raff-cart-row__variation dl.variation dd {
	display: inline;
	margin: 0;
	font-size: inherit;
}
.raff-cart-row__variation dl.variation dt::after {
	content: ": ";
}
.raff-cart-row__variation dl.variation p:last-child {
	margin: 0;
}
.raff-cart-row__price-mobile {
	display: none;
}
.raff-cart-row__remove {
	display: inline-block;
	font-family: var(--commerce-ui-font);
	font-size: 11.5px;
	letter-spacing: 0.04em;
	color: var(--soluk-metin);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: color 0.15s ease, border-color 0.15s ease;
}
.raff-cart-row__remove:hover {
	color: #8a2f1e;
	border-bottom-color: currentColor;
}
.raff-cart-row__price {
	font-family: var(--commerce-ui-font);
	font-size: 13.5px;
	color: var(--soluk-metin);
	white-space: nowrap;
}
.raff-cart-row__qty {
	display: flex;
}
.raff-cart-row__subtotal {
	font-family: var(--commerce-ui-font);
	font-size: 15px;
	font-weight: 500;
	color: var(--siyah);
	text-align: right;
	white-space: nowrap;
}

/* --- Kupon + gizli "Sepeti güncelle" fallback --- */
.raff-cart-actions {
	padding-top: 24px;
}
.raff-cart-actions .coupon {
	display: flex;
	gap: 10px;
	align-items: center;
}
.raff-cart-actions .coupon input#coupon_code {
	width: 220px;
	min-height: var(--commerce-field-height);
	border: none;
	border-bottom: 1px solid var(--cizgi);
	background: none;
	padding: 0 2px;
	font-size: 13px;
}
.raff-cart-actions .coupon input#coupon_code:focus {
	outline: none;
	border-bottom-color: var(--kestane);
}

.cart_totals {
	background: none;
	border: none;
	padding: 0;
}
.cart_totals > h2 {
	font-size: clamp(18px, 2vw, 22px);
	text-transform: none;
	margin-bottom: 18px;
}
.cart_totals table.shop_table {
	width: 100%;
}
.cart_totals table.shop_table tr {
	border-bottom: 1px solid var(--cizgi);
}
.cart_totals table.shop_table th,
.cart_totals table.shop_table td {
	padding: 12px 0;
	font-size: 13px;
	text-align: left;
}
.cart_totals table.shop_table th {
	color: var(--soluk-metin);
	font-weight: 400;
}
.cart_totals table.shop_table tr.order-total th,
.cart_totals table.shop_table tr.order-total td {
	font-size: 16px;
	color: var(--siyah);
	border-bottom: none;
	padding-top: 16px;
}
.cart_totals ul#shipping_method {
	list-style: none;
	margin: 0;
}
.cart_totals ul#shipping_method li {
	margin-bottom: 6px;
	font-size: 13px;
}
.wc-proceed-to-checkout {
	margin-top: 18px;
}
.wc-proceed-to-checkout a.checkout-button {
	display: block;
	width: 100%;
	text-align: center;
	background: var(--siyah);
	color: var(--tutsu);
	height: 50px;
	line-height: 50px;
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}
.wc-proceed-to-checkout a.checkout-button:hover {
	background: var(--kestane);
}

/* Boş sepet durumu */
.raff-empty-state {
	text-align: center;
	padding: clamp(48px, 8vw, 90px) 0 clamp(24px, 4vw, 40px);
}
.raff-empty-state__title {
	font-family: var(--display);
	font-size: clamp(24px, 3vw, 34px);
	margin-bottom: 10px;
}
.raff-empty-state__desc {
	color: var(--soluk-metin);
	font-size: var(--commerce-body-size);
	margin-bottom: 24px;
}
.raff-empty-state__cta {
	display: inline-block;
	border: 1px solid var(--siyah);
	padding: 14px 34px;
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--siyah);
	transition: all 0.2s ease;
}
.raff-empty-state__cta:hover {
	background: var(--siyah);
	color: var(--tutsu);
}
.raff-empty-state__suggestions {
	margin-top: clamp(40px, 6vw, 70px);
}
.raff-empty-state__suggestions h2 {
	font-size: clamp(18px, 2vw, 22px);
	text-transform: none;
	margin-bottom: 18px;
	text-align: left;
}

/* Sepet/ilişkili ürün yatay kaydırma (mobil "Şunları da beğenebilirsiniz") */
.raff-related-scroll {
	display: flex;
	gap: 12px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	padding-bottom: 4px;
}
.raff-related-scroll > li {
	flex: 0 0 42%;
	scroll-snap-align: start;
}

@media (max-width: 760px) {
	.raff-cart-row {
		padding: 18px 0;
		gap: 14px;
	}
	.raff-cart-row__media img {
		width: 100px;
		height: 150px;
	}
	.raff-cart-row__body {
		display: block;
	}
	.raff-cart-row__name {
		font-size: 14px;
	}
	.raff-cart-row__price {
		display: none;
	}
	.raff-cart-row__price-mobile {
		display: block;
		font-family: var(--commerce-ui-font);
		font-size: 13px;
		color: var(--soluk-metin);
		margin-bottom: 10px;
	}
	.raff-cart-row__qty {
		margin-bottom: 10px;
	}
	.raff-cart-row__subtotal {
		display: none;
	}
	.raff-cart-row__remove {
		order: 99;
	}

	.raff-cart-actions .coupon {
		flex-wrap: wrap;
	}
	.raff-cart-actions .coupon input#coupon_code {
		width: 100%;
	}
	.raff-cart-actions .coupon button {
		width: 100%;
	}

	.raff-related-scroll > li {
		flex-basis: 62%;
	}

	/* Mobil sticky toplam/CTA barı */
	.cart-collaterals {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 70;
		background: var(--beyaz);
		border-top: 1px solid var(--cizgi);
		box-shadow: 0 -4px 16px rgba(13, 12, 10, 0.08);
		padding: 14px var(--commerce-gutter);
		padding-bottom: calc(14px + env(safe-area-inset-bottom, 0px));
	}
	.cart_totals > h2,
	.cart_totals table.shop_table tr:not(.order-total),
	.cart_totals ul#shipping_method {
		display: none;
	}
	.cart_totals table.shop_table {
		margin-bottom: 10px;
	}
	.cart_totals table.shop_table tr.order-total th,
	.cart_totals table.shop_table tr.order-total td {
		padding: 0;
		font-size: 15px;
	}
	.wc-proceed-to-checkout {
		margin-top: 0;
	}
	/* Bar'ın kendisi artık footer görünür olduğunda IntersectionObserver ile gizleniyor
	   (bkz. raff-commerce.js initFooterAwareStickyBars) — bu padding sadece bar görünürken
	   son içerik/aksiyon satırının altında kalmaması için gereken normal boşluk (48-80px).
	   .raff-page-content'in kendi genel padding-bottom'u (düz sayfalar için, clamp 56-100px)
	   burada SIFIRLANIR — aksi halde bununla toplanıp son içerikten footer'a kadar
	   130-150px'lik anlamsız boşluğa yol açıyordu. */
	body.woocommerce-cart {
		padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px));
	}
	body.woocommerce-cart .raff-page-content {
		padding-bottom: 0;
	}
	/* Son içerik (form) ile footer arasında normal (48-80px) boşluk — raff.css'teki
	   40px margin tek başına biraz dar kalıyordu. */
	body.woocommerce-cart .woocommerce-cart-form {
		margin-bottom: 56px;
	}
}

/* Kök neden notu (§21 "dev anlamsız boşluk"): sepette az ürün varken toplam sayfa
   yüksekliği (header+form+footer) viewport'tan KISA kalıyor — footer normal akışta erken
   bitiyor, altında (masaüstünde salt boşluk, mobilde ayrıca sabitlenen .cart-collaterals
   bar'ıyla arada) anlamsız bir "krem" boşluk oluşuyordu (canlı testte hem 390×844 hem
   1440×900'de doğrulandı). Çözüm TÜM genişliklerde uygulanır (yalnızca mobil medya sorgusuna
   bağlı değil): body'yi flex sütun yapıp sayfa içerik sarmalayıcısını `flex:1` yaparak
   footer'ı her zaman viewport'un altına iter — yalnızca sepet sayfasını etkiler, diğer
   sayfaların genel yerleşimine dokunulmaz. Sepet sayfası [woocommerce_cart] shortcode'u ile
   normal bir WP sayfası (page.php) olarak render ediliyor — tema genelindeki `<main class=
   "raff-site-content">` sarmalayıcısını kullanıyor (`.raff-main` DEĞİL — o yalnızca WC'nin
   KENDİ archive/single-product şablonlarındaki `woocommerce_before_main_content` hook'undan
   gelir, sepet sayfasında hiç yok — canlı DOM'da doğrulandı). */
body.woocommerce-cart {
	display: flex;
	flex-direction: column;
	min-height: 100dvh;
}
body.woocommerce-cart .raff-site-content {
	flex: 1 0 auto;
}
body.woocommerce-cart footer.raff-footer {
	flex: 0 0 auto;
}

@media (min-width: 1024px) {
	/* Görev şartı §7: SOL ~65-68% / SAĞ ~27-30% (1460px content-max'ta gutter
	   çıkarıldığında ~400-420px sağ kolon bu oranı verir — canlı ölçümle
	   kalibre edildi, bkz. cart-redesign.md). */
	body.woocommerce-cart .raff-page-content > .woocommerce {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(380px, 420px);
		column-gap: clamp(32px, 4vw, 56px);
		align-items: start;
	}
	body.woocommerce-cart .woocommerce-notices-wrapper {
		grid-column: 1 / -1;
	}
	body.woocommerce-cart form.woocommerce-cart-form {
		grid-column: 1;
		min-width: 0;
	}
	body.woocommerce-cart .cart-collaterals {
		grid-column: 2;
		position: sticky;
		top: var(--commerce-sticky-height);
		min-width: 0;
	}
}

/* 1920px+ geniş masaüstü: sabit max-width'in ortada küçük bir widget gibi kalmasını
   önlemek için sol/sağ kolon oranı ve tipografi kademeli büyür (görev §7/§27).
   Kök neden notu: bu blok önceden --commerce-content-max'ı 1440px'e (temel
   değerden DAHA KÜÇÜK bir sayıya) "bumpluyordu" — 1600px+ ekranlarda içerik
   genişliğinin büyümek yerine KÜÇÜLMESİNE yol açan sessiz bir regresyon
   bug'ıydı (canlı ölçümle bu görevde yakalandı). Ayrıca cart image oranı
   148×197 (~3:4) idi — 2:3 canonical oranla ÇELİŞİYORDU (bu görevde
   düzeltildi, aynı temel .raff-cart-row__media img kuralı yerine geçer). */
@media (min-width: 1600px) {
	:root {
		--commerce-content-max: 1560px;
	}
	.raff-cart-row__name {
		font-size: 18px;
	}
	.raff-cart-row__media img {
		width: 170px;
		height: 255px;
	}
}
/* ============================================================
   5 · Checkout
   ============================================================ */
body.woocommerce-checkout .raff-page-content {
	max-width: var(--commerce-content-max);
}

/* Güven çizgisi: emoji/kutu yok, ince tek satır */
.raff-trust-line {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 22px;
	padding: 14px 0;
	margin: 0 0 26px;
	border-top: 1px solid var(--cizgi);
	border-bottom: 1px solid var(--cizgi);
}
.raff-trust-line li {
	display: flex;
	align-items: center;
	gap: 7px;
	font-size: 11.5px;
	letter-spacing: 0.02em;
	color: var(--soluk-metin);
}
.raff-trust-line__icon {
	display: inline-flex;
	width: 15px;
	height: 15px;
	flex: none;
	color: var(--kestane);
}
.raff-trust-line__icon svg {
	width: 100%;
	height: 100%;
}

.woocommerce-form-coupon-toggle .woocommerce-info {
	cursor: pointer;
}
.checkout_coupon.woocommerce-form-coupon {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: flex-end;
	padding: 16px 0 22px;
	border-bottom: 1px solid var(--cizgi);
	margin-bottom: 22px;
}
.checkout_coupon.woocommerce-form-coupon p {
	margin: 0;
}
.checkout_coupon .form-row-first {
	flex: 1;
	min-width: 180px;
}

form.checkout.woocommerce-checkout h3#order_review_heading {
	font-size: clamp(16px, 1.6vw, 19px);
	text-transform: none;
	margin: clamp(28px, 4vw, 0) 0 16px;
}
#customer_details h3 {
	font-size: var(--commerce-title-size);
	text-transform: none;
	margin-bottom: 20px;
}
/* WooCommerce, form-row'ları .col-1/.col-2'nin DEĞİL, iki seviye içerideki
   .woocommerce-{billing,shipping}-fields__field-wrapper'ın direkt çocuğu yapar
   (Additional Checkout Fields API sarmalayıcısı) — flex container'ı orada kurulmalı. */
#customer_details .woocommerce-billing-fields__field-wrapper,
#customer_details .woocommerce-shipping-fields__field-wrapper {
	display: flex;
	flex-wrap: wrap;
	column-gap: 20px;
}
#customer_details .col-2 {
	margin-top: 22px;
	padding-top: 22px;
	border-top: 1px solid var(--cizgi);
}
.woocommerce-checkout .form-row {
	margin-bottom: 20px;
	width: 100%;
}
.woocommerce-checkout .form-row-first,
.woocommerce-checkout .form-row-last {
	width: calc(50% - 10px);
}
.woocommerce-checkout .form-row-wide {
	width: 100%;
}
.woocommerce-checkout .validate-required.woocommerce-invalid input,
.woocommerce-checkout .validate-required.woocommerce-invalid select {
	border-bottom-color: #8a2f1e;
}
.woocommerce-checkout .woocommerce-invalid-required-field-error,
span.description {
	color: #8a2f1e;
	font-size: 11px;
	display: block;
	margin-top: 4px;
}

.woocommerce-checkout-review-order-table {
	width: 100%;
}
.woocommerce-checkout-review-order-table thead {
	display: none;
}
.woocommerce-checkout-review-order-table tbody tr {
	border-bottom: 1px solid var(--cizgi);
}
.woocommerce-checkout-review-order-table td {
	padding: 10px 0;
	font-size: 13px;
}
.woocommerce-checkout-review-order-table td.product-name {
	color: var(--siyah);
}
.woocommerce-checkout-review-order-table td.product-total {
	text-align: right;
	white-space: nowrap;
}
.woocommerce-checkout-review-order-table tfoot tr {
	border-bottom: 1px solid var(--cizgi);
}
.woocommerce-checkout-review-order-table tfoot th {
	font-weight: 400;
	color: var(--soluk-metin);
	text-align: left;
	font-size: 13px;
}
.woocommerce-checkout-review-order-table tfoot td {
	text-align: right;
	font-size: 13px;
}
.woocommerce-checkout-review-order-table tfoot tr.order-total th,
.woocommerce-checkout-review-order-table tfoot tr.order-total td {
	font-size: 17px;
	color: var(--siyah);
	border-bottom: none;
	padding-top: 14px;
}
/* --- Kargo/ödeme yöntemi listeleri: .raff-page-content li { list-style:disc } genel kuralı
   (düz metin sayfaları için) bu WooCommerce listelerine sızıyordu — burada #payment'ın kendi
   ID özgüllüğü ve body class önekiyle kesin biçimde geçersiz kılınıyor. --- */
ul.woocommerce-shipping-methods,
body.woocommerce-cart ul.woocommerce-shipping-methods li,
body.woocommerce-checkout ul.woocommerce-shipping-methods li,
#payment ul.payment_methods li {
	list-style: none;
	margin-left: 0;
}
ul.woocommerce-shipping-methods {
	margin: 0;
}
ul.woocommerce-shipping-methods li {
	display: flex;
	align-items: center;
	font-size: 13px;
	margin-bottom: 10px;
}
ul.woocommerce-shipping-methods li input[type="radio"] {
	margin-right: 8px;
	flex: none;
}
ul.woocommerce-shipping-methods li label {
	margin: 0;
}

/* raff.css'teki `.woocommerce-checkout #payment` (1 id + 1 class) daha spesifik olduğu için
   bare `#payment` kuralı onu geçemiyordu — body class önekiyle özgüllük artırıldı. */
body.woocommerce-checkout #payment {
	background: none;
	border: none;
	border-top: 1px solid var(--cizgi);
	padding: 20px 0 0;
	margin-top: 20px;
}
#payment ul.payment_methods {
	margin: 0 0 16px;
}
#payment .woocommerce-info {
	padding: 18px 20px;
	font-size: 13px;
}
#payment .wc_payment_method {
	padding: 10px 0;
	border-bottom: 1px solid var(--cizgi);
	font-size: 13px;
}
#payment .payment_box {
	background: var(--zemin-alt);
	padding: 14px 16px;
	margin-top: 10px;
	font-size: 12.5px;
}
#place_order {
	width: 100%;
	height: 52px;
	background: var(--siyah);
	color: var(--tutsu);
	border: none;
	font-size: 11px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}
#place_order:hover {
	background: var(--kestane);
}
.woocommerce-terms-and-conditions-wrapper {
	margin: 20px 0 16px;
	padding-top: 16px;
	border-top: 1px solid var(--cizgi);
	font-size: 13px;
	color: var(--soluk-metin);
}
.woocommerce-privacy-policy-text {
	font-size: 13px;
	color: var(--soluk-metin);
	margin-bottom: 18px;
	line-height: 1.6;
}
.woocommerce-privacy-policy-text a {
	color: var(--kestane);
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Mobil sticky "Siparişi Onayla" barı */
.raff-checkout-stickybar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 70;
	display: none;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 12px var(--commerce-gutter);
	padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
	background: var(--beyaz);
	border-top: 1px solid var(--cizgi);
	box-shadow: 0 -4px 16px rgba(13, 12, 10, 0.08);
}
.raff-checkout-stickybar.is-visible {
	display: flex;
}
.raff-checkout-stickybar__total {
	font-size: 15px;
	flex: none;
}
.raff-checkout-stickybar__cta {
	flex: 1;
	max-width: 240px;
	height: 46px;
	background: var(--siyah);
	color: var(--tutsu);
	border: none;
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	cursor: pointer;
}
.raff-checkout-stickybar__cta:hover {
	background: var(--kestane);
}
.raff-checkout-stickybar__cta:disabled {
	background: var(--zemin-alt);
	color: var(--soluk-metin);
	cursor: not-allowed;
}

@media (max-width: 1023px) {
	body.woocommerce-checkout.raff-has-checkout-stickybar {
		padding-bottom: 64px;
	}
	body.woocommerce-checkout.raff-has-checkout-stickybar .raff-page-content {
		padding-bottom: 0;
	}
	/* Son içerik (checkout formu) ile footer arasında normal (48-80px) boşluk. */
	body.woocommerce-checkout.raff-has-checkout-stickybar form.checkout.woocommerce-checkout {
		margin-bottom: 56px;
	}
	#payment,
	.woocommerce-terms-and-conditions-wrapper + p,
	form.checkout.woocommerce-checkout > p > button#place_order {
		scroll-margin-top: 90px;
	}
}

@media (min-width: 1024px) {
	form.checkout.woocommerce-checkout {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(340px, 400px);
		column-gap: clamp(40px, 5vw, 72px);
		align-items: start;
	}
	#customer_details {
		grid-column: 1;
		grid-row: 1 / span 2;
		min-width: 0;
	}
	form.checkout.woocommerce-checkout h3#order_review_heading {
		grid-column: 2;
		grid-row: 1;
		margin-top: 0;
	}
	#order_review {
		grid-column: 2;
		grid-row: 2;
		min-width: 0;
		position: sticky;
		top: var(--commerce-sticky-height);
		background: var(--zemin-alt);
		padding: 22px 24px;
	}
	.raff-checkout-stickybar {
		display: none !important;
	}
}

/* ============================================================
   6 · Final cleanup pass — çift CTA, sticky/footer çakışması,
   minimal footer, sepet aksiyon polish
   ============================================================ */

/* Mobilde sticky bar aktifken native "Siparişi Onayla" butonu ekrandan gizlenir ama
   DOM'da ve erişilebilirlik ağacında kalır (klavye/ekran okuyucu ile hâlâ ulaşılabilir) —
   JS bu class'ı yalnızca sticky bar başarıyla kurulduğunda ekler; JS kapalıysa native
   buton normal görünür haliyle kalır (progressive enhancement, fallback korunur). */
@media (max-width: 1023px) {
	body.raff-native-place-order-hidden #place_order {
		position: absolute !important;
		width: 1px !important;
		height: 1px !important;
		padding: 0 !important;
		margin: -1px !important;
		overflow: hidden !important;
		clip: rect(0, 0, 0, 0) !important;
		white-space: nowrap !important;
		border: 0 !important;
	}
}

/* Sticky barlar (ürün/sepet/checkout) footer görünür olduğunda geçici gizlenir,
   footer'ın üzerine binmesini önler; footer kaybolunca bar tekrar döner.
   .cart-collaterals yalnızca <=760px'de position:fixed olur (bkz. §4 mobil blok) — bu yüzden
   gizleme kuralı da aynı breakpoint'e bağlanır, aksi halde 761-1023px aralığında (normal
   block akışındayken) sepet özeti tamamen kayboluyordu. */
body.raff-near-footer .raff-mobile-buybar,
body.raff-near-footer .raff-checkout-stickybar {
	display: none !important;
}
@media (max-width: 760px) {
	/* Kök neden notu: `display:none` DEĞİL `position:static` kullanılır. Sepette az ürün
	   varken (içerik + footer viewport'tan kısa) footer sayfa YÜKLENİR YÜKLENMEZ görünür
	   oluyor — `raff-near-footer` class'ı hemen ekleniyor. Eskiden bar bu durumda TAMAMEN
	   gizleniyordu, yani "Ödemeye Geç" butonuna ULAŞMANIN HİÇBİR YOLU kalmıyordu (canlı
	   testte doğrulanan ciddi bir satın alma engeli). `position:static` bar'ı normal
	   akışa (form ile footer arasına) geri döndürür — sabit/floating olmaktan çıkar ama
	   HER ZAMAN erişilebilir kalır. */
	body.raff-near-footer .cart-collaterals {
		position: static;
		box-shadow: none;
		border-top: 1px solid var(--cizgi);
		padding-bottom: 14px;
	}
}

/* --- Minimal footer (yalnızca sepet/checkout) --- */
.raff-footer--minimal {
	margin-top: 0;
}
.raff-footer-minimal__in {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 24px;
	padding: 22px 0;
}
.raff-footer-minimal__copy {
	font-size: 11px;
	color: rgba(217, 218, 216, 0.7);
	white-space: nowrap;
}
.raff-footer-minimal__links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 20px;
	list-style: none;
}
.raff-footer-minimal__links a {
	font-size: 11px;
	color: rgba(217, 218, 216, 0.85);
	text-decoration: none;
	border: none;
	padding: 0;
	background: none;
	display: inline;
}
.raff-footer-minimal__links a:hover {
	color: var(--kestane-acik);
}
@media (max-width: 600px) {
	.raff-footer-minimal__in {
		flex-direction: column;
		align-items: flex-start;
		gap: 14px;
	}
	.raff-footer-minimal__links {
		gap: 8px 16px;
	}
}

/* --- Sepette daha ince adet stepper --- */
.woocommerce-cart .quantity {
	height: 36px;
}
.woocommerce-cart .raff-qty-btn {
	width: 30px;
}

/* --- Kupon disclosure (sepet sayfası, JS ile kapalı/açık yönetilir) --- */
.raff-cart-coupon-trigger {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: none;
	border: none;
	padding: 0;
	font-size: 12px;
	color: var(--soluk-metin);
	text-decoration: underline;
	text-underline-offset: 2px;
	cursor: pointer;
}
.raff-cart-coupon-trigger:hover {
	color: var(--kestane);
}
/* .raff-cart-actions .coupon{display:flex} kuralından daha spesifik olması gerekiyor
   (JS ile aç/kapa yapılan bir durum class'ı olduğu için !important kabul edilebilir). */
.raff-cart-actions .coupon.raff-coupon-collapsed {
	display: none !important;
}

/* --- Sepet otomatik güncelleme yükleniyor durumu --- */
.woocommerce-cart .raff-qty-enhanced.is-updating {
	opacity: 0.5;
	pointer-events: none;
}
.woocommerce-cart-form.raff-auto-update button[name="update_cart"] {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	border: 0 !important;
}

/* ================================================================================
   STYLE 9 "İSVİÇRE" + KESTANE REBUILD — Product / Cart / Checkout
   Önceki "Gazete" (Bodoni Moda/Cormorant/IBM Plex Mono, krem zemin) bölümünün
   TAMAMININ YERİNE geçer — kullanıcı geri bildirimi: çok editorial/wireframe
   hissetti. Yeni hedef: raff-10-stil.html [data-theme="isvicre"] mantığı —
   beyaz zemin, siyaha yakın mürekkep, sıkı Archivo tipografi, güçlü hiyerarşi,
   minimum dekorasyon — ama referansın kırmızısı (#e0392b) DEĞİL, RAFF'ın
   kestane marka rengi (--raff-accent, raff.css'teki --kestane'e bağlı, tek
   doğruluk kaynağı). Header/footer/anasayfa dokunulmadı. Ürün fotoğraflarına
   grayscale filtresi UYGULANMADI — gerçek renk. Bu blok dosyanın SONUNDA
   olduğu için düzen/grid/mekanik (flexslider, sticky bar, AJAX class'ları,
   shipping-rules.php'nin tek-yöntem filtresi) hiçbirine dokunmadan, yalnızca
   renk/tipografi/boşluk/kutu-hissini yeniden kalibre eder.
   ================================================================================ */

body.single-product .raff-woocommerce-main,
body.woocommerce-cart .raff-site-content,
body.woocommerce-checkout .raff-site-content {
	background: var(--raff-bg);
}
body.single-product .raff-woocommerce-main .woocommerce-breadcrumb {
	font-family: var(--raff-caption);
	font-size: 11px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--raff-muted);
}
body.single-product .raff-woocommerce-main .woocommerce-breadcrumb a {
	color: var(--raff-muted);
}

/* ================================================================================
   1 · ÜRÜN DETAY
   ================================================================================ */
.raff-product-eyebrow {
	font-family: var(--raff-caption);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--raff-muted);
	margin: 0 0 10px;
}
.raff-product-summary .product_title {
	font-family: var(--raff-display);
	font-weight: 700;
	font-size: clamp(26px, 2.6vw, 42px);
	line-height: 1.08;
	letter-spacing: -0.01em;
	text-transform: none;
	color: var(--raff-ink);
	margin-bottom: 16px;
}
.raff-product-summary .price {
	font-family: var(--raff-caption);
	font-size: 15px;
	color: var(--raff-ink);
	margin-bottom: 20px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--raff-line);
	display: flex;
	align-items: baseline;
	gap: 12px;
	flex-wrap: wrap;
}
.raff-product-summary .price del {
	/* Görev §21 sırası: regular_price (çizili) ÖNCE, sale_price (aktif) SONRA —
	   WooCommerce'in kendi DOM sırası (del sonra ins) zaten bu sırayla eşleşiyor,
	   flex `order` ile TERSİNE ÇEVRİLMEZ. */
	color: var(--raff-muted);
	text-decoration: line-through;
	font-size: 14px;
	font-weight: 400;
}
.raff-product-summary .price ins {
	color: var(--raff-accent);
	font-weight: 600;
	font-size: 19px;
	text-decoration: none;
}
.raff-product-summary .summary.entry-summary > p.price.raff-price--range,
.raff-product-summary .summary.entry-summary > p.price.raff-price--select-size {
	font-family: var(--raff-caption);
	font-size: 12px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--raff-muted);
}
.raff-product-summary .woocommerce-product-details__short-description {
	font-family: var(--raff-body);
	font-weight: 400;
	font-size: 15px;
	line-height: 1.65;
	color: var(--raff-ink);
	max-width: 52ch;
	margin-bottom: 24px;
}
.raff-product-summary .woocommerce-product-details__short-description p {
	margin: 0 0 10px;
}
.raff-product-summary .stock {
	font-family: var(--raff-caption);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.04em;
	color: var(--raff-muted);
}
.raff-product-summary .stock.out-of-stock {
	color: var(--raff-sale);
}

/* İndirim rozeti: küçük, sade, mono değil normal Archivo caption */
.raff-product-gallery .raff-badge--sale {
	background: var(--raff-accent);
	color: var(--raff-accent-ink);
	border: none;
	border-radius: 0;
	padding: 5px 10px;
	font-family: var(--raff-caption);
	font-weight: 600;
	font-size: 10px;
	letter-spacing: 0.08em;
}

/* ---------- Renk / Beden — sıkı İsviçre grid, kestane vurgu (görev §22-23) ---------- */
.raff-product-summary table.variations th.label {
	font-family: var(--raff-caption);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	color: var(--raff-muted);
}
.raff-size-row {
	gap: 8px;
	margin-bottom: 6px;
	padding-bottom: 4px;
}
/* Renk: metin + alt çizgi (kutu değil) */
table.variations tr[class*="renk"] .raff-size-row,
.raff-size-row[data-attribute*="renk"] {
	gap: 4px 20px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--raff-line);
}
.raff-size-row[data-attribute*="renk"] .raff-size-btn {
	min-width: 0;
	height: auto;
	padding: 2px 0 6px;
	border: none;
	border-bottom: 2px solid transparent;
	background: none;
	color: var(--raff-ink);
	font-family: var(--raff-body);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0;
}
.raff-size-row[data-attribute*="renk"] .raff-size-btn:hover {
	border-bottom-color: var(--raff-line);
}
.raff-size-row[data-attribute*="renk"] .raff-size-btn.is-selected {
	background: none;
	color: var(--raff-ink);
	border-bottom-color: var(--raff-accent);
	font-weight: 700;
}
.raff-size-row[data-attribute*="renk"] .raff-size-btn:disabled,
.raff-size-row[data-attribute*="renk"] .raff-size-btn.is-disabled {
	background: none;
	color: rgba(10, 10, 10, 0.28);
	border-bottom-color: transparent;
}
.raff-size-row[data-attribute*="renk"] .raff-size-btn.is-outofstock {
	background: none;
	color: rgba(10, 10, 10, 0.35);
	text-decoration: line-through;
	border-bottom-color: transparent;
}
.raff-size-row[data-attribute*="renk"] .raff-size-btn.is-selected.is-outofstock {
	color: rgba(10, 10, 10, 0.5);
	border-bottom-color: var(--raff-line);
}

/* Beden: sıkı kare/dikdörtgen grid — İsviçre karakteri (görev §23) */
.raff-size-row[data-attribute*="beden"] {
	gap: 8px;
}
.raff-size-row[data-attribute*="beden"] .raff-size-btn {
	min-width: 46px;
	height: 42px;
	padding: 0 14px;
	border: 1px solid var(--raff-line);
	border-radius: 0;
	background: var(--raff-bg);
	color: var(--raff-ink);
	font-family: var(--raff-caption);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.01em;
}
.raff-size-row[data-attribute*="beden"] .raff-size-btn:hover {
	border-color: var(--raff-ink);
}
.raff-size-row[data-attribute*="beden"] .raff-size-btn.is-selected {
	background: var(--raff-accent);
	border-color: var(--raff-accent);
	color: var(--raff-accent-ink);
	font-weight: 600;
}
.raff-size-row[data-attribute*="beden"] .raff-size-btn:disabled,
.raff-size-row[data-attribute*="beden"] .raff-size-btn.is-disabled {
	color: rgba(10, 10, 10, 0.28);
	border-color: var(--raff-line);
	background: repeating-linear-gradient(-45deg, var(--raff-surface) 0 4px, var(--raff-bg) 4px 8px);
}
.raff-size-row[data-attribute*="beden"] .raff-size-btn.is-outofstock {
	color: rgba(10, 10, 10, 0.35);
	border-color: var(--raff-line);
	background: var(--raff-bg);
	text-decoration: line-through;
}
.raff-size-row[data-attribute*="beden"] .raff-size-btn.is-selected.is-outofstock {
	background: rgba(169, 104, 39, 0.45);
	border-color: var(--raff-accent);
	color: rgba(255, 255, 255, 0.75);
}
a.reset_variations {
	font-family: var(--raff-caption);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.02em;
	color: var(--raff-muted);
	border-bottom-color: var(--raff-line);
}
a.reset_variations:hover {
	color: var(--raff-ink);
	border-bottom-color: var(--raff-ink);
}
.woocommerce-variation-price {
	font-family: var(--raff-caption);
}
.woocommerce-variation-availability {
	font-family: var(--raff-caption);
	font-size: 11px;
	color: var(--raff-muted);
}

/* ---------- Quantity + Sepete Ekle — görsel olarak "birbirine ait" (görev §24) ---------- */
.raff-product-summary form.cart {
	margin-bottom: 24px;
}
.raff-product-summary .quantity {
	border: 1px solid var(--raff-ink);
	border-radius: 0;
	height: 48px;
}
.raff-product-summary .quantity input.qty {
	font-family: var(--raff-caption);
	font-size: 14px;
	font-weight: 500;
	color: var(--raff-ink);
}
.raff-product-summary .raff-qty-btn {
	color: var(--raff-ink);
	font-family: var(--raff-caption);
}
.raff-product-summary .raff-qty-btn:hover {
	background: var(--raff-surface);
	color: var(--raff-accent);
}
.raff-product-summary .single_add_to_cart_button {
	background: var(--raff-accent);
	border: 1px solid var(--raff-accent);
	color: var(--raff-accent-ink);
	border-radius: 0;
	font-family: var(--raff-caption);
	font-weight: 600;
	font-size: 12px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	height: 48px;
}
.raff-product-summary .single_add_to_cart_button:hover {
	background: var(--raff-accent-hover);
	border-color: var(--raff-accent-hover);
}
.raff-product-summary .single_add_to_cart_button.disabled,
.raff-product-summary .single_add_to_cart_button:disabled {
	background: var(--raff-surface);
	border-color: var(--raff-line);
	color: var(--raff-muted);
}
@media (min-width: 460px) {
	.raff-product-summary form.cart .quantity {
		float: left;
		margin-right: 12px;
	}
}

/* ---------- Ürün meta: en altta küçük, boş SKU zaten satır basılmıyor (§25) ---------- */
.raff-product-summary .product_meta {
	font-family: var(--raff-caption);
	font-size: 11px;
	color: var(--raff-muted);
	border-top-color: var(--raff-line);
}
.raff-product-summary .product_meta a {
	color: var(--raff-muted);
}

/* ---------- Galeri çerçevesi (görev §26-27: 2:3 korunur, normalized sistem bozulmadı) ---------- */
.raff-product-gallery {
	background: var(--raff-bg);
}
.woocommerce-product-gallery__image {
	background: var(--raff-surface);
}
.woocommerce-product-gallery .flex-control-thumbs img {
	opacity: 0.55;
	border-width: 1px;
}
.woocommerce-product-gallery .flex-control-thumbs img:hover {
	opacity: 0.85;
}
.woocommerce-product-gallery .flex-control-thumbs img.flex-active {
	opacity: 1;
	border-color: var(--raff-accent);
	border-width: 2px;
}
.woocommerce-product-gallery__trigger {
	background: rgba(255, 255, 255, 0.92);
	color: var(--raff-ink);
	border-radius: 0;
}
/* Lightbox: minimal siyah/beyaz navigasyon — kestane UI eklenmedi (görev §28) */
.pswp__bg {
	background: rgb(10, 10, 10);
}

/* ---------- Sekmeler + ilişkili ürünler ---------- */
.raff-accordion {
	border-top: 1px solid var(--raff-line);
}
.raff-accordion ul.tabs {
	border-bottom-color: var(--raff-line);
}
.raff-accordion ul.tabs li a {
	font-family: var(--raff-caption);
	font-weight: 500;
	letter-spacing: 0.04em;
	color: var(--raff-muted);
}
.raff-accordion ul.tabs li.active a {
	color: var(--raff-ink);
}
.raff-accordion ul.tabs li.active a::after {
	background: var(--raff-accent);
}
.raff-accordion .panel > h2 {
	font-family: var(--raff-caption);
	font-weight: 600;
	color: var(--raff-muted);
}
.raff-accordion .panel p,
.raff-policy-list li {
	font-family: var(--raff-body);
	font-size: 15px;
	color: var(--raff-ink);
}
.raff-policy-list li::before {
	color: var(--raff-accent);
}
.related.products {
	border-top: 1px solid var(--raff-line);
	padding-top: clamp(40px, 5vw, 64px);
}
.related.products > h2 {
	font-family: var(--raff-display);
	font-weight: 700;
	color: var(--raff-ink);
	text-transform: none;
}

/* ================================================================================
   2 · TOAST + NOTICES (görev §18)
   ================================================================================ */
body.single-product .toast,
body.woocommerce-cart .toast,
body.woocommerce-checkout .toast {
	background: var(--raff-ink);
	color: #ffffff;
	font-family: var(--raff-caption);
	font-weight: 500;
	font-size: 12px;
	letter-spacing: 0.04em;
	border-radius: 0;
	max-width: calc(100vw - 32px);
	text-align: center;
}
body.woocommerce-cart .woocommerce-error,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-checkout .woocommerce-error,
body.woocommerce-checkout .woocommerce-info,
body.single-product .woocommerce-error,
body.single-product .woocommerce-info {
	background: var(--raff-surface);
	border: none;
	border-left: 3px solid var(--raff-accent);
	border-radius: 0;
	color: var(--raff-ink);
	font-family: var(--raff-body);
	font-size: 14px;
	padding: 14px 18px;
}

/* ================================================================================
   3 · CART — Style 9 composition (görev §6-18)
   ================================================================================ */
body.woocommerce-cart .raff-page-header,
body.woocommerce-checkout .raff-page-header {
	background: var(--raff-bg);
	display: flex;
	align-items: baseline;
	gap: 14px;
	flex-wrap: wrap;
}
body.woocommerce-cart .raff-page-header h1,
body.woocommerce-checkout .raff-page-header h1 {
	font-family: var(--raff-display);
	font-weight: 700;
	font-size: clamp(28px, 3.2vw, 40px);
	color: var(--raff-ink);
	text-transform: uppercase;
	letter-spacing: -0.01em;
}
/* "SEPET" yanında ürün sayısı — küçük muted caption (görev §8) */
body.woocommerce-cart .raff-page-header h1::after {
	content: attr(data-count);
	display: inline-block;
	margin-left: 14px;
	font-family: var(--raff-caption);
	font-weight: 500;
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--raff-muted);
	vertical-align: middle;
}
body.woocommerce-cart .raff-page-content,
body.woocommerce-checkout .raff-page-content {
	background: var(--raff-bg);
}
body.woocommerce-cart form.woocommerce-cart-form,
body.woocommerce-cart .cart-collaterals {
	background: none;
	border: none;
	box-shadow: none;
}

/* ---------- Ürün satırı: card/table değil, alt-çizgili liste (görev §9-12) ---------- */
.raff-cart-row {
	border: none;
	border-bottom: 1px solid var(--raff-line);
	background: var(--raff-bg);
	padding: clamp(24px, 2.6vw, 32px) 0;
}
.raff-cart-row:first-child {
	border-top: 1px solid var(--raff-line);
}
.raff-cart-row__media {
	background: var(--raff-surface);
}
.raff-cart-row__name {
	font-family: var(--raff-body);
	font-weight: 600;
	font-size: clamp(16px, 1.4vw, 19px);
	color: var(--raff-ink);
	text-transform: none;
	letter-spacing: 0;
}
.raff-cart-row__name a {
	color: var(--raff-ink);
}
.raff-cart-row__variation {
	font-family: var(--raff-caption);
	font-weight: 500;
	font-size: 12.5px;
	letter-spacing: 0.02em;
	color: var(--raff-muted);
	text-transform: none;
}
.raff-cart-row__remove {
	font-family: var(--raff-caption);
	font-weight: 500;
	font-size: 12px;
	letter-spacing: 0.01em;
	color: var(--raff-muted);
	text-transform: none;
	text-decoration: none;
	border-bottom: 1px solid var(--raff-line);
}
.raff-cart-row__remove:hover {
	color: var(--raff-accent);
	border-bottom-color: var(--raff-accent);
}
.raff-cart-row__price,
.raff-cart-row__price-mobile,
.raff-cart-row__subtotal {
	font-family: var(--raff-caption);
	font-weight: 500;
	font-size: 14px;
	color: var(--raff-ink);
}

/* ---------- Quantity stepper: modern minimal dikdörtgen (görev §11) ---------- */
.raff-cart-row .quantity {
	border: 1px solid var(--raff-line);
	border-radius: 0;
}
.raff-cart-row .raff-qty-btn {
	color: var(--raff-ink);
}
.raff-cart-row .raff-qty-btn:hover {
	background: var(--raff-surface);
	color: var(--raff-accent);
}
.raff-cart-row .quantity input.qty {
	font-family: var(--raff-caption);
	font-weight: 500;
	color: var(--raff-ink);
}

/* ---------- Kupon: modern disclosure, mono/typewriter hissi YOK (görev §17) ---------- */
.raff-cart-coupon-trigger {
	font-family: var(--raff-caption);
	font-weight: 500;
	font-size: 13px;
	letter-spacing: 0;
	color: var(--raff-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.raff-cart-coupon-trigger:hover {
	color: var(--raff-accent);
}
.raff-cart-actions .coupon {
	gap: 0;
}
.raff-cart-actions .coupon input#coupon_code {
	border: 1px solid var(--raff-line);
	border-right: none;
	background: var(--raff-bg);
	font-family: var(--raff-caption);
	font-size: 13px;
	border-radius: 0;
	height: 46px;
	padding: 0 16px;
}
.raff-cart-actions .coupon input#coupon_code:focus {
	border-color: var(--raff-accent);
	outline: none;
}
.raff-cart-actions .coupon button[name="apply_coupon"] {
	border-radius: 0;
	border: 1px solid var(--raff-ink);
	background: var(--raff-ink);
	color: #ffffff;
	font-family: var(--raff-caption);
	font-weight: 600;
	font-size: 12px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	height: 46px;
	padding: 0 20px;
}
.raff-cart-actions .coupon button[name="apply_coupon"]:hover {
	background: var(--raff-accent);
	border-color: var(--raff-accent);
}

/* ---------- Sipariş özeti (görev §15) — hafif surface, card/shadow/radius yok ---------- */
body.woocommerce-cart .cart_totals,
body.woocommerce-checkout #order_review {
	background: var(--raff-surface);
	border: none;
	box-shadow: none;
	border-radius: 0;
	padding: clamp(24px, 2.4vw, 32px);
}
body.woocommerce-cart .cart_totals > h2,
body.woocommerce-checkout #order_review_heading {
	font-family: var(--raff-caption);
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--raff-ink);
	border: none;
	padding: 0 0 18px;
	margin: 0 0 18px;
	border-bottom: 1px solid var(--raff-line);
}
body.woocommerce-cart .cart_totals table.shop_table,
body.woocommerce-checkout table.shop_table {
	border: none;
	background: none;
}
body.woocommerce-cart .cart_totals table.shop_table tr,
body.woocommerce-checkout table.shop_table tr {
	border: none;
	border-bottom: 1px solid var(--raff-line);
}
body.woocommerce-cart .cart_totals table.shop_table th,
body.woocommerce-cart .cart_totals table.shop_table td,
body.woocommerce-checkout table.shop_table th,
body.woocommerce-checkout table.shop_table td {
	font-family: var(--raff-caption);
	font-weight: 500;
	font-size: 13.5px;
	color: var(--raff-ink);
	border: none;
	padding: 11px 0;
}
body.woocommerce-cart .cart_totals table.shop_table tr.order-total th,
body.woocommerce-cart .cart_totals table.shop_table tr.order-total td,
body.woocommerce-checkout table.shop_table tr.order-total th,
body.woocommerce-checkout table.shop_table tr.order-total td {
	font-family: var(--raff-display);
	font-size: 18px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: -0.005em;
	border-top: 2px solid var(--raff-ink);
	border-bottom: none;
	padding-top: 16px;
}
#shipping_method {
	list-style: none;
	margin: 0;
	padding: 0;
}
#shipping_method li {
	list-style: none;
}
#shipping_method label {
	font-family: var(--raff-caption);
	font-weight: 500;
	font-size: 13.5px;
	color: var(--raff-ink);
}
.woocommerce-shipping-destination {
	display: none;
}

/* ---------- Primary CTA — ticari/modern, aşırı letter-spacing yok (görev §16) ---------- */
body.woocommerce-cart a.checkout-button,
body.woocommerce-checkout #place_order {
	background: var(--raff-accent);
	border: 1px solid var(--raff-accent);
	color: #ffffff;
	border-radius: 0;
	font-family: var(--raff-caption);
	font-weight: 600;
	letter-spacing: 0.03em;
	font-size: 14px;
	text-transform: uppercase;
	width: 100%;
	text-align: center;
	padding: 17px 0;
}
body.woocommerce-cart a.checkout-button:hover,
body.woocommerce-checkout #place_order:hover {
	background: var(--raff-ink);
	border-color: var(--raff-ink);
}

/* ---------- Ücretsiz kargo ilerleme çubuğu (görev §14) ---------- */
.raff-shipping-progress__text {
	font-family: var(--raff-caption);
	font-weight: 500;
	font-size: 12px;
	letter-spacing: 0.02em;
	color: var(--raff-ink);
}
.raff-shipping-progress__track {
	background: var(--raff-line);
	height: 2px;
}
.raff-shipping-progress__fill {
	background: var(--raff-accent);
	height: 2px;
}

/* ================================================================================
   4 · CHECKOUT — aynı Style 9 sistemi (görev §29-35)
   ================================================================================ */
body.woocommerce-checkout .woocommerce-billing-fields h3,
body.woocommerce-checkout #order_review_heading {
	font-family: var(--raff-caption);
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--raff-ink);
}
body.woocommerce-checkout .form-row label {
	font-family: var(--raff-caption);
	font-weight: 600;
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--raff-muted);
	margin-bottom: 6px;
	display: block;
}
/* Görev şartı §31: dev floating/card yok, gerçek input kutusu — çizgi (underline)
   sistem KALDIRILDI (Gazete'nin "wireframe hissi" şikayetinin ana kaynağıydı). */
body.woocommerce-checkout .input-text,
body.woocommerce-checkout select,
body.woocommerce-checkout textarea {
	border: 1px solid #d7d7d7;
	background: var(--raff-bg);
	border-radius: 0;
	height: 48px;
	padding: 12px 14px;
	font-family: var(--raff-caption);
	font-size: 14px;
	color: var(--raff-ink);
}
body.woocommerce-checkout textarea {
	height: auto;
	min-height: 96px;
}
body.woocommerce-checkout .input-text:focus,
body.woocommerce-checkout select:focus,
body.woocommerce-checkout textarea:focus {
	border-color: var(--raff-accent);
	outline: none;
}
body.woocommerce-checkout .select2-container--default .select2-selection--single {
	border: 1px solid #d7d7d7;
	border-radius: 0;
	height: 48px;
}
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 48px;
	font-family: var(--raff-caption);
	font-size: 14px;
	color: var(--raff-ink);
}
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 46px;
}
body.woocommerce-checkout .select2-container--default.select2-container--focus .select2-selection--single,
body.woocommerce-checkout .select2-container--default.select2-container--open .select2-selection--single {
	border-color: var(--raff-accent);
}

/* Sipariş özeti ürün satırı (görev §33) */
body.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name {
	font-family: var(--raff-body);
	font-weight: 500;
	font-size: 14px;
	color: var(--raff-ink);
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table .product-total {
	font-family: var(--raff-caption);
	font-weight: 500;
	font-size: 13.5px;
}

/* Ödeme yöntemi placeholder (görev §34) — doğal Türkçe bilgi, teknik WC hata görünümü değil */
#payment .woocommerce-info {
	background: var(--raff-surface);
	border: none;
	border-left: 3px solid var(--raff-accent);
	border-radius: 0;
	color: var(--raff-ink);
	font-family: var(--raff-body);
	font-size: 14px;
	padding: 16px 18px;
}

/* Güven şeridi: 3 temiz metin sütunu, ince outline ikon, kestane (görev §35) */
.raff-trust-line {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	border: none;
	border-top: 1px solid var(--raff-line);
	border-bottom: 1px solid var(--raff-line);
	padding: 18px 0;
}
.raff-trust-line li {
	display: flex;
	align-items: center;
	gap: 10px;
	justify-content: center;
	border-right: 1px solid var(--raff-line);
	padding: 0 10px;
}
.raff-trust-line li:last-child {
	border-right: none;
}
.raff-trust-line__icon {
	color: var(--raff-accent);
	width: 18px;
	height: 18px;
	flex: none;
}
.raff-trust-line li span:last-child {
	font-family: var(--raff-caption);
	font-weight: 500;
	font-size: 12.5px;
	color: var(--raff-ink);
}
@media (max-width: 600px) {
	.raff-trust-line {
		grid-template-columns: 1fr;
	}
	.raff-trust-line li {
		border-right: none;
		border-bottom: 1px solid var(--raff-line);
		justify-content: flex-start;
		padding: 12px 0;
	}
	.raff-trust-line li:last-child {
		border-bottom: none;
	}
}

