/* ==========================================================================
   Zudax — WooCommerce (magaza, sepet, odeme, siparis, hesap)
   ========================================================================== */

.zdx-woo { padding-bottom: 100px; }

.zdx-woo .zdx-container { max-width: 1240px; }

/* Sepet / odeme / hesabim sayfa kutusu ---------------------------------- */

.zdx-woo-page { padding-bottom: 0; }

.zdx-woo-entry {
  padding-bottom: 110px;
}

.zdx-woo-entry a { color: var(--gold-ink); }
.zdx-woo-entry a:hover { color: var(--gold); }

/* Bildirimler ------------------------------------------------------------ */

.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-error,
.zdx-woo-entry .woocommerce-message,
.zdx-woo-entry .woocommerce-info,
.zdx-woo-entry .woocommerce-error {
  background: #fbf8f0;
  border: 1px solid rgba(168, 135, 62, .3);
  border-left: 2px solid var(--gold);
  color: var(--ink);
  font-family: var(--ff-sans);
  font-size: 13px;
  letter-spacing: .04em;
  line-height: 1.7;
  padding: 16px 22px;
  margin: 0 0 30px;
  list-style: none;
  border-radius: 0;
}

.woocommerce-notices-wrapper .woocommerce-error,
.zdx-woo-entry .woocommerce-error { border-left-color: #a33; }

.zdx-woo-entry .woocommerce-message::before,
.zdx-woo-entry .woocommerce-info::before,
.zdx-woo-entry .woocommerce-error::before { display: none; }

.zdx-woo-entry .woocommerce-message .button,
.zdx-woo-entry .woocommerce-info .button {
  float: right;
  margin-left: 20px;
}

/* ==========================================================================
   Ortak dugmeler
   ========================================================================== */

.zdx-woo-entry a.button,
.zdx-woo-entry button.button,
.zdx-woo-entry input.button,
.zdx-woo-entry button[type="submit"].button,
.zdx-woo-entry a.button.alt,
.zdx-woo-entry button.button.alt,
.zdx-woo-entry input.button.alt {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--black) !important;
  color: var(--white) !important;
  border: 1px solid var(--black) !important;
  border-radius: 0 !important;
  font-family: var(--ff-sans);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .28em;
  text-transform: uppercase;
  line-height: 1;
  padding: 18px 34px;
  min-height: 52px;
  text-decoration: none;
  transition: background .35s, color .35s, border-color .35s, opacity .35s;
}

.zdx-woo-entry a.button:hover,
.zdx-woo-entry button.button:hover,
.zdx-woo-entry input.button:hover,
.zdx-woo-entry a.button.alt:hover,
.zdx-woo-entry button.button.alt:hover,
.zdx-woo-entry input.button.alt:hover {
  background: var(--gold) !important;
  border-color: var(--gold) !important;
  color: #fff !important;
}

.zdx-woo-entry button.button:disabled,
.zdx-woo-entry button.button[disabled],
.zdx-woo-entry input.button:disabled {
  opacity: .35;
  cursor: not-allowed;
}

/* Ikincil (cerceveli) dugme */

.zdx-woo-entry .button.zdx-btn-ghost,
.zdx-woo-entry button.button[name="apply_coupon"],
.zdx-woo-entry button.button[name="update_cart"],
.zdx-woo-entry button[type="submit"].button[name="apply_coupon"],
.zdx-woo-entry button[type="submit"].button[name="update_cart"],
.zdx-woo-entry .woocommerce-Button--next,
.zdx-woo-entry .woocommerce-Button--previous {
  background: transparent !important;
  color: var(--black) !important;
  border: 1px solid rgba(12, 11, 8, .32) !important;
}

.zdx-woo-entry button[type="submit"].button[name="apply_coupon"]:hover,
.zdx-woo-entry button[type="submit"].button[name="update_cart"]:hover:not(:disabled) {
  background: var(--black) !important;
  border-color: var(--black) !important;
  color: var(--white) !important;
}

/* ==========================================================================
   Magaza dongusu
   ========================================================================== */

.woocommerce ul.products {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 54px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }

.woocommerce ul.products li.product {
  width: auto !important;
  margin: 0 !important;
  float: none !important;
  text-align: center;
  background: #fff;
  border: 1px solid var(--border);
  padding: 34px 30px 38px;
  transition: border-color .45s, transform .45s, box-shadow .45s;
}

.woocommerce ul.products li.product:hover {
  border-color: rgba(168, 135, 62, .45);
  transform: translateY(-4px);
  box-shadow: 0 22px 48px rgba(12, 11, 8, .09);
}

.woocommerce ul.products li.product a img {
  margin: 0 auto 26px;
  width: 74%;
  transition: transform .8s cubic-bezier(.22, 1, .36, 1);
  filter: drop-shadow(0 24px 32px rgba(12, 11, 8, .18));
}

.woocommerce ul.products li.product:hover a img { transform: scale(1.06); }

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--ff-serif);
  font-size: 26px;
  font-weight: 300;
  letter-spacing: .01em;
  color: var(--ink);
  padding: 0;
  margin: 0 0 10px;
}

.woocommerce ul.products li.product .price {
  display: block;
  font-family: var(--ff-sans);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: .18em;
  color: var(--gold-ink);
  margin-bottom: 22px;
}

.woocommerce ul.products li.product .price del { opacity: .45; margin-right: 8px; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }

.woocommerce ul.products li.product .button {
  display: inline-block;
  background: transparent;
  border: 1px solid var(--black);
  color: var(--black);
  border-radius: 0;
  font-family: var(--ff-sans);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .28em;
  text-transform: uppercase;
  padding: 14px 30px;
  margin: 0;
}

.woocommerce ul.products li.product .button:hover {
  background: var(--black);
  color: var(--white);
}

.woocommerce span.onsale {
  background: var(--gold);
  color: #fff;
  border-radius: 0;
  font-family: var(--ff-sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .2em;
  text-transform: uppercase;
  min-height: 0;
  min-width: 0;
  line-height: 1;
  padding: 8px 14px;
  top: 14px;
  left: 14px;
  margin: 0;
}

/* ==========================================================================
   Adet kutusu (sepet ve odeme)
   ========================================================================== */

.zdx-woo-page .quantity {
  display: inline-flex;
  align-items: center;
  background: #fff;
  border: 1px solid var(--border);
  padding: 2px 8px;
  margin: 0;
}

.zdx-woo-page .quantity .zdx-qty-btn {
  border: 0;
  background: none;
  color: var(--ink);
  font-size: 17px;
  line-height: 1;
  padding: 8px 8px;
  cursor: pointer;
  transition: color .3s;
}

.zdx-woo-page .quantity .zdx-qty-btn:hover { color: var(--gold); }

.zdx-woo-page .quantity input.qty {
  width: 42px;
  height: auto;
  border: 0;
  background: transparent;
  text-align: center;
  font-family: var(--ff-sans);
  font-size: 14px;
  color: var(--ink);
  -moz-appearance: textfield;
}

.zdx-woo-page .quantity input.qty::-webkit-outer-spin-button,
.zdx-woo-page .quantity input.qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* ==========================================================================
   Sepet
   ========================================================================== */

.woocommerce-cart .zdx-woo-entry .woocommerce:has(.woocommerce-cart-form) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 0 48px;
  align-items: start;
}

.woocommerce-cart .zdx-woo-entry .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-cart .zdx-woo-entry .woocommerce-cart-form { grid-column: 1; margin: 0; }
.woocommerce-cart .zdx-woo-entry .cart-collaterals { grid-column: 2; width: 100%; float: none; }
.woocommerce-cart .zdx-woo-entry .cross-sells { grid-column: 1 / -1; width: 100%; }

/* Sepet tablosu ---------------------------------------------------------- */

.zdx-woo-entry table.shop_table {
  width: 100%;
  border: 0;
  border-radius: 0;
  border-collapse: collapse;
  margin: 0;
}

.zdx-woo-entry table.shop_table th {
  font-family: var(--ff-sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: rgba(10, 10, 8, .5);
  text-align: left;
  padding: 0 12px 16px;
  border-bottom: 1px solid var(--border);
}

.zdx-woo-entry table.shop_table td {
  padding: 26px 12px;
  border-top: 1px solid var(--border);
  font-size: 14px;
  vertical-align: middle;
  background: transparent;
}

/* WooCommerce cift satirlari gri boyuyor; zebra desenini kaldir. */
.zdx-woo-entry table.shop_table tbody tr:nth-child(2n) td,
.zdx-woo-entry table.shop_table tbody tr:nth-child(2n) th { background: transparent; }

.zdx-woo-entry table.cart th.product-price,
.zdx-woo-entry table.cart th.product-subtotal,
.zdx-woo-entry table.cart td.product-price,
.zdx-woo-entry table.cart td.product-subtotal { text-align: right; }

.zdx-woo-entry table.cart { table-layout: fixed; }

.zdx-woo-entry table.cart th.product-remove,
.zdx-woo-entry table.cart td.product-remove { width: 36px; padding-left: 0; padding-right: 0; }

.zdx-woo-entry table.cart th.product-thumbnail,
.zdx-woo-entry table.cart td.product-thumbnail { width: 104px; }

.zdx-woo-entry table.cart th.product-price,
.zdx-woo-entry table.cart td.product-price { width: 102px; }

.zdx-woo-entry table.cart th.product-quantity,
.zdx-woo-entry table.cart td.product-quantity { width: 128px; }

.zdx-woo-entry table.cart th.product-subtotal,
.zdx-woo-entry table.cart td.product-subtotal { width: 112px; }

.zdx-woo-entry table.cart td.product-thumbnail img {
  width: 88px;
  max-width: none;
  display: block;
  filter: drop-shadow(0 14px 22px rgba(12, 11, 8, .16));
}

.zdx-woo-entry td.product-name a {
  font-family: var(--ff-serif);
  font-size: 21px;
  font-weight: 300;
  color: var(--ink);
  letter-spacing: .01em;
}

.zdx-woo-entry td.product-name a:hover { color: var(--gold-ink); }

.zdx-woo-entry td.product-name .variation,
.zdx-woo-entry td.product-name dl.variation {
  font-size: 12px;
  color: var(--ink-soft);
  margin: 6px 0 0;
}

.zdx-woo-entry td.product-price,
.zdx-woo-entry td.product-subtotal,
.zdx-woo-entry .woocommerce-Price-amount {
  font-family: var(--ff-sans);
  font-size: 14px;
  letter-spacing: .06em;
  color: var(--ink);
}

.zdx-woo-entry td.product-subtotal { font-weight: 400; color: var(--gold-ink); }

.zdx-woo-entry td.product-remove a.remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border: 1px solid var(--border);
  border-radius: 50%;
  color: rgba(10, 10, 8, .45) !important;
  font-size: 15px;
  font-weight: 300;
  line-height: 1;
  background: transparent !important;
  transition: color .3s, border-color .3s;
}

.zdx-woo-entry td.product-remove a.remove:hover {
  color: #a33 !important;
  border-color: rgba(170, 51, 51, .4);
  background: transparent !important;
}

/* Kupon + guncelle satiri ------------------------------------------------ */

.zdx-woo-entry table.cart td.actions {
  display: table-cell;
  padding: 30px 0 0;
  border-top: 1px solid var(--border);
  text-align: right;
  overflow: hidden;
}

.zdx-woo-entry table.cart td.actions::after {
  content: "";
  display: block;
  clear: both;
}

.zdx-woo-entry table.cart td.actions .coupon {
  display: flex;
  align-items: center;
  gap: 12px;
  float: left;
  width: auto;
  padding: 0;
  border: 0;
}

.zdx-woo-entry table.cart td.actions .coupon label { display: none; }

.zdx-woo-entry table.cart td.actions .coupon .input-text {
  flex: 0 0 auto;
  width: 190px !important;
  height: 52px;
  border: 1px solid var(--border);
  border-radius: 0;
  background: #fff;
  padding: 0 16px;
  font-family: var(--ff-sans);
  font-size: 13px;
  letter-spacing: .06em;
  color: var(--ink);
  margin: 0;
}

.zdx-woo-entry table.cart td.actions .coupon .input-text:focus {
  outline: none;
  border-color: var(--gold);
}

.zdx-woo-entry table.cart td.actions .coupon .button { flex: 0 0 auto; }
.zdx-woo-entry table.cart td.actions button[name="update_cart"] { float: right; }

/* Sepet toplamlari -------------------------------------------------------- */

.zdx-woo-entry .cart-collaterals .cart_totals,
.zdx-woo-entry .cart_totals {
  float: none;
  width: 100%;
  background: #fbf9f3;
  border: 1px solid var(--border);
  padding: 32px 30px 34px;
  position: sticky;
  top: calc(var(--header-h) + 22px);
}

.zdx-woo-entry .cart_totals > h2 {
  font-family: var(--ff-sans);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: rgba(10, 10, 8, .5);
  margin: 0 0 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border);
}

.zdx-woo-entry .cart_totals table.shop_table { background: transparent; }

.zdx-woo-entry .cart_totals table.shop_table th,
.zdx-woo-entry .cart_totals table.shop_table td {
  border: 0;
  padding: 12px 0;
  font-family: var(--ff-sans);
  font-size: 13px;
  letter-spacing: .04em;
  text-transform: none;
  color: var(--ink-soft);
  vertical-align: top;
}

.zdx-woo-entry .cart_totals table.shop_table th { width: 46%; }
.zdx-woo-entry .cart_totals table.shop_table td { text-align: right; color: var(--ink); }

.zdx-woo-entry .cart_totals tr.order-total th,
.zdx-woo-entry .cart_totals tr.order-total td {
  border-top: 1px solid var(--border);
  padding-top: 20px;
}

.zdx-woo-entry .cart_totals tr.order-total th {
  font-family: var(--ff-sans);
  font-size: 10.5px;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: rgba(10, 10, 8, .55);
  padding-top: 24px;
}

.zdx-woo-entry .cart_totals tr.order-total td strong,
.zdx-woo-entry .cart_totals tr.order-total .woocommerce-Price-amount {
  font-family: var(--ff-serif);
  font-size: 27px;
  font-weight: 400;
  color: var(--ink);
  letter-spacing: 0;
}

.zdx-woo-entry .cart_totals .woocommerce-shipping-destination,
.zdx-woo-entry .cart_totals .woocommerce-shipping-methods,
.zdx-woo-entry .cart_totals .shipping-calculator-button {
  font-size: 12px;
  line-height: 1.7;
}

.zdx-woo-entry .cart_totals ul#shipping_method {
  list-style: none;
  margin: 0;
  padding: 0;
}

.zdx-woo-entry .cart_totals ul#shipping_method li { margin: 0 0 6px; }

.zdx-woo-entry .wc-proceed-to-checkout { padding: 22px 0 0; }

.zdx-woo-entry .wc-proceed-to-checkout a.checkout-button {
  display: flex;
  width: 100%;
  margin: 0;
  font-size: 11px;
  padding: 20px 20px;
}

/* Bos sepet -------------------------------------------------------------- */

.zdx-woo-entry .cart-empty,
.zdx-woo-entry .wc-empty-cart-message .cart-empty {
  background: transparent;
  border: 0;
  padding: 30px 0 6px;
  margin: 0;
  text-align: center;
  font-family: var(--ff-serif);
  font-size: 30px;
  font-weight: 300;
  letter-spacing: .01em;
  color: var(--ink);
}

.zdx-woo-entry .return-to-shop {
  text-align: center;
  padding: 6px 0 40px;
  margin: 0;
}

/* ==========================================================================
   Odeme
   ========================================================================== */

.zdx-co-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 396px;
  gap: 0 58px;
  align-items: start;
}

.zdx-co-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

