/* ==========================================================================
   Bayiseç Design System — masaüstü normalizasyon katmanı
   --------------------------------------------------------------------------
   NEDEN AYRI DOSYA: style.css 45k+ satırlık vendor (Cuba) şablonu. Oraya
   dokunmak hem denetlenemez hem de şablon güncellemesinde kaybolur. Bu katman
   EN SON yüklenir; aynı seçicileri hedefleyip yalnız gerekeni ezer.

   Yüklenme sırası (header.php): style.css → responsive.css → sayfa-özel
   (magaza-filter / bayisec-carts …) → BU DOSYA.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1) Tasarım token'ları
   Marka renkleri temanın kendi değişkenlerinden alındı:
   --theme-deafult (vendor yazım hatası) #143d59, --theme-secondary #f4b41a
   -------------------------------------------------------------------------- */
:root {
    --bs-navy:        #143d59;
    --bs-navy-700:    #0f2f45;
    --bs-navy-600:    #1b4f74;
    --bs-navy-100:    #dbe6ee;
    --bs-navy-050:    #eef3f8;

    --bs-gold:        #f4b41a;
    --bs-gold-600:    #d99c0a;
    --bs-gold-050:    #fef7e6;

    --bs-ink:         #14263a;   /* başlıklar */
    --bs-body:        #4a5a6a;   /* gövde metni */
    --bs-muted:       #8595a5;   /* ikincil metin */
    --bs-line:        #e6ebf1;   /* kenarlık */
    --bs-line-soft:   #f0f3f7;

    --bs-surface:     #ffffff;
    --bs-canvas:      #f5f7fb;   /* sayfa zemini — kartlar yüzey gibi okunsun */
    --bs-surface-alt: #fafbfd;

    --bs-ok:          #16a34a;
    --bs-ok-050:      #e8f7ee;
    --bs-danger:      #dc2626;
    --bs-danger-050:  #fdecec;
    --bs-warn:        #d97706;

    --bs-r-sm:  8px;
    --bs-r:     12px;
    --bs-r-lg:  16px;
    --bs-r-pill: 999px;

    --bs-sh-1: 0 1px 2px rgba(16, 34, 56, .04), 0 2px 8px rgba(16, 34, 56, .05);
    --bs-sh-2: 0 4px 12px rgba(16, 34, 56, .07), 0 12px 32px rgba(16, 34, 56, .06);

    --bs-t: .18s ease;
}

/* --------------------------------------------------------------------------
   2) Sayfa ritmi — zemin, başlık şeridi, breadcrumb
   -------------------------------------------------------------------------- */
.page-body { background-color: var(--bs-canvas); }

.page-title { padding: 18px 0 14px; }
.page-title h3 {
    font-size: 20px; font-weight: 600; color: var(--bs-ink);
    letter-spacing: -.01em; margin: 0;
}
.page-title .breadcrumb { margin: 0; align-items: center; }
.page-title .breadcrumb-item,
.page-title .breadcrumb-item a { color: var(--bs-muted); font-size: 13px; }
.page-title .breadcrumb-item a:hover { color: var(--bs-navy); }
.page-title .breadcrumb-item.active { color: var(--bs-navy); font-weight: 500; }
.page-title .breadcrumb-item svg { width: 15px; height: 15px; vertical-align: -3px; }

/* --------------------------------------------------------------------------
   3) Kart sistemi — tek radius / tek gölge / tek iç boşluk
   -------------------------------------------------------------------------- */
.page-body .card {
    border: 1px solid var(--bs-line);
    border-radius: var(--bs-r);
    box-shadow: var(--bs-sh-1);
    margin-bottom: 24px;
    background: var(--bs-surface);
}
.page-body .card > .card-header {
    border-bottom: 1px solid var(--bs-line-soft);
    padding: 16px 20px;
    background: transparent;
    border-radius: var(--bs-r) var(--bs-r) 0 0;
}
.page-body .card > .card-header h5,
.page-body .card > .card-header .card-title {
    font-size: 15px; font-weight: 600; color: var(--bs-ink); margin: 0;
}
.page-body .card > .card-body { padding: 20px; }
.page-body .card > .card-footer {
    border-top: 1px solid var(--bs-line-soft);
    padding: 16px 20px;
    background: transparent;
    border-radius: 0 0 var(--bs-r) var(--bs-r);
}

/* İç içe kart yığılmasını yumuşat (kart içinde kart → sadece çerçeve) */
.page-body .card .card {
    box-shadow: none;
    margin-bottom: 16px;
}

/* Şablondan gelen mor/lavanta başlıklar (WooCommerce ödeme ekranı) → tema rengi */
.page-body .card-header.bg-primary,
.page-body h3.bs-woo-title,
.page-body .woocommerce-billing-fields > h3,
.page-body #order_review_heading {
    background: var(--bs-navy-050) !important;
    color: var(--bs-ink) !important;
    border: 1px solid var(--bs-line);
    border-radius: var(--bs-r-sm);
    padding: 12px 16px;
    font-size: 15px; font-weight: 600;
    margin-bottom: 16px;
}

/* --------------------------------------------------------------------------
   4) Butonlar — vendor'da radius:0, font 12px, padding 7/10 → dar ve
   satır kaydığında metin kırpılıyordu. Yükseklik esnek, metin sarabilir.
   -------------------------------------------------------------------------- */
.page-body .btn,
.mobile-page .btn {
    border-radius: var(--bs-r-sm);
    font-size: 13px;
    font-weight: 500;
    line-height: 1.35;
    padding: 10px 16px;
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    white-space: normal;      /* sarmaya izin ver */
    text-align: center;
    transition: background-color var(--bs-t), border-color var(--bs-t), color var(--bs-t);
}
.page-body .btn-sm { font-size: 12.5px; padding: 8px 12px; min-height: 36px; }
.page-body .btn-lg { font-size: 14px; padding: 13px 22px; min-height: 48px; }
.page-body .btn-rounded { border-radius: var(--bs-r-pill); }

.page-body .btn-primary {
    background-color: var(--bs-navy); border-color: var(--bs-navy); color: #fff;
}
.page-body .btn-primary:hover,
.page-body .btn-primary:focus {
    background-color: var(--bs-navy-700) !important; border-color: var(--bs-navy-700) !important; color: #fff !important;
}
.page-body .btn-outline-primary {
    color: var(--bs-navy); border-color: var(--bs-navy-100); background: transparent;
}
.page-body .btn-outline-primary:hover {
    background-color: var(--bs-navy) !important; border-color: var(--bs-navy) !important; color: #fff !important;
}
/* İkincil = altın aksan (cari başvurusu gibi "henüz yetkin yok" eylemleri) */
.page-body .btn-secondary {
    background-color: var(--bs-gold); border-color: var(--bs-gold); color: var(--bs-navy-700); font-weight: 600;
}
.page-body .btn-secondary:hover {
    background-color: var(--bs-gold-600) !important; border-color: var(--bs-gold-600) !important; color: var(--bs-navy-700) !important;
}
.page-body .btn svg { width: 15px; height: 15px; flex: 0 0 auto; }

