/* ============ Book Campaigns – frontend ============ */

/* Elementor "Bakım Modu / Yakında"yı (coming_soon/maintenance) aktif ettiğinde
   sadece ANA İÇERİĞİ değiştiriyor ($GLOBALS['post'] + query_posts() ile) --
   header/footer/wp_footer'a bağlı HER ŞEY (bu eklentinin push izin çubuğu,
   segment kupon bildirimi, kitap-asistani sohbet balonu, Motta'nın mobil alt
   menüsü) normal şekilde render olmaya devam ediyor. Elementor zaten kendi
   <body> etiketine "elementor-maintenance-mode" sınıfını ekliyor (bkz.
   Maintenance_Mode::body_class(), sadece bakım modunun GERÇEKTEN uygulandığı
   ziyaretçiler için -- exclude_mode ile hariç tutulan rol/oturum zaten bu
   sınıfı almıyor) -- bu yüzden tek bir CSS kuralıyla hepsi gizlenebiliyor.
   .bc-push-bar JS tarafından 15 sn gecikmeyle SONRADAN DOM'a ekleniyor olsa da
   CSS seçicisi normal şekilde eşleşmeye devam eder, ekstra bir şey gerekmez. */
body.elementor-maintenance-mode .bc-push-bar,
body.elementor-maintenance-mode .bc-notify-bar,
body.elementor-maintenance-mode #ka-widget-root,
body.elementor-maintenance-mode #motta-mobile-navigation-bar{display:none !important}

.bc-section{margin:18px 0;border-radius:14px;padding:16px 18px;position:relative}
.bc-section.bc-compact{padding:12px 14px;margin:0}
.bc-section-head{font-weight:800;font-size:15px;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.bc-fire{animation:bc-pulse 1.2s infinite;display:inline-block}
@keyframes bc-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.2)}}

/* Kompakt kampanya satırı: 1. satır rozet+başlık+sayaç, 2. satır açıklama (tek satıra kırpılır).
   .bc-camp-wrap = tek bir kampanyanın DIŞ kabı (ayraç çizgisi burada); içindeki
   .bc-camp linki (mağazaya götürür) ile .bc-camp-member-row (varsa, Premium
   sayfasına götüren AYRI bir link) birbirinden bağımsız — <a> içine <a>
   konulamayacağı için üye etiketi bilerek ana linkin dışında, kendi satırında. */