/* Sira: adres -> cuzdanlar -> odeme. Tasima degil sira; express elemanini
   DOM'dan sokup takmak Stripe'in iframe'lerini yeniden yuklerdi.
   order: 9 tabani, sonradan bir eklentinin enjekte ettigi her elemanin
   varsayilan order: 0 ile en basa firlamasini onler. */
.zdx-co-main > * { order: 9; }
.zdx-co-main #customer_details { order: 1; }
.zdx-co-main .zdx-express-note { order: 2; }
.zdx-co-main #wc-stripe-express-checkout-element,
.zdx-co-main #wc-stripe-express-checkout__order-attribution-inputs { order: 3; }
.zdx-co-main .zdx-pay-title { order: 4; }
.zdx-co-main #payment { order: 5; }

/* Stripe'in "OR" ayraci kendi textdomain'inden geliyor ve alti dilin
   hepsinde cevrili degil; yerine kendi cevrilmis basligimiz var. */
#wc-stripe-express-checkout-button-separator { display: none !important; }

/* Cuzdan blogu ----------------------------------------------------------- */

.zdx-express-note {
  margin: 40px 0 16px;
  padding-top: 30px;
  border-top: 1px solid var(--border);
  font-family: var(--ff-sans);
}

/* Sagdaki ozetin #order_review_heading olcusunun birebir ayni: kucuk bir
   bolge etiketi, seri bir bolum basligi degil. */
.zdx-express-label {
  display: block;
  font-family: var(--ff-sans);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: rgba(10, 10, 8, .5);
}

.zdx-express-hint {
  display: block;
  margin-top: 10px;
  font-size: 12.5px;
  line-height: 1.8;
  letter-spacing: .04em;
  color: var(--ink-soft);
}

/* Form tamamlaninca aciklama gizlenir; etiket ve cizgi kalir. */
.zdx-co-main:not(.is-express-locked) .zdx-express-hint { display: none; }

/* Cihazda hicbir cuzdan yoksa Stripe kutuyu bos birakiyor; baslik bosa
   dusmesin. Elemanin KENDISINI asla gizlemiyoruz: Stripe gizli bir kaba
   baglanirsa genisligi 0 olcer. Sinifi express-gate.js gec ekler. */
.zdx-co-main.is-express-empty .zdx-express-note { display: none; }

/* Cuzdan sirasi ------------------------------------------------------------
   (a) Eklenti kabi kendi PHP'sinde satir ici display:none ile basiyor
       (class-wc-stripe-express-checkout-element.php:836) ve cuzdan
       iframe'lerini o gizli kaba bagliyor; kutuyu ancak elemanin "ready"
       olayinda aciyor. Ilk yerlesimini genisligi 0 olan bir kapta yapan
       iframe o olcude donabiliyor. Kabi ilk boyamadan itibaren gercek
       genisligiyle yerlestirip yalnizca gorunurlugunu kapatiyoruz. Iki
       yazim da gerekli: PHP "display:none" (bosluksuz), jQuery ise
       "display: none" yaziyor.

   (b) iframe'e max-width YAZMIYORUZ. Eklentinin kendi CSS'i
       "#wc-stripe-express-checkout-element iframe{max-width:unset}" diyor,
       cunku Stripe cerceveyi kutusundan 8px genis basip icerigi her yandan
       4px iceri aliyor. Eski kural her cuzdan dugmesini 8px daraltiyordu.

   (c) Eklentinin CSS'i kaba flex + gap, cocuklara flex:1; min-width:260px
       veriyor; dugmeleri tek tek ekleyip kullanilamayanlari yine tek tek
       siliyor. Her ekleme ve silme, cizilmis kardeslerin genisligini
       degistiriyor. Blok yigin bu bagimliligi kaldiriyor. */
/* NOT: kabi "hep display:block, kapaliyken height:0" yapmayi denedik ve
   GERI ALDIK. jQuery .show()/.hide() hesaplanmis display'e bakiyor;
   display:block !important yazilinca .show() satir ici "display:none"u hic
   kaldirmiyor ve kap kalici gizli kalabiliyor. Eklentinin kendi flex
   duzenine dokunmuyoruz, yalnizca dugmeleri tam genislige zorluyoruz. */

.zdx-co-main #wc-stripe-express-checkout-element {
  position: relative;
  width: 100%;
  max-width: 100%;
  /* Eklentinin satir ici margin-top:1em'i; ustteki bosluk
     .zdx-express-note'un isi. Araligi eklentinin kendi gap:10px'i veriyor. */
  margin: 0 !important;
  transition: opacity .3s ease;
}

/* Eklentinin CSS'i cocuklara "flex:1; min-width:260px" veriyor: genis
   sutunda iki dugme yan yana geciyor ve dugmeler tek tek eklenip
   silindikce kardeslerinin genisligi degisiyor. Her dugme kendi satirinda
   ve tam genislikte olsun. */
.zdx-co-main #wc-stripe-express-checkout-element > div {
  flex: 1 1 100%;
  min-width: 0;
  margin: 0;
}

/* Kilit: opacity yerine ortu. opacity < 1 uc capraz kaynakli iframe'i tek
   bir kompozisyon katmanina tasiyor; ortu bunu yapmiyor. */
.zdx-co-main.is-express-locked #wc-stripe-express-checkout-element {
  pointer-events: none;
}

.zdx-co-main.is-express-locked:not(.is-express-empty)
  #wc-stripe-express-checkout-element::after {
  content: "";
  position: absolute;
  inset: -2px -4px;
  background: rgba(250, 248, 242, .58);
  pointer-events: none;
}

#wc-stripe-express-checkout__order-attribution-inputs { margin: 0; }

/* Odeme bolumunun basligi ------------------------------------------------ */

/* Adres formunun basligiyla birebir ayni bildirim: ayni aile, ayni olcu,
   ayni cizgi. Sol sutun boylece tek bir belge gibi okunuyor:
   "Fatura bilgileri" -> "Odeme". */
.zdx-woo-entry .zdx-pay-title {
  font-family: var(--ff-serif);
  font-size: 26px;
  font-weight: 300;
  letter-spacing: .01em;
  color: var(--ink);
  margin: 44px 0 22px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border);
}

.zdx-co-aside {
  background: #fbf9f3;
  border: 1px solid var(--border);
  padding: 30px 30px 34px;
  position: sticky;
  top: calc(var(--header-h) + 22px);
}

.zdx-co-aside #order_review_heading {
  font-family: var(--ff-sans);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: rgba(10, 10, 8, .5);
  margin: 0 0 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border);
}

/* Giris / kupon acilir bloklari */

.zdx-woo-entry .woocommerce-form-login-toggle,
.zdx-woo-entry .woocommerce-form-coupon-toggle { margin-bottom: 18px; }

.zdx-woo-entry form.checkout_coupon,
.zdx-woo-entry form.woocommerce-form-login {
  border: 1px solid var(--border);
  border-radius: 0;
  background: #fff;
  padding: 30px 30px 24px;
  margin: 0 0 34px;
}

.zdx-woo-entry form.checkout_coupon .form-row { margin-bottom: 0; }

/* Baslikar */

.zdx-woo-entry .woocommerce-billing-fields > h3,
.zdx-woo-entry .woocommerce-shipping-fields > h3,
.zdx-woo-entry .woocommerce-additional-fields > h3,
.zdx-woo-entry #ship-to-different-address {
  font-family: var(--ff-serif);
  font-size: 26px;
  font-weight: 300;
  letter-spacing: .01em;
  color: var(--ink);
  margin: 0 0 22px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border);
}

.zdx-woo-entry #ship-to-different-address label {
  font-family: var(--ff-serif);
  font-size: 26px;
  text-transform: none;
  letter-spacing: .01em;
  color: var(--ink);
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 12px;
}

.zdx-woo-entry .col2-set {
  display: grid;
  grid-template-columns: 1fr;
  gap: 46px;
  width: 100%;
}

.zdx-woo-entry .col2-set .col-1,
.zdx-woo-entry .col2-set .col-2 {
  width: 100%;
  float: none;
  padding: 0;
}

.zdx-woo-entry .col2-set .col-2:empty { display: none; }

/* Form alanlari ---------------------------------------------------------- */

.zdx-woo-entry .woocommerce-billing-fields__field-wrapper,
.zdx-woo-entry .woocommerce-shipping-fields__field-wrapper,
.zdx-woo-entry .woocommerce-address-fields__field-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 22px;
}

.zdx-woo-entry .form-row {
  float: none !important;
  width: auto !important;
  padding: 0;
  margin: 0 0 20px;
}

.zdx-woo-entry .form-row-wide,
.zdx-woo-entry .form-row.notes,
.zdx-woo-entry .form-row.place-order,
.zdx-woo-entry .form-row.woocommerce-validated.form-row-wide { grid-column: 1 / -1; }

.zdx-woo-entry .form-row label,
.zdx-woo-entry .woocommerce-form-row label {
  font-family: var(--ff-sans);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(10, 10, 8, .58);
  margin-bottom: 8px;
  display: block;
}

.zdx-woo-entry .form-row label .required { color: var(--gold); text-decoration: none; }

/* ==========================================================================
   BU KURALI DEGISTIRMEDEN ONCE OKU.

   Kart alanlarinin gorunumu artik functions.php'deki
   zudax_stripe_upe_appearance() ile SUNUCUDAN yaziliyor; Stripe bu alanlari
   ornek almiyor. Yine de olculer birebir ayni tutuluyor, iki sebeple:

   1) GORUNUM. Stripe'in '.Input' kurali tam bu degerlerden turetildi:
      20px satir + 2x16px dolgu + 2x1px kenarlik = 54px. Bu kural ile
      appearance nesnesi birbirinin kopyasi; birini degistiren otekini de
      degistirmek zorunda.

   2) EMNIYET. Filtre bir gun kalkar ya da bir surum yukseltmesi pt()'yi
      degistirirse eklenti kendi ornekleme yoluna donuyor. O yolda
      kopyalanan ozellik listesinde "padding" VAR, "height" YOK: dikey dolgu
      sifir birakilirsa Stripe'in alanlari ~22px'e cokuyor ve ikonlar
      kesiliyor. Gercek dikey dolgu bu geri dususu de sagliyor.

   font-size KIRILMA NOKTASINDAN BAGIMSIZ 16px: iPhone Pro Max yatayda
   932-956 CSS px, yani eski 900px esigimizin USTUNDE kaliyordu ve orada
   iOS her alana odaklanista sayfayi buyutuyordu.
   ========================================================================== */
.zdx-woo-entry .form-row input.input-text,
.zdx-woo-entry .form-row textarea,
.zdx-woo-entry .form-row select,
.zdx-woo-entry .select2-container .select2-selection--single {
  width: 100%;
  height: 54px;
  border: 1px solid var(--border);
  border-radius: 0;
  background: #fff;
  padding: 0 16px;
  font-family: var(--ff-sans);
  font-size: 16px;
  line-height: 20px;
  color: var(--ink);
  box-shadow: none;
  transition: border-color .3s, box-shadow .3s;
}

/* Gercek dikey dolgu yalnizca metin alanlarinda: <select> ve select2 dikey
   dolguyu tarayiciya gore farkli yorumluyor. */
.zdx-woo-entry .form-row input.input-text { padding: 16px; }

.zdx-woo-entry .form-row textarea { height: 120px; padding: 14px 16px; line-height: 1.7; }

/* Odak: 1px kenarlik + 1px golge = kare, 2px altin hat. Stripe'in mavi
   halkasi appearance'ta focusBoxShadow/focusOutline: none ve '.Input:focus'
   ile kapatildi; iki taraf ayni isareti veriyor. */
.zdx-woo-entry .form-row input.input-text:focus,
.zdx-woo-entry .form-row textarea:focus,
.zdx-woo-entry .form-row select:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 1px var(--gold);
}

.zdx-woo-entry .select2-container .select2-selection--single {
  display: flex;
  align-items: center;
}

.zdx-woo-entry .form-row .woocommerce-input-wrapper { width: 100%; display: block; }

.zdx-woo-entry .form-row.woocommerce-invalid input.input-text,
.zdx-woo-entry .form-row.woocommerce-invalid select { border-color: #a33; }

.zdx-woo-entry .form-row .checkbox,
.zdx-woo-entry label.checkbox,
.zdx-woo-entry .woocommerce-form__label-for-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 12.5px;
  letter-spacing: .04em;
  text-transform: none;
  color: var(--ink-soft);
  line-height: 1.7;
}

.zdx-woo-entry input[type="checkbox"],
.zdx-woo-entry input[type="radio"] {
  accent-color: var(--gold);
  width: 15px;
  height: 15px;
  margin: 3px 0 0;
  flex: 0 0 auto;
}

/* Siparis ozeti tablosu -------------------------------------------------- */

.zdx-co-aside table.shop_table th,
.zdx-co-aside table.shop_table td {
  border: 0;
  border-bottom: 1px solid var(--border);
  padding: 14px 0;
  font-family: var(--ff-sans);
  font-size: 13px;
  letter-spacing: .04em;
  color: var(--ink-soft);
}

.zdx-co-aside table.shop_table thead th {
  font-size: 10px;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: rgba(10, 10, 8, .45);
  padding-bottom: 12px;
}

.zdx-co-aside table.shop_table td { text-align: right; color: var(--ink); }
.zdx-co-aside table.shop_table th { text-align: left; }

.zdx-co-aside table.shop_table td.product-name,
.zdx-co-aside table.shop_table th.product-name { text-align: left; }

.zdx-co-aside .product-name {
  font-family: var(--ff-serif);
  font-size: 18px;
  color: var(--ink);
}

.zdx-co-aside .product-quantity {
  font-family: var(--ff-sans);
  font-size: 12px;
  color: var(--ink-soft);
}

.zdx-co-aside tr.order-total th,
.zdx-co-aside tr.order-total td { border-bottom: 0; padding-top: 20px; }

.zdx-co-aside tr.order-total th {
  font-size: 10.5px;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: rgba(10, 10, 8, .55);
}

.zdx-co-aside tr.order-total .woocommerce-Price-amount {
  font-family: var(--ff-serif);
  font-size: 27px;
  color: var(--ink);
}

/* Odeme yontemleri ------------------------------------------------------- */

.zdx-woo-entry #payment {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 6px 0 0;
}

.zdx-woo-entry #payment ul.payment_methods {
  border: 0;
  border-bottom: 1px solid var(--border);
  padding: 0 0 18px;
  margin: 0 0 20px;
  list-style: none;
}

.zdx-woo-entry #payment ul.payment_methods li {
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.7;
}

.zdx-woo-entry #payment ul.payment_methods li label {
  display: inline;
  font-family: var(--ff-sans);
  font-size: 12.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink);
}

.zdx-woo-entry #payment div.payment_box {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 0;
  font-size: 12.5px;
  line-height: 1.7;
  color: var(--ink-soft);
  margin: 12px 0 0;
  padding: 16px 18px;
}

.zdx-woo-entry #payment div.payment_box::before { display: none; }

.zdx-woo-entry #payment .woocommerce-privacy-policy-text,
.zdx-woo-entry #payment .woocommerce-terms-and-conditions-wrapper {
  font-size: 12px;
  line-height: 1.7;
  color: var(--ink-soft);
}

.zdx-woo-entry #payment .form-row.place-order { margin: 0; padding: 18px 0 0; }

/* Genis sutunda odeme: yuzey yok ------------------------------------------
   #payment artik dolgulu bir kart degil, bir bolum. Cerceveyi yontem
   satirlari tasiyor. Ic ice kutu gorunumu boylece bitiyor ve telefonda kart
   formuna 62px geri geliyor: 2px kenarlik + 60px yan dolgu. */
.zdx-co-main #payment {
  background: transparent;
  border: 0;
  border-radius: 0;
  margin: 0;
  padding: 0;
}

.zdx-co-main #payment ul.payment_methods {
  display: flex;
  flex-direction: column;
  gap: 12px;
  border: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Yontem satirlari --------------------------------------------------------
   Her yontem bir kart: radyo | etiket ust satirda, acilan kutu altta.
   Beyaz + 1px cerceve, sayfanin ustundeki kupon/giris kutulariyla ayni
   nesne. Beyaz olmasi ayrica onemli: Stripe kart alanini beyaz basiyor,
   beyaz zeminde yalnizca kendi ince cercevesi gorunuyor.

   --zdx-tile-pad: satirin ic payi. Kirilma noktalarinda yalnizca bu tek
   deger degisiyor; payment_box negatif kenar bosluguyla ayni degeri geri
   veriyor, boylece ayirici cizgi kartin tamamini kat ediyor. */
.zdx-co-main #payment ul.payment_methods li {
  --zdx-tile-pad: 14px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  column-gap: 12px;
  margin: 0;
  padding: 0 var(--zdx-tile-pad);
  background: #fff;
  border: 1px solid var(--border);
  border-inline-start: 2px solid var(--border);
  border-radius: 0;
  font-size: 13px;
  line-height: 1.7;
  transition: border-color .25s;
}

/* Cekirdek "#payment ul.payment_methods li::after" ile bir clearfix
   basiyor. Satir artik grid oldugu icin bu bos ::after ucuncu bir grid
   ogesine donusuyordu. */
.zdx-co-main #payment ul.payment_methods li::after { display: none; }

/* Secili satirin altin on kenari. Sitenin kendi deyimi: bildirim kutulari
   da 2px altin sol kenar kullaniyor. border-inline-start yazdigimiz icin
   Arapca'da kendiliginden sag kenara geciyor.

   Iki ayri kural olarak yaziliyor, VIRGULLE BIRLESTIRILMIYOR: :has()
   desteklemeyen bir tarayici, listede :has() gecen kuralin TAMAMINI atar
   ve JS'li yedegi de goturur. */
.zdx-co-main #payment ul.payment_methods li.zdx-method-on {
  border-color: rgba(168, 135, 62, .38);
  border-inline-start-color: var(--gold);
}

.zdx-co-main #payment ul.payment_methods li:has(> input[type="radio"]:checked) {
  border-color: rgba(168, 135, 62, .38);
  border-inline-start-color: var(--gold);
}

/* Yerlestirilmemis her dogrudan cocuk dar ikinci raya dusuyor: bir kayitli
   kart eklentisinin ekledigi satir etiketin altina girintili cikiyordu. */
.zdx-co-main #payment ul.payment_methods li > * { grid-column: 1 / -1; }

.zdx-co-main #payment ul.payment_methods li > input[type="radio"] {
  grid-column: 1;
  grid-row: 1;
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--gold);
  flex: none;
}

/* Etiket satirin geri kalanini kapliyor: dokunma hedefi radyo degil,
   satirin tamami. */
.zdx-co-main #payment ul.payment_methods li > label {
  grid-column: 2;
  grid-row: 1;
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 58px;
  margin: 0;
  padding: 0;
  cursor: pointer;
  font-family: var(--ff-sans);
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ink);
}

.zdx-co-main #payment ul.payment_methods li > label img {
  max-height: 22px;
  width: auto;
  margin: 0;
  margin-inline-start: auto;
  float: none;
  box-shadow: none;
}

/* Acilan kutu ------------------------------------------------------------ */

.zdx-co-main #payment div.payment_box {
  grid-column: 1 / -1;
  grid-row: 2;
  background: transparent;
  border: 0;
  border-top: 1px solid var(--border);
  border-radius: 0;
  width: auto;
  margin: 0;
  margin-inline: calc(var(--zdx-tile-pad) * -1);
  padding: 18px var(--zdx-tile-pad) 20px;
  font-family: var(--ff-sans);
  font-size: 12.5px;
  line-height: 1.75;
  color: var(--ink-soft);
  /* Havale kutusundaki IBAN telefonda satiri tasiriyordu. */
  overflow-wrap: anywhere;
}

.zdx-co-main #payment div.payment_box::before { display: none; }
.zdx-co-main #payment div.payment_box > :first-child { margin-top: 0; }
.zdx-co-main #payment div.payment_box > :last-child { margin-bottom: 0; }

/* NOT: kart kutusunu "hep display:block, kapaliyken height:0" yapmayi
   denedik ve GERI ALDIK. jQuery'nin ":visible" / ":hidden" testi
   offsetWidth/offsetHeight'e bakiyor; genisligi duran bir kutu kapaliyken
   de ":visible" sayiliyor ve WooCommerce'in checkout.js'i yanlis kutuyu
   acip kapatiyordu (kart secilfiyken kart alanlari kapali, havale metni
   acik kaliyordu).

   Gizli bir kapta baglanan Stripe elemaninin 0 genislik olcmesi sorunu
   express-gate.js'teki yeniden olcume birakildi: kutu acilinca kabin
   genisligi 0'dan gercek olcuye ciktigi anda eleman durtuluyor. */

/* Eklentinin kendi CSS'i bu kutunun dolgusunu (1,4,1) ozgullukle
   sifirliyor; negatif kenar boslugumuz her kosulda ayakta kaldigi icin o
   sinif bir gun gelirse kart alani cizgiye sifir bosluklu yapisirdi.
   (1,4,2) ile dolguyu geri aliyoruz. */
.zdx-co-main #payment ul.payment_methods li
  div.payment_box.payment_method_stripe {
  padding: 18px var(--zdx-tile-pad) 20px;
}

/* Cekirdek "#payment div.form-row { padding: 1em }" yaziyor; ozgulluk
   (1,1,1). Temanin ".zdx-woo-entry .form-row { padding: 0 }" sifirlamasi
   (0,2,0) ID yuzunden kaybediyor ve kart alani her yandan ~13px
   yitiriyordu. Asagidaki secici (1,3,1); kazanir. .zdx-woo-entry'ye
   kapsanmis, boylece order-pay sayfasindaki ayni hatayi da duzeltiyor. */
.zdx-woo-entry #payment div.payment_box .form-row,
.zdx-woo-entry #payment div.payment_box div.form-row {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 0 0 14px;
  padding: 0;
}

.zdx-woo-entry #payment div.payment_box .form-row:last-child { margin-bottom: 0; }

/* Stripe UPE formunu bir <fieldset> icine sariyor. Tarayicinin varsayilan
   groove cercevesi + yan dolgusu hem "kirik kutu" goruntusu verir hem de
   daralmayi reddeder (fieldset min-width: min-content). */
.zdx-woo-entry #payment div.payment_box fieldset {
  border: 0;
  margin: 0;
  padding: 0;
  min-width: 0;
}

/* Kart alani kutunun tamamini kullansin. Genislik uretmez, yalnizca kaybi
   durdurur. Eski "max-width: 560px" kaldirildi: satirin kendisi artik
   yuzey, bir yuzeyden dar duran alan yarim kalmis gorunuyor. */
.zdx-co-main #payment .wc-stripe-upe-form,
.zdx-co-main #payment #wc-stripe-upe-form,
.zdx-co-main #payment .wc-stripe-upe-element,
.zdx-co-main #payment .StripeElement,
.zdx-co-main #payment .__PrivateStripeElement {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-inline: 0;
  padding-inline: 0;
}

/* Bos para birimi secici 4px'lik bir cizgi olarak duruyordu. Eski kural
   "#payment" altina kapsanmisti; eleman ise cuzdan blogunun yaninda,
   #payment'in DISINDA basiliyor. Kapsam body sinifina genisletildi;
   !important, eklentinin satir ici display'ini gecmek icin. Magaza tek
   para birimli (USD); coklu para birimi acilirsa bu kural kaldirilmali. */
.woocommerce-checkout .wc-stripe-currency-selector { display: none !important; }

/* Test modu uyarisi: canlida kaybolur, o zamana kadar sessiz dursun.
   "Optimized checkout element" kapatilinca eklenti ayni metni
   ".wc-stripe-payment-method-instruction" yerine "p.testmode-info" olarak
   basiyor. Ikisi de. */
.zdx-co-main #payment .wc-stripe-payment-method-instruction,
.zdx-co-main #payment p.testmode-info {
  font-size: 11.5px;
  line-height: 1.7;
  letter-spacing: .02em;
  color: var(--ink-soft);
  margin: 0 0 14px;
  padding: 0;
}

/* Toplam + onay dugmesi + guven satiri ----------------------------------- */

.zdx-co-main #payment .woocommerce-privacy-policy-text,
.zdx-co-main #payment .woocommerce-terms-and-conditions-wrapper {
  font-size: 11.5px;
  line-height: 1.8;
  color: var(--ink-soft);
  margin: 0 0 18px;
}

/* Ust cizgi yok: son yontem karti listeyi zaten kapatiyor. Cekirdegin
   "#payment div.form-row { padding: 1em }" kurali burada da eziliyor. */
.zdx-co-main #payment .form-row.place-order {
  width: 100%;
  margin: 26px 0 0;
  padding: 0;
  border: 0;
}

/* Tutar, dugmenin hemen ustunde. VARSAYILAN GIZLI: masaustunde sagdaki
   ozet yapiskan ve zaten ekranda. 1080px'te ozet en uste tasindigi icin
   orada aciliyor. */
.zdx-pay-total {
  display: none;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 18px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
}

/* Sagdaki ozetin "tr.order-total" satiriyla ayni tipografi: ayni nesnenin
   tekrari, yeni bir bilesen degil. Punto 27 -> 22, ozetin toplamiyla
   yarismasin. */
.zdx-pay-total-label {
  font-family: var(--ff-sans);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: rgba(10, 10, 8, .55);
}

.zdx-pay-total-value {
  font-family: var(--ff-serif);
  font-size: 22px;
  line-height: 1.1;
  color: var(--ink);
}

.zdx-pay-total-value .woocommerce-Price-amount {
  font-family: inherit;
  font-size: inherit;
  color: inherit;
}

/* Dugme bulundugu yeri tamamen kapliyor. Iki ID: cekirdegin
   "#payment #place_order { float: right }" kurali (2,0,0) tek ID'li
   secicileri yener; bu (2,2,0). Eski "max-width: 360px" kaldirildi. */
.zdx-woo-entry #payment #place_order {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: none;
  min-height: 60px;
  padding: 21px 24px;
  font-size: 11px;
  letter-spacing: .26em;
  float: none;
}

.zdx-woo-entry #place_order {
  width: 100%;
  font-size: 11px;
  padding: 20px;
  float: none;
}

/* Guven satiri: dugmenin ALTINDA. Ustte bir feragatname gibi okunuyor,
   altta az once sorulan sorunun cevabi gibi. */
.zdx-pay-trust {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin: 14px 0 0;
  font-family: var(--ff-sans);
  font-size: 11.5px;
  line-height: 1.7;
  letter-spacing: .03em;
  color: var(--ink-soft);
}

.zdx-pay-trust svg {
  flex: 0 0 auto;
  margin-top: 3px;
  color: var(--gold);
}

.zdx-pay-trust--bacs { display: none; }

/* Havale seciliyken kart cumlesi yerine havale cumlesi. Yine iki ayri
   kural cifti; :has()'li olan desteklenmezse JS'li yedek ayakta kalsin. */
.zdx-co-main #payment[data-zdx-method="bacs"] .zdx-pay-trust--card { display: none; }
.zdx-co-main #payment[data-zdx-method="bacs"] .zdx-pay-trust--bacs { display: flex; }

.zdx-co-main #payment:has(#payment_method_bacs:checked) .zdx-pay-trust--card { display: none; }
.zdx-co-main #payment:has(#payment_method_bacs:checked) .zdx-pay-trust--bacs { display: flex; }

/* Masaustu ritmi. Esik 901px: sayfa olugu tam orada 24px'ten 60px'e
   cikiyor.

   Genislik denetimi, 1728px:
     1200 .zdx-container - 120 dolgu                            = 1080
     1080 - 396 aside - 58 gap                                  =  626  #payment
      626 - 3 kenarlik (2 on + 1 arka) - 52 satir dolgusu       =  571  Stripe alani
   Eski 560px sinirin ustunde; numara + son kullanma + CVC tek satirda. */
@media (min-width: 901px) {
  .zdx-express-note { margin: 46px 0 18px; padding-top: 34px; }
  .zdx-woo-entry .zdx-pay-title { margin: 50px 0 24px; }

  .zdx-co-main #payment ul.payment_methods { gap: 14px; }
  .zdx-co-main #payment ul.payment_methods li { --zdx-tile-pad: 26px; }

  .zdx-co-main #payment ul.payment_methods li > label {
    min-height: 64px;
    font-size: 12px;
    letter-spacing: .2em;
  }

  .zdx-co-main #payment div.payment_box { padding-block: 24px 26px; }
  .zdx-co-main #payment .form-row.place-order { margin-top: 30px; }
  .zdx-woo-entry #payment #place_order { min-height: 62px; }
}

/* ==========================================================================
   Siparis alindi (tesekkurler)
   ========================================================================== */

.zdx-woo-entry .woocommerce-order { max-width: 900px; margin: 0 auto; }

.zdx-woo-entry .woocommerce-thankyou-order-received {
  font-family: var(--ff-serif);
  font-size: 28px;
  font-weight: 300;
  line-height: 1.4;
  color: var(--ink);
  text-align: center;
  background: transparent;
  border: 0;
  border-left: 0;
  padding: 0 0 30px;
  margin: 0;
}

/* Izgara degil ESNEK satir. Izgarada "repeat(auto-fit, minmax(160px,1fr))"
   sabit sayida raya bolunuyordu: bes hucre dort raya sigmayinca sonuncusu
   alt satirda tek basina kaliyor, yanindaki bos raylar da kabin gri
   arkaplanini gosteriyordu. Esnek satirda son satirdaki hucreler geriye
   kalani paylasiyor, bos gri alan olusmuyor.

   min-width: 0 sart: esnek ogenin varsayilan min-width'i auto, yani uzun
   bir e-posta adresi hucreyi disaridan tasirip komsusunun altinda kaliyor
   ve kesilmis gorunuyordu. */
.zdx-woo-entry ul.woocommerce-order-overview,
.zdx-woo-entry ul.order_details {
  display: flex;
  flex-wrap: wrap;
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
  list-style: none;
  margin: 0 0 46px;
  padding: 0;
}

.zdx-woo-entry ul.order_details li {
  flex: 1 1 190px;
  min-width: 0;
  background: #fbf9f3;
  border: 0;
  margin: 0;
  padding: 22px 20px;
  float: none;
  font-family: var(--ff-sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: rgba(10, 10, 8, .5);
  line-height: 1.6;
}

.zdx-woo-entry ul.order_details li::after,
.zdx-woo-entry ul.order_details li::before { display: none; }

/* Havale hesaplari: IBAN 22 hane, esit genislikteki sutunlara sigmiyordu.
   Esnek satir hem tasmayi hem de sonda kalan bos gri hucreleri kaldirir. */
.zdx-woo-entry ul.order_details.bacs_details {
  display: flex;
  flex-wrap: wrap;
}

.zdx-woo-entry ul.order_details.bacs_details li {
  position: relative;
  flex: 1 1 240px;
  min-width: 0;
  padding-right: 48px;
}

.zdx-woo-entry ul.order_details.bacs_details li strong {
  font-size: 17px;
  letter-spacing: .01em;
  overflow-wrap: anywhere;
}

/* BIC de girilince dort alan olur: tek basina kalan genis bir hucre yerine
   ikiser ikiser dizilsinler. Dar ekranda zaten alt alta geliyorlar. */
@media (min-width: 701px) {
  .zdx-woo-entry ul.order_details.bacs_details:has(li:nth-child(4)) li {
    flex-basis: 40%;
  }
}

/* Kopyalama dugmesi */
.zdx-copy {
  position: absolute;
  top: 16px;
  right: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 0;
  background: #fff;
  color: rgba(10, 10, 8, .5);
  cursor: pointer;
  transition: color .25s, border-color .25s, background .25s;
}

.zdx-copy:hover,
.zdx-copy:focus-visible {
  color: var(--ink);
  border-color: var(--ink);
}

.zdx-copy.is-done {
  color: #2c5e2e;
  border-color: #2c5e2e;
  background: #edf7ed;
}

.zdx-woo-entry ul.order_details li strong {
  display: block;
  min-width: 0;
  margin-top: 10px;
  font-family: var(--ff-serif);
  font-size: 21px;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink);
  /* Uzun e-posta adresleri ve siparis anahtarlari hucreyi tasiriyordu. */
  overflow-wrap: anywhere;
}

