/*
 * Superbaski Modeli — Ürün Sayfası Anlık Fiyat Tablosu
 * "Bidolu Baskı" tarzı: her adet kendi kartında, adet solda / birim ve
 * toplam fiyat aynı satırda sağında.
 */
.b2b-instant-price-table {
    margin: 16px 0 20px;
    border: 1px solid #e2e2e2;
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
    overflow: hidden;
    font-family: inherit;
}

/* Bidolubaski.com'daki gibi: koyu renkli bir kutu değil, sade bir başlık
   satırı — başlık solda, KDV Dahil Göster anahtarı sağa yaslı aynı hizada. */
.b2b-ipt-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 6px 12px;
    background: transparent;
    color: #374151;
    padding: 14px 16px 10px;
}

.b2b-ipt-title {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.01em;
    color: #374151;
}

.b2b-ipt-updating {
    display: none;
    font-size: 11px;
    color: #ea580c;
    font-weight: 600;
    margin-left: 8px;
}

.b2b-instant-price-table.is-loading .b2b-ipt-updating {
    display: inline-block;
}

/* KDV Dahil Göster anahtarı — bidolubaski.com'daki gibi başlık şeridinde,
   sağa yaslı küçük bir switch. */
.b2b-ipt-kdv-toggle {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 500;
    color: #6b7280;
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
}