.bc-camp-wrap{padding:6px 0;border-top:1px solid rgba(0,0,0,.08)}
.bc-camp-wrap:first-child{border-top:0}
.bc-camp{display:block;color:inherit;text-decoration:none}
.bc-camp:hover,.bc-camp:visited,.bc-camp:focus{color:inherit;text-decoration:none}
.bc-camp-body{display:flex;flex-direction:column;gap:1px;min-width:0}
.bc-camp-row{display:flex;align-items:center;gap:6px;min-width:0}
.bc-camp-title{font-weight:700;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bc-camp-desc{font-size:12px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.bc-camp:hover .bc-camp-title{text-decoration:underline}
.bc-camp-member-row{margin-top:4px}
/* font-variant-numeric:tabular-nums ŞART: rakamlar (ör. "1" ile "8") çoğu fontta
   FARKLI genişlikte -- karakter SAYISI hep aynı kalsa da (her zaman 02d dolgu),
   saniye değiştikçe metnin piksel genişliği mikro miktarda (ör. 0.6px) dalgalanıyor.
   Bu kutu bir flex satırında (.bc-camp-row) olduğundan bu küçük dalgalanma üst
   kolonun genişliğine yansıyıp, sayfadaki her satırı (sepete ekle butonu dahil)
   her saniye bir ileri bir geri hafifçe kaydırıyordu -- gerçek bir sayaç/piksel
   ölçümüyle doğrulandı (btnW 392.0→391.4→392.0 arasında saniyede gidip geliyordu).
   tabular-nums tüm rakamları SABİT genişlikte hizalar, dalgalanmayı kökten keser. */
.bc-countdown{font-size:11px;font-weight:700;color:#c0392b;white-space:nowrap;flex:0 0 auto;margin-left:auto;font-variant-numeric:tabular-nums}
.bc-countdown:empty{display:none}

.bc-badge{background:var(--bc-badge-bg,#e74c3c);color:var(--bc-badge-fg,#fff);font-size:10px;font-weight:800;padding:2px 6px;border-radius:6px;white-space:nowrap;flex:0 0 auto}

/* Kampanyanın üye türü kısıtı (Premium'a Özel vb.) — mağaza çubuğu çipinde,
   ürün sayfasındaki kampanya kutusunda ve sepette görünür. Ünvan Ayarlar'dan
   değişir. Ayarlar'da bir "Premium Üyelik Sayfası" seçiliyse <a> olarak basılır. */
.bc-member-tag{display:inline-flex;background:#7B1FA2;color:#fff !important;font-size:9px;font-weight:800;padding:2px 6px;border-radius:6px;white-space:nowrap;flex:0 0 auto;text-transform:uppercase;letter-spacing:.02em;line-height:1.4}
.bc-member-tag-bonus{background:#be1522}
a.bc-member-tag{cursor:pointer;text-decoration:none !important}
a.bc-member-tag:hover{filter:brightness(1.1);text-decoration:none !important}

/* Kombo set küçük resimleri */
.bc-combo-thumbs{display:flex;align-items:center;gap:6px;margin-top:8px;flex-wrap:wrap}
.bc-combo-thumb{display:block;width:36px;height:36px;border-radius:6px;overflow:hidden;flex:0 0 auto}
.bc-combo-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.bc-combo-thumb-more{font-size:11px;font-weight:700;opacity:.7}
.bc-add-combo.button{margin-top:8px;padding:6px 12px;font-size:12px;min-height:0;line-height:1.4}

.bc-style-gradient{background:linear-gradient(135deg,#fff3cd,#ffe08a);border:2px solid #e0b400;box-shadow:0 4px 14px rgba(224,180,0,.25)}
.bc-style-gradient .bc-section-head{color:#8a6d00}
.bc-style-outline{background:#fff;border:2px dashed #e74c3c}
.bc-style-outline .bc-section-head{color:#e74c3c}
.bc-style-dark{background:#1e1e2e;color:#f5f5f5;border:1px solid #444}
.bc-style-dark .bc-section-head{color:#ffd166}
.bc-style-dark .bc-camp{border-top-color:rgba(255,255,255,.12)}
.bc-style-minimal{background:transparent;border:1px solid rgba(0,0,0,.12);border-radius:8px}

/* WooCommerce'in kendi sepet/ödeme TOPLAMLAR tablosunda kampanya indirimleri
   "fee" satırı olarak (düz yazı, ikonsuz) zaten otomatik listeleniyor. Hemen
   altındaki ikonlu "Uygulanan Kampanyalar" kutumuz AYNI bilgiyi bir daha
   gösterdiği için müşteri indirimi sayfada iki kez görüyordu. Bu sitede
   ücret (fee) satırlarının tek kaynağı book-campaigns olduğundan, native
   satırı gizleyip tek (ikonlu) gösterimi bırakıyoruz — tutar hesaplamasını
   ETKİLEMEZ, sadece görünürlüğü kapatır. */
.cart_totals tr.fee,
.woocommerce-checkout-review-order-table tr.fee {
	display: none;
}

/* Motta teması, ödeme sayfasında "Ara Toplam" satırını kendi woocommerce.css
   dosyasında (form.checkout table.shop_table tfoot .cart-subtotal{display:none})
   bilerek gizliyor. Bu sitede müşteri ara toplamı görmek istediği için, tema
   dosyasına dokunmadan (tema güncellemesinde kaybolmasın diye) burada aynı
   özgüllükte + !important ile geri açıyoruz. */
form.checkout table.shop_table tfoot .cart-subtotal {
	display: table-row !important;
}

/* Ödeme sayfasında kutu, toplamlar tablosunun içinde "Toplam" satırının tam
   üstünde bir satır (tr/td) olarak basılır — tablo hücresinin varsayılan sağa
   yaslama/boşluk stilleri kutuyu bozmasın diye sıfırlanır. */
.bc-cart-box-row td{text-align:left !important;padding:6px 0 !important;border:0 !important}
.bc-cart-box-row .bc-cart-box{margin:2px 0}
.bc-conflict-row td{text-align:left !important;padding:6px 0 !important;border:0 !important}

/* ---------- Çakışan kampanya tercihi (müşteri seçim kutusu) ---------- */
.bc-conflict-box{margin:14px 0;display:flex;flex-direction:column;gap:10px}
.bc-conflict-group{padding:12px 14px;background:#fff7e6;border:1px solid #f0c36d;border-radius:8px}
.bc-conflict-title{font-weight:700;margin-bottom:8px;font-size:13px}
.bc-conflict-options{display:flex;flex-direction:column;gap:6px}
.bc-conflict-option{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}
/* Sadece flex "gap"e güvenmek yetmiyor: İŞARETLİ (checked) native radyo düğmesinin
   dolu iç noktası, işaretSİZ haldekinden daha geniş bir alana render oluyor ve bu
   da gap'in ayırdığı boşluğa taşıp metne yapışmasına yol açıyordu (ekran görüntüsü
   + piksel yakınlaştırmayla doğrulandı: işaretsiz seçenekte boşluk düzgün
   görünürken işaretlide sıfıra iniyordu). input'a ayrıca sabit bir margin-right
   vererek, checked durumunun olası taşmasından bağımsız garanti bir boşluk
   bırakılıyor. */
.bc-conflict-option input{margin:0 6px 0 0}
.bc-conflict-amt{font-weight:700;opacity:.8}

/* ---------- Sepet kutusu ----------
   <ul>/<li> yerine bilerek iki bağımsız flex öbeği (isim grubu + tutar/sayaç grubu)
   kullanılır: bu kutu bazen dar bir kenar çubuğunda, bazen ödeme sayfasında tam
   genişlikte bir tablo hücresinde basılıyor — iki grup birbirinden bağımsız
   sarabildiği için hiçbir genişlikte (mobil dahil) elemanlar birbirine binmiyor
   ya da satırın uzağına savrulmuyor. */
.bc-cart-box{margin:14px 0;padding:14px;background:#f6fff2;border:1px solid #9ad29a;border-radius:8px}

/* ---------- Vitrin kartı / ürün sayfası: "Sepette X₺" fiyat önizlemesi ----------
   Sepet kutusuyla (.bc-cart-box) AYNI yeşil paleti kullanır ki müşteri "bu rakam
   nereden geliyor" bağlantısını kursun; rozet ise mevcut --bc-badge-bg/--bc-badge-fg
   değişkenlerini (Ayarlar > Rozet Rengi) paylaşır.
   ÖNEMLİ: Motta'nın `.price` kapsayıcısı `display:flex;flex-wrap:wrap` kullanıyor —
   rozet (.bc-cart-preview-badge) ve kutu (.bc-cart-preview-row) AYRI flex öğeleri
   olsaydı, dar olan rozet üstteki satırda (del/ins fiyatların yanında) kalıp sağa
   yaslanıyor, geniş olan kutu ise tek başına alta kayıyordu ("rozet havada kaldı"
   görünümü). Bu yüzden ikisi TEK bir flex-item (.bc-cart-preview, column yönünde)
   içine alınıp flex:1 0 100% ile Motta'nın flex satırında KENDİ TAM GENİŞLİKTEKİ
   satırına itiliyor — aynı sorunu çözen .bc-cart-box-item-member'daki flex:1 0 100%
   deseniyle birebir aynı mantık. */
/* order:99 ŞART: Motta'nın vitrin kartı .price'ında .price ins{order:1}/.price del{order:2}
   gibi açık flex sıraları var — bizim bloğumuz order tanımlamazsa varsayılan 0 ile
   HTML'de sonra gelse bile görsel olarak fiyatların ÖNÜNE geçiyordu (mobil kartlarda
   "Sepette" kutusunun asıl fiyatın ÜSTÜNDE çıkması bundandı). 99 böyle bir bağlamda
   her zaman en sona (tüm fiyat öğelerinden sonra) düşmesini garanti eder. */
/* margin-top DEĞİL, padding-top: tekli ürün sayfasında .price aslında display:block
   (flex değil, mağaza kartlarından farklı) ve bu bağlamda margin-top'un normal akışta
   bir önceki satırla (price__save/Kazanç satırı) GÖRÜNMEZ şekilde collapse olduğu
   doğrulandı (computed style 14px dese de gerçek piksel pozisyonu hiç değişmiyordu,
   getBoundingClientRect ile ölçüldü). Padding ASLA collapse olmaz, bu yüzden güvenilir
   boşluk için margin yerine padding-top kullanılıyor. */
.bc-cart-preview{display:flex !important;flex-direction:column;align-items:flex-start;flex:1 0 100% !important;order:99 !important;width:100%;padding-top:10px !important;line-height:1.3;min-width:0}
/* Her fiyat bağlamı aynı davranmıyor: vitrin kartı .price'ı flex-wrap:wrap AMA
   tekli ürün sayfası .price'ı display:block AMA "İnsanlar Bunları da Görüntüledi"
   kenar çubuğundaki .product-price yine flex AMA flex-wrap TANIMLANMAMIŞ (varsayılan
   nowrap) -- bu üçüncü durumda .bc-cart-preview (flex-shrink:0, flex-basis:100%)
   küçülmeyi reddedip satıra sığmayınca taşıp KIRPILIYORDU (ör. "₺156,40" yerine
   sadece "₺15" görünüyordu). Her yeni teması/widget bağlamını tek tek avlamak yerine,
   .bc-cart-preview'i DOĞRUDAN içeren HER kapsayıcıyı (sınıf adı ne olursa olsun)
   otomatik olarak flex-wrap:wrap yapan genel bir :has() kuralı -- zaten wrap olan
   bağlamlarda etkisiz (no-op), olmayanlarda sorunu kökten çözüyor. */
:has(> .bc-cart-preview){flex-wrap:wrap !important}
/* TEK bütünleşik kutu: rozet artık ayrı bir çip değil, kutunun İÇİNDE üstte küçük/
   soluk bir not satırı -- referans görselde "Sepette X₺" ile aynı kutuda, üstte
   "X₺'ye %Y İndirim" şeklinde duran yapının birebir karşılığı. */
/* Üç rengin hepsi Ayarlar > "Sepette" kutusu renkleri'nden admin tarafından
   değiştirilebilir -- BC_Assets::enqueue() bu üç CSS değişkenini kaydedilmiş
   hex değerlerle basar, buradaki hex'ler sadece JS/CSS değişkeni hiç basılmamışsa
   (ör. eklenti ilk kurulduğunda ayarlar sayfası henüz hiç kaydedilmemişse) devreye
   giren son çare varsayılanlardır. */
.bc-cart-preview-box{display:flex;flex-direction:column;gap:2px;background:var(--bc-preview-bg,#f6fff2);border:1px solid var(--bc-preview-border,#9ad29a);border-radius:8px;padding:5px 10px;width:fit-content;max-width:100%}
.bc-cart-preview-note{font-size:11px;font-weight:600;color:var(--bc-preview-text,#4b9f52) !important}
/* .bc-cart-preview-row'un metni artık Ayarlar > Metin Şablonları'ndan admin
   tarafından serbestçe yazılabildiği için ("Sepette {fiyat}" yerine admin ne
   yazarsa), sabit "etiket"/"fiyat" iki ayrı <span>'a bölünemiyor -- bunun yerine
   TÜM satır normal boyutta/renkte basılıp, içindeki gerçek fiyat miktarı
   (wc_price()'ın bastığı .woocommerce-Price-amount) ayrıca vurgulanıyor; böylece
   admin metni nasıl yazarsa yazsın (kelimeleri hangi sırada kullanırsa kullansın)
   rakam her zaman göze çarpıyor. */
.bc-cart-preview-row{font-size:11px;font-weight:600;color:var(--bc-preview-text,#2e7d32) !important}
.bc-cart-preview-row .woocommerce-Price-amount{font-size:1.3em;font-weight:800;color:inherit !important}
.bc-cart-box-title{font-weight:700;margin-bottom:8px}
.bc-cart-box-list{display:flex;flex-direction:column;gap:8px}
.bc-cart-box-item{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 10px;padding-top:8px;border-top:1px solid rgba(0,0,0,.08)}
.bc-cart-box-item:first-child{padding-top:0;border-top:0}
.bc-cart-box-item-name{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0;flex:1 1 auto}
.bc-cart-box-item-title{font-weight:600}
.bc-cart-box-item-meta{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;flex:0 0 auto}
/* flex:1 0 100% → bu satırı isim/tutar gruplarının altına, TAM GENİŞLİKTE, kendi
   satırına iter — indirim rozetiyle/tutarla aynı satırda karışmasın diye. */
.bc-cart-box-item-member{flex:1 0 100%;margin-top:2px}
.bc-cart-amt{font-weight:700;white-space:nowrap}
.bc-cart-end{white-space:nowrap}
/* Genel .bc-countdown kuralındaki margin-left:auto (ürün sayfası gibi TEK SATIRLIK
   bağlamlar için) burada istenmiyor — bu grup zaten kendi küçük flex öbeği. */
.bc-cart-box-item-meta .bc-countdown{margin-left:0}
/* Dar ekranda isim ve tutar/sayaç gruplarını alt alta, tam genişlikte diz —
   yan yana sıkışıp kırpılmasın. */
@media (max-width:480px){
	.bc-cart-box-item{flex-direction:column;align-items:flex-start}
	.bc-cart-box-item-meta{width:100%;justify-content:space-between}
}
/* overflow:hidden: emoji ikon (SVG/görsele göre boyutu daha az öngörülebilir)
   22px'lik daireyi taşıp arka planı tamamen kapatabiliyordu — artık kırpılıyor. */
.bc-cart-chip{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:12px;flex:0 0 auto;overflow:hidden}
.bc-cart-chip .bc-shop-chip-icon{font-size:12px;line-height:1;width:100%;height:100%}
.bc-cart-chip .bc-shop-chip-icon img{width:13px;height:13px}

/* ---------- Mağaza rozetleri ---------- */
.bc-badges{display:flex;flex-wrap:wrap;gap:4px}
.bc-archive-badge{
	background:var(--bc-badge-bg,#e74c3c);
	color:var(--bc-badge-fg,#fff) !important;
	font-size:11px;font-weight:800;line-height:1.2;
	padding:4px 8px;border-radius:6px;white-space:nowrap;display:inline-block;
	text-decoration:none
}
.bc-archive-badge:hover,.bc-archive-badge:visited,.bc-archive-badge:focus{color:var(--bc-badge-fg,#fff) !important;text-decoration:none}

/* ---------- Kampanya + Kargo Süresi ortak rozet slotu (TV altyazısı gibi, aşağıdan yukarı) ----------
   Yükseklik sabit 30px: etiket değişince altındaki içerik (başlık, fiyat vb.) kaymaz.
   Genişlik sabitlenmiyor (JS ile zorlanınca temanın flex/grid düzeninde etiket
   sıkışıp kare görünüyordu) — her etiket kendi doğal genişliğinde kalır. Kutunun
   temel görünürlüğü de JS'e bağlı değil: "is-active" öğesi normal akışta
   (position:relative) olduğu için JavaScript hiç çalışmasa bile ilk rozet görünür kalır. */
.bc-badge-rotator{position:relative;display:inline-block;vertical-align:middle;overflow:hidden;height:30px}
.bc-badge-rotator-item{
	display:flex;align-items:center;white-space:nowrap;
	position:absolute;top:0;left:0;
	transform:translateY(100%);opacity:0;
	transition:transform .5s cubic-bezier(.4,0,.2,1),opacity .4s ease
}
.bc-badge-rotator-item.is-active{position:relative;top:auto;left:auto;transform:translateY(0);opacity:1}
.bc-badge-rotator-item.is-exit{position:absolute;top:0;left:0;transform:translateY(-100%);opacity:0}
.bc-badge-rotator-item.is-reset{transition:none !important}
/* satır içi konumlar: hiçbir şeyin üstüne binmez */
.bc-badges-inline{position:static;margin:6px 0}

/* görsel üzeri konumlar */
.woocommerce ul.products li.product,
ul.products li.product,
.products .product{position:relative}
.bc-badges-overlay{position:absolute;z-index:var(--bc-badge-z,3);pointer-events:auto;max-width:80%}
.bc-badges-img_topleft{top:var(--bc-badge-y,40px);left:var(--bc-badge-x,8px)}
.bc-badges-img_topright{top:var(--bc-badge-y,40px);right:var(--bc-badge-x,8px)}
.bc-badges-img_bottomleft{bottom:var(--bc-badge-y,40px);left:var(--bc-badge-x,8px)}
.bc-badges-img_bottomright{bottom:var(--bc-badge-y,40px);right:var(--bc-badge-x,8px)}

.bc-empty{opacity:.7;font-style:italic}
.bc-back{margin-bottom:14px}

/* ---------- Mağaza üstü kampanya çubuğu (Trendyol tarzı renkli çipler) ---------- */
.bc-shop-bar{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 18px}
.bc-shop-chip{
	display:inline-flex;align-items:center;gap:7px;
	padding:9px 16px;border-radius:22px;font-size:13px;font-weight:700;
	border:1px solid rgba(0,0,0,.06);
	text-decoration:none;white-space:nowrap;
	transition:transform .15s ease,box-shadow .15s ease
}
.bc-shop-chip:hover{transform:translateY(-1px);box-shadow:0 3px 10px rgba(0,0,0,.12);text-decoration:none;filter:brightness(0.97)}
.bc-shop-chip:visited{text-decoration:none}
.bc-shop-chip-icon{display:inline-flex;align-items:center;justify-content:center;font-size:15px;line-height:1}
.bc-shop-chip-icon.bc-shop-chip-icon img,.bc-shop-chip-icon img{width:16px;height:16px;object-fit:contain;display:block}

/* ---------- Kampanyalar sayfası: kart ızgarası ----------
   Daha "harekete geçirici" (CTA-odaklı) tasarım: hover'da kart kalkar/gölgelenir,
   görsel varsa üstte yer kaplar ve hover'da hafif yakınlaşır, buton parlak bir
   gradyanla dikkat çeker, sayaç kırmızı bir rozet gibi öne çıkar. */
.bc-campaigns-grid{display:grid;grid-template-columns:repeat(var(--bc-camp-cols,3),minmax(0,1fr));gap:22px}
@media(max-width:900px){.bc-campaigns-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.bc-campaigns-grid{grid-template-columns:1fr}}
.bc-camp-card{
	display:flex;flex-direction:column;
	border:1px solid rgba(0,0,0,.08);border-radius:16px;background:#fff;overflow:hidden;
	box-shadow:0 2px 10px rgba(0,0,0,.05);
	transition:transform .25s ease,box-shadow .25s ease
}
.bc-camp-card:hover{transform:translateY(-6px);box-shadow:0 18px 34px rgba(0,0,0,.14)}
.bc-camp-card-media{display:block;position:relative;aspect-ratio:16/10;overflow:hidden;background:#f2f2f2;cursor:pointer}
.bc-camp-card-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.bc-camp-card:hover .bc-camp-card-media img{transform:scale(1.07)}
.bc-camp-card-badge{position:absolute;top:12px;left:12px;font-size:11px;box-shadow:0 3px 10px rgba(0,0,0,.3)}
.bc-camp-card-body{display:flex;flex-direction:column;gap:10px;padding:18px 20px 20px;flex:1 1 auto}
.bc-camp-card.has-image .bc-camp-card-body{padding-top:16px}
.bc-camp-card .bc-badge{align-self:flex-start}
.bc-camp-card-title{margin:0;font-size:18px;font-weight:800;line-height:1.3}
.bc-camp-card-title a{color:inherit;text-decoration:none}
.bc-camp-card-title a:hover{text-decoration:underline}
.bc-camp-card-desc{margin:0;font-size:13px;opacity:.8;flex:1 1 auto}
.bc-camp-card-countdown{align-self:flex-start;background:#fff1ee;font-size:12px;font-weight:800;padding:5px 10px;border-radius:8px}
.bc-camp-card-cta{
	align-self:stretch;text-align:center;margin-top:2px;
	background:linear-gradient(135deg,#ff7a45,#e63946);color:#fff !important;border:0;
	font-weight:800;letter-spacing:.01em;padding:12px 16px;border-radius:10px;
	box-shadow:0 8px 18px rgba(230,57,70,.3);text-decoration:none !important;
	transition:transform .15s ease,box-shadow .15s ease
}
.bc-camp-card-cta:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(230,57,70,.42)}
.bc-camp-card-member{align-self:flex-start}

/* ---------- Push izin çubuğu ----------
   Buton boyutu, notify-bar'daki aynı sorun için: tema temanın genel "button"
   stilleri (padding/font-size/min-height büyütmesi) bu iki butona binip
   dev/orantısız görünmesine yol açıyordu — !important ile sabitlenir. */
.bc-push-bar{position:fixed;left:16px;right:16px;bottom:16px;z-index:99997;background:#1e1e2e;color:#fff;border-radius:12px;padding:14px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;box-shadow:0 8px 30px rgba(0,0,0,.3);max-width:520px;margin:0 auto}
.bc-push-bar button{
	box-sizing:border-box !important;width:auto !important;height:auto !important;
	min-width:0 !important;min-height:0 !important;max-width:none !important;
	margin:0 !important;text-transform:none !important;letter-spacing:normal !important;
	box-shadow:none !important;line-height:1.2 !important;border-radius:8px !important;
	border:0 !important;padding:8px 14px !important;cursor:pointer;font-weight:600 !important;
	font-size:13px !important;white-space:nowrap !important;
}
.bc-push-yes{background:#ffd166 !important;color:#1e1e2e !important}
.bc-push-no{background:transparent !important;color:#bbb !important}

/* ---------- Segment kupon bildirimi (toast) ----------
   Renkler CSS değişkenleriyle (Ayarlar'dan özelleştirilebilir) — inline style ile
   #bc-notify üzerine yazılır. Buton boyutu özellikleri temanın genel "button"
   stillerinin (padding/font-size/min-height büyütmesi) üzerine binmemesi için
   !important ile sabitlenir; sadece bu iki butona özeldir, başka hiçbir şeyi etkilemez. */
.bc-notify-bar{
	--bc-notify-bg:#1e1e2e; --bc-notify-text:#fff;
	--bc-notify-btn-bg:#ffd166; --bc-notify-btn-text:#1e1e2e;
	position:fixed;left:16px;right:16px;bottom:16px;z-index:99996;
	background:var(--bc-notify-bg);color:var(--bc-notify-text);
	border-radius:12px;padding:14px 16px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;
	box-shadow:0 8px 30px rgba(0,0,0,.3);max-width:420px;margin:0 auto;animation:bc-notify-in .35s ease
}
@keyframes bc-notify-in{from{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}
.bc-notify-text{flex:1 1 200px;font-size:13px !important;line-height:1.4 !important;color:inherit}
.bc-notify-text strong{display:block;font-size:14px !important;margin:0 0 2px !important;color:inherit}
/* flex-basis:100% → bu satır her zaman kendi satırında, başlığın ALTINDA sabit
   kalır. Bu olmadan, "Kopyala" tıklanınca buton metni ("Kopyalandı ✓") uzunluk
   değiştirdiği için flex-wrap satırı yeniden dağıtıyor, buton bir an başlığın
   yanına kayıp sonra tekrar alta düşüyordu — artık metin uzunluğu satır
   konumunu hiç etkilemiyor. */
.bc-notify-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:1 0 100%;margin-top:2px}
.bc-notify-bar button.bc-notify-code,.bc-notify-bar button.bc-notify-close{
	box-sizing:border-box !important;width:auto !important;height:auto !important;
	min-width:0 !important;min-height:0 !important;max-width:none !important;
	margin:0 !important;text-transform:none !important;letter-spacing:normal !important;
	box-shadow:none !important;line-height:1.2 !important;border-radius:8px !important;
	white-space:nowrap !important;
}
.bc-notify-bar button.bc-notify-code{
	background:var(--bc-notify-btn-bg) !important;color:var(--bc-notify-btn-text) !important;
	border:0 !important;padding:8px 12px !important;font-weight:700 !important;font-size:13px !important;cursor:pointer
}
.bc-notify-bar button.bc-notify-code.bc-copied{background:#46b450 !important;color:#fff !important}
.bc-notify-bar button.bc-notify-close{
	background:transparent !important;border:0 !important;color:inherit;opacity:.6;
	font-size:20px !important;padding:0 4px !important;cursor:pointer;align-self:flex-start
}
.bc-notify-bar button.bc-notify-close:hover{opacity:1}
.bc-notify-bar-progress{position:absolute;left:0;bottom:0;height:3px;background:var(--bc-notify-btn-bg);border-radius:0 0 12px 12px;animation-name:bc-notify-progress;animation-timing-function:linear;animation-fill-mode:forwards}
@keyframes bc-notify-progress{from{width:100%}to{width:0}}