/* E-posta tek parca ve uzun: 21px serifle her hucrede uc satira cikiyor.
   Kendi olcusunde daha sakin duruyor. */
.zdx-woo-entry ul.order_details li.email strong,
.zdx-woo-entry ul.order_details li.woocommerce-order-overview__email strong {
  font-size: 15px;
  line-height: 1.5;
}

.zdx-woo-entry .woocommerce-order-details__title,
.zdx-woo-entry .woocommerce-column__title,
.zdx-woo-entry .woocommerce-customer-details h2 {
  font-family: var(--ff-serif);
  font-size: 26px;
  font-weight: 300;
  margin: 0 0 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border);
}

.zdx-woo-entry .woocommerce-customer-details address {
  border: 1px solid var(--border);
  border-radius: 0;
  padding: 22px 24px;
  font-style: normal;
  font-size: 14px;
  line-height: 1.9;
  color: var(--ink-soft);
}

.zdx-woo-entry .woocommerce-order-details { margin-bottom: 46px; }

/* ==========================================================================
   Hesabim
   ========================================================================== */

.woocommerce-account .zdx-woo-entry .woocommerce:has(.woocommerce-MyAccount-navigation) {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  gap: 0 54px;
  align-items: start;
}

.woocommerce-account .zdx-woo-entry .woocommerce-notices-wrapper { grid-column: 1 / -1; }

.woocommerce-account .woocommerce-MyAccount-navigation {
  float: none;
  width: auto;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
  border: 1px solid var(--border);
}

.woocommerce-account .woocommerce-MyAccount-navigation li {
  border-bottom: 1px solid var(--border);
}

.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }

.woocommerce-account .woocommerce-MyAccount-navigation li a {
  display: block;
  padding: 15px 20px;
  font-family: var(--ff-sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(10, 10, 8, .62);
}

.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
  background: var(--black);
  color: var(--white);
}

.woocommerce-account .woocommerce-MyAccount-content {
  float: none;
  width: auto;
  font-size: 14.5px;
  line-height: 1.9;
  color: var(--ink-soft);
}

.woocommerce-account .woocommerce-MyAccount-content p { margin-top: 0; }

/* Giris / kayit formu ---------------------------------------------------- */

.zdx-woo-entry .u-columns.col2-set {
  grid-template-columns: 1fr 1fr;
  gap: 46px;
}

.zdx-woo-entry form.woocommerce-form-login,
.zdx-woo-entry form.woocommerce-form-register,
.zdx-woo-entry form.woocommerce-ResetPassword {
  border: 1px solid var(--border);
  background: #fff;
  padding: 34px 34px 30px;
  margin: 0;
}

.woocommerce-account .zdx-woo-entry .woocommerce:not(:has(.u-columns)):not(:has(.woocommerce-MyAccount-navigation)) {
  max-width: 480px;
  margin: 0 auto;
}

/* Sayfa basligi zaten "Giris Yap" oldugu icin tekrar eden h2 gizlenir. */
.woocommerce-account .zdx-woo-entry .woocommerce:not(:has(.u-columns)) > h2 { display: none; }

.zdx-woo-entry .u-columns h2 {
  font-family: var(--ff-serif);
  font-size: 27px;
  font-weight: 300;
  margin: 0 0 20px;
}

.zdx-woo-entry form.woocommerce-form-login .form-row,
.zdx-woo-entry form.woocommerce-form-register .form-row { margin-bottom: 20px; }

.zdx-woo-entry form.woocommerce-form-login .button,
.zdx-woo-entry form.woocommerce-form-register .button { width: 100%; }

.zdx-woo-entry .woocommerce-LostPassword {
  margin: 14px 0 0;
  font-size: 12px;
  letter-spacing: .06em;
}

.zdx-woo-entry .woocommerce-form-login__rememberme {
  align-items: center;
  margin-bottom: 16px;
}

.zdx-woo-entry .woocommerce-form-login__rememberme input { margin-top: 0; }

/* Siparis listesi -------------------------------------------------------- */

.zdx-woo-entry table.woocommerce-orders-table,
.zdx-woo-entry table.shop_table.order_details,
.zdx-woo-entry table.woocommerce-table--order-details {
  border: 1px solid var(--border);
}

.zdx-woo-entry table.woocommerce-orders-table th,
.zdx-woo-entry table.woocommerce-table--order-details th {
  padding: 16px;
  border-bottom: 1px solid var(--border);
}

.zdx-woo-entry table.woocommerce-orders-table td,
.zdx-woo-entry table.woocommerce-table--order-details td { padding: 18px 16px; }

.zdx-woo-entry table.woocommerce-orders-table td.woocommerce-orders-table__cell-order-actions .button {
  padding: 10px 18px;
  min-height: 0;
  font-size: 9.5px;
}

/* ==========================================================================
   Duyarli
   ========================================================================== */

@media (max-width: 1080px) {
  .woocommerce-cart .zdx-woo-entry .woocommerce:has(.woocommerce-cart-form),
  .zdx-co-grid,
  .woocommerce-account .zdx-woo-entry .woocommerce:has(.woocommerce-MyAccount-navigation) {
    grid-template-columns: minmax(0, 1fr);
    gap: 44px;
  }

  .woocommerce-cart .zdx-woo-entry .woocommerce-cart-form,
  .woocommerce-cart .zdx-woo-entry .cart-collaterals,
  .woocommerce-cart .zdx-woo-entry .cross-sells { grid-column: 1; }

  .zdx-woo-entry .cart_totals,
  .zdx-co-aside { position: static; }

  /* Tek sutunda ozet formun ALTINDA kaliyordu: musteri kart numarasini
     toplami hic gormeden yaziyor, ozeti de onay dugmesinden SONRA
     goruyordu. */
  .zdx-co-aside { order: -1; }
  .zdx-co-main { order: 0; }

  /* Ozet artik yapiskan degil ve en uste tasindi: tutar, bas parmak onay
     dugmesine geldiginde ekranda degil. Dugmenin ustunde tekrar edilir. */
  .zdx-pay-total { display: flex; }

  /* Tek sutun 1080px'e kadar uzayabiliyordu; 1000px genisliginde bir kart
     formu sacma duruyor. Iki blogu da ayni olcude ortaliyoruz. */
  .zdx-co-grid { max-width: 780px; margin-inline: auto; }
}