/* --------------------------------------------------------------------------
   5) Rozet / şerit — üst üste binmeyi bitir
   Ribbon (SKU) sol üstte, kampanya rozeti sağ üstte, ikisi de aynı hizada.
   -------------------------------------------------------------------------- */
/* SKU şeridi: ESKİDEN sol ÜSTTE kırmızı bir kurdeleydi ve kampanya rozetiyle
   (aynı köşe) üst üste biniyordu — "8689090000019" → "90000019" okunuyordu.
   Barkod grid seviyesinde ikincil bilgi; alt-sola alınıp nötr çipe çevrildi:
   çakışma biter, üst köşeler kampanya rozetine kalır.
   Koyu lacivert dolgu vitrinde gürültü yapıyordu (her kartta koca koyu blok) →
   yarı saydam beyaz zemin + sönük metinle fısıltıya indirildi. */
.product-box .product-img .ribbon {
    left: 10px; top: auto; right: auto; bottom: 10px;
    z-index: 3;
    padding: 3px 8px;
    border-radius: var(--bs-r-sm);
    background: rgba(255, 255, 255, .88) !important;
    color: var(--bs-muted) !important;
    border: 1px solid var(--bs-line);
    font-size: 9.5px; font-weight: 500; letter-spacing: .02em;
    line-height: 1.3;
    box-shadow: none;
    max-width: calc(100% - 20px);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
/* İKİNCİ .ribbon = kampanya rozeti (home.php'de hâlâ .ribbon sınıfıyla basılıyor).
   Sağ üste al ki SKU çipiyle çakışmasın; renkleri vendor varyantından gelir. */
.product-box .product-img .ribbon ~ .ribbon {
    top: 10px; bottom: auto; left: auto; right: 10px;
    background-image: none;
    padding: 4px 9px;
    border-radius: var(--bs-r-pill);
    font-size: 10.5px; font-weight: 600;
    color: #fff !important;
    box-shadow: 0 1px 3px rgba(16, 34, 56, .18);
    max-width: calc(100% - 20px);
}
/* Vendor'ın üçgen "kurdele kuyruğu" pseudo'ları — pill görünümde artık gereksiz */
.product-box .product-img .ribbon::before,
.product-box .product-img .ribbon::after { display: none !important; }

.product-box .product-img .bs-flag {
    position: absolute; right: 10px; top: 10px; z-index: 3;
    padding: 4px 9px; border-radius: var(--bs-r-pill);
    font-size: 10.5px; font-weight: 600; line-height: 1.3; color: #fff;
    box-shadow: 0 1px 3px rgba(16, 34, 56, .18);
}
.product-box .product-img .bs-flag-new      { background: var(--bs-ok); }
.product-box .product-img .bs-flag-discount { background: var(--bs-danger); }
.product-box .product-img .bs-flag-dealer   { background: var(--bs-navy); }

.page-body .badge {
    border-radius: var(--bs-r-pill);
    font-weight: 600; font-size: 10.5px; letter-spacing: .01em;
    padding: 5px 10px; line-height: 1.3;
}
.page-body .badge-success, .page-body .badge-light-success { background: var(--bs-ok-050); color: #12813b; }
.page-body .badge-danger,  .page-body .badge-light-danger  { background: var(--bs-danger-050); color: #b91c1c; }
.page-body .badge-light-primary { background: var(--bs-navy-050); color: var(--bs-navy); }

/* --------------------------------------------------------------------------
   6) GÖRSEL UYUMU — bu bölüm kırpılma hatalarının asıl çözümü
   -------------------------------------------------------------------------- */

/* 6a) Ürün görseli.
   Vendor: .product-img{height:275px;overflow:hidden} + img{width:auto;height:100%;
   max-width:unset} → 300x300 görsel 275px yüksekliğe zorlanıp 275px genişliyor,
   185px'lik kartta iki yandan kırpılıyordu. Kare oran + contain ile çözülür. */
.product-box .product-img {
    display: block; /* /magaza'da artık <a> — inline kalırsa aspect-ratio çalışmaz */
    position: relative;
    height: auto;
    aspect-ratio: 1 / 1;
    padding: 14px;
    background: var(--bs-surface-alt);
    border-bottom: 1px solid var(--bs-line-soft);
    border-radius: var(--bs-r) var(--bs-r) 0 0;
    overflow: hidden; /* hover zoom köşelerden taşmasın */
}
.product-box .product-img img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    object-fit: contain;
    padding: 0;
    display: block;
    transition: transform .28s ease;
}
.product-box:hover .product-img img { transform: scale(1.05); }

/* 6b) Marka kapak görseli (/markalar).
   Vendor .card-header-filter dekoratif bir "kemer": transform:scale(1.5) +
   border-radius:100% + opacity:.8 + yeşil span overlay. Düz renk için
   tasarlanmış; içine yazılı banner konunca banner 1.5x büyütülüp kemere
   kırpılıyor ve yeşile boyanıyordu. Kapak görselinde nötrle. */
.card.custom-card .card-header { padding: 0; border: 0; }
.card.custom-card .card-header-filter {
    transform: none;
    border-radius: var(--bs-r) var(--bs-r) 0 0;
    height: auto;
    opacity: 1;
    overflow: hidden;
    background: var(--bs-navy-050);
}
.card.custom-card .card-header-filter > span { display: none; } /* yeşil tint */
.card.custom-card .card-header-filter img {
    width: 100%; height: auto; max-width: 100%;
    object-fit: cover; display: block;
}

/* 6c) Marka logosu — her markanın logosu farklı ölçüde geliyordu (Ülker dev,
   Eti minik). Tek kutu + contain ile satır yükseklikleri eşitlenir. */
.card.custom-card .card-brand-logo img,
.bs-brand-logo,
.bs-cart-brand-logo {
    width: auto;
    max-width: 104px;
    max-height: 34px;
    height: auto;
    object-fit: contain;
    object-position: left center;
}
.card.custom-card .card-brand-logo img { max-width: 40px; max-height: 40px; object-position: center; }

/* 6d) Sepet satırı küçük görseli */
.bs-item-thumb {
    width: 44px; height: 44px; flex: 0 0 44px;
    object-fit: contain;
    background: var(--bs-surface-alt);
    border: 1px solid var(--bs-line-soft);
    border-radius: var(--bs-r-sm);
    padding: 3px;
}

/* --------------------------------------------------------------------------
   7) Ürün kartı gövdesi — sabit yükseklik + hizalı CTA
   -------------------------------------------------------------------------- */
/* Kart yüksekliği %100 olduğu için §3'ün margin-bottom'u sütunun DIŞINA taşıyor
   ve satırlar bitişik görünüyordu → dikey boşluk margin'den değil row-gap'ten gelir. */
.product-wrapper-grid > .row { row-gap: 24px; }
.product-wrapper-grid .card {
    display: flex; flex-direction: column; height: 100%;
    margin-bottom: 0;
    transition: transform var(--bs-t), box-shadow var(--bs-t), border-color var(--bs-t);
}
.product-wrapper-grid .card:hover {
    transform: translateY(-3px);
    box-shadow: var(--bs-sh-2);
    border-color: var(--bs-navy-100);
}
.product-box { display: flex; flex-direction: column; height: 100%; }
.product-box .product-details {
    padding: 14px 16px 16px;
    display: flex; flex-direction: column; flex: 1 1 auto;
}
.product-box .product-details h4 {
    font-size: 13.5px; font-weight: 600; line-height: 1.4; color: var(--bs-ink);
    margin: 0 0 4px;
    /* ⚠️ ESKİDEN `-webkit-line-clamp: 2` yazıyordu ve ÇALIŞMIYORDU — Chrome'da ölçüldü:
       yukarıdaki kural `.product-details`i flex KAPSAYICI yapıyor (CTA'yı kartın dibine
       yapıştıran `margin-top:auto` bunu gerektiriyor) → h4 bir flex ÖĞEsidir, tarayıcı
       da flex öğesinin display'ini bloklaştırır: `-webkit-box` computed değerde
       `flow-root`a döner ve line-clamp SESSİZCE ölür. Geriye yalnız vendor'ın
       `height:45px`i + overflow:hidden kalıyordu; 45px iki satırdan (2 × 1.4em = 2.8em
       ≈ 37.8px) uzun olduğu için ÜÇÜNCÜ satır yarısından kesiliyor, kartlarda kırık
       harf şeridi görünüyordu.
       Çözüm satır-sınırına oturan sabit kutu: taşma yine gizli ama kesme tam satır
       sonunda. `height` VE `min-height` birlikte yazılı — vendor'ın `height:45px`i aynı
       özgüllükte, yalnız min-height ona yetmez. */
    display: block;
    height: 2.8em; min-height: 2.8em;
    overflow: hidden;
}
/* Başlık artık link (/magaza) — kart diliyle aynı renkte kalır, hover'da lacivert */
.product-box .product-details h4 a { color: inherit; }
.product-box .product-details h4 a:hover { color: var(--bs-navy); }

/* Marka adı başlığın ÜSTÜNDE küçük bir kimlik satırı (pazaryeri düzeni) */
.product-box .product-details .bs-brand-link,
.product-box .product-details > p a {
    color: var(--bs-muted); font-size: 10.5px; font-weight: 600;
    text-transform: uppercase; letter-spacing: .05em;
    margin-bottom: 3px;
}
.product-box .product-details .bs-brand-link:hover,
.product-box .product-details > p a:hover { color: var(--bs-navy); }
.product-box .product-details .bs-price { font-size: 16px; font-weight: 700; color: var(--bs-ink); }
.product-box .product-details del { color: var(--bs-muted); font-weight: 400; font-size: 12px; margin-right: 5px; }

/* Fiyat solda baskın, stok durumu sağda nokta+metin (rozet kutusu yerine) */
.product-box .bs-price-row {
    display: flex; align-items: center; justify-content: space-between;
    gap: 8px; margin-top: 6px;
}
.product-box .bs-stock {
    display: inline-flex; align-items: center; gap: 5px;
    font-size: 11px; font-weight: 600; white-space: nowrap;
}
.product-box .bs-stock::before {
    content: ""; width: 7px; height: 7px; border-radius: 50%;
    background: currentColor; flex: 0 0 auto;
}
.product-box .bs-stock-in  { color: #12813b; }
.product-box .bs-stock-out { color: #b91c1c; }

/* CTA bloğu her zaman kartın dibine yapışsın → butonlar satır satır hizalı */
.product-box .bs-cta { margin-top: auto; padding-top: 12px; }
.product-box .bs-cta .btn { width: 100%; }
.product-box .bs-cta-note { font-size: 10.5px; color: var(--bs-muted); text-align: center; margin: 6px 0 0; }

/* Adet sayacı + sepete ekle.
   ESKİDEN: vendor `form.cart`'ı flex yapıp adet sayacına sabit 96px veriyordu;
   183px'lik kartta butona yalnız 47px kalıyor, "Sepete Ekle" kırpılıp
   "epete Ek" görünüyordu. Çözüm sarmalı flex: sayaç sabit, butona minimum
   genişlik verildi — sığmazsa buton kendi satırına tam genişlikte iner.
   (Seçici vendor'ın `form.cart` kuralını yenecek kadar spesifik olmalı.) */
.page-body .product-box .bs-cta-row,
.page-body .product-box form.cart.bs-cta-row {
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
}
.page-body .product-box .bs-cta-row .cart-plus-minus { flex: 0 0 auto; width: 84px; }
.page-body .product-box .bs-cta-row .wc-cart-button { flex: 1 1 112px; min-width: 112px; }
.page-body .product-box .bs-cta-row .wc-cart-button .btn { width: 100%; }

/* Vendor adet sayacını (.cart-plus-minus) .bs-qty ile aynı dile getir */
.page-body .product-box .cart-plus-minus {
    display: inline-flex; align-items: center; justify-content: space-between;
    border: 1px solid var(--bs-line); border-radius: var(--bs-r-pill);
    background: var(--bs-surface); height: 36px; overflow: hidden; padding: 0;
}
.page-body .product-box .cart-plus-minus .qty-minus,
.page-body .product-box .cart-plus-minus .qty-plus {
    display: flex; align-items: center; justify-content: center;
    width: 26px; height: 34px; cursor: pointer; color: var(--bs-body);
    position: static; background: transparent; border: 0;
}
.page-body .product-box .cart-plus-minus .qty-minus:hover,
.page-body .product-box .cart-plus-minus .qty-plus:hover { background: var(--bs-navy-050); color: var(--bs-navy); }
.page-body .product-box .cart-plus-minus svg { width: 13px; height: 13px; }
.page-body .product-box .cart-plus-minus input.qty {
    width: 30px; border: 0; text-align: center; padding: 0; background: transparent;
    font-size: 13px; font-weight: 600; color: var(--bs-ink); height: 34px;
}
.product-box .bs-qty {
    display: inline-flex; align-items: center;
    border: 1px solid var(--bs-line); border-radius: var(--bs-r-pill);
    background: var(--bs-surface); overflow: hidden; height: 36px;
}
.product-box .bs-qty button {
    width: 28px; height: 34px; border: 0; background: transparent;
    color: var(--bs-body); font-size: 15px; line-height: 1; cursor: pointer;
}
.product-box .bs-qty button:hover { background: var(--bs-navy-050); color: var(--bs-navy); }
.product-box .bs-qty input {
    width: 30px; border: 0; text-align: center; font-size: 13px; font-weight: 600;
    color: var(--bs-ink); background: transparent; padding: 0; -moz-appearance: textfield;
}
.product-box .bs-qty input::-webkit-outer-spin-button,
.product-box .bs-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Hover katmanı (göz ikonu) */
.product-box .product-img .product-hover { background: rgba(20, 61, 89, .55); }
.product-box .product-img .product-hover ul li { border-radius: var(--bs-r-sm); }

/* --------------------------------------------------------------------------
   8) Marka kartı (/markalar)
   -------------------------------------------------------------------------- */
.card.custom-card { overflow: hidden; }
/* Kapak 1600x520 oranında (160px kartta ~52px) — logo karosu eskiden 30px
   bindiriyordu, yani kapağın %58'ini kapatıyordu. Bindirmeyi azalt. */
.card.custom-card .card-profile { margin-top: -22px; }
.card.custom-card .card-profile .card-brand-logo {
    width: 56px; height: 56px; margin: 0 auto;
    display: flex; align-items: center; justify-content: center;
    background: var(--bs-surface);
    border: 1px solid var(--bs-line);
    border-radius: var(--bs-r);
    box-shadow: var(--bs-sh-1);
    padding: 8px;
}
.card.custom-card .profile-details { padding: 10px 12px 14px; }
.card.custom-card .profile-details h5 { margin: 0; font-size: 14px; font-weight: 600; }
.card.custom-card .profile-details h5 a { color: var(--bs-ink); }
.card.custom-card .profile-details h5 a:hover { color: var(--bs-navy); }
.card.custom-card .card-footer { padding: 0; border-top: 1px solid var(--bs-line-soft); }
.card.custom-card .card-footer > div { padding: 0; }
.card.custom-card .card-footer > div + div { border-left: 1px solid var(--bs-line-soft); }
.card.custom-card .card-footer a {
    padding: 11px 0; color: var(--bs-muted); transition: var(--bs-t);
}
.card.custom-card .card-footer a:hover { color: var(--bs-navy); background: var(--bs-navy-050); }
.card.custom-card .card-footer svg { width: 16px; height: 16px; }

/* --------------------------------------------------------------------------
   8b) Kampanyalar ekranı — marka listesi satırı
   Marka adı ESKİDEN sabit genişlikteydi; rozet yer kapınca uzun isimler
   kırpılıyordu ("Namet" → "Nam…"). Ad esner, rozet sabit kalır.
   -------------------------------------------------------------------------- */
.bs-brand-row { display: flex; align-items: center; gap: 10px; padding: 9px 12px; }
.bs-brand-row .bs-brand-logo { flex: 0 0 auto; width: 26px; max-width: 26px; max-height: 20px; }
.bs-brand-row .title {
    flex: 1 1 auto; min-width: 0;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    font-size: 13px; color: var(--bs-ink);
}
.bs-brand-row .badge { flex: 0 0 auto; margin-left: auto; }
.bs-brand-row .badge-light-secondary { background: var(--bs-gold-050); color: var(--bs-gold-600); }
.bs-brand-row.bs-brand-current { background: var(--bs-navy-050); border-radius: var(--bs-r-sm); }
.bs-brand-logo-empty {
    display: inline-flex; align-items: center; justify-content: center;
    width: 26px; height: 20px; border-radius: 5px;
    background: var(--bs-navy-050); color: var(--bs-navy);
    font-size: 11px; font-weight: 700;
}
/* İç kaydırmalı liste yerine doğal akış (vendor'da görünür scrollbar bırakıyordu) */
.bs-brand-list { max-height: none; overflow: visible; }

/* Kampanya kartı — görsel kartın tepesine yapışsın, kartlar eşit yükseklikte */
.bs-campaign-card, .campaign-card { height: 100%; display: flex; flex-direction: column; overflow: hidden; }
.bs-campaign-card > img, .campaign-card > img,
.bs-campaign-card .card-header, .campaign-card .card-header { padding: 0; border: 0; }
.bs-campaign-card img, .campaign-card img {
    width: 100%; height: auto; display: block; object-fit: cover;
}

/* --------------------------------------------------------------------------
   8c) Marka anasayfası (home.php) şeritleri
   -------------------------------------------------------------------------- */

/* Karşılama (hero) bloğu — banner şeridinin SOLUNDA, 4/8 ikilisi.
   Vendor sınıfları birbiriyle çakışıyordu: .morning-sec = `col-xl-4 xl-50`,
   banner sütunu = `col-xl-8 xl-100`. responsive.css 1400–1660px aralığında
   xl-50/xl-100'ü devreye sokuyor → banner %100 istediği için ALT SATIRA
   düşüyor, hero'nun sağında yarım ekran boşluk kalıyordu. İkiliyi xl ve
   üstünde 4/8'de sabitleyip vendor kuralını etkisiz bırakıyoruz
   (seçici özgüllüğü .xl-100'den yüksek olduğu için sıra bağımsız kazanır). */
.page-body .profile-greeting .card-body {
    display: flex; align-items: center; justify-content: space-between;
    gap: 28px; padding: 24px 24px 0;
}
.page-body .profile-greeting .media { flex: 1 1 auto; align-items: flex-start; gap: 16px; }
.page-body .profile-greeting .greeting-user h4 { font-size: 20px; margin-bottom: 6px; color: var(--bs-ink); }
.page-body .profile-greeting .greeting-user p { color: var(--bs-muted); margin-bottom: 16px; width: auto; }
.page-body .profile-greeting .cartoon { flex: 0 0 auto; margin: 0; text-align: right; }
.page-body .profile-greeting .cartoon img { max-height: 180px; width: auto; }
@media (min-width: 1200px) {
    /* order:-2 (style.css, 1367–1660px) hero'yu marka şeridinin ÖNÜNE alıyordu →
       aralarına %100'lük şerit girdiği için banner hero'nun yanına gelemiyordu.
       DOM sırası geçerli olsun: şerit üstte, altında hero + banner yan yana. */
    .page-body .second-chart-list > .morning-sec { order: 0; }
    .page-body .second-chart-list > .morning-sec { flex: 0 0 33.333333%; max-width: 33.333333%; }
    .page-body .second-chart-list > .dashboard-owl { flex: 0 0 66.666667%; max-width: 66.666667%; }
    /* Banner 16:9 olduğu için hero'dan uzun; iki kart aynı hizada bitsin
       (30px = .card margin-bottom). */
    .page-body .second-chart-list > .morning-sec > .card,
    .page-body .second-chart-list > .dashboard-owl > .card { height: calc(100% - 30px); }
    /* Dar sütunda metin+görsel yan yana sığmıyor → dikey kur, görsel dibe. */
    .page-body .profile-greeting .card-body {
        flex-direction: column; align-items: stretch; justify-content: flex-start;
        gap: 12px; height: 100%;
    }
    /* Görsel kartın yüksekliğini BELİRLEMESİN, kalan boşluğa uysun: sabit
       yükseklik verilirse dar ekranda hero banner'dan uzun kalıyor ve
       banner'ın altında boşluk açılıyor. */
    .page-body .profile-greeting .cartoon {
        flex: 1 1 auto; min-height: 0;
        display: flex; align-items: flex-end; justify-content: center;
    }
    .page-body .profile-greeting .cartoon img {
        max-height: 100%; max-width: 100%; width: auto; height: auto; object-fit: contain;
    }
}
@media (max-width: 991.98px) {
    .page-body .profile-greeting .card-body { flex-direction: column; align-items: flex-start; gap: 12px; }
    .page-body .profile-greeting .cartoon img { max-height: 140px; }
}

/* Marka logo şeridi: her .item 78px genişliğinde ama logolar 128–156px
   render ediliyordu → komşu logoların üstüne taşıyor, şerit karmakarışık
   görünüyordu. Tek kutu + contain ile hepsi aynı optik ağırlıkta. */
#brand-carousel .item {
    display: flex; align-items: center; justify-content: center;
    height: 56px; padding: 0 10px;
}
#brand-carousel .item img {
    max-width: 100%; max-height: 38px;
    width: auto; height: auto;
    object-fit: contain; display: block;
}

/* Kampanya banner slider'ı: görsel kartın ortasında küçük kalıyordu, iki yanı
   koca boşluktu. Tam genişlik + kart köşe yarıçapı. */
#owl-carousel .item img {
    width: 100%; height: auto; display: block;
    border-radius: var(--bs-r);
}
#owl-carousel .owl-item { padding: 0; }

/* --------------------------------------------------------------------------
   9) Tablolar — tek stil. Sepet tablolarında sütunlar kartlar arası hizalı
   olsun diye sabit yerleşim (aksi hâlde her kart içeriğe göre farklı ölçüyordu).
   -------------------------------------------------------------------------- */
.page-body .table { color: var(--bs-body); margin-bottom: 0; }
.page-body .table > thead > tr > th {
    background: var(--bs-surface-alt);
    color: var(--bs-muted);
    font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase;
    border-bottom: 1px solid var(--bs-line);
    border-top: 0;
    padding: 11px 16px;
    white-space: nowrap;
}
.page-body .table > tbody > tr > td {
    padding: 14px 16px;
    border-top: 0;
    border-bottom: 1px solid var(--bs-line-soft);
    vertical-align: middle;
    font-size: 13px;
}
.page-body .table > tbody > tr:last-child > td { border-bottom: 0; }
.page-body .table > tbody > tr:hover > td { background: var(--bs-surface-alt); }

.bs-carts .bs-brand-card table { table-layout: fixed; width: 100%; }
.bs-carts .bs-brand-card th:nth-child(1), .bs-carts .bs-brand-card td:nth-child(1) { width: auto; }
.bs-carts .bs-brand-card th:nth-child(2), .bs-carts .bs-brand-card td:nth-child(2) { width: 140px; }
.bs-carts .bs-brand-card th:nth-child(3), .bs-carts .bs-brand-card td:nth-child(3) { width: 90px; }
.bs-carts .bs-brand-card th:nth-child(4), .bs-carts .bs-brand-card td:nth-child(4) { width: 150px; }

/* --------------------------------------------------------------------------
   10) Form / filtre öğeleri
   -------------------------------------------------------------------------- */
.page-body .form-control,
.page-body .form-select {
    border: 1px solid var(--bs-line);
    border-radius: var(--bs-r-sm);
    font-size: 13px;
    color: var(--bs-ink);
    padding: 9px 13px;
    min-height: 40px;
    transition: border-color var(--bs-t), box-shadow var(--bs-t);
}
.page-body .form-control::placeholder { color: var(--bs-muted); }
.page-body .form-control:focus,
.page-body .form-select:focus {
    border-color: var(--bs-navy-600);
    box-shadow: 0 0 0 3px rgba(20, 61, 89, .10);
    outline: 0;
}
.page-body label { font-size: 13px; color: var(--bs-body); font-weight: 500; }

/* Filtre paneli tek kart olsun.
   Vendor `.left-filter`'ı `position:absolute; top:65px` ile kartın DIŞINA
   koyuyor (mobil açılır panel deseni). Masaüstünde bunun görünen sonucu:
   içi yalnız "Filtre Seçenekleri" yazan 54px'lik boş bir kart + altında
   havada duran ikinci bir yüzey. Akışa geri al. */
.product-sidebar .filter-section .card { height: auto; margin-bottom: 0; }
.product-sidebar .left-filter {
    position: static;
    width: auto;
    background: transparent;
    box-shadow: none;
    border-radius: 0;
}
.product-sidebar .filter-section .card > .card-header { padding: 14px 18px; }
.product-sidebar .filter-cards-view { padding: 16px 18px 18px; }

/* Fiyat aralığı (marka mağazası filtresi) */
.bs-price-range { display: flex; align-items: center; gap: 8px; }
.bs-price-range .form-control { min-width: 0; text-align: center; padding: 9px 8px; }
.bs-price-sep { color: var(--bs-muted); flex: 0 0 auto; }

/* Filtre bölümü başlıkları — hepsi aynı ritimde */
.product-sidebar .product-filter { padding: 18px 0 0; }
.product-sidebar .product-filter:first-child { padding-top: 0; }
.product-sidebar .product-filter h6 {
    font-size: 13px; font-weight: 600; color: var(--bs-ink);
    text-transform: none; letter-spacing: 0; margin-bottom: 10px;
}
.product-sidebar .product-filter hr { margin: 0 0 12px; border-color: var(--bs-line-soft); opacity: 1; }

/* Kategori listesi: vendor'da 230px'lik iç kaydırma + görünür scrollbar vardı */
.product-sidebar .brand-cat-list { max-height: none; overflow: visible; }
.product-sidebar .brand-cat-list label {
    display: flex; align-items: flex-start; gap: 9px;
    padding: 5px 0; margin: 0; cursor: pointer; line-height: 1.4;
}

/* --------------------------------------------------------------------------
   10b) Sözleşme onay kutuları (kayıt sihirbazı: .form-radio sarmalı)
   Şablon CHECKBOX basar ama vendor'ın .radio stili YALNIZ input[type=radio]
   için yazılmış: native kutu gizlenmiyor, label::before dairesi metnin üstüne
   biniyor ve :checked işareti (radio seçicili kural) hiç çizilmiyordu.
   Çözüm: kutu appearance:none ile doğrudan input üstünde, vendor pseudo'ları
   kapatılır. (İşaretleme: register.php + mobile-register.php.)
   -------------------------------------------------------------------------- */
.form-radio {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.form-radio .form-radio-input[type="checkbox"] {
    -webkit-appearance: none;
    appearance: none;
    width: 20px; height: 20px;
    flex: 0 0 auto;
    margin: 1px 0 0;
    border: 1.5px solid #c6d0da;
    border-radius: 6px;
    background: #fff center / 13px no-repeat;
    cursor: pointer;
    transition: border-color var(--bs-t), background-color var(--bs-t);
}
.form-radio .form-radio-input[type="checkbox"]:checked {
    border-color: var(--bs-navy);
    background-color: var(--bs-navy);
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6.5 4.8 9 10 3.5' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.form-radio .form-radio-input[type="checkbox"]:focus-visible {
    outline: 2px solid rgba(20, 61, 89, .35);
    outline-offset: 2px;
}
.form-radio .form-radio-label {
    padding-left: 0;
    margin: 0;
    cursor: pointer;
    color: var(--bs-body);
    font-weight: 500;
    line-height: 1.5;
}
/* Vendor'ın daire/işaret pseudo çizimleri tamamen devre dışı */
.form-radio .form-radio-label::before,
.form-radio .form-radio-label::after { content: none; }

/* --------------------------------------------------------------------------
   11) Boş durum bileşeni
   -------------------------------------------------------------------------- */
.bs-empty { text-align: center; padding: 40px 20px; }
.bs-empty-icon {
    width: 56px; height: 56px; margin: 0 auto 14px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 50%;
    background: var(--bs-navy-050);
    color: var(--bs-navy);
}
.bs-empty-icon svg { width: 24px; height: 24px; }
.bs-empty h6 { font-size: 14px; font-weight: 600; color: var(--bs-ink); margin: 0 0 6px; }
.bs-empty p { font-size: 13px; color: var(--bs-muted); margin: 0 auto; max-width: 420px; }
.bs-empty .btn { margin-top: 16px; }

/* --------------------------------------------------------------------------
   12) Çerez onayı — vendor'da akış içinde durup sidebar'ın üstüne biniyordu
   -------------------------------------------------------------------------- */
.bs-cookie-bar,
#cookie-consent-bar {
    position: fixed !important;
    left: 0; right: 0; bottom: 0; top: auto !important;
    z-index: 1080;
    background: var(--bs-surface);
    border-top: 1px solid var(--bs-line);
    box-shadow: 0 -6px 24px rgba(16, 34, 56, .10);
    padding: 16px 24px;
}

/* --------------------------------------------------------------------------
   13) Sayfalama
   -------------------------------------------------------------------------- */
.pagination-wrap {
    display: flex; align-items: center; justify-content: space-between;
    gap: 16px; padding: 18px 4px 4px; flex-wrap: wrap;
}
.pagination-wrap ul { display: flex; gap: 6px; margin: 0; padding: 0; list-style: none; order: 2; }
.pagination-wrap > span { order: 1; color: var(--bs-muted); font-size: 12.5px; }
.pagination-wrap ul li a {
    display: flex; align-items: center; justify-content: center;
    min-width: 36px; height: 36px; padding: 0 10px;
    border: 1px solid var(--bs-line); border-radius: var(--bs-r-sm);
    color: var(--bs-body); font-size: 13px; font-weight: 500;
    background: var(--bs-surface); transition: var(--bs-t);
}
.pagination-wrap ul li a:hover { border-color: var(--bs-navy-600); color: var(--bs-navy); }
.pagination-wrap ul li.active a {
    background: var(--bs-navy); border-color: var(--bs-navy); color: #fff;
}

/* --------------------------------------------------------------------------
   14) Kenar çubuğu ince ayar — sepet satırındaki tutar taşmasın
   -------------------------------------------------------------------------- */
.sidebar-wrapper .sidebar-list.sidebar-cart-list .grand-cart-total {
    font-size: 11.5px; font-weight: 600; color: var(--bs-gold-600);
}

/* --------------------------------------------------------------------------
   15) WooCommerce sepet / ödeme normalizasyonu
   -------------------------------------------------------------------------- */
.page-body .woocommerce table.shop_table {
    border: 1px solid var(--bs-line);
    border-radius: var(--bs-r);
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
}
.page-body .woocommerce table.shop_table th {
    background: var(--bs-surface-alt);
    color: var(--bs-muted);
    font-size: 11px; letter-spacing: .04em; text-transform: uppercase; font-weight: 600;
    padding: 12px 16px;
    border: 0; border-bottom: 1px solid var(--bs-line);
}
.page-body .woocommerce table.shop_table td {
    padding: 14px 16px; border: 0; border-bottom: 1px solid var(--bs-line-soft);
    font-size: 13px; vertical-align: middle;
}
.page-body .woocommerce table.shop_table tr:last-child td { border-bottom: 0; }
.page-body .woocommerce table.shop_table img { width: 48px; height: 48px; object-fit: contain; border-radius: var(--bs-r-sm); background: var(--bs-surface-alt); padding: 3px; }
.page-body .woocommerce .cart_totals h2,
.page-body .woocommerce-checkout h3 { font-size: 15px; font-weight: 600; color: var(--bs-ink); margin-bottom: 14px; }
.page-body .woocommerce a.remove {
    color: var(--bs-muted) !important; font-size: 17px; line-height: 1;
    width: 26px; height: 26px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    transition: var(--bs-t);
}
.page-body .woocommerce a.remove:hover { background: var(--bs-danger-050); color: var(--bs-danger) !important; }
/* Bildirim kutuları (sepet/ödeme).
   VENDOR TUZAĞI: woocommerce.css ikonu `::before` ile MUTLAK konumlar
   (`position:absolute; left:1.5em`) ve metnin yerini `padding-left:3.5em` ile
   açar. Buradaki padding o payı ezince ikon metnin İLK HARFİNİN üstüne biniyordu
   ("Sepetiniz…" → S'nin üstünde bir kutucuk). Üstelik glif WooCommerce'in kendi
   ikon fontundan geliyor; font yüklenmediği anda tofu kalıyor.
   Çözüm: vendor glifini tamamen kapat, ikonu maskeli SVG olarak biz koy — böylece
   rengi token'dan gelir ve hiçbir yazı tipine bağımlı olmaz. */
.page-body .woocommerce-message,
.page-body .woocommerce-info,
.page-body .woocommerce-error {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    border-radius: var(--bs-r-sm);
    border: 1px solid var(--bs-line);
    border-top-width: 1px;
    background: var(--bs-navy-050);
    color: var(--bs-ink);
    font-size: 13px;
    line-height: 1.5;
    padding: 14px 18px;
    box-shadow: none;
}
.page-body .woocommerce-message::before,
.page-body .woocommerce-info::before,
.page-body .woocommerce-error::before {
    content: "";
    position: static;
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    margin: 0;
    background-color: var(--bs-navy);
    -webkit-mask: var(--bs-notice-icon) center / 18px 18px no-repeat;
    mask: var(--bs-notice-icon) center / 18px 18px no-repeat;
    animation: none;
}
.page-body .woocommerce-info,
.page-body .woocommerce-message {
    --bs-notice-icon: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 7.6v.1'/%3E%3C/svg%3E");
}
.page-body .woocommerce-message {
    --bs-notice-icon: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8 12.3l2.6 2.6L16 9.5'/%3E%3C/svg%3E");
    background: var(--bs-ok-050);
    border-color: #cdebd8;
    color: #14683a;
}
.page-body .woocommerce-message::before { background-color: var(--bs-ok); }
.page-body .woocommerce-error {
    --bs-notice-icon: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5M12 16.3v.1'/%3E%3C/svg%3E");
    background: var(--bs-danger-050);
    border-color: #f6cfcf;
    color: #a01919;
    list-style: none;
}
.page-body .woocommerce-error::before { background-color: var(--bs-danger); }
.page-body .woocommerce-error li { list-style: none; }

/* Kutu içindeki eylem ("Geri al", "Sepeti görüntüle") vendor'da düz link olduğu
   için metinden ayırt edilemiyordu; sağa yaslı küçük bir düğmeye dönüşür. */
.page-body .woocommerce-message .button,
.page-body .woocommerce-info .button,
.page-body .woocommerce-message > a:not(.button),
.page-body .woocommerce-info > a:not(.button) {
    margin-left: auto;
    flex: 0 0 auto;
    padding: 6px 14px;
    border: 1px solid currentColor;
    border-radius: var(--bs-r-pill);
    background: transparent;
    color: inherit;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    transition: var(--bs-t);
}
.page-body .woocommerce-message .button:hover,
.page-body .woocommerce-info .button:hover,
.page-body .woocommerce-message > a:not(.button):hover,
.page-body .woocommerce-info > a:not(.button):hover {
    background: var(--bs-surface);
}

/* ------------------------------------------------------------------
   Boş sepet — §11'deki boş-durum bileşeninin "tam sayfa" varyantı
   (woocommerce/cart/cart-empty.php). Vendor'ın tek satırlık bilgi kutusu +
   gri "Return to shop" düğmesi tema diline hiç uymuyordu ve sayfanın kalanı
   bomboş kalıyordu; burada bileşen bir yüzey kartına oturur, ölçüler bir
   kademe büyür. Temel sınıflar (.bs-empty, .bs-empty-icon, h6, p) §11'de.
   ------------------------------------------------------------------ */
.bs-empty-cart {
    max-width: 520px;
    margin: 8px auto 40px;
    padding: 48px 32px;
    background: var(--bs-surface);
    border: 1px solid var(--bs-line);
    border-radius: var(--bs-r-lg);
    box-shadow: var(--bs-sh-1);
}
.bs-empty-cart .bs-empty-icon { width: 76px; height: 76px; margin-bottom: 20px; }
.bs-empty-cart .bs-empty-icon svg { width: 34px; height: 34px; }
.bs-empty-cart h6 { font-size: 19px; margin-bottom: 10px; }
.bs-empty-cart p { font-size: 13.5px; line-height: 1.65; max-width: 380px; }
.bs-empty-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-top: 26px;
}
.bs-empty-actions .btn { margin-top: 0; padding: 10px 22px; font-size: 13px; font-weight: 500; }

/* Vendor'ın "Return to shop" satırı artık basılmıyor; eski işaretlemeyi kullanan
   bir eklenti basarsa gri kutu yerine tema düğmesi gibi görünsün. */
.page-body .return-to-shop { text-align: center; margin: 24px 0 0; }
.page-body .return-to-shop .button {
    display: inline-flex;
    align-items: center;
    padding: 10px 22px;
    border-radius: var(--bs-r-sm);
    background: var(--bs-navy);
    color: #fff;
    font-size: 13px;
    font-weight: 500;
}

/* Ödeme ekranı: boş kupon kutusu ve yetim başlıklar gizlensin */
.page-body .woocommerce-form-coupon-toggle:empty,
.page-body .woocommerce-notices-wrapper:empty { display: none; }

/* Kargo alanları bloğu kapalıyken içi BOŞ ama kesikli çerçevesiyle basılıyordu
   → ödeme ekranının sağ üstünde havada duran boş bir kutu görünüyordu.
   Çerçeveyi kaldır; :has() destekliyorsa tamamen gizle. */
.page-body .woocommerce-shipping-fields { border: 0; padding: 0; margin: 0; }
.page-body .woocommerce-shipping-fields:not(:has(.form-row)) { display: none; }

/* Ödeme yöntemi bloğu vendor'da lavanta (#f1efff) — palette YOK. Tema rengine al. */
.page-body #payment,
.page-body .woocommerce-checkout-payment {
    background: var(--bs-surface) !important;
    border: 1px solid var(--bs-line);
    border-radius: var(--bs-r);
    padding: 18px 20px;
}
.page-body #payment ul.payment_methods {
    border: 0; padding: 0; margin: 0 0 14px; list-style: none;
    background: transparent;
}
.page-body #payment ul.payment_methods li {
    border: 1px solid var(--bs-line); border-radius: var(--bs-r-sm);
    padding: 14px 16px; margin: 0 0 10px; background: var(--bs-surface);
}
.page-body #payment ul.payment_methods li label { font-weight: 600; color: var(--bs-ink); cursor: pointer; }
.page-body #payment .payment_box {
    background: var(--bs-navy-050) !important;
    border-radius: var(--bs-r-sm);
    font-size: 12.5px; color: var(--bs-body);
    padding: 12px 14px; margin: 10px 0 0;
}
.page-body #payment .payment_box::before { display: none; } /* vendor üçgen ok */
.page-body #payment .form-row.place-order { padding: 0; margin: 0; text-align: right; }
.page-body #payment .form-row.place-order .button { min-height: 44px; padding: 12px 24px; font-size: 14px; }

