/* ==========================================================================
   WATER POINT — SEPET SAYFASI

   Kapsam: her kural `body.woocommerce-cart` ile başlar. Sebep tek:
   `.woocommerce`, `.shop_table`, `.quantity`, `.button`, `.select2-*`
   sınıfları sepet, ödeme ve hesabım sayfalarında AYNI. Kapsamsız yazılan
   tek bir kural üç sayfayı birden boyar ve komşu dosyalarla çakışır.

   ⚠ BU SAYFA SIFIRDAN KURULUYOR.
   `woocommerce-general` ve `woocommerce-layout` kuyruktan çıkarılmış
   (inc/enqueue.php). Yani tablo, input ve buton görünümü diye bir şey yok.
   Kuyrukta duran tek Woo stili `woocommerce-smallscreen` (yalnızca
   max-width:768px) — o da tabloyu kartlara çeviriyor ama kendi kararlarını
   `!important` ile dayatıyor. Aşağıda ilgili yerlerde ⚠ ile işaretlendi.

   Düzen özeti
     ┌──────────────────────────────┬──────────────────┐
     │ bildirimler (iki sütuna yayılır)                │
     ├──────────────────────────────┼──────────────────┤
     │ sepet kalemleri paneli       │ ÖZET (yapışkan)  │
     │ · başlık şeridi              │ · koyu marka başı│
     │ · satırlar                   │ · ara toplam     │
     │ · işlem şeridi (kupon+güncel)│ · kargo          │
     │                              │ · TOPLAM         │
     │                              │ · ödemeye git    │
     └──────────────────────────────┴──────────────────┘
   900 px altında tek sütun; özet DOM'da formdan sonra geldiği için
   kendiliğinden ALTA düşer, üste değil.
   ========================================================================== */


/* ==========================================================================
   0. YEREL DEĞİŞKEN — TOKEN BORCU

   Sözleşme kural 1: hiçbir bileşen kendi hex kodunu yazmaz. Aşağıdaki plaka
   değeri `_tokens.css`'e ait ama orada henüz karşılığı yok; hesap.css'teki
   yerel değişken deseniyle aynı şekilde, taşınana kadar TEK yerde duruyor.
   Değer main.css'teki `.wpt-media` kuralından birebir alındı — yeni bir renk
   uydurulmadı. `_tokens.css`'e `--wpt-plaka` eklendiğinde bu blok silinir ve
   hem `.wpt-media` hem buradaki iki kural aynı tokena bağlanır.

   ⚠ Koyu temada BİLEREK açık kalıyor: ürün görselleri beyaz zeminli PNG,
   koyu bir plakada beyaz cihaz kayboluyor. `.wpt-media` da aynı sebeple
   koyulaşmıyor — tutarlılık için aynı karar. Yani bu, koyu temada kırılan
   bir renk değil, koyu temada kırılmaması için sabitlenmiş bir yüzey.
   ========================================================================== */
body.woocommerce-cart{
  --wpt-plaka: radial-gradient(120% 90% at 50% 22%,
                 #FFFFFF 0%, #F2F5F8 58%, #E9EEF3 100%);
}


/* ==========================================================================
   1. SAYFA KABUĞU

   Sepet `page.php` üzerinden basılıyor: bütün içerik `article.wpt-entry`
   kutusunun içinde. O kutu MAKALE için tasarlandı — beyaz yüzey, 48 pikselе
   varan iç boşluk ve `.wpt-entry > *` üzerinde 820 piksellik genişlik
   sınırı + ortalama. Sepet ise iki sütunlu bir araç ekranı: makale kabuğunun
   içinde kalırsa iki panel 820 piksele sıkışıyor ve "panel içinde panel"
   görüntüsü çıkıyor.

   Kabuk burada sökülüyor; paneller doğrudan kâğıt zemine oturuyor.
   ========================================================================== */
body.woocommerce-cart .wpt-entry{
  background:none;
  border:0;
  border-radius:0;
  padding:0;
  box-shadow:none;
}
/* Genişlik sınırı ve ortalama kalkıyor — ızgara kendi genişliğini kurar. */
body.woocommerce-cart .wpt-entry > *{
  max-width:none;
  margin-inline:0;
}

/* Sayfa başlığı — bölüm başlığı deseninin (3.2) birebir aynısı:
   amber segmentle başlayan 2px kural. Sepet, mağazanın geri kalanıyla aynı
   elden çıkmış görünsün diye burada yeni bir başlık dili kurulmuyor. */
body.woocommerce-cart .wpt-entry-head{
  position:relative;
  padding-bottom:16px;
  /* 28px: üç yüzeyde de aynı. Önce 26 idi; ödeme 28, hesabım 30 yazıyordu ve
     sepetten ödemeye geçerken başlık altı boşluk her adımda oynuyordu. */
  margin-bottom:28px;
}
body.woocommerce-cart .wpt-entry-head::after{
  content:"";
  position:absolute; left:0; right:0; bottom:0;
  height:2px; border-radius:2px;
  background:linear-gradient(90deg,
    var(--wpt-amber) 0, var(--wpt-amber) 56px,
    var(--wpt-line) 56px, var(--wpt-line) 100%);
}
body.woocommerce-cart .wpt-entry-head h1{
  margin:0;
  font-size:clamp(26px,3.4vw,38px);
  letter-spacing:var(--wpt-track-s);
}


/* ==========================================================================
   2. İKİ SÜTUNLU IZGARA

   ⚠ Izgara yalnızca sepet formu VARSA kuruluyor.
   Sepet boşken `div.woocommerce` içinde sadece boş sepet mesajı ve
   "Mağazaya geri dön" düğmesi var; iki sütunlu ızgarada bu ikisi 356
   piksellik boş rayın yanında sıkışıyordu. `:has()` desteklenmeyen bir
   tarayıcıda kural hiç uygulanmaz ve düzen tek sütuna — yani zaten doğru
   olan hâline — düşer. Bu yüzden `:has()` burada risk değil, emniyet.
   ========================================================================== */
body.woocommerce-cart .woocommerce:has(form.woocommerce-cart-form){
  display:grid;
  /* 340px + 26px: ödeme sayfasının özet rayı ve sütun aralığı da birebir bu
     iki sayı. Önce burası 340/24, orası 384/26 idi — sepetten ödemeye tek
     tıkla geçen ziyaretçide sağ ray genişliği ve sütun aralığı zıplıyordu. */
  grid-template-columns:minmax(0,1fr) 340px;
  gap:26px;
  align-items:start;
}

/* Yerleşim SATIR NUMARASIZ yazılıyor: shop.css `.woocommerce-notices-wrapper`
   boşsa `display:none` veriyor, o zaman öge ızgaradan tamamen çıkıyor ve
   sabit satır numaraları kayardı. Yalnızca sütun söylenince otomatik
   yerleştirme iki durumu da doğru çözüyor. */
body.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper{ grid-column:1 / -1 }
body.woocommerce-cart .woocommerce > form.woocommerce-cart-form{ grid-column:1; min-width:0 }
body.woocommerce-cart .woocommerce > .cart-collaterals{ grid-column:2; min-width:0 }

/* Sözleşme 3.6 — sağ sütun yapışkan.
   Yapışkanlığın kapsayıcı bloğu ızgara ALANIDIR; alan da satırın (yani uzun
   sol panelin) yüksekliği kadardır. Bu yüzden `align-items:start` yapışkanlığı
   bozmaz, sadece paneli yukarı yaslar. */
body.woocommerce-cart .woocommerce .cart-collaterals{
  position:sticky;
  top:calc(var(--wpt-head-h) + var(--wpt-admin-h) + 16px);
  display:flex; flex-direction:column; gap:var(--wpt-gap);
}
/* Çapraz satış varsa özetin ALTINA iner — özet her zaman ilk sırada. */
body.woocommerce-cart .woocommerce .cart-collaterals > .cart_totals{ order:-1 }


/* ==========================================================================
   3. BİLDİRİMLER
   "Sepete eklendi", "Sepet güncellendi", "… sepetinizden çıkarıldı".
   Yeşil bir "başarılı" bandı YOK (sözleşme §4): yeşil sitede yalnızca stok
   ve onay ikonunda kullanılıyor. Bunun yerine mega menüdeki not kutusunun
   deseni: yüzey + solda amber imza çizgisi.
   ========================================================================== */
body.woocommerce-cart .woocommerce .woocommerce-notices-wrapper{ margin:0 }

body.woocommerce-cart .woocommerce .woocommerce-message,
body.woocommerce-cart .woocommerce .woocommerce-info,
body.woocommerce-cart .woocommerce .woocommerce-error{
  display:flex; align-items:center; flex-wrap:wrap; gap:10px 16px;
  margin:0 0 14px; padding:14px 18px;
  background:var(--wpt-surface);
  border:1px solid var(--wpt-line);
  border-left:var(--wpt-tick) solid var(--wpt-amber);
  border-radius:0 var(--wpt-r) var(--wpt-r) 0;
  box-shadow:var(--wpt-golge-sm);
  font-size:var(--wpt-fs-kart); line-height:1.55; color:var(--wpt-ink);
  list-style:none;
}
/* BİLGİ marka rengini taşır — "Kuponunuz var mı?", "Zaten üye misiniz?".
   Aynı üçlü ödeme ve hesabım yüzeylerinde de birebir bu şekilde. */
body.woocommerce-cart .woocommerce .woocommerce-info{
  background:var(--wpt-brand-soft);
  border-left-color:var(--wpt-brand);
}
/* ⚠ İki düzeltme: (1) `border-color` kısayolu 1px çizgiyi de kötü-soft'a
   çeviriyordu, yani kutunun kenarlığı kayboluyordu — yalnızca sol çubuk
   renklenmeli; (2) gövde metni kırmızıydı, oysa kırmızı zeminde kırmızı
   yazı hem AA'yı zorluyor hem diğer iki yüzeyde --wpt-ink olarak yazılmış. */
/* ⚠ `display:block` ŞART: hata kutusu bir `<ul>`; taban kural esnek kap
   olduğu için iki hata YAN YANA diziliyordu. hesap.css bunu çözmüştü. */
body.woocommerce-cart .woocommerce .woocommerce-error{
  display:block;
  background:var(--wpt-kotu-soft);
  border-left-color:var(--wpt-kotu);
}
body.woocommerce-cart .woocommerce .woocommerce-error li{ list-style:none; margin:0 }
body.woocommerce-cart .woocommerce .woocommerce-error li + li{ margin-top:7px }
body.woocommerce-cart .woocommerce .woocommerce-message:last-child,
body.woocommerce-cart .woocommerce .woocommerce-info:last-child,
body.woocommerce-cart .woocommerce .woocommerce-error:last-child{ margin-bottom:0 }

/* Bildirimin içindeki eylem ("Sepetim", "Geri al") — hap ikincil düğme.
   Yeni bir buton dili kurulmuyor, `.wpt-btn.is-ghost` görünümüne eşitleniyor. */
body.woocommerce-cart .woocommerce .woocommerce-message .button,
body.woocommerce-cart .woocommerce .woocommerce-info .button,
body.woocommerce-cart .woocommerce .woocommerce-error .button{
  display:inline-flex; align-items:center; justify-content:center;
  /* Boy tokendan: buton ölçeği 36/40/48. 34 gibi ara bir sayı yazmak
     sepete kendi buton ölçeğini kurdururdu (sözleşme 3.4). */
  height:var(--wpt-btn-kart); padding:0 16px; margin-left:auto;
  border:1px solid var(--wpt-line-2); border-radius:var(--wpt-r-hap);
  background:var(--wpt-surface); color:var(--wpt-ink);
  /* ⚠ Dinlenen gölge EKSİKTİ. main.css `.wpt-btn.is-ghost` ve hesap.css'teki
     karşılığı `--wpt-golge-sm` taşıyor; bu düğme kâğıda çizilmiş gibi
     duruyordu, kardeşleri ise kâğıdın üstünde. */
  box-shadow:var(--wpt-golge-sm);
  font-family:var(--wpt-font); font-size:13px; font-weight:600; line-height:1;
  text-decoration:none; cursor:pointer; white-space:nowrap;
  transition:border-color var(--wpt-gecis), color var(--wpt-gecis),
             box-shadow var(--wpt-gecis), transform var(--wpt-gecis);
}
body.woocommerce-cart .woocommerce .woocommerce-message .button:hover,
body.woocommerce-cart .woocommerce .woocommerce-info .button:hover,
body.woocommerce-cart .woocommerce .woocommerce-error .button:hover{
  border-color:transparent; color:var(--wpt-brand);
  transform:translateY(-1px); box-shadow:var(--wpt-parilti); text-decoration:none;
}
/* main.css `.wpt-btn:active{transform:translateY(1px)}` — basma geri bildirimi
   eşitlemede düşmüştü; ödeme yüzeyindeki ikincil düğmelerde var. */
body.woocommerce-cart .woocommerce .woocommerce-message .button:active,
body.woocommerce-cart .woocommerce .woocommerce-info .button:active,
body.woocommerce-cart .woocommerce .woocommerce-error .button:active{
  transform:translateY(1px);
}


/* ==========================================================================
   4. SEPET KALEMLERİ PANELİ

   Panel deseni (3.1) + kartın üst kenarındaki amber imza. Tablo panelin
   kenarlarına dayanıyor: iç boşluğu hücreler taşıyor, böylece başlık şeridi
   ve işlem şeridi kenardan kenara uzanabiliyor.
   ========================================================================== */
body.woocommerce-cart .woocommerce form.woocommerce-cart-form{
  position:relative;
  margin:0; padding:0;
  overflow:hidden;                       /* şerit köşeleri panele uysun */
  background:var(--wpt-grad-kagit);
  border:1px solid var(--wpt-line);
  border-radius:var(--wpt-r-lg);
  /* ⚠ DİNLENEN yüzey (sözleşme 3.1). Önce `--wpt-golge` idi, yani özet
     paneliyle aynı kademedeydi ve hiyerarşi düzleşiyordu. Üç yüzeyde de
     kural aynı: içerik paneli golge-sm, asıl eylemi taşıyan panel golge.
     (odeme.css: alan panelleri sm / #order_review golge —
      hesap.css: col-2 sm / col-1 golge.) */
  box-shadow:var(--wpt-golge-sm);
}
/* İMZA — koyu panelin sol kenarındaki, kartın üst kenarındaki, servis
   bandındaki amber segmentin aynısı. Tekrar eden şey bu; sayfayı sitenin
   parçası yapan da bu tekrar.
   ⚠ 56px: sözleşme 3.2'nin amber segmenti tam bu uzunlukta. Panel kenarındaki
   imza 88, özet panelindeki 72, çapraz satış başlığındaki 44 pikseldi — aynı
   işaret sayfada üç boyda çiziliyordu. */
body.woocommerce-cart .woocommerce form.woocommerce-cart-form::before{
  content:"";
  position:absolute; top:0; left:0; z-index:2;
  width:56px; height:var(--wpt-tick);
  background:var(--wpt-amber);
}

body.woocommerce-cart .woocommerce table.cart{
  width:100%; margin:0;
  border:0; border-collapse:collapse;
  font-size:var(--wpt-fs-kart);
}

/* --------------------------------------------------------------------------
   4a. BAŞLIK ŞERİDİ — "başlıksız sütunlar" sorununun çözümü
   Göz kapağı dili: mono, büyük harf, geniş harf aralığı, üçüncül mürekkep.
   Aynı dil `.wpt-tick`, `.wpt-footer h4` ve rayda da kullanılıyor.
   -------------------------------------------------------------------------- */
body.woocommerce-cart .woocommerce table.cart thead th{
  padding:14px 12px 12px;
  background:var(--wpt-surface-2);
  border:0; border-bottom:1px solid var(--wpt-line);
  font-family:var(--wpt-mono); font-size:var(--wpt-fs-xs); font-weight:600;
  letter-spacing:var(--wpt-track-l); text-transform:uppercase;
  color:var(--wpt-ink-3); text-align:left; white-space:nowrap;
}
/* SÜTUN BÜTÇESİ — metin uzunluğundan bağımsız hizalama (token §4 ruhu).
   Ürün adı esner, diğer her şey sabit kalır; böylece iki farklı sepette
   sütunlar aynı yerde durur.

   ⚠ Sayılar keyfi değil, bu mağazanın tutarlarına göre ölçüldü.
   Fiyatlar altı haneli ("₺142.291,50" ≈ 11 karakter mono). İlk denemede
   sabit sütunlar 556 piksel tutuyordu; 1000 piksellik bir ekranda ürün adına
   100 pikselden az yer kalıyor ve "Site Girişi 20 inç Şeffaf Big Blue
   Housing Filtre Kabı" sekiz satıra bölünüyordu. Bütçe 492'ye indirildi ve
   tek sütuna düşme eşiği yükseltildi (§14).
      46 + 86 + 116 + 104 + 140 = 492 px
   1240'lık kapsayıcıda ürün adına 340 px kalıyor — iki satır. */
body.woocommerce-cart .woocommerce table.cart th.product-remove{ width:46px }
body.woocommerce-cart .woocommerce table.cart th.product-thumbnail{ width:86px }
body.woocommerce-cart .woocommerce table.cart th.product-price{ width:116px; text-align:right }
/* ⚠ 104 → 138: adet kutusu artık üç parça (36 + 52 + 36 = 124 piksel).
   Eski genişlikte kutu hücreye sığmıyor, tablo kendini genişletip ürün
   adı sütununu daraltıyordu. */
body.woocommerce-cart .woocommerce table.cart th.product-quantity{ width:138px; text-align:center }
body.woocommerce-cart .woocommerce table.cart th.product-subtotal{ width:140px; text-align:right }

/* --------------------------------------------------------------------------
   4b. SATIRLAR
   -------------------------------------------------------------------------- */
body.woocommerce-cart .woocommerce table.cart tbody td{
  padding:15px 12px;
  background:none;
  border:0; border-bottom:1px solid var(--wpt-line);
  vertical-align:middle;
  transition:background var(--wpt-gecis);
}
body.woocommerce-cart .woocommerce table.cart tr.cart_item:hover > td{
  background:var(--wpt-surface-2);
}

/* Ürün görseli — kart `.wpt-media` deseni: düz gri kutu değil, merkezden
   aydınlanan bir ışık havuzu. Ürünlerin çoğu beyaz zeminli PNG olduğu için
   bu, ürünü zeminden ayırıyor. Yüzey `--wpt-plaka` üzerinden okunuyor (§0). */
body.woocommerce-cart .woocommerce table.cart td.product-thumbnail a,
body.woocommerce-cart .woocommerce table.cart td.product-thumbnail > img{
  display:block; width:72px; height:72px;
}
body.woocommerce-cart .woocommerce table.cart td.product-thumbnail img{
  width:72px; height:72px;
  padding:6px;
  object-fit:contain;
  background:var(--wpt-plaka);
  border:1px solid var(--wpt-line);
  border-radius:var(--wpt-r-sm);
}

/* Ürün adı */
body.woocommerce-cart .woocommerce table.cart td.product-name{
  font-size:var(--wpt-fs-md); line-height:1.4;
}
body.woocommerce-cart .woocommerce table.cart td.product-name a{
  font-weight:600; color:var(--wpt-ink); text-decoration:none;
  transition:color var(--wpt-gecis);
}
body.woocommerce-cart .woocommerce table.cart td.product-name a:hover{
  color:var(--wpt-brand); text-decoration:none;
}
/* Varyasyon künyesi ve stok notu — ölçüm dili: mono, küçük, sessiz. */
body.woocommerce-cart .woocommerce table.cart td.product-name dl.variation{
  display:grid; grid-template-columns:auto 1fr; gap:2px 8px;
  margin:6px 0 0; font-size:var(--wpt-fs-xs); color:var(--wpt-ink-3);
}
body.woocommerce-cart .woocommerce table.cart td.product-name dl.variation dt{
  font-family:var(--wpt-mono); letter-spacing:var(--wpt-track-l);
  text-transform:uppercase; font-weight:600;
}
body.woocommerce-cart .woocommerce table.cart td.product-name dl.variation dd{ margin:0 }
body.woocommerce-cart .woocommerce table.cart td.product-name dl.variation dd p{ margin:0 }
body.woocommerce-cart .woocommerce table.cart td.product-name .backorder_notification{
  margin:6px 0 0; font-size:var(--wpt-fs-xs); color:var(--wpt-uyari);
}

/* RAKAM — sözleşme 3.5. Para, adet ve ara toplam her yerde mono ve
   `tabular-nums`: rakamlar eşit genişlikte olunca sütun kendiliğinden
   hizalanıyor ve tutarlar üst üste okunabiliyor. Ölçüm dilinin bel kemiği bu.
   ⚠ Kural `.woocommerce-Price-amount` ÜZERİNE yazılıyor, hücreye değil:
   tutar `<bdi>` ve para birimi `<span>`'iyle birlikte tek bir sarmalayıcının
   içinde geliyor, hücreye verilen font-family satır içi başka bir kuralla
   kolayca eziliyordu. */
body.woocommerce-cart .woocommerce .woocommerce-Price-amount,
body.woocommerce-cart .woocommerce .amount{
  font-family:var(--wpt-mono);
  font-variant-numeric:tabular-nums;
  letter-spacing:-.01em;
  white-space:nowrap;
}
body.woocommerce-cart .woocommerce table.cart td.product-price,
body.woocommerce-cart .woocommerce table.cart td.product-subtotal{
  text-align:right; white-space:nowrap;
}
/* Birim fiyat ikincil bilgi, ara toplam asıl bilgi — hiyerarşi punto ve
   mürekkeple kuruluyor, ikisi de aynı ağırlıkta olsaydı satır okunmuyordu. */
body.woocommerce-cart .woocommerce table.cart td.product-price .amount{
  font-size:13.5px; font-weight:500; color:var(--wpt-ink-2);
}
body.woocommerce-cart .woocommerce table.cart td.product-subtotal .amount{
  font-size:15.5px; font-weight:700; color:var(--wpt-ink);
}
body.woocommerce-cart .woocommerce table.cart td.product-quantity{ text-align:center }

/* --------------------------------------------------------------------------
   4c. KALDIR DÜĞMESİ
   Yıkıcı ama geri alınabilir bir eylem (WooCommerce "geri al" bildirimi
   basıyor). Bu yüzden dinlenen hâli NÖTR; kırmızı yalnızca fare üstündeyken
   çıkıyor. `--wpt-kotu` sözleşmede "indirim ve hata" için ayrılmış — burada
   kalıcı bir renk değil, tek seferlik bir uyarı olarak kullanılıyor.
   -------------------------------------------------------------------------- */
body.woocommerce-cart .woocommerce table.cart td.product-remove a.remove{
  display:grid; place-items:center;
  width:30px; height:30px;
  border:1px solid var(--wpt-line);
  border-radius:50%;
  background:var(--wpt-surface);
  color:var(--wpt-ink-3);
  font-size:19px; font-weight:400; line-height:1; text-decoration:none;
  transition:background var(--wpt-gecis), border-color var(--wpt-gecis),
             color var(--wpt-gecis), transform var(--wpt-gecis);
}
body.woocommerce-cart .woocommerce table.cart td.product-remove a.remove:hover{
  background:var(--wpt-kotu-soft);
  border-color:transparent;
  color:var(--wpt-kotu);
  transform:scale(1.06);
  text-decoration:none;
}
body.woocommerce-cart .woocommerce table.cart td.product-remove a.remove:focus-visible{
  outline:2px solid var(--wpt-brand); outline-offset:2px;
}


/* ==========================================================================
   5. ADET ALANI

   ⚠ KURALLAR ARTIK BURADA DEĞİL — main.css'te (`.quantity`, `.wpt-adet-btn`).
   Bu bölüm önceden çerçeveyi, alanı ve "ileride düğme eklenirse" diye
   bekleyen kuralları tek tek yazıyordu. Düğmeler 26.08.2026'da gerçekten
   eklendi (inc/adet.php) ve üç sayfada birden görünüyor; kuralların üç
   dosyaya dağılması yerine ortak yere taşındı.

   Burada kalan tek şey sepet TABLOSUNA özgü ölçü: satır yüksekliği ve
   hücre genişliği.
   ========================================================================== */
body.woocommerce-cart .woocommerce .quantity{
  width:100%; max-width:126px;
}
body.woocommerce-cart .woocommerce .quantity input[type="number"]{
  height:44px;
}


/* ==========================================================================
   6. İŞLEM ŞERİDİ — kupon + "Sepeti güncelle"
   Panelin dibindeki gömük şerit. `colspan="6"` sayesinde kenardan kenara.

   ⚠ BU HÜCREYE `display:flex` VERİLMEZ.
   `td` flex olunca artık table-cell değildir; tarayıcı satırı bozmamak için
   ANONİM bir hücre üretir ve `colspan="6"` niteliği anlamını yitirir —
   şerit ilk sütunun genişliğine sıkışır. Bu yüzden hizalama `text-align`
   ve float ile kuruluyor; çirkin ama tablo modeliyle uyumlu tek yol.
   ========================================================================== */
body.woocommerce-cart .woocommerce table.cart td.actions{
  padding:14px 16px;
  background:var(--wpt-surface-2);
  border:0; border-top:1px solid var(--wpt-line);
  text-align:right;
}
body.woocommerce-cart .woocommerce table.cart td.actions::after{
  content:""; display:table; clear:both;
}

/* Kupon kutusu — başlıktaki hap aramanın kardeşi: tek bir çerçeve, içinde
   çıplak alan ve küçük bir eylem. Odak parıltısı kutuya ait.
   ⚠ Bugün mağazada kuponlar KAPALI (`wc_coupons_enabled()` false), bu yüzden
   `.coupon` hiç basılmıyor. Kural burada duruyor ki kuponlar açıldığında
   sayfa bir gün bile stilsiz kalmasın. */
body.woocommerce-cart .woocommerce table.cart td.actions .coupon{
  float:left;
  display:flex; align-items:center; gap:6px;
  padding:5px; margin:0;
  background:var(--wpt-surface);
  border:1px solid var(--wpt-line);
  border-radius:var(--wpt-r-hap);
  transition:border-color var(--wpt-gecis), box-shadow var(--wpt-gecis);
}
body.woocommerce-cart .woocommerce table.cart td.actions .coupon:focus-within{
  border-color:var(--wpt-brand);
  box-shadow:0 0 0 4px var(--wpt-brand-soft);
}
body.woocommerce-cart .woocommerce table.cart td.actions .coupon input.input-text{
  width:190px; max-width:44vw; height:32px; padding:0 8px 0 12px;
  background:none; border:0; outline:none;
  font-size:13.5px; color:var(--wpt-ink);
}
body.woocommerce-cart .woocommerce table.cart td.actions .coupon input.input-text::placeholder{
  color:var(--wpt-ink-3);
}
body.woocommerce-cart .woocommerce table.cart td.actions .coupon button.button{
  flex:0 0 auto;
  height:32px; padding:0 15px;
  background:var(--wpt-surface-2); border:0; border-radius:var(--wpt-r-hap);
  color:var(--wpt-ink-2);
  font-family:var(--wpt-font); font-size:12.5px; font-weight:600; line-height:1;
  cursor:pointer;
  transition:background var(--wpt-gecis), color var(--wpt-gecis);
}
body.woocommerce-cart .woocommerce table.cart td.actions .coupon button.button:hover{
  background:var(--wpt-brand); color:var(--wpt-btn-ink);
}
body.woocommerce-cart .woocommerce table.cart td.actions .coupon-error-notice{
  clear:left; float:left; width:100%; margin:6px 0 0;
  font-size:var(--wpt-fs-xs); color:var(--wpt-kotu); text-align:left;
}

/* "Sepeti güncelle" — İKİNCİL. Asıl eylem sağdaki panelde; bu düğme sadece
   adet değişikliğini yazar. `.wpt-btn.is-ghost` görünümüne eşitleniyor. */
body.woocommerce-cart .woocommerce table.cart td.actions button[name="update_cart"]{
  display:inline-flex; align-items:center; justify-content:center;
  height:var(--wpt-btn); padding:0 20px;
  background:var(--wpt-surface);
  border:1px solid var(--wpt-line-2);
  border-radius:var(--wpt-r-hap);
  color:var(--wpt-ink);
  font-family:var(--wpt-font); font-size:13.5px; font-weight:600; line-height:1;
  cursor:pointer;
  box-shadow:var(--wpt-golge-sm);
  transition:border-color var(--wpt-gecis), color var(--wpt-gecis),
             box-shadow var(--wpt-gecis), transform var(--wpt-gecis), opacity var(--wpt-gecis);
}
body.woocommerce-cart .woocommerce table.cart td.actions button[name="update_cart"]:hover:not(:disabled){
  border-color:transparent; color:var(--wpt-brand);
  transform:translateY(-1px); box-shadow:var(--wpt-parilti);
}
/* WooCommerce bu düğmeyi adet değişene kadar `disabled` tutuyor. Devre dışı
   hâli gizlenmiyor, SÖNÜKLEŞTİRİLİYOR: düğmenin kaybolması "sepetim
   güncellenmiyor" hissi veriyordu. */
/* Devre dışı reçetesi üç yüzeyde aynı: .45 sönüklük, gölge yok, imleç yok.
   Önce burada .42, hesabım'da .5, ödemede `filter:saturate(.35)` vardı. */
body.woocommerce-cart .woocommerce table.cart td.actions button[name="update_cart"]:disabled{
  opacity:.45; cursor:not-allowed; transform:none; box-shadow:none;
}


/* ==========================================================================
   7. ÖZET PANELİ (sözleşme 3.6)

   Panelin başı KOYU MARKA YÜZEYİ — sepete ekleme bildirimindeki
   (`.wpt-sepet-panel-bas`) desenin aynısı. Sayfadaki tek koyu blok olduğu
   için göz doğrudan oraya gidiyor; ödeme düğmesi de aynı panelin dibinde.
   Koyu yüzeyde `--wpt-ink` KULLANILMIYOR (sözleşme kuralı 3).
   ========================================================================== */
/* ⚠ SEÇİCİ ZİNCİRİNE `.woocommerce` BİLEREK EKLENDİ.
   Sepet sayfasının içeriğindeki miras stil bloğunda
   `body.woocommerce-cart .cart-collaterals .cart_totals{background:#fff;…}`
   var — birebir aynı özgüllük. Eşitlikte SONRA gelen kazanıyor ve o blok
   gövdenin içinde, yani her zaman bu dosyadan sonra. Sonuç: koyu temada özet
   paneli beyaz kalıyor, üstündeki açık mürekkep okunmuyordu. Zincire bir
   sınıf eklemek özgüllüğü bir tık yukarı taşıyor ve tasarımı miras bloğun
   yaşam süresinden bağımsız kılıyor.
   `padding:0` da AÇIKÇA yazılıyor: miras blok 20px iç boşluk veriyor, oysa
   burada boşluğu başlık bandı, tablo ve düğme kendi taşıyor — panel
   kenardan kenara olmalı ki koyu bant köşelere otursun. */
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals{
  position:relative;
  width:100%;
  padding:0;
  overflow:hidden;
  background:var(--wpt-grad-kagit);
  border:1px solid var(--wpt-line);
  border-radius:var(--wpt-r-lg);
  box-shadow:var(--wpt-golge);
}
/* Aynı amber imza, aynı yerde — sol üst köşe. */
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals::before{
  content:"";
  position:absolute; top:0; left:0; z-index:2;
  width:56px; height:var(--wpt-tick);
  background:var(--wpt-amber);
}
/* ⚠ Alt çizgi koyu temada zorunlu: orada panel gövdesi de koyulaşıyor ve
   bant ile gövde neredeyse aynı tona geliyor. `--wpt-cam-cizgi` koyu yüzey
   üstünde kullanılmak üzere tanımlanmış tek çizgi tokenı — `--wpt-line`
   burada kullanılamaz, koyu bandın üstünde ters döner. */
/* ⚠ Yatay iç boşluk 22px: ödeme sayfasındaki `#order_review` de tam bu
   sayıyı kullanıyor. Sözleşme 3.6 sepet toplamı ile sipariş özetini TEK desen
   sayıyor; burası 18, orası 22 iken iki panel yan yana konsa içerik farklı
   yerden başlıyordu. */
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals h2{
  margin:0; padding:16px 22px;
  background:var(--wpt-grad-koyu);
  border-bottom:1px solid var(--wpt-cam-cizgi);
  color:var(--wpt-koyu-ink);
  font-size:15.5px; font-weight:700; letter-spacing:var(--wpt-track-m);
}

body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals table{
  width:100%; margin:0; padding:0;
  border:0; border-collapse:collapse;
  font-size:var(--wpt-fs-kart);
}
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals table th,
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals table td{
  padding:12px 22px;
  background:none;
  border:0; border-bottom:1px solid var(--wpt-line);
  vertical-align:top;
}
/* Ara satırların etiketi göz kapağı dilinde: mono, büyük harf, geniş aralık,
   üçüncül mürekkep. Sayfanın geri kalanında (`.wpt-tick`, ray başlıkları,
   alt bilgi başlıkları) aynı dil kullanılıyor. Böylece ara satırlar sessiz
   kalıyor, TOPLAM satırı tek başına yükseliyor.
   ⚠ `text-transform` AÇIKÇA yazılıyor: sepet sayfasının içeriğindeki miras
   stil blok `table.shop_table th`'ye uppercase dayatıyor. Açıkça yazılmazsa
   tasarım o bloğun varlığına bağlı kalır — blok silindiğinde görünüm değişir. */
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals table th{
  width:42%;
  /* ⚠ Göz kapağı puntosu tokendan. Sitede tek bir göz kapağı boyu var
     (`--wpt-fs-xs`, main.css `.wpt-tick`); burası 10,5 · sepet tablosu 11 ·
     ödeme tfoot 10,5 · hesabım tabloları 10,5 · mobil etiketler 9,5 ve 10
     yazıyordu. Aynı dil altı ayrı puntoda konuşuyordu. */
  font-family:var(--wpt-mono); font-size:var(--wpt-fs-xs); font-weight:600;
  letter-spacing:var(--wpt-track-l); text-transform:uppercase;
  color:var(--wpt-ink-3);
  text-align:left; white-space:nowrap;
}
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals table td{
  text-align:right; color:var(--wpt-ink);
}
/* Etiket ile değer arasındaki boşluk çok açıldığında satır kopuyor gibi
   duruyordu; th'nin sağına iç boşluk vermek yerine değeri sola çekmek
   yeterli oldu. */
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals table th{ padding-right:8px }
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals table td{ padding-left:8px }

/* KDV / vergi satırlarının etiketi de aynı göz kapağı dilinde. Önce
   `letter-spacing:.06em` yazıyordu; aynı tablonun bir satır yukarısı
   `--wpt-track-l` (.16em) kullanıyor, yani iki komşu etiket iki ayrı
   harf aralığında basılıyordu. */
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals tr.tax-rate th,
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals tr.tax-total th{
  font-family:var(--wpt-mono); font-size:var(--wpt-fs-xs); font-weight:600;
  letter-spacing:var(--wpt-track-l); text-transform:uppercase; color:var(--wpt-ink-3);
}

/* İNDİRİM — `--wpt-kotu` sözleşmede tam olarak bunun için ayrılmış. */
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals tr.cart-discount td,
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals tr.cart-discount td .amount{
  color:var(--wpt-kotu);
}
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals a.woocommerce-remove-coupon{
  display:inline-block; margin-left:6px;
  font-size:var(--wpt-fs-xs); color:var(--wpt-ink-3);
  text-decoration:underline; text-underline-offset:2px;
}

/* TOPLAM — son satır. Üstünde belirgin çizgi, daha büyük punto (3.6). */
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals tr.order-total th,
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals tr.order-total td{
  padding-top:15px; padding-bottom:15px;
  border-top:1px solid var(--wpt-line-2);
  border-bottom:0;
  vertical-align:baseline;
}
/* Son satır göz kapağı dilinden ÇIKIYOR: burası özet değil sonuç. */
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals tr.order-total th{
  font-family:var(--wpt-font); font-size:var(--wpt-fs-md); font-weight:700;
  letter-spacing:var(--wpt-track-m); text-transform:none;
  color:var(--wpt-ink);
}
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals tr.order-total td strong{ font-weight:800 }
/* ⚠ Kural `strong`'a bağlanıyor, hücreye değil. Hücreye bağlandığında KDV
   notunun içindeki tutar da 23 piksele çıkıyor ve not toplamla yarışıyordu:
   `<td><strong>TUTAR</strong> <small class="includes_tax">…TUTAR…</small></td>` */
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals tr.order-total td strong .amount{
  font-size:23px; font-weight:800; letter-spacing:var(--wpt-track-m);
  color:var(--wpt-ink);
}

/* KDV notu — mono ve küçük. Mağazada fiyatlar KDV DAHİL girildiği için
   WooCommerce ayrı bir vergi satırı basmıyor; not `small.includes_tax`
   olarak toplamın altına düşüyor. İki olasılık da karşılanıyor. */
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals small.includes_tax,
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals .tax_label,
body.woocommerce-cart .woocommerce-Price-taxLabel{
  display:block; margin-top:5px;
  font-family:var(--wpt-mono); font-size:var(--wpt-fs-xs); font-weight:400;
  letter-spacing:.02em; color:var(--wpt-ink-3);
}
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals tr.order-total td small.includes_tax .amount{
  font-size:var(--wpt-fs-xs); font-weight:500; letter-spacing:.02em;
  color:var(--wpt-ink-3);
}


/* ==========================================================================
   8. KARGO SATIRI
   ========================================================================== */
body.woocommerce-cart .woocommerce-shipping-methods{
  margin:0; padding:0; list-style:none;
  display:flex; flex-direction:column; gap:7px;
}
body.woocommerce-cart .woocommerce-shipping-methods li{
  display:flex; align-items:center; justify-content:flex-end; gap:8px;
  margin:0;
}
body.woocommerce-cart .woocommerce-shipping-methods label{
  font-size:13.5px; color:var(--wpt-ink); cursor:pointer;
}
/* 18px: ödeme sayfasındaki kargo radyosu ve ödeme yöntemi radyosu, hesabım'daki
   onay kutusu da 18px. Burada boy hiç yazılmamıştı (tarayıcı varsayılanı ~13px),
   ödemede 16px yazıyordu — aynı liste iki sayfada iki farklı boyda geliyordu. */
body.woocommerce-cart .woocommerce-shipping-methods input[type="radio"]{
  width:18px; height:18px; margin:0; flex:0 0 auto;
  accent-color:var(--wpt-brand); cursor:pointer;
}
/* ⚠ main.css'teki genel `:focus-visible` halkanın yanında `--wpt-r-sm` de
   veriyor; 18px'lik kare odakta 8px yuvarlanıp şekil değiştiriyordu.
   hesap.css bu tuzağı çözmüştü, diğer iki yüzeyde çözülmemişti. */
body.woocommerce-cart .woocommerce-shipping-methods input[type="radio"]:focus-visible{
  outline:2px solid var(--wpt-brand); outline-offset:2px; border-radius:50%;
}

/* ÜCRETSİZ KARGO
   ⚠ WooCommerce ücretsiz yönteme ayrı bir sınıf VERMİYOR; etikete tutar
   basmamakla yetiniyor. Ayırt etmenin tek CSS yolu "içinde `.amount`
   olmayan" satırı yakalamak — `:has()` tam olarak bunun için. Desteklenmeyen
   tarayıcıda satır sıradan kargo satırı gibi görünür, bilgi kaybı olmaz. */
body.woocommerce-cart .woocommerce-shipping-methods li:not(:has(.amount)) label{
  display:inline-flex; align-items:center; gap:7px;
  font-weight:700; color:var(--wpt-iyi);
}
body.woocommerce-cart .woocommerce-shipping-methods li:not(:has(.amount)) label::before{
  content:"";
  flex:0 0 auto; width:15px; height:15px;
  background:var(--wpt-iyi);
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='m5 13 4.5 4.5L19 7'/></svg>") center/contain no-repeat;
          mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='m5 13 4.5 4.5L19 7'/></svg>") center/contain no-repeat;
}

body.woocommerce-cart .woocommerce-shipping-destination{
  margin:9px 0 0;
  font-size:var(--wpt-fs-xs); line-height:1.5; color:var(--wpt-ink-3);
}
body.woocommerce-cart .woocommerce-shipping-destination strong{
  font-weight:600; color:var(--wpt-ink-2);
}

/* --------------------------------------------------------------------------
   8a. KARGO HESAPLAYICI — "Adresi değiştirin"
   Dar rayın içinde açılan küçük bir form. Alanlar sözleşme 3.3.
   -------------------------------------------------------------------------- */
body.woocommerce-cart .woocommerce-shipping-calculator{ margin:10px 0 0 }
body.woocommerce-cart a.shipping-calculator-button{
  display:inline-flex; align-items:center; gap:6px;
  font-size:var(--wpt-fs-sm); font-weight:600; color:var(--wpt-brand);
  text-decoration:underline; text-underline-offset:3px;
}
body.woocommerce-cart a.shipping-calculator-button::after{
  content:""; width:8px; height:8px;
  border-right:2px solid currentColor; border-bottom:2px solid currentColor;
  transform:rotate(45deg) translateY(-2px);
  transition:transform var(--wpt-gecis);
}
body.woocommerce-cart a.shipping-calculator-button[aria-expanded="true"]::after{
  transform:rotate(-135deg) translateY(-2px);
}

body.woocommerce-cart .shipping-calculator-form{
  margin-top:12px; padding-top:12px;
  border-top:1px dashed var(--wpt-line-2);
  text-align:left;
}
body.woocommerce-cart .shipping-calculator-form .form-row{ margin:0 0 11px }
body.woocommerce-cart .shipping-calculator-form label{
  display:block; margin-bottom:7px;
  font-size:var(--wpt-fs-sm); font-weight:600; color:var(--wpt-ink-2);
}
/* Zorunluluk yıldızı `--wpt-kotu` DEĞİL `--wpt-amber-ink` (sözleşme 3.3):
   alan henüz doldurulmadı diye hata değil, bilgi. Kırmızı yıldız formu
   daha doldurmadan hatalı gösteriyordu. `abbr` varsayılan alt çizgisi de
   kalkıyor — yoksa yıldızın altında noktalı bir çizgi çıkıyor. */
body.woocommerce-cart .shipping-calculator-form abbr.required{
  color:var(--wpt-amber-ink); font-weight:700;
  text-decoration:none; border:0; cursor:help;
}
body.woocommerce-cart .shipping-calculator-form input.input-text,
body.woocommerce-cart .shipping-calculator-form select{
  width:100%; height:var(--wpt-alan); padding:0 15px;
  background:var(--wpt-surface);
  border:1px solid var(--wpt-line);
  border-radius:var(--wpt-r-sm);
  font-size:14.5px; color:var(--wpt-ink);
  transition:border-color var(--wpt-gecis), box-shadow var(--wpt-gecis);
}
body.woocommerce-cart .shipping-calculator-form input.input-text:focus,
body.woocommerce-cart .shipping-calculator-form select:focus{
  border-color:var(--wpt-brand); outline:none;
  box-shadow:0 0 0 4px var(--wpt-brand-soft);
}
/* ⚠ `appearance:none` YAZILMIYOR: ülke ve il alanlarını selectWoo (select2)
   devralıyor ve gerçek `<select>` gizleniyor. Çıplak select yalnızca JS
   çökerse görünür — o durumda tarayıcının kendi oku, elle çizilmiş ve koyu
   temada yanlış renkte kalabilecek bir SVG'den daha güvenilir. */

/* İkincil düğme reçetesi main.css `.wpt-btn.is-ghost` ile birebir:
   dinlenen gölge, hover'da 1px kalkma, basmada 1px inme. Üçü de eksikti;
   ödeme sayfasındaki kardeşi (`checkout_coupon button`) üçünü de taşıyordu. */
body.woocommerce-cart .shipping-calculator-form button.button{
  display:flex; align-items:center; justify-content:center; gap:7px;
  width:100%; height:var(--wpt-btn);
  background:var(--wpt-surface);
  border:1px solid var(--wpt-line-2);
  border-radius:var(--wpt-r-hap);
  color:var(--wpt-ink);
  box-shadow:var(--wpt-golge-sm);
  font-family:var(--wpt-font); font-size:13.5px; font-weight:600; line-height:1;
  cursor:pointer;
  transition:border-color var(--wpt-gecis), color var(--wpt-gecis),
             box-shadow var(--wpt-gecis), transform var(--wpt-gecis);
}
body.woocommerce-cart .shipping-calculator-form button.button:hover{
  border-color:transparent; color:var(--wpt-brand);
  transform:translateY(-1px); box-shadow:var(--wpt-parilti);
}
body.woocommerce-cart .shipping-calculator-form button.button:active{
  transform:translateY(1px);
}
body.woocommerce-cart .shipping-calculator-form p:last-child{ margin-bottom:0 }

/* select2 kabuğu — WooCommerce'in kendi `select2.css`'i kuyrukta olduğu için
   iskelet zaten var; burada yalnızca yüzey, ölçü ve renk tokena bağlanıyor.
   ⚠ Açılır liste `<body>` altına taşınıyor; kapsam `body.woocommerce-cart`
   olduğu için kural yine de yalnızca sepet sayfasında geçerli. */
body.woocommerce-cart .select2-container{
  display:block; font-family:var(--wpt-font);
}
body.woocommerce-cart .select2-container--default .select2-selection--single{
  height:var(--wpt-alan); margin:0;
  background:var(--wpt-surface);
  border:1px solid var(--wpt-line);
  border-radius:var(--wpt-r-sm);
  transition:border-color var(--wpt-gecis), box-shadow var(--wpt-gecis);
}
body.woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__rendered{
  padding:0 42px 0 15px; line-height:44px;
  font-size:14.5px; color:var(--wpt-ink);
}
body.woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__placeholder{
  color:var(--wpt-ink-3);
}
body.woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__arrow{
  top:0; right:0; width:42px; height:44px;
}
/* ⚠ AYNI WIDGET, İKİ FARKLI OK. select2 kendi okunu border-width hilesiyle
   ÜÇGEN olarak çiziyor; ödeme sayfası onu yerel `<select>`in çift kenarlı
   chevron'una çevirmişti, sepet ve hesabım ise üçgeni bırakıp yalnızca rengini
   değiştiriyordu. Aynı il/ilçe kutusu üç sayfada iki ayrı işaret gösteriyordu.
   Reçete ödeme yüzeyinden alındı; artık üçünde de chevron. */
body.woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__arrow b{
  left:auto; right:16px;
  width:8px; height:8px; margin:-6px 0 0 0;
  border:0;
  border-right:2px solid var(--wpt-ink-3);
  border-bottom:2px solid var(--wpt-ink-3);
  transform:rotate(45deg);
  transition:transform var(--wpt-gecis);
}
body.woocommerce-cart .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{
  margin-top:-2px;
  border:0;
  border-right:2px solid var(--wpt-brand);
  border-bottom:2px solid var(--wpt-brand);
  transform:rotate(225deg);
}
body.woocommerce-cart .select2-container--default.select2-container--focus .select2-selection--single,
body.woocommerce-cart .select2-container--default.select2-container--open .select2-selection--single{
  border-color:var(--wpt-brand);
  box-shadow:0 0 0 4px var(--wpt-brand-soft);
}
/* ⚠ `color` ŞART: select2.css panele `color:#000` yazıyor. Zemini devralıp
   mürekkebi devralmazsak koyu temada koyu panel üstünde siyah metin kalıyor.
   Bu düzeltme yalnızca odeme.css'te vardı. */
body.woocommerce-cart .select2-dropdown{
  background:var(--wpt-surface);
  color:var(--wpt-ink);
  border:1px solid var(--wpt-line);
  border-radius:var(--wpt-r-sm);
  box-shadow:var(--wpt-golge-lg);
  overflow:hidden;
  font-family:var(--wpt-font);
}
body.woocommerce-cart .select2-container--open .select2-dropdown--below{
  margin-top:6px; border-top:1px solid var(--wpt-line); border-radius:var(--wpt-r-sm);
}
body.woocommerce-cart .select2-container--open .select2-dropdown--above{
  margin-top:-6px; border-bottom:1px solid var(--wpt-line); border-radius:var(--wpt-r-sm);
}
body.woocommerce-cart .select2-search--dropdown{
  padding:9px; border-bottom:1px solid var(--wpt-line); background:var(--wpt-surface-2);
}
body.woocommerce-cart .select2-container--default .select2-search--dropdown .select2-search__field{
  height:38px; padding:0 12px;
  background:var(--wpt-surface);
  border:1px solid var(--wpt-line); border-radius:var(--wpt-r-sm);
  font-family:inherit; font-size:14px; color:var(--wpt-ink);
}
body.woocommerce-cart .select2-container--default .select2-search--dropdown .select2-search__field:focus{
  outline:none; border-color:var(--wpt-brand);
  box-shadow:0 0 0 4px var(--wpt-brand-soft);
}
body.woocommerce-cart .select2-container--default .select2-results > .select2-results__options{
  max-height:264px; padding:5px; overscroll-behavior:contain;
}
body.woocommerce-cart .select2-container--default .select2-results__option{
  padding:9px 12px; border-radius:var(--wpt-r-sm);
  font-size:14.5px; line-height:1.35; color:var(--wpt-ink-2);
}
/* ⚠ SEÇİLİ ile VURGULU'nun anlamı üç dosyada ters düşüyordu: burada ve
   hesabım'da "seçili" gömük gri (`--wpt-surface-2`), "vurgulu" marka-soft;
   ödemede ise tam tersi. Token sözlüğü nettir: `--wpt-brand-soft` = SEÇİLİ
   satır. Klavyeyle gezilen (vurgulu) satır dolu marka olur. */
body.woocommerce-cart .select2-container--default .select2-results__option[aria-selected="true"],
body.woocommerce-cart .select2-container--default .select2-results__option[data-selected="true"]{
  background:var(--wpt-brand-soft); color:var(--wpt-brand); font-weight:600;
}
body.woocommerce-cart .select2-container--default .select2-results__option--highlighted[aria-selected],
body.woocommerce-cart .select2-container--default .select2-results__option--highlighted[data-selected]{
  background:var(--wpt-brand); color:var(--wpt-btn-ink);
}
body.woocommerce-cart .select2-container--default .select2-results__option[aria-disabled="true"]{
  color:var(--wpt-ink-3);
}
body.woocommerce-cart .select2-container--default .select2-results__message{
  padding:12px; font-size:13.5px; color:var(--wpt-ink-3);
}


/* ==========================================================================
   9. ÖDEME DÜĞMESİ — birincil, tam genişlik, panelin dibinde
   `.wpt-btn.is-primary.is-buyuk` görünümüne eşitleniyor: düz dolgu değil,
   üstten aydınlanan yüzey ve marka mavisine çalan gölge.

   ⚠ ÇÖZÜLEN BORÇ: main.css'teki `.wpt-btn.is-primary` gölgesi ham rgba
   üçlüsüydü. Bu dosya ve odeme.css onu kopyalamamak için `--wpt-parilti`ye
   kaçmış, hesap.css ise yerel değişkene kopyalamıştı — yani akıştaki üç
   birincil düğme üç ayrı gölgeyle çiziliyordu. Üçlü artık `--wpt-golge-btn` /
   `--wpt-golge-btn-h` olarak _tokens.css'te; main.css de oradan okuyor.
   ========================================================================== */
body.woocommerce-cart .woocommerce .cart-collaterals .wc-proceed-to-checkout{
  padding:16px 22px 22px;
  margin:0;
}
/* ⚠ DENETİM: bu düğme main.css `.wpt-btn.is-primary.is-buyuk`in birebir
   kopyası olmalıydı, dört noktada sapmıştı: boşluk 8 (7 olmalı), yatay
   dolgu 22 (26), ağırlık 700 (600) ve fazladan bir `letter-spacing`.
   Ödemedeki `#place_order` ile hesabımdaki giriş düğmesi doğruyu yazıyordu;
   yani akıştaki üç birincil düğmeden biri farklı bir düğmeydi. */
body.woocommerce-cart .woocommerce .cart-collaterals .wc-proceed-to-checkout a.checkout-button{
  display:flex; align-items:center; justify-content:center; gap:7px;
  width:100%; height:var(--wpt-btn-buyuk); padding:0 26px;
  background:var(--wpt-grad-marka);
  border:1px solid transparent; border-radius:var(--wpt-r-hap);
  color:var(--wpt-btn-ink);
  font-family:var(--wpt-font); font-size:15px; font-weight:600; line-height:1;
  text-align:center; text-decoration:none; cursor:pointer;
  /* Gölge artık tokenda (`--wpt-golge-btn`): main.css'teki ham rgba üçlüsü
     _tokens.css'e taşındı, böylece hem koyu temada dönüyor hem de dört
     birincil düğme aynı ışığı taşıyor. */
  box-shadow:var(--wpt-golge-btn);
  transition:box-shadow var(--wpt-gecis), transform var(--wpt-gecis);
}
body.woocommerce-cart .woocommerce .cart-collaterals .wc-proceed-to-checkout a.checkout-button:hover{
  color:var(--wpt-btn-ink); text-decoration:none;
  transform:translateY(-1px);
  box-shadow:var(--wpt-golge-btn-h);
}
body.woocommerce-cart .woocommerce .cart-collaterals .wc-proceed-to-checkout a.checkout-button:active{
  transform:translateY(0);
}


/* ==========================================================================
   10. ÇAPRAZ SATIŞ (varsa)
   Özetin altında, dar rayda tek sütun. Kart görünümünü `.wpt-card` veriyor;
   burada yalnızca başlık ve dizilim var.
   ========================================================================== */
body.woocommerce-cart .woocommerce .cart-collaterals .cross-sells{ width:100%; margin:0 }
/* PANEL/BÖLÜM BAŞLIĞI — sözleşme 3.2'nin tam hâli: göz kapağı satırı
   (18px amber tick) + başlık + 56px amber segmentle başlayan 2px kural.
   ⚠ Göz kapağı satırı EKSİKTİ ve amber segment 44 pikseldi. Ödeme sayfasındaki
   panel başlıkları (01/02/03) desenin tamamını taşıyor; burada ve hesabım'da
   yalnızca alt çizgi vardı, yani aynı başlık iki farklı desende basılıyordu.
   Metin gerekmediği için içerik sert boşluk — boş `content:""` satır kutusu
   üretmez ve tick görünmez olurdu. */
body.woocommerce-cart .woocommerce .cart-collaterals .cross-sells > h2{
  position:relative;
  margin:0 0 22px; padding-bottom:14px;
  font-size:var(--wpt-fs-lg); font-weight:700;
  letter-spacing:var(--wpt-track-m); color:var(--wpt-ink);
}
body.woocommerce-cart .woocommerce .cart-collaterals .cross-sells > h2::before{
  content:"\00a0";
  display:block; margin-bottom:9px; padding-left:27px;
  background:linear-gradient(var(--wpt-amber),var(--wpt-amber))
             left center / 18px var(--wpt-tick) no-repeat;
  font-family:var(--wpt-mono); font-size:var(--wpt-fs-xs); font-weight:600;
  letter-spacing:var(--wpt-track-l); text-transform:uppercase;
  color:var(--wpt-ink-3); line-height:1.5;
}
body.woocommerce-cart .woocommerce .cart-collaterals .cross-sells > h2::after{
  content:"";
  position:absolute; left:0; right:0; bottom:0; height:2px; border-radius:2px;
  background:linear-gradient(90deg,
    var(--wpt-amber) 0, var(--wpt-amber) 56px,
    var(--wpt-line) 56px, var(--wpt-line) 100%);
}
body.woocommerce-cart .woocommerce .cart-collaterals .cross-sells ul.products{
  display:grid; grid-template-columns:minmax(0,1fr); gap:var(--wpt-gap-sm);
  margin:0; padding:0; list-style:none;
}


/* ==========================================================================
   11. BOŞ SEPET
   Ortalanmış, ikonlu, tek eylemli. İkon `mask` ile basılıyor: renk
   `background` üzerinden geldiği için koyu temada kendiliğinden dönüyor
   (data-URI SVG'ye `currentColor` geçirilemez, bu yüzden maske).
   İkon yolu başlıktaki sepet ikonunun aynısı — aynı el.
   ========================================================================== */
/* Boş durum 1200 piksele yayılmaz: tek cümle ve tek düğme geniş bir kutuda
   kayboluyor, kutu da "bir şeyler eksik" hissi veriyordu. İki parça birlikte
   ortalanıp 560 pikselde sınırlanıyor. */
body.woocommerce-cart .woocommerce .wc-empty-cart-message,
body.woocommerce-cart .woocommerce p.return-to-shop{
  max-width:560px; margin-inline:auto;
}
body.woocommerce-cart .woocommerce .wc-empty-cart-message{
  margin-block:0;
  padding:56px 26px 30px;
  background:var(--wpt-grad-kagit);
  border:1px solid var(--wpt-line);
  border-radius:var(--wpt-r-lg) var(--wpt-r-lg) 0 0;
  border-bottom:0;
  box-shadow:var(--wpt-golge);
  text-align:center;
}
body.woocommerce-cart .woocommerce .wc-empty-cart-message::before{
  content:"";
  display:block; width:64px; height:64px; margin:0 auto 20px;
  background:var(--wpt-line-2);
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'><path d='M3 4h2.2l2.3 11h9.6l2.1-8H6.2'/><circle cx='9.5' cy='19' r='1.4'/><circle cx='17' cy='19' r='1.4'/></svg>") center/contain no-repeat;
          mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'><path d='M3 4h2.2l2.3 11h9.6l2.1-8H6.2'/><circle cx='9.5' cy='19' r='1.4'/><circle cx='17' cy='19' r='1.4'/></svg>") center/contain no-repeat;
}
body.woocommerce-cart .woocommerce .wc-empty-cart-message .cart-empty{
  display:block; margin:0; padding:0;
  background:none; border:0; box-shadow:none;
  font-size:var(--wpt-fs-lg); font-weight:700; letter-spacing:var(--wpt-track-m);
  color:var(--wpt-ink);
}
/* "Mağazaya geri dön" düğmesi aynı kutunun devamı — iki ayrı kart gibi
   durmasın diye üst kutunun alt köşeleri açık bırakıldı. */
body.woocommerce-cart .woocommerce p.return-to-shop{
  margin-block:0;
  padding:0 26px 40px;
  background:var(--wpt-grad-kagit);
  border:1px solid var(--wpt-line);
  border-top:0;
  border-radius:0 0 var(--wpt-r-lg) var(--wpt-r-lg);
  box-shadow:var(--wpt-golge);
  text-align:center;
}
body.woocommerce-cart .woocommerce p.return-to-shop a.button{
  display:inline-flex; align-items:center; justify-content:center; gap:7px;
  height:var(--wpt-btn-buyuk); padding:0 26px;
  background:var(--wpt-grad-marka);
  border:1px solid transparent; border-radius:var(--wpt-r-hap);
  color:var(--wpt-btn-ink);
  font-family:var(--wpt-font); font-size:15px; font-weight:600; line-height:1;
  text-decoration:none;
  /* Aynı reçete §9 ile birebir — `.wpt-btn.is-primary.is-buyuk`. */
  box-shadow:var(--wpt-golge-btn);
  transition:box-shadow var(--wpt-gecis), transform var(--wpt-gecis);
}
body.woocommerce-cart .woocommerce p.return-to-shop a.button:hover{
  color:var(--wpt-btn-ink); text-decoration:none; transform:translateY(-1px);
  box-shadow:var(--wpt-golge-btn-h);
}
body.woocommerce-cart .woocommerce p.return-to-shop a.button:active{
  transform:translateY(0);
}


/* ==========================================================================
   12. YÜKLENİYOR PERDESİ

   ⚠ SÖZLEŞMENİN TEK MEŞRU `!important` İSTİSNASI.
   Adet değişince WooCommerce sepeti jQuery blockUI ile perdeliyor ve perdenin
   `background:#fff; opacity:.6` değerlerini SATIR İÇİ stille basıyor. Koyu
   temada sepet her güncellemede beyaz parlıyordu. Satır içi stili ezmenin
   başka yolu yok.
   ========================================================================== */
body.woocommerce-cart .blockUI.blockOverlay{
  background:var(--wpt-paper) !important;
  opacity:.7 !important;
}
/* Perdenin üstünde dönen halka — `wpt-donme` main.css'te zaten tanımlı,
   ikinci bir keyframes yazılmıyor. */
body.woocommerce-cart .blockUI.blockOverlay::before{
  content:"";
  position:absolute; inset:0; margin:auto;
  width:26px; height:26px;
  border-radius:50%;
  border:2px solid var(--wpt-line-2);
  border-top-color:var(--wpt-brand);
  animation:wpt-donme .7s linear infinite;
}


/* ==========================================================================
   13. ADIM GÖSTERGESİ — sözleşme 3.7 (İLERİYE DÖNÜK)

   İşaretleme henüz yok. Adım şeridi CSS `content` ile UYDURULMUYOR: metin
   Türkçe ve çevrilebilir olmalı, ekran okuyucuya da düzgün ulaşmalı.
   Doğru yer PHP: `woocommerce_before_cart` kancasına basılacak
   `<ol class="wpt-odeme-adim">` üç `<li>` ile. Sınıf adları ve durumlar
   burada hazır bekliyor; işaretleme eklendiği anda görünüm oturur.
   ========================================================================== */
.wpt-odeme-adim{
  display:flex; align-items:center; flex-wrap:wrap; gap:8px 10px;
  margin:0 0 22px; padding:0; list-style:none;
  font-family:var(--wpt-mono); font-size:var(--wpt-fs-xs);
  letter-spacing:var(--wpt-track-l); text-transform:uppercase;
}
.wpt-odeme-adim li{
  display:inline-flex; align-items:center; gap:8px;
  color:var(--wpt-ink-3);
}
.wpt-odeme-adim li + li::before{
  content:""; width:16px; height:1px; background:var(--wpt-line-2);
}
.wpt-odeme-adim li.is-tamam{ color:var(--wpt-iyi) }
.wpt-odeme-adim li.is-simdi{ color:var(--wpt-brand); font-weight:600 }


/* ==========================================================================
   14. MOBİL — 768 px ve altı

   ⚠ Bu genişlikte `woocommerce-smallscreen.css` devrede ve tabloyu
   kartlaştırmak için kendi kararlarını `!important` ile dayatıyor. Aşağıda
   her `!important` yalnızca onu ezmek için var ve tek tek gerekçelendirildi.
   Kırılma noktası 768: kart düzenini kuran stil orada başlıyor, farklı bir
   sayı seçilirse iki düzen bir aralıkta çakışıyor.
   ========================================================================== */
/* ⚠ EŞİK 900 DEĞİL 1100.
   Sözleşme "900 pikselin altında tek sütun" diyordu; ölçünce tutmadı.
   Bu mağazanın tutarları altı haneli, tablo altı sütunlu ve sağ ray 340
   piksel: 1100'ün altında iki sütun modunda ürün adına 200 pikselden az yer
   kalıyor ve satırlar dört-beş satıra uzuyor. 900–1100 aralığı tek sütuna
   alınınca tablo bütün genişliği kullanıyor ve aynı içerik iki satıra
   sığıyor. Sayı içeriğe göre ölçülerek seçildi, yuvarlanarak değil. */
@media (max-width:1100px){
  /* Tek sütun. Özet DOM'da formdan SONRA geldiği için kendiliğinden alta
     düşer; ayrıca sıralamaya karışmaya gerek yok. */
  body.woocommerce-cart .woocommerce:has(form.woocommerce-cart-form){
    grid-template-columns:minmax(0,1fr);
  }
  body.woocommerce-cart .woocommerce > form.woocommerce-cart-form,
  body.woocommerce-cart .woocommerce > .cart-collaterals{ grid-column:1 }
  /* Tek sütunda yapışkanlığın anlamı yok: panel zaten akışın sonunda.
     Özet 1100 piksele yayılmıyor — sepetin ara toplam sütununun altında,
     sağa yaslı ve dar kalıyor. Tam genişlikte bir "toplam" paneli, iki
     hücreli bir satırı bir metreye yayıyor ve etiketle tutar arasındaki
     bağı koparıyordu. */
  body.woocommerce-cart .woocommerce .cart-collaterals{
    position:static; top:auto;
    width:100%; max-width:420px; margin-left:auto;
  }
}

@media (max-width:768px){

  /* Panel kabuğu kalkıyor — her kalem KENDİ kartı oluyor. */
  body.woocommerce-cart .woocommerce form.woocommerce-cart-form{
    background:none; border:0; border-radius:0; box-shadow:none; overflow:visible;
  }
  body.woocommerce-cart .woocommerce form.woocommerce-cart-form::before{ content:none }

  /* --- KALEM KARTI ---------------------------------------------------
     Izgara alanları:
       [görsel] [ad          ]  ← kaldır düğmesi mutlak, sağ üstte
       [görsel] [birim fiyat ]
       [adet  ] [ara toplam  ]  ← üstünde ayırıcı çizgi
     ⚠ Sütun boşluğu 0: üçüncü satırdaki ayırıcı çizgi iki hücreden
     geçiyor; sütun arası boşluk verilseydi çizgi ortadan kopardı.
     Boşluk sağ sütunun kendi iç boşluğuyla veriliyor.
     -------------------------------------------------------------------- */
  body.woocommerce-cart .woocommerce table.cart tbody tr.woocommerce-cart-form__cart-item{
    position:relative;
    display:grid;
    grid-template-columns:72px minmax(0,1fr);
    grid-template-areas:
      "gorsel ad"
      "gorsel fiyat"
      "adet   toplam";
    align-items:start;
    column-gap:0; row-gap:0;
    margin:0 0 12px; padding:14px;
    background:var(--wpt-grad-kagit);
    border:1px solid var(--wpt-line);
    border-radius:var(--wpt-r);
    box-shadow:var(--wpt-golge-sm);
  }

  /* ⚠ smallscreen her hücreye `text-align:right!important` basıyor; kartta
     her şey sağa yaslanıp okunmaz oluyordu. Aynı silahla ezmek tek yol. */
  body.woocommerce-cart .woocommerce table.cart tbody tr.woocommerce-cart-form__cart-item td{
    display:block;
    padding:0; margin:0;
    background:none;                    /* ⚠ smallscreen'in zebra dolgusu */
    border:0;
    text-align:left !important;
  }

  /* --- Hücre etiketleri ---
     `data-title` niteliğini WooCommerce zaten basıyor. smallscreen bunu
     `attr(data-title) ": "` ve `float:left` olarak kullanıyor; burada
     sitenin göz kapağı diline çevriliyor: mono, büyük harf, geniş aralık. */
  body.woocommerce-cart .woocommerce table.cart tbody tr.woocommerce-cart-form__cart-item td::before{
    content:attr(data-title);
    display:block; float:none; margin-bottom:4px;
    /* Yoğun satır içi etiket ölçüsü 10px — hesabım'ın sipariş kartındaki
       `td::before` ile aynı. Burası 9,5 orası 10 idi. */
    font-family:var(--wpt-mono); font-size:10px; font-weight:600;
    letter-spacing:var(--wpt-track-l); text-transform:uppercase;
    color:var(--wpt-ink-3);
  }
  /* Ürün adının üstünde "ÜRÜN" etiketi gereksiz — ad zaten kendini söylüyor. */
  body.woocommerce-cart .woocommerce table.cart tbody tr.woocommerce-cart-form__cart-item td.product-name::before{
    content:none;
  }

  /* Görsel — ⚠ smallscreen mobilde küçük resmi TAMAMEN GİZLİYOR
     (`table.cart .product-thumbnail{display:none}`). Sepette görselsiz bir
     satır, hangi ürünün ne olduğunu ayırt etmeyi imkânsız kılıyordu. */
  body.woocommerce-cart .woocommerce table.cart tbody tr.woocommerce-cart-form__cart-item td.product-thumbnail{
    grid-area:gorsel;
    display:block;
  }
  body.woocommerce-cart .woocommerce table.cart tbody tr.woocommerce-cart-form__cart-item td.product-thumbnail img{
    width:72px; height:72px;
  }

  body.woocommerce-cart .woocommerce table.cart tbody tr.woocommerce-cart-form__cart-item td.product-name{
    grid-area:ad;
    /* ⚠ Buradaki `!important`'ların kaynağı smallscreen DEĞİL, sayfa
       içeriğindeki miras stil blok: `tr…td{padding:2px 0!important}`.
       §16 silindiğinde bu üç satırdan `!important` de kalkabilir. */
    padding-left:14px !important;
    padding-right:32px !important;     /* kaldır düğmesinin altına girmesin */
    font-size:14.5px; line-height:1.4;
  }

  body.woocommerce-cart .woocommerce table.cart tbody tr.woocommerce-cart-form__cart-item td.product-price{
    grid-area:fiyat;
    padding-left:14px !important;
    padding-top:10px !important;
    font-size:13px; color:var(--wpt-ink-2);
  }

  body.woocommerce-cart .woocommerce table.cart tbody tr.woocommerce-cart-form__cart-item td.product-quantity{
    grid-area:adet;
    padding-top:12px !important;
    margin-top:14px;
    border-top:1px solid var(--wpt-line);
  }
  body.woocommerce-cart .woocommerce .quantity{ width:100% }
  body.woocommerce-cart .woocommerce .quantity input[type="number"]{ padding-left:4px }

  body.woocommerce-cart .woocommerce table.cart tbody tr.woocommerce-cart-form__cart-item td.product-subtotal{
    grid-area:toplam;
    padding:12px 0 0 14px !important;
    margin-top:14px;
    border-top:1px solid var(--wpt-line);
    text-align:right !important;
    font-size:17px; font-weight:800;
  }
  body.woocommerce-cart .woocommerce table.cart tbody tr.woocommerce-cart-form__cart-item td.product-subtotal::before{
    text-align:right;
  }

  /* Kaldır düğmesi kartın sağ üst köşesinde — ızgara akışından çıkarıldı ki
     ürün adı tam genişlikte kalsın. */
  body.woocommerce-cart .woocommerce table.cart tbody tr.woocommerce-cart-form__cart-item td.product-remove{
    position:absolute; top:11px; right:11px;
    width:auto; padding:0 !important;
  }

  /* --- İşlem şeridi mobilde kendi kartı --- */
  body.woocommerce-cart .woocommerce table.cart td.actions{
    display:block;
    margin:0; padding:14px !important;
    background:var(--wpt-surface);
    border:1px solid var(--wpt-line);
    border-radius:var(--wpt-r);
    box-shadow:var(--wpt-golge-sm);
    text-align:left !important;
  }
  body.woocommerce-cart .woocommerce table.cart td.actions .coupon{
    float:none; width:100%; margin-bottom:10px;
  }
  /* ⚠ `max-width:44vw` de kalkıyor. Masaüstünde o sınır kutuyu dizginliyor,
     mobilde ise hap zaten tam genişlik: alan 44vw'de takılı kalınca hapın
     sağında ölü boşluk kalıyor ve "Uygula" ortada asılı duruyordu. */
  body.woocommerce-cart .woocommerce table.cart td.actions .coupon input.input-text{
    flex:1 1 auto; width:auto; min-width:0; max-width:none;
  }
  body.woocommerce-cart .woocommerce table.cart td.actions button[name="update_cart"]{
    width:100%;
  }

  /* --- Özet paneli mobilde --- */
  /* ⚠ smallscreen `tbody th{display:none}` diyor: "Ara Toplam / Gönderim /
     Toplam" etiketleri kayboluyor. Etiket `data-title`'dan geri geliyor ve
     hücre iki sütunlu bir satıra dönüyor — masaüstündeki okuma düzeni
     korunuyor. */
  body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals table td{
    display:flex; align-items:baseline; justify-content:space-between; gap:14px;
    padding:12px 22px;
    text-align:right !important;
  }
  body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals table td::before{
    content:attr(data-title);
    float:none; flex:0 0 auto;
    font-family:var(--wpt-mono); font-size:10px; font-weight:600;
    letter-spacing:var(--wpt-track-l); text-transform:uppercase;
    color:var(--wpt-ink-3); text-align:left;
  }
  /* Son satırın etiketi masaüstündeki gibi göz kapağı dilinden çıkıyor. */
  body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals tr.order-total td::before{
    font-family:var(--wpt-font); font-size:var(--wpt-fs-md); font-weight:700;
    letter-spacing:var(--wpt-track-m); text-transform:none;
    color:var(--wpt-ink);
  }
  /* Mobilde özet tam genişlik — 420 piksellik sınır burada yardımcı değil,
     ekran zaten dar. */
  body.woocommerce-cart .woocommerce .cart-collaterals{ max-width:none; margin-left:0 }
  /* Kargo hücresi bir form taşıyor — iki sütuna sıkıştırılamaz. */
  body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals tr.shipping td{
    display:block;
  }
  body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals tr.shipping td::before{
    display:block; margin-bottom:8px;
  }
  body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals tr.order-total td{
    align-items:baseline;
    flex-wrap:wrap;
    padding-top:15px; padding-bottom:15px;
  }
  body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals small.includes_tax{
    flex:1 0 100%; text-align:right;
  }

  body.woocommerce-cart .woocommerce .wc-empty-cart-message{ padding:44px 20px 24px }
  body.woocommerce-cart .woocommerce p.return-to-shop{ padding:0 20px 32px }
  body.woocommerce-cart .woocommerce p.return-to-shop a.button{ width:100% }
}

/* Çok dar ekran — kart iki sütunu taşıyamıyor, görsel küçülüyor. */
@media (max-width:400px){
  body.woocommerce-cart .woocommerce table.cart tbody tr.woocommerce-cart-form__cart-item{
    grid-template-columns:60px minmax(0,1fr);
    padding:12px;
  }
  body.woocommerce-cart .woocommerce table.cart tbody tr.woocommerce-cart-form__cart-item td.product-thumbnail img{
    width:60px; height:60px;
  }
}


/* ==========================================================================
   15. HAREKET AZALTMA
   ========================================================================== */
@media (prefers-reduced-motion: reduce){
  body.woocommerce-cart .woocommerce table.cart tbody td,
  body.woocommerce-cart .woocommerce table.cart td.product-remove a.remove,
  body.woocommerce-cart .woocommerce .quantity,
  body.woocommerce-cart .woocommerce table.cart td.actions .coupon,
  body.woocommerce-cart .woocommerce table.cart td.actions button[name="update_cart"],
  body.woocommerce-cart .woocommerce .cart-collaterals .wc-proceed-to-checkout a.checkout-button,
  body.woocommerce-cart .woocommerce p.return-to-shop a.button,
  body.woocommerce-cart a.shipping-calculator-button::after,
  body.woocommerce-cart .woocommerce .woocommerce-message .button{
    transition:none;
  }
  body.woocommerce-cart .shipping-calculator-form button.button,
  body.woocommerce-cart .select2-container .select2-selection--single,
  body.woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__arrow b{
    transition:none;
  }
  /* ⚠ `:active` de listede olmalı: `transform` bir geçiş değil durumun
     kendisi; süre kısılsa da öğe gerçekten zıplıyor. odeme.css bunu
     yapıyordu, sepet ve hesabım yalnızca `:hover`ı durduruyordu. */
  body.woocommerce-cart .woocommerce table.cart td.product-remove a.remove:hover,
  body.woocommerce-cart .woocommerce table.cart td.actions button[name="update_cart"]:hover:not(:disabled),
  body.woocommerce-cart .woocommerce .cart-collaterals .wc-proceed-to-checkout a.checkout-button:hover,
  body.woocommerce-cart .woocommerce .cart-collaterals .wc-proceed-to-checkout a.checkout-button:active,
  body.woocommerce-cart .woocommerce p.return-to-shop a.button:hover,
  body.woocommerce-cart .woocommerce p.return-to-shop a.button:active,
  body.woocommerce-cart .shipping-calculator-form button.button:hover,
  body.woocommerce-cart .shipping-calculator-form button.button:active,
  body.woocommerce-cart .woocommerce .woocommerce-message .button:hover,
  body.woocommerce-cart .woocommerce .woocommerce-message .button:active,
  body.woocommerce-cart .woocommerce .woocommerce-info .button:hover,
  body.woocommerce-cart .woocommerce .woocommerce-info .button:active,
  body.woocommerce-cart .woocommerce .woocommerce-error .button:hover,
  body.woocommerce-cart .woocommerce .woocommerce-error .button:active{
    transform:none;
  }
  body.woocommerce-cart .blockUI.blockOverlay::before{ animation:none }
}


/* ==========================================================================
   ==========================================================================
   16. MİRAS SATIR İÇİ BLOK KARŞITI  —  ⚠ GEÇİCİ, SİLİNECEK
   ==========================================================================

   Sepet sayfasının İÇERİĞİNDE (post ID 7, `wp:html` bloğu) canlıdan gelen
   `<style id="wpt-sepet-hesabim-css">` duruyor. İçinde 40'a yakın sabit hex
   kod ve düzinelerce `!important` var; hepsi açık tema varsayımıyla yazılmış.
   Etkileri:
     · koyu temada beyaz kutular, açık gri çizgiler, kırmızı kaldır düğmesi
     · `td::before{display:none!important}` → mobil kart etiketlerini siler
     · `.checkout-button{background:…!important}` → marka degradesini ezer
     · yeni panellerin kenarlığını ve dolgusunu bozar

   ASIL ÇÖZÜM O BLOĞU İÇERİKTEN SİLMEK. Bu bölüm yalnızca o gün gelene kadar
   sayfanın doğru görünmesi için var; blok silindiğinde BU BÖLÜMÜN TAMAMI
   TEK PARÇA HÂLİNDE SİLİNEBİLİR ve dosyanın geri kalanı `!important`
   içermeden çalışmaya devam eder.

   Not: buradaki `!important`'ların hepsi sözleşmenin izin verdiği duruma
   giriyor — "satır içi/ezilemez bir stili ezmek zorunda kalınan yer".
   ========================================================================== */

/* Tablo kenarlıkları ve hücre zeminleri */
body.woocommerce-cart .woocommerce table.cart thead th{
  background:var(--wpt-surface-2) !important;
  border-bottom:1px solid var(--wpt-line) !important;
  color:var(--wpt-ink-3) !important;
}
body.woocommerce-cart .woocommerce table.cart tbody td{
  border-bottom:1px solid var(--wpt-line) !important;
}
body.woocommerce-cart .woocommerce table.cart tr.cart_item:hover > td{
  background:var(--wpt-surface-2) !important;
}
/* İşlem şeridi gömük yüzey olmalı — miras blok bütün hücreleri şeffaf
   yapıyor ve şerit panelin geri kalanından ayrışmıyordu.
   ⚠ KENDİ NEUTRALIZER KURALIMIN YAN ETKİSİ (§16'daki ikinci sızıntı).
   `td.actions` da `tbody`'nin içinde: yukarıdaki `tbody td` kuralı ona da
   `border-bottom … !important` basıyor. Temel tasarımda §6 `border:0` diyerek
   bunu zaten eliyordu, ama `!important`la geri geldi ve şeridin alt çizgisi
   panelin kendi 1px kenarlığının üstüne binip dipte çift çizgi, yuvarlak
   köşelerde de kavisi kesen bir çubuk bırakıyordu. */
body.woocommerce-cart .woocommerce table.cart td.actions{
  background:var(--wpt-surface-2) !important;
  border-top:1px solid var(--wpt-line) !important;
  border-bottom:0 !important;
}
/* Ürün görseli — miras 74px dayatıyor, kutu 72px üzerine kurulu */
body.woocommerce-cart .woocommerce table.cart td.product-thumbnail img{
  width:72px !important; height:72px !important;
  background:var(--wpt-plaka) !important;
  border:1px solid var(--wpt-line) !important;
  border-radius:var(--wpt-r-sm) !important;
}
/* Kaldır düğmesi — miras kalıcı kırmızı daire dayatıyor */
body.woocommerce-cart .woocommerce table.cart td.product-remove a.remove{
  width:30px !important; height:30px !important; line-height:1 !important;
  background:var(--wpt-surface) !important;
  border-radius:50% !important;
  color:var(--wpt-ink-3) !important;
  font-size:19px !important; font-weight:400 !important;
}
body.woocommerce-cart .woocommerce table.cart td.product-remove a.remove:hover{
  background:var(--wpt-kotu-soft) !important;
  color:var(--wpt-kotu) !important;
}
/* Adet alanı — çerçeve kutuya taşındı, alan çıplak kalmalı */
body.woocommerce-cart .woocommerce form.woocommerce-cart-form .quantity input.qty{
  border:0 !important; border-radius:0 !important; background:none !important;
}
body.woocommerce-cart .woocommerce form.woocommerce-cart-form .quantity input.qty:focus{
  box-shadow:none !important;
}
/* Kupon ve "Sepeti güncelle" */
body.woocommerce-cart .woocommerce form.woocommerce-cart-form .coupon input.input-text{
  border:0 !important; border-radius:0 !important; height:32px !important;
  background:none !important; min-width:0 !important;
}
body.woocommerce-cart .woocommerce form.woocommerce-cart-form .coupon button.button{
  height:32px !important; padding:0 15px !important;
  background:var(--wpt-surface-2) !important;
  border:0 !important; border-radius:var(--wpt-r-hap) !important;
  color:var(--wpt-ink-2) !important; font-weight:600 !important;
}
body.woocommerce-cart .woocommerce form.woocommerce-cart-form .coupon button.button:hover{
  background:var(--wpt-brand) !important; color:var(--wpt-btn-ink) !important;
}
body.woocommerce-cart .woocommerce form.woocommerce-cart-form button[name="update_cart"]{
  height:var(--wpt-btn) !important; padding:0 20px !important;
  background:var(--wpt-surface) !important;
  border:1px solid var(--wpt-line-2) !important;
  border-radius:var(--wpt-r-hap) !important;
  color:var(--wpt-ink) !important; font-weight:600 !important;
}
body.woocommerce-cart .woocommerce form.woocommerce-cart-form button[name="update_cart"]:hover:not(:disabled){
  background:var(--wpt-surface) !important;
  border-color:transparent !important;
  color:var(--wpt-brand) !important;
}
/* Özet paneli */
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals table th,
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals table td{
  border-bottom:1px solid var(--wpt-line) !important;
}
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals tr.order-total th,
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals tr.order-total td{
  border-top:1px solid var(--wpt-line-2) !important;
  border-bottom:0 !important;
}
body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals tr.order-total td .amount{
  color:var(--wpt-ink) !important;
}
body.woocommerce-cart .woocommerce .cart-collaterals .wc-proceed-to-checkout{
  padding:16px 22px 22px !important;
}
body.woocommerce-cart .woocommerce .cart-collaterals .wc-proceed-to-checkout a.checkout-button{
  background:var(--wpt-grad-marka) !important;
  border-radius:var(--wpt-r-hap) !important;
  color:var(--wpt-btn-ink) !important;
  font-size:15px !important; font-weight:600 !important;
  padding:0 26px !important;
  height:var(--wpt-btn-buyuk) !important;
}
/* Boş sepet */
body.woocommerce-cart .woocommerce .wc-empty-cart-message .cart-empty{
  background:none !important; border:0 !important; border-radius:0 !important;
  padding:0 !important; color:var(--wpt-ink) !important;
}
body.woocommerce-cart .woocommerce p.return-to-shop a.button{
  background:var(--wpt-grad-marka) !important;
  border-radius:var(--wpt-r-hap) !important;
  color:var(--wpt-btn-ink) !important;
  padding:0 26px !important; font-weight:600 !important;
}

@media (max-width:768px){
  /* Miras blok mobil etiketleri komple kapatıyor — kartın okunurluğu buna
     bağlı, geri açılıyor. */
  body.woocommerce-cart .woocommerce table.cart tbody tr.woocommerce-cart-form__cart-item td::before{
    display:block !important;
  }
  body.woocommerce-cart .woocommerce table.cart tbody tr.woocommerce-cart-form__cart-item td.product-name::before{
    display:none !important;
  }
  body.woocommerce-cart .woocommerce table.cart tbody tr.woocommerce-cart-form__cart-item{
    border:1px solid var(--wpt-line) !important;
  }
  /* ⚠ KENDİ NEUTRALIZER KURALIMIN YAN ETKİSİ.
     Yukarıdaki masaüstü kuralı `tbody td`'ye `border-bottom … !important`
     basıyor ve bu, medya sorgusuz olduğu için mobil karta da sızıyordu:
     ürün adının, fiyatın ve adet alanının altında kartın içinde anlamsız
     çizgiler çıkıyordu. Kartta hücre çizgisi YOK; tek ayırıcı üçüncü
     satırın üstündeki çizgi.
     ⚠ Zemin de aynı sızıntının kurbanı: yukarıdaki
     `tr.cart_item:hover > td{background:var(--wpt-surface-2)!important}`
     (0,5,3) mobil kartın `td{background:none}` kuralından (0,4,4) daha
     özgül. `cart_item` ile `woocommerce-cart-form__cart-item` AYNI `tr`'nin
     iki sınıfı olduğu için kural mobilde de eşleşiyordu: pencere 768'in
     altına daraltılmış bir masaüstünde karta gelindiğinde hücreler tek tek
     gri bloklara dönüşüyordu. Kartın zemini `--wpt-grad-kagit`; içindeki
     hücreler her durumda şeffaf kalmalı. */
  body.woocommerce-cart .woocommerce table.cart tbody tr.woocommerce-cart-form__cart-item td{
    border-bottom:0 !important;
    background:none !important;
  }
  body.woocommerce-cart .woocommerce table.cart tbody tr.woocommerce-cart-form__cart-item td.product-quantity,
  body.woocommerce-cart .woocommerce table.cart tbody tr.woocommerce-cart-form__cart-item td.product-subtotal{
    border-top:1px solid var(--wpt-line) !important;
  }
  /* Özet satırlarının etiketleri de miras blok tarafından kapatılıyordu —
     mobilde `th` gizli olduğu için etiket YALNIZCA `::before`'dan gelir;
     kapalı kalınca "₺290.037,50" neyin toplamı olduğu belirsiz kalıyordu. */
  body.woocommerce-cart .woocommerce .cart-collaterals .cart_totals table td::before{
    display:block !important;
  }
  /* Miras blok birim fiyatı mobilde tamamen gizliyor; kartta fiyat satırı var. */
  body.woocommerce-cart .woocommerce table.cart tbody tr.woocommerce-cart-form__cart-item td.product-price{
    display:block !important;
  }
  body.woocommerce-cart .woocommerce table.cart tbody tr.woocommerce-cart-form__cart-item td.product-thumbnail{
    position:static !important; width:auto !important;
  }
  body.woocommerce-cart .woocommerce table.cart tbody tr.woocommerce-cart-form__cart-item td.product-thumbnail img{
    width:72px !important; height:72px !important;
  }
  body.woocommerce-cart .woocommerce table.cart tbody tr.woocommerce-cart-form__cart-item td.product-subtotal{
    position:static !important; width:auto !important;
  }
  body.woocommerce-cart .woocommerce table.cart td.actions{
    background:var(--wpt-surface) !important;
    border:1px solid var(--wpt-line) !important;
    border-radius:var(--wpt-r) !important;
  }
}