@media (max-width: 900px) {
  .woocommerce div.product {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .woocommerce div.product > .summary { grid-column: 1; }

  .woocommerce div.product .woocommerce-product-gallery { padding: 24px; }

  .woocommerce ul.products { gap: 26px; }

  .woocommerce ul.products li.product { padding: 24px 18px 28px; }

  .woocommerce div.product .woocommerce-tabs ul.tabs { gap: 20px; overflow-x: auto; }

  .zdx-assurances { grid-template-columns: 1fr; }

  .zdx-woo-entry .woocommerce-billing-fields__field-wrapper,
  .zdx-woo-entry .woocommerce-shipping-fields__field-wrapper,
  .zdx-woo-entry .woocommerce-address-fields__field-wrapper {
    grid-template-columns: 1fr;
  }

  .zdx-woo-entry .u-columns.col2-set { grid-template-columns: 1fr; gap: 30px; }

  /* Punto ve yukseklik artik temel kuralda, her genislikte ayni (bkz.
     "BU KURALI DEGISTIRMEDEN ONCE OKU"). Select2'nin arama alani temel
     kuralda yok. */
  .zdx-woo-entry .select2-container .select2-search__field { font-size: 16px; }

  .zdx-express-note { margin: 32px 0 14px; padding-top: 26px; }
  .zdx-express-label { font-size: 10px; letter-spacing: .24em; }
  .zdx-express-hint { font-size: 12px; margin-top: 8px; }

  .zdx-woo-entry .zdx-pay-title {
    font-size: 22px;
    margin: 36px 0 18px;
    padding-bottom: 12px;
  }

  .zdx-co-main #payment ul.payment_methods { gap: 10px; }
  .zdx-co-main #payment .form-row.place-order { margin-top: 22px; }

  .zdx-pay-total { margin-bottom: 16px; padding-top: 18px; }
  .zdx-pay-total-value { font-size: 21px; }

  .zdx-woo-entry #payment #place_order {
    min-height: 58px;
    padding: 19px 16px;
    font-size: 10.5px;
    letter-spacing: .2em;
  }

  .zdx-pay-trust { font-size: 11px; letter-spacing: .02em; }

  /* Emniyet agi: 359px altindaki tam genislik bandi olugun tam esiti kadar
     tasiyor, yine de baska bir eklenti olugu degistirirse sayfa yatay
     kaymasin. overflow-x: clip kaydirma kutusu OLUSTURMAZ, bu yuzden
     position: sticky bozulmaz. */
  .zdx-woo-entry { overflow-x: clip; }
}

@media (max-width: 768px) {
  /* WooCommerce kucuk ekran tablosu: satirlar kart olur. */
  .zdx-woo-entry table.shop_table_responsive thead { display: none; }

  .zdx-woo-entry table.shop_table_responsive tr {
    display: block;
    border: 1px solid var(--border);
    padding: 18px 18px 12px;
    margin: 0 0 16px;
    position: relative;
  }

  .zdx-woo-entry table.shop_table_responsive tr td {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    border: 0;
    border-top: 1px solid var(--border);
    padding: 12px 0;
    text-align: right !important;
  }

  .zdx-woo-entry table.shop_table_responsive tr td::before {
    content: attr(data-title) ": ";
    float: none;
    font-family: var(--ff-sans);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: rgba(10, 10, 8, .5);
  }

  .zdx-woo-entry table.cart tr td.product-remove {
    position: absolute;
    top: 14px;
    right: 14px;
    width: auto;
    border: 0;
    padding: 0;
  }

  .zdx-woo-entry table.cart tr td.product-remove::before { display: none; }

  .zdx-woo-entry table.cart tr td.product-thumbnail {
    display: block !important;
    border: 0;
    padding: 0 0 8px;
    width: auto;
  }

  .zdx-woo-entry table.cart tr td.product-thumbnail::before { display: none; }
  .zdx-woo-entry table.cart td.product-thumbnail img { width: 96px; margin: 0 auto; }

  .zdx-woo-entry table.cart tr td.product-name {
    display: block;
    border: 0;
    padding: 0 0 10px;
    text-align: center !important;
  }

  .zdx-woo-entry table.cart tr td.product-name::before { display: none; }

  .zdx-woo-entry table.cart td.actions {
    display: block;
    border: 0;
    padding: 4px 0 0;
  }

  .zdx-woo-entry table.cart td.actions::before { display: none; }

  .zdx-woo-entry table.cart td.actions .coupon {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    float: none !important;
    width: 100%;
    margin-bottom: 12px;
    padding-bottom: 0;
  }

  .zdx-woo-entry table.cart td.actions .coupon .input-text { width: 100% !important; }

  .zdx-woo-entry table.cart td.actions .button,
  .zdx-woo-entry table.cart td.actions .coupon .button {
    display: flex;
    width: 100% !important;
    float: none !important;
  }

  .zdx-woo-entry .cart_totals table.shop_table_responsive tr {
    display: table-row;
    border: 0;
    padding: 0;
    margin: 0;
  }

  .zdx-woo-entry .cart_totals table.shop_table_responsive tr th,
  .zdx-woo-entry .cart_totals table.shop_table_responsive tr td {
    display: table-cell;
    border-top: 0;
  }

  .zdx-woo-entry .cart_totals table.shop_table_responsive tr td::before { display: none; }

  .zdx-co-aside table.shop_table_responsive tr {
    display: table-row;
    border: 0;
    padding: 0;
    margin: 0;
  }

  .zdx-co-aside table.shop_table_responsive tr th,
  .zdx-co-aside table.shop_table_responsive tr td {
    display: table-cell;
    border-top: 0;
    border-bottom: 1px solid var(--border);
  }

  .zdx-co-aside table.shop_table_responsive tr td::before { display: none; }

  .zdx-co-aside,
  .zdx-woo-entry .cart_totals { padding: 26px 22px 28px; }

  .zdx-woo-entry form.woocommerce-form-login,
  .zdx-woo-entry form.woocommerce-form-register { padding: 26px 22px 24px; }

  .zdx-woo-entry .woocommerce-message .button,
  .zdx-woo-entry .woocommerce-info .button {
    float: none;
    display: flex;
    width: 100%;
    margin: 14px 0 0;
  }
}

@media (max-width: 560px) {
  .woocommerce ul.products { grid-template-columns: 1fr; }

  .zdx-woo-entry ul.order_details { grid-template-columns: 1fr; }
}

/* ==========================================================================
   TELEFON BANDI

   Yontem kutucuklari sayfanin oluguna uyuyor: kupon kutusu, adres formu ve
   siparis ozeti neredeyse 24px'te basliyorsa odeme kutucuklari da orada
   baslamali. Kenardan kenara giden bir bant sayfanin geri kalaniyla
   uyusmuyordu.

   GENISLIK DENETIMI (Stripe'in kart satiri icin olculmus alt siniri ~273px):
     375 - 48 oluk - 3 kenarlik - 28 ic pay = 296   -> 23px pay
     360 - 48      - 3          - 28        = 281   ->  8px pay
     390 / 393 / 414 / 430 daha genis, sorun yok.
   360px, TR/RU/BR/AR pazarlarinin en yaygin Android genisligi; 8px ince ama
   olculmus sinirin ustunde. Daha da daralirsa ic pay 12px'e iner (asagida).
   ========================================================================== */
@media (max-width: 480px) {
  .zdx-co-main #payment ul.payment_methods li > label {
    min-height: 56px;
    font-size: 11px;
    letter-spacing: .12em;
    gap: 10px;
  }

  .zdx-co-main #payment div.payment_box,
  .zdx-co-main #payment ul.payment_methods li
    div.payment_box.payment_method_stripe {
    padding-block: 16px 18px;
  }
}

/* 320-359px: burada oluk fiziksel olarak yetmiyor.
     320 - 48 - 3 - 24 = 245   -> ~273px'lik sinirin ALTINDA, kart alani kirpilir
   Bu tek bantta yuzey kenardan kenara gidiyor ve ic pay 12px'e iniyor:
     320 - 3 - 24 = 293   -> 20px pay
   Negatif kenar bosluk olugun (2x24) tam esiti oldugu icin yatay kaydirma
   olusmuyor. Metin ve eylem yine olukta: tutar, dugme, guven satiri ve
   sozlesme metinleri .form-row.place-order icinde, 24px geri iceri aliniyor. */
@media (max-width: 359px) {
  .zdx-co-main #payment { margin-inline: -24px; }

  .zdx-co-main #payment ul.payment_methods li {
    --zdx-tile-pad: 12px;
    /* Arka kenarlik gider: altin on cizginin ekran kenarina dayanmasi
       kasitli gorunur. Mantiksal ozellik: Arapca'da kendiliginden aynalanir. */
    border-inline-end: 0;
  }

  .zdx-co-main #payment .form-row.place-order { padding-inline: 24px; }

  .zdx-woo-entry .zdx-pay-title { margin-bottom: 14px; }
  .zdx-pay-total-value { font-size: 20px; }
}