/* Sepet tablosu sütun genişlikleri — silme ve görsel sütunları dar ve sessiz */
.page-body .woocommerce table.shop_table th.product-remove,
.page-body .woocommerce table.shop_table td.product-remove { width: 48px; text-align: center; padding-left: 8px; padding-right: 8px; }
.page-body .woocommerce table.shop_table th.product-thumbnail,
.page-body .woocommerce table.shop_table td.product-thumbnail { width: 72px; padding-right: 0; }
.page-body .woocommerce table.shop_table td.product-name a { color: var(--bs-ink); font-weight: 500; }
.page-body .woocommerce table.shop_table td.product-name a:hover { color: var(--bs-navy); }
.page-body .woocommerce table.shop_table td.product-price,
.page-body .woocommerce table.shop_table td.product-subtotal { white-space: nowrap; }
.page-body .woocommerce table.shop_table th.product-price,
.page-body .woocommerce table.shop_table th.product-subtotal,
.page-body .woocommerce table.shop_table td.product-price,
.page-body .woocommerce table.shop_table td.product-subtotal { text-align: right; }
.page-body .woocommerce table.shop_table th.product-quantity,
.page-body .woocommerce table.shop_table td.product-quantity { text-align: center; width: 130px; }
.page-body .woocommerce table.shop_table td.product-quantity .cart-plus-minus { margin: 0 auto; }

/* Sepet aksiyon satırı: kampanya + güncelle butonları aynı hizada, aynı dilde */
/* DİKKAT: bu bir <td colspan="6"> — display:flex vermek hücreyi table-cell
   olmaktan çıkarır ve colspan çöker (buton tek sütuna sıkışır). Bu yüzden
   hizalama float ile yapılıyor, flex ile değil. */
.page-body .woocommerce table.shop_table td.actions {
    background: var(--bs-surface-alt);
    border-top: 1px solid var(--bs-line);
    padding: 14px 16px;
    overflow: hidden; /* float temizliği */
}
.page-body .woocommerce table.shop_table td.actions .coupon { margin: 0; float: left; }
.page-body .woocommerce table.shop_table td.actions button[name="update_cart"] { float: right; }
/* !important ŞART: style.css'teki `.btn-primary` kuralı background-color'ı
   `!important` ile lacivert basıyor. Buradaki `color: navy` kazanınca lacivert
   zemin + lacivert yazı çıkıyor ve buton metni görünmez oluyordu. */
.page-body .woocommerce td.actions .get-coupons {
    background: transparent !important; border: 1px solid var(--bs-navy-100) !important; color: var(--bs-navy);
}
.page-body .woocommerce td.actions .get-coupons:hover { background: var(--bs-navy) !important; color: #fff !important; border-color: var(--bs-navy) !important; }
.page-body .woocommerce td.actions button[name="update_cart"] {
    border-radius: var(--bs-r-sm); border: 1px solid var(--bs-line);
    background: var(--bs-surface); color: var(--bs-body);
    font-size: 13px; font-weight: 500; padding: 10px 16px; min-height: 40px;
}
.page-body .woocommerce td.actions button[name="update_cart"]:disabled { opacity: .5; cursor: not-allowed; }

/* Sepet toplamları kutusu — kart diliyle aynı */
.page-body .woocommerce .cart_totals {
    border: 1px solid var(--bs-line); border-radius: var(--bs-r);
    padding: 18px 20px; background: var(--bs-surface); box-shadow: var(--bs-sh-1);
}
.page-body .woocommerce .cart_totals h2 { margin-top: 0; }
.page-body .woocommerce .cart_totals table.shop_table { border: 0; }
.page-body .woocommerce .cart_totals table.shop_table th { background: transparent; text-transform: none; font-size: 13px; color: var(--bs-body); padding-left: 0; }
.page-body .woocommerce .cart_totals table.shop_table td { text-align: right; padding-right: 0; }
.page-body .woocommerce .cart_totals .order-total th,
.page-body .woocommerce .cart_totals .order-total td { font-size: 15px; font-weight: 700; color: var(--bs-ink); }
.page-body .woocommerce .wc-proceed-to-checkout { padding: 14px 0 0; }
.page-body .woocommerce .wc-proceed-to-checkout .checkout-button { width: 100%; }

/* ==========================================================================
   Üst bar — profil menüsü ve misafir aksiyonları
   ========================================================================== */

/* Avatarın ÖLÇÜSÜ hiçbir yerde yazılı değildi: eski sabit dosya
   (dashboard/profile.jpg) tesadüfen 40×40 olduğu için kimse fark etmemişti.
   Gerçek kullanıcı görseline/varsayılan görsele geçince resim doğal boyutunda
   basıldı ve başlığı yardı. Ölçü artık CSS'te. */
.page-wrapper .page-header .header-wrapper .nav-right .profile-media { align-items: center; }
.page-wrapper .page-header .header-wrapper .nav-right .profile-media > img {
    width: 40px;
    height: 40px;
    min-width: 40px;
    flex: 0 0 40px;
    object-fit: cover;
}

/* Profil menüsü ekranın SAĞ kenarından taşıyordu.
   style.css:36239 `left:-10px` diyor (tetikleyicinin SOL kenarına yaslar); kutu
   200px ve tetikleyici zaten sağ kenarda olduğu için menü viewport dışına
   çıkıyordu. style.css'te bunun düzeltmesi VAR ama yalnız `max-width:1366px`
   media query'sinde (38282) — geniş ekranda hiç uygulanmıyordu. Genişlik
   koşulunun bir anlamı yok: tetikleyici HER genişlikte sağ kenarda.
   bayisec-ds.css en son yüklendiği için aynı specificity ile eziyor. */
.page-wrapper .page-header .header-wrapper .nav-right .profile-dropdown {
    left: auto;
    right: 0;
}
/* Ok işareti de kutuyla birlikte sağa taşınmalı (yoksa kutunun sol ucunda
   kalıp avatarın altını değil, komşu ikonun altını gösterir). */
.onhover-dropdown:hover .profile-dropdown.onhover-show-div:before,
.onhover-dropdown:hover .profile-dropdown.onhover-show-div:after {
    left: auto;
    right: 14px;
}

/* Misafir: kimlik yerine "Giriş Yap / Kayıt Ol". nav-menus li'leri ikon için
   kurgulandığından buton çifti kendi hizasını kendi kurar. */
.page-wrapper .page-header .header-wrapper .nav-right .nav-menus > li.bs-guest-auth {
    display: flex;
    align-items: center;
    gap: 8px;
}
.page-wrapper .page-header .header-wrapper .nav-right .nav-menus > li.bs-guest-auth .btn {
    white-space: nowrap;
    padding: 7px 14px;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.2;
}