.b2b-ipt-kdv-checkbox {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.b2b-ipt-kdv-switch {
    position: relative;
    width: 30px;
    height: 16px;
    background: #4b5563;
    border-radius: 999px;
    transition: background-color 0.15s ease;
    flex: 0 0 auto;
}

.b2b-ipt-kdv-switch::after {
    content: '';
    position: absolute;
    top: 2px;
    left: 2px;
    width: 12px;
    height: 12px;
    background: #fff;
    border-radius: 50%;
    transition: transform 0.15s ease;
}

.b2b-ipt-kdv-checkbox:checked + .b2b-ipt-kdv-switch {
    background: #ea580c;
}

.b2b-ipt-kdv-checkbox:checked + .b2b-ipt-kdv-switch::after {
    transform: translateX(14px);
}

/* KDV Dahil Göster açıkken hariç değerleri (ve "+KDV" ibaresini), kapalıyken
   dahil değerleri gizle. "+KDV" ibaresi kasıtlı olarak -excl span'inin
   İÇİNDE değil, YANINDA ayrı bir eleman — çünkü JS, AJAX güncellemesinde
   sadece -excl/-incl span'lerinin içeriğini (.html()) değiştiriyor; eğer
   "+KDV" o span'in içinde olsaydı her güncellemede silinirdi. */
.b2b-ipt-unit-incl,
.b2b-ipt-total-incl {
    display: none;
}

.b2b-instant-price-table.show-kdv-dahil .b2b-ipt-unit-excl,
.b2b-instant-price-table.show-kdv-dahil .b2b-ipt-total-excl,
.b2b-instant-price-table.show-kdv-dahil .b2b-ipt-unit-vat-suffix,
.b2b-instant-price-table.show-kdv-dahil .b2b-ipt-total-vat-suffix {
    display: none;
}

.b2b-instant-price-table.show-kdv-dahil .b2b-ipt-unit-incl,
.b2b-instant-price-table.show-kdv-dahil .b2b-ipt-total-incl {
    display: inline;
}

/* İlk 6 adetten sonrakiler — "Daha Fazla Adet" ile açılır (bidolubaski.com'daki gibi).
   ÖNEMLİ: Aşağıdaki ".b2b-ipt-row" kuralı (display:flex) bu dosyada DAHA SONRA
   tanımlı — özgüllük eşit olduğunda dosyadaki SON kural kazanır. Bu yüzden
   burada iki class'ı BİRLEŞTİRİP (".b2b-ipt-row.b2b-ipt-row-extra") özgüllüğü
   kasıtlı olarak yükseltiyoruz, aksi halde gizleme kuralı hiç çalışmaz. */
.b2b-ipt-row.b2b-ipt-row-extra {
    display: none;
}

.b2b-instant-price-table.show-all-rows .b2b-ipt-row.b2b-ipt-row-extra {
    display: flex;
}

.b2b-ipt-show-more-btn {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px 16px;
    background: #fff;
    border: none;
    border-top: 1px solid #f0f0f0;
    border-bottom: 1px solid #f0f0f0;
    font-size: 13px;
    font-weight: 600;
    color: #374151;
    cursor: pointer;
    transition: background-color 0.15s ease;
}

.b2b-ipt-show-more-btn:hover {
    background: #f8fafc;
}

.b2b-ipt-show-more-icon {
    display: inline-block;
    font-size: 10px;
    transition: transform 0.15s ease;
}

.b2b-ipt-show-more-btn.is-expanded .b2b-ipt-show-more-icon {
    transform: rotate(180deg);
}

.b2b-instant-price-table.is-loading .b2b-ipt-rows {
    opacity: 0.5;
    pointer-events: none;
}

.b2b-ipt-rows {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 10px;
    background: #f9fafb;
    transition: opacity 0.15s ease;
}

.b2b-ipt-placeholder {
    padding: 16px;
    text-align: center;
    font-size: 13px;
    color: #6b7280;
    font-style: italic;
}

/* Bidolubaski.com tarzı: her adet seçeneği kendi kenarlıklı/yuvarlak köşeli
   "kart"ı — ortak bir liste değil, aralarında boşluk (gap) bırakılmış ayrı
   kutucuklar (bkz. .b2b-ipt-rows'taki gap). Adet solda sabit genişlikte;
   birim ve toplam fiyat blokları AYNI SATIRDA, adetin sağındaki kalan
   alanda yan yana (bkz. .b2b-ipt-row-prices). */
.b2b-ipt-row {
    display: flex;
    /* "Adet" etiketi ile "Baskılı birim/toplam fiyat" notları dikeyde aynı
       hizada dursun diye üstten değil ALTTAN hizalıyoruz — üst satırların
       (rakam/fiyat) font boyutu farklı olduğundan ortadan hizalamak alt
       yazıları hizasız bırakıyordu. */
    align-items: flex-end;
    gap: 10px;
    padding: 14px 18px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

.b2b-ipt-row:hover {
    border-color: #ea580c;
}

.b2b-ipt-row.is-selected {
    background: #ea580c;
    border-color: #ea580c;
}

/* Faz 2: adet eşiği kampanya etiketi ("Ücretsiz Baskı") — satır yüksekliğini
   artırmaz; adet sütununun hemen sağında, fiyatlardan önce küçük bir hap
   (pill) olarak durur. Etiket yuvası tabloda eşik tanımlıysa TÜM satırlarda
   yer kaplar (kampanyasız satırlarda görünmez), böylece fiyat sütunları tüm
   satırlarda aynı hizada kalır. Renk: "Ürün Sayfası Ayarları > Ücretsiz baskı
   etiket rengi" (yoksa varsayılan yeşil). */
.b2b-ipt-row-campaign {
    display: none;
}

body .b2b-instant-price-table.b2b-ipt-has-campaign .b2b-ipt-row-campaign {
    display: inline-flex;
    align-items: center;
    align-self: center;
    flex: 0 0 auto;
    visibility: hidden;
    white-space: nowrap;
    padding: 5px 10px;
    border: 1px solid #15803d;
    border-radius: 999px;
    background: transparent;
    color: #15803d;
    font-size: 9px;
    font-weight: 700;
    line-height: 1;
}

body .b2b-instant-price-table.b2b-ipt-has-campaign .b2b-ipt-row.has-campaign .b2b-ipt-row-campaign {
    visibility: visible;
}

body .b2b-instant-price-table.b2b-ipt-has-campaign .b2b-ipt-row.has-campaign.is-selected .b2b-ipt-row-campaign {
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.85);
}

/* Satır içi dikey hizalama: adet rakamı = birim fiyat = toplam fiyat rakamları
   AYNI üst çizgide; "Adet" = "Baskılı birim fiyat" = "Baskılı toplam fiyat"
   yazıları AYNI alt çizgide. Üç sütunun üst satırı ve alt satırı birebir aynı
   satır yüksekliğini kullanır (font boyutu farkı hizayı bozmasın diye sabit). */
body .b2b-instant-price-table .b2b-ipt-row .b2b-ipt-qty-num,
body .b2b-instant-price-table .b2b-ipt-row .b2b-ipt-qty-input,
body .b2b-instant-price-table .b2b-ipt-row .b2b-ipt-unit,
body .b2b-instant-price-table .b2b-ipt-row .b2b-ipt-total {
    height: 22px !important;
    line-height: 22px !important;
}

body .b2b-instant-price-table .b2b-ipt-row .b2b-ipt-qty-label,
body .b2b-instant-price-table .b2b-ipt-row .b2b-ipt-unit-note,
body .b2b-instant-price-table .b2b-ipt-row .b2b-ipt-total-note {
    margin-top: 2px !important;
    line-height: 14px !important;
}

/* Faz 2: teşvik mesajı ("100 adet ve üzerinde baskı ücretsiz!") — seçili baskı kombinasyonu bir ücretsiz
   baskı kuralına uyuyor ama adet eşiğin altındayken satırların altında tek satır olarak görünür. */
body .b2b-instant-price-table .b2b-ipt-nudge {
    display: none;
    margin: 4px 6px 6px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.4;
    color: #15803d;
}

/* Etiket için yer açmak: adet sütunu (rakam + altındaki "Adet", kendi içinde
   ortalı) sola kayar ve rakam bir tık küçülür. Yalnızca kampanyalı tablolarda. */
body.b2b-product-3col-page .b2b-instant-price-table.b2b-ipt-has-campaign .b2b-ipt-row {
    padding-left: 12px !important;
}

body.b2b-product-3col-page .b2b-instant-price-table.b2b-ipt-has-campaign .b2b-ipt-row-qty {
    min-width: 44px !important;
}

body.b2b-product-3col-page .b2b-instant-price-table.b2b-ipt-has-campaign .b2b-ipt-qty-num,
body.b2b-product-3col-page .b2b-instant-price-table.b2b-ipt-has-campaign .b2b-ipt-qty-input {
    font-size: 17px !important;
}

.b2b-ipt-row-qty {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 56px;
}

.b2b-ipt-qty-num {
    font-size: 20px;
    font-weight: 800;
    line-height: 1.15;
    color: #1f2937;
}

.b2b-ipt-qty-label {
    font-size: 11px;
    color: #6b7280;
}

.b2b-ipt-row.is-selected .b2b-ipt-qty-num {
    color: #ffffff;
}

.b2b-ipt-row.is-selected .b2b-ipt-qty-label {
    color: rgba(255, 255, 255, 0.8);
}

/* Fiyat alanı — birim fiyat bloğu solda/ortada, toplam fiyat bloğu sağda,
   İKİSİ DE AYNI SATIR HİZASINDA (yan yana) — ikisi de kendi içinde ortalanmış
   (değer + "+KDV" satırı, altında küçük not). */
.b2b-ipt-row-prices {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: space-around;
    gap: 12px;
}

.b2b-ipt-price-block {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.b2b-ipt-unit,
.b2b-ipt-total {
    font-size: 17px;
    font-weight: 700;
    color: #ea580c;
    white-space: nowrap;
}

.b2b-ipt-unit-vat-suffix,
.b2b-ipt-total-vat-suffix {
    font-weight: 600;
    font-size: 12px;
    color: #6b7280;
    margin-left: 4px;
}

.b2b-ipt-unit-note,
.b2b-ipt-total-note {
    margin-top: 2px;
    font-size: 11px;
    font-weight: 600;
    color: #9ca3af;
}

.b2b-ipt-row.is-selected .b2b-ipt-unit,
.b2b-ipt-row.is-selected .b2b-ipt-total {
    color: #ffffff;
}

.b2b-ipt-row.is-selected .b2b-ipt-unit-vat-suffix,
.b2b-ipt-row.is-selected .b2b-ipt-total-vat-suffix,
.b2b-ipt-row.is-selected .b2b-ipt-unit-note,
.b2b-ipt-row.is-selected .b2b-ipt-total-note {
    color: rgba(255, 255, 255, 0.8);
}

/* "Farklı adet gir" bloğu — "Daha Fazla Adet" butonunun altında, ayrı bir
   sarmalayıcı içinde; küçük bir başlık + satırın kendisi diğer kartlarla
   BİREBİR AYNI çerçeve/boşluk/tipografi (tek fark: sol taraftaki adet
   rakamının bir <input>'a dönüşmesi — görünüm sürekliliği sağlanıyor). */
body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-custom-wrap {
    padding: 12px 10px 14px !important;
    background: #f9fafb !important;
    border-top: 1px solid #f0f0f0 !important;
}

/* Bir önceki tur: bu başlık da tek-class !important'a rağmen hâlâ temanın
   kendi (daha yüksek özgüllükte) metin rengini/kalınlığını gösteriyordu —
   aynı yüksek özgüllük çözümü burada da uygulanıyor. */
body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-custom-title {
    display: block !important;
    margin: 0 8px 8px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: #6b7280 !important;
    text-transform: none !important;
    text-decoration: none !important;
}

/* ÖNEMLİ: .b2b-ipt-row'un genel kart kuralları (arka plan/çerçeve/dolgu) bu
   satıra da class paylaşımıyla otomatik uygulanması GEREKİRKEN, canlıda bu
   satırın ".b2b-ipt-rows" dışına taşınmasıyla birlikte kart görünümü
   kayboldu — hatta bir önceki turda eklenen tek-class !important bile
   çalışmadı. Bu, muhtemelen temanın (WoodMart/WooCommerce) form/özet alanı
   içindeki genel <div>'ler için DAHA YÜKSEK ÖZGÜLLÜKTE bir "!important"
   sıfırlama kuralı olduğu anlamına geliyor (ör. birden fazla class/element
   içeren bir seçici) — tek class'lı bir !important kuralı özgüllük
   yarışında ona kaybediyor. Çözüm: kendi seçicimizin özgüllüğünü de
   (body.b2b-product-3col-page .b2b-instant-price-table ön eki ile) 3
   class'a çıkarıp neredeyse her ihtimalde önde bitmesini sağlıyoruz. */
body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row-custom {
    cursor: default;
    display: flex !important;
    align-items: flex-end !important;
    gap: 10px !important;
    padding: 14px 18px !important;
    background: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 8px !important;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row-custom:hover {
    border-color: #ea580c !important;
}

body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row-custom.is-selected {
    background: #ea580c !important;
    border-color: #ea580c !important;
}

body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row-custom .b2b-ipt-row-qty {
    flex: 0 0 auto !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    min-width: 56px !important;
}

body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row-custom .b2b-ipt-row-prices {
    flex: 1 1 auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-around !important;
    gap: 12px !important;
}

body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row-custom .b2b-ipt-price-block {
    flex: 1 1 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
}

/* Tarayıcı/tema varsayılan number-input stilini (beyaz dolgulu, yuvarlak
   köşeli, geniş kutu) tamamen ezip üstteki "1.000" rakamıyla BİREBİR AYNI
   görünen düz bir metin hâline getiriyoruz: varsayılan durumda görünür
   çerçeve/çizgi YOK (rakamla arasında hiçbir görsel fark kalmasın diye),
   yalnızca dokunulunca (hover/focus) ince bir alt çizgiyle "buraya
   yazabilirsin" ipucu veriyoruz. Genişlik de sabit piksel yerine "ch"
   (karakter genişliği) ile veriliyor ki kutunun kendisi gereğinden büyük
   durmasın, yazılan rakamın boyutuna göre ölçülsün. */
.b2b-ipt-qty-input {
    /* Bu genişlik yalnızca JS henüz çalışmadan ÖNCEKİ ilk an için bir
       yedek/varsayılan — gerçek genişlik b2b-instant-price.js'teki
       resizeCustomInput() tarafından, yazılan/placeholder metnin GERÇEK
       piksel genişliğine göre satır içi (inline, !important önceliğiyle)
       her tuş vuruşunda yeniden hesaplanıp yazılıyor. min-width:0 ve
       box-sizing:border-box, flex satırı içinde tarayıcının/temanın
       varsayılan input genişliğinin bu değeri ezip satırı taşırmasını
       (daha önce canlıda gözlemlenen taşma hatası) önlüyor. */
    width: 3.4ch !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    font-family: inherit !important;
    font-size: 20px !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
    color: #1f2937 !important;
    text-align: center;
    cursor: text;
    -moz-appearance: textfield;
    appearance: textfield;
    transition: border-color 0.15s ease;
}

.b2b-ipt-qty-input:hover,
.b2b-ipt-qty-input:focus {
    border-bottom-color: #ea580c !important;
}

.b2b-ipt-qty-input:focus {
    outline: none !important;
}

.b2b-ipt-qty-input::placeholder {
    color: #9ca3af;
    font-weight: 800;
}

.b2b-ipt-qty-input::-webkit-outer-spin-button,
.b2b-ipt-qty-input::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
}

.b2b-ipt-qty-input:disabled {
    color: #9ca3af !important;
    cursor: not-allowed;
}

.b2b-ipt-row-custom.is-selected .b2b-ipt-qty-input {
    color: #ffffff !important;
}

.b2b-ipt-row-custom.is-selected .b2b-ipt-qty-input:hover,
.b2b-ipt-row-custom.is-selected .b2b-ipt-qty-input:focus {
    border-bottom-color: rgba(255, 255, 255, 0.7) !important;
}

.b2b-ipt-row-custom.is-selected .b2b-ipt-qty-input::placeholder {
    color: rgba(255, 255, 255, 0.6);
}

/* Sadece minimum adet gibi doğrulama uyarıları için — sonuç artık ayrı bir
   cümle olarak değil, satırın kendi fiyat sütunlarında (diğer satırlarla
   aynı biçimde) görünüyor. */
.b2b-ipt-custom-message {
    margin: 8px 8px 0;
    font-size: 12px;
    color: #b91c1c;
}

.b2b-ipt-custom-message:empty {
    display: none;
}

.b2b-ipt-custom-message strong {
    color: inherit;
}

.b2b-ipt-add-to-cart {
    padding: 14px 16px;
    border-top: 1px solid #f0f0f0;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.b2b-ipt-add-to-cart-btn {
    background: #ea580c !important;
    color: #fff !important;
    border: none !important;
    font-weight: 700 !important;
    padding: 10px 20px !important;
    border-radius: 6px !important;
    cursor: pointer;
}

.b2b-ipt-add-to-cart-btn:hover:not(:disabled) {
    background: #c2410c !important;
}

.b2b-ipt-add-to-cart-btn:disabled {
    background: #d1d5db !important;
    color: #6b7280 !important;
    cursor: not-allowed;
}

.b2b-ipt-cart-spinner {
    display: none;
    width: 16px;
    height: 16px;
    border: 2px solid #e5e7eb;
    border-top-color: #ea580c;
    border-radius: 50%;
    animation: b2b-ipt-spin 0.6s linear infinite;
}

.b2b-ipt-add-to-cart.is-loading .b2b-ipt-cart-spinner {
    display: inline-block;
}

@keyframes b2b-ipt-spin {
    to { transform: rotate(360deg); }
}

.b2b-ipt-cart-message {
    flex-basis: 100%;
    font-size: 13px;
    font-weight: 600;
}

.b2b-ipt-cart-message.is-success { color: #059669; }
.b2b-ipt-cart-message.is-error { color: #dc2626; }

.b2b-ipt-note {
    margin: 0;
    padding: 8px 16px 12px;
    font-size: 11px;
    color: #9ca3af;
}

/* Mobil: kartları biraz daha kompakt yap, dar ekranda fiyat blokları
   taşmasın diye alt satıra sarabilir (yine de yan yana kalmaya çalışır). */
@media (max-width: 480px) {
    .b2b-ipt-row {
        flex-wrap: wrap;
        padding: 12px 14px;
        gap: 8px;
    }
    .b2b-ipt-qty-num {
        font-size: 17px;
    }
    .b2b-ipt-unit,
    .b2b-ipt-total {
        font-size: 14px;
    }
    .b2b-ipt-row-prices {
        flex-wrap: wrap;
        gap: 6px 10px;
    }
    .b2b-ipt-qty-input {
        width: 3.4ch;
        font-size: 17px !important;
    }
}


/* =====================================================================================
   MOBİL (≤480px): fiyat tablosu satırı TEK SATIRDA (adet | "Ücretsiz Baskı" | birim | toplam).
   Sorun: dar ekranda adet + tek satırlık "Ücretsiz Baskı" hapı + iki fiyat sütunu sığmıyordu,
   fiyatlar alt satıra düşüyor ve her kart ~2 kat yükseliyordu. Çözüm: etiket iki satırlı ve dar,
   fiyat sütunları kalan alanı paylaşır ve sağa yaslanır. Uzun tutarlarda "+KDV" alt satıra sarabilir
   (satır yalnızca o zaman uzar). Masaüstü (>480px) etkilenmez.
   Seçiciler, dosyadaki !important'lı özel-adet satırı kurallarını ve ürün sayfası ayarlarından gelen
   satır içi CSS'i ezebilmek için aynı özgüllükte ve dosyanın SONUNDA tanımlıdır.
   ===================================================================================== */
@media (max-width: 480px) {
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row,
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row-custom {
        flex-wrap: nowrap !important;
        align-items: center !important;
        gap: 6px !important;
        padding: 12px 10px !important;
    }

    /* "Ücretsiz Baskı" hapı: iki satırlı, dar (fiyatlara yer açar). */
    body .b2b-instant-price-table.b2b-ipt-has-campaign .b2b-ipt-row-campaign {
        box-sizing: border-box;
        width: 50px;
        justify-content: center;
        white-space: normal;
        text-align: center;
        padding: 4px 4px;
        border-radius: 10px;
        font-size: 9px;
        line-height: 1.15;
    }

    /* Fiyat sütunları: kalan alanı paylaşır, sağa yaslı; taşarsa alt satıra sarmaz, daralır. */
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row .b2b-ipt-row-prices,
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row-custom .b2b-ipt-row-prices {
        flex: 1 1 0 !important;
        min-width: 0 !important;
        flex-wrap: nowrap !important;
        justify-content: flex-end !important;
        gap: 4px !important;
    }
    /* Birim fiyat daha dar, toplam fiyat (daha uzun rakamlar) daha geniş. */
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row .b2b-ipt-price-block,
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row-custom .b2b-ipt-price-block {
        flex: 1 1 0 !important;
        min-width: 0 !important;
    }
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row .b2b-ipt-price-block:first-child,
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row-custom .b2b-ipt-price-block:first-child {
        flex: 1 1 0 !important;
    }
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row .b2b-ipt-price-block:last-child,
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row-custom .b2b-ipt-price-block:last-child {
        flex: 1.15 1 0 !important;
    }

    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row .b2b-ipt-unit,
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row .b2b-ipt-total {
        font-size: clamp(12px, 3.5vw, 13.5px);
        text-align: center;
        white-space: normal !important;
        height: auto !important;
        min-height: 22px;
    }
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row .b2b-ipt-unit .woocommerce-Price-amount,
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row .b2b-ipt-total .woocommerce-Price-amount {
        white-space: nowrap;
    }
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row .b2b-ipt-unit-vat-suffix,
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row .b2b-ipt-total-vat-suffix {
        display: inline-block;
        margin-left: 2px;
        font-size: clamp(9px, 2.6vw, 10px);
        white-space: nowrap;
    }
    /* KDV dahil modunda '+KDV' ibaresi gizli kalmalı (yukarıdaki display:inline-block bunu ezmesin). */
    body.b2b-product-3col-page .b2b-instant-price-table.show-kdv-dahil .b2b-ipt-row .b2b-ipt-unit-vat-suffix,
    body.b2b-product-3col-page .b2b-instant-price-table.show-kdv-dahil .b2b-ipt-row .b2b-ipt-total-vat-suffix {
        display: none;
    }
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row .b2b-ipt-unit-note,
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row .b2b-ipt-total-note {
        font-size: clamp(9px, 2.6vw, 10px);
        text-align: center;
    }
}
/* Çok dar telefonlar (≤380px, ör. 360px Android): daha dar iç boşluk ve biraz küçük yazı ile
   büyük tutarlarda "+KDV" ibaresinin alt satıra sarması azaltılır. */
@media (max-width: 380px) {
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-rows {
        padding: 8px 6px;
    }
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row,
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row-custom {
        padding: 11px 7px !important;
        gap: 4px !important;
    }
    body.b2b-product-3col-page .b2b-instant-price-table.b2b-ipt-has-campaign .b2b-ipt-row {
        padding-left: 7px !important;
    }
    body.b2b-product-3col-page .b2b-instant-price-table.b2b-ipt-has-campaign .b2b-ipt-row-qty {
        min-width: 36px !important;
    }
    body.b2b-product-3col-page .b2b-instant-price-table.b2b-ipt-has-campaign .b2b-ipt-qty-num,
    body.b2b-product-3col-page .b2b-instant-price-table.b2b-ipt-has-campaign .b2b-ipt-qty-input {
        font-size: 16px !important;
    }
    body .b2b-instant-price-table.b2b-ipt-has-campaign .b2b-ipt-row-campaign {
        width: 42px;
        padding: 3px 2px;
        font-size: 8px;
    }
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row .b2b-ipt-unit,
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row .b2b-ipt-total {
        font-size: 11.5px;
    }
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row .b2b-ipt-unit-vat-suffix,
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row .b2b-ipt-total-vat-suffix {
        margin-left: 1px;
        font-size: 8.5px;
    }
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row .b2b-ipt-unit-note,
    body.b2b-product-3col-page .b2b-instant-price-table .b2b-ipt-row .b2b-ipt-total-note {
        font-size: 8.5px;
    }
}