/* =====================================================================
   AFR AYARI ADANA — GLOBAL MAĞAZA KATMANI (02.10.2026)
   oh-shop.js'in oluşturduğu parçalar: mini sepet çekmecesi, arama paneli,
   bildirim, hesap menüsü, çerez çubuğu/tercih penceresi.
   Navbar düğmelerinin kendisi oh-navbar.css'te (sayfaya gömülü, kaymasın).
   Önek: oh-  · z-index: navbar 1030 < sabit düğmeler 1100 < çerez çubuğu 1150
   < arama/sepet paneli 1200 < çerez penceresi 1250 < bildirim 1300
   ===================================================================== */
.oh-lock{ overflow:hidden; }
.oh-lock .floating-button{ visibility:hidden; }   /* sabit WhatsApp/Ara düğmeleri (z 1100) panelin üstüne binmesin */
.oh-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:0 16px; border-radius:12px; font:700 14.5px/1 "Plus Jakarta Sans",system-ui,sans-serif; border:1.5px solid transparent; cursor:pointer; text-decoration:none !important; transition:background-color .15s, border-color .15s, color .15s; }
.oh-btn-primary{ background:#C21F12; color:#fff !important; }
.oh-btn-primary:hover{ background:#C70511; }
.oh-btn-ghost{ background:#fff; color:#15181A !important; border-color:#D5D9DE; }
.oh-btn-ghost:hover{ border-color:#15181A; }
.oh-btn-link{ background:none; color:#3A4047 !important; padding:0 8px; text-decoration:underline !important; text-underline-offset:3px; }
.oh-btn-off{ background:#D9DCE0; color:#7A8088 !important; cursor:not-allowed; }
.oh-btn:focus-visible,.oh-x:focus-visible{ outline:3px solid rgba(194,31,18,.35); outline-offset:2px; }
.oh-x{ width:40px; height:40px; border:0; border-radius:10px; background:#F3F4F6; color:#15181A; display:grid; place-items:center; font-size:16px; cursor:pointer; flex:0 0 40px; }
.oh-x:hover{ background:#E7E9EC; }
.oh-spin{ width:22px; height:22px; border:3px solid #E7E9EC; border-top-color:#C21F12; border-radius:50%; animation:ohSpin .7s linear infinite; display:inline-block; }
@keyframes ohSpin{ to{ transform:rotate(360deg); } }
.oh-loading{ display:grid; place-items:center; padding:36px 0; }

/* ── Mini sepet çekmecesi ── */
.oh-drawer{ position:fixed; inset:0; z-index:1200; }
.oh-drawer-bg{ position:absolute; inset:0; background:rgba(15,17,20,.45); opacity:0; transition:opacity .25s ease; }
.oh-drawer-panel{ position:absolute; top:0; right:0; bottom:0; width:min(420px, 100%); background:#fff; display:flex; flex-direction:column; box-shadow:-18px 0 40px rgba(0,0,0,.18); transform:translateX(100%); transition:transform .26s cubic-bezier(.3,0,.2,1); outline:none; font-family:"Plus Jakarta Sans",system-ui,sans-serif; color:#15181A; }
.oh-drawer.is-open .oh-drawer-bg{ opacity:1; }
.oh-drawer.is-open .oh-drawer-panel{ transform:none; }
.oh-drawer-panel > header{ display:flex; align-items:center; justify-content:space-between; padding:16px 18px; border-bottom:1px solid #ECEDEF; }
.oh-drawer-panel h2{ font-size:18px; font-weight:800; margin:0; }
.oh-drawer-body{ flex:1; overflow-y:auto; padding:6px 18px; overscroll-behavior:contain; }
.oh-drawer-panel.is-busy .oh-drawer-body{ opacity:.55; pointer-events:none; }
.oh-dr-lines{ list-style:none; margin:0; padding:0; }
.oh-dr-lines li{ display:grid; grid-template-columns:64px minmax(0,1fr); gap:12px; padding:14px 0; border-bottom:1px solid #F0F1F3; }
.oh-dr-img img{ width:64px; height:64px; object-fit:contain; border-radius:10px; background:#F6F7F8; border:1px solid #ECEDEF; padding:4px; }
.oh-dr-name{ display:block; font-weight:700; font-size:14px; line-height:1.35; color:#15181A !important; text-decoration:none; }
.oh-dr-name:hover{ color:#C21F12 !important; }
.oh-dr-unit{ display:block; font-size:12.5px; color:#6B7178; margin-top:2px; }
.oh-dr-issue{ display:block; font-style:normal; font-size:12.5px; color:#B4232A; font-weight:700; margin-top:2px; }
.oh-dr-row{ display:flex; align-items:center; justify-content:space-between; margin-top:8px; }
.oh-dr-row strong{ font-size:15px; font-variant-numeric:tabular-nums; }
.oh-dr-qty{ display:inline-flex; align-items:center; border:1.5px solid #D5D9DE; border-radius:10px; overflow:hidden; }
.oh-dr-qty button{ width:34px; height:34px; border:0; background:#fff; color:#15181A; display:grid; place-items:center; }
.oh-dr-qty button:hover:not([disabled]){ background:#F6F7F8; color:#C21F12; }
.oh-dr-qty button[disabled]{ color:#C3C7CC; }
.oh-dr-qty span{ min-width:30px; text-align:center; font-weight:800; font-size:14px; }
.oh-dr-rm{ background:none; border:0; padding:0; margin-top:6px; color:#6B7178; font-size:12.5px; font-weight:600; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.oh-dr-rm:hover{ color:#C21F12; }
.oh-dr-empty{ text-align:center; padding:48px 10px; color:#6B7178; }
.oh-dr-empty .bi{ font-size:40px; color:#C21F12; display:block; margin-bottom:8px; }
.oh-drawer-foot{ border-top:1px solid #ECEDEF; padding:14px 18px calc(14px + env(safe-area-inset-bottom)); background:#fff; }
.oh-dr-free{ font-size:13px; background:#F6F7F8; border-radius:10px; padding:8px 10px; margin:0 0 10px; }
.oh-dr-sum{ display:flex; justify-content:space-between; font-size:16px; margin-bottom:2px; }
.oh-dr-sum strong{ font-size:19px; color:#C21F12; font-variant-numeric:tabular-nums; }
.oh-dr-note{ font-size:12px; color:#6B7178; margin:0 0 12px; }
.oh-dr-act{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }

/* ── Arama paneli ── */
.oh-search{ position:fixed; inset:0; z-index:1200; }
.oh-search-bg{ position:absolute; inset:0; background:rgba(15,17,20,.5); opacity:0; transition:opacity .2s ease; }
.oh-search-panel{ position:relative; max-width:760px; margin:min(9vh,80px) auto 0; background:#fff; border-radius:18px; box-shadow:0 30px 70px rgba(0,0,0,.3); overflow:hidden; transform:translateY(-12px); opacity:0; transition:transform .2s ease, opacity .2s ease; font-family:"Plus Jakarta Sans",system-ui,sans-serif; }
.oh-search.is-open .oh-search-bg{ opacity:1; }
.oh-search.is-open .oh-search-panel{ transform:none; opacity:1; }
.oh-search-form{ display:flex; align-items:center; gap:10px; padding:12px 12px 12px 18px; border-bottom:1px solid #ECEDEF; }
.oh-search-form > .bi{ color:#C21F12; font-size:20px; }
.oh-search-form input{ flex:1; min-width:0; height:46px; border:0; outline:0; font:500 17px/1.2 inherit; color:#15181A; background:transparent; }
.oh-search-form input::-webkit-search-cancel-button{ -webkit-appearance:none; }
.oh-search-res{ max-height:min(62vh,560px); overflow-y:auto; padding:8px 10px 12px; overscroll-behavior:contain; }
.oh-s-hint{ padding:8px; } .oh-s-hint p{ font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:#6B7178; margin:0 0 10px; }
.oh-s-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.oh-s-chips a{ padding:8px 13px; border-radius:999px; background:#F3F4F6; color:#15181A !important; font-weight:600; font-size:14px; text-decoration:none; }
.oh-s-chips a:hover{ background:#FDECEE; color:#C21F12 !important; }
.oh-s-group + .oh-s-group{ border-top:1px solid #F0F1F3; margin-top:6px; padding-top:6px; }
.oh-s-gh{ font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:#6B7178; margin:8px 8px 4px; }
.oh-s-gh span{ color:#B1B6BC; }
.oh-s-item{ display:flex; align-items:center; gap:12px; padding:8px; border-radius:12px; text-decoration:none; color:#15181A !important; }
.oh-s-item:hover,.oh-s-item.is-active{ background:#F6F7F8; }
.oh-s-item.is-active{ box-shadow:inset 3px 0 0 #C21F12; }
.oh-s-item img,.oh-s-ic{ width:44px; height:44px; flex:0 0 44px; border-radius:10px; object-fit:contain; background:#F6F7F8; border:1px solid #ECEDEF; }
.oh-s-ic{ display:grid; place-items:center; color:#C21F12; }
.oh-s-tx{ flex:1; min-width:0; }
.oh-s-tx strong{ display:block; font-size:14.5px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.oh-s-tx small{ display:block; font-size:12.5px; color:#6B7178; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.oh-s-price{ font-weight:800; color:#C21F12; font-size:14px; white-space:nowrap; }
.oh-s-none{ padding:22px 12px; color:#6B7178; text-align:center; margin:0; }
.oh-s-all{ display:flex; align-items:center; justify-content:center; gap:6px; margin:10px 2px 0; padding:12px; border-radius:12px; background:#15181A; color:#fff !important; font-weight:700; text-decoration:none; }
.oh-s-all:hover{ background:#C21F12; }
@media (max-width:767.98px){
  .oh-search-panel{ margin:0; border-radius:0 0 18px 18px; }
  .oh-search-res{ max-height:calc(100vh - 80px); max-height:calc(100dvh - 80px); }
}

/* ── Hesap menüsü ── */
.oh-accmenu{ position:absolute; right:0; top:calc(100% + 10px); z-index:1060; min-width:230px; background:#fff; border:1px solid #ECEDEF; border-radius:14px; box-shadow:0 18px 44px rgba(16,19,22,.16); padding:6px; font-family:"Plus Jakarta Sans",system-ui,sans-serif; }
.oh-accmenu-who{ padding:10px 12px 8px; font-weight:800; color:#15181A; font-size:14px; border-bottom:1px solid #F0F1F3; margin-bottom:4px; }
.oh-accmenu a,.oh-accmenu button{ display:flex; align-items:center; gap:10px; width:100%; padding:9px 12px; border-radius:9px; color:#3A4047 !important; font-weight:600; font-size:14px; text-decoration:none; background:none; border:0; text-align:left; cursor:pointer; }
.oh-accmenu a:hover,.oh-accmenu button:hover,.oh-accmenu a:focus-visible{ background:#F6F7F8; color:#15181A !important; outline:none; }
.oh-accmenu .bi{ color:#C21F12; }

/* ── Bildirim ── */
.oh-toasts{ position:fixed; z-index:1300; left:50%; bottom:20px; transform:translateX(-50%); display:flex; flex-direction:column; gap:8px; width:min(440px, calc(100% - 24px)); pointer-events:none; }
.oh-toast{ pointer-events:auto; display:flex; align-items:center; gap:10px; padding:12px 12px 12px 14px; border-radius:14px; background:#15181A; color:#fff; box-shadow:0 14px 34px rgba(0,0,0,.28); font:600 14px/1.4 "Plus Jakarta Sans",system-ui,sans-serif; animation:ohToastIn .22s ease; }
.oh-toast .bi{ font-size:18px; color:#4ADE80; }
.oh-toast-err .bi{ color:#FF6B72; }
.oh-toast span{ flex:1; }
.oh-toast a{ color:#fff !important; font-weight:800; text-decoration:underline; white-space:nowrap; }
.oh-toast button{ background:none; border:0; color:#9AA0A6; font-size:20px; line-height:1; padding:0 4px; cursor:pointer; }
.oh-toast.is-out{ opacity:0; transform:translateY(8px); transition:opacity .2s, transform .2s; }
@keyframes ohToastIn{ from{ opacity:0; transform:translateY(10px); } }

/* ── Çerez çubuğu ── */
.oh-ck-bar{ position:fixed; z-index:1150; left:16px; right:16px; bottom:16px; max-width:980px; margin:0 auto; display:flex; align-items:center; gap:16px; padding:14px 16px; background:#fff; border:1px solid #E7E9EC; border-radius:16px; box-shadow:0 18px 48px rgba(16,19,22,.22); font:500 13.5px/1.5 "Plus Jakarta Sans",system-ui,sans-serif; color:#3A4047; animation:ohToastIn .3s ease; }
.oh-ck-txt{ display:flex; gap:12px; align-items:flex-start; flex:1; }
.oh-ck-txt .bi{ font-size:24px; color:#C21F12; }
.oh-ck-txt p{ margin:0; }
.oh-ck-txt a{ color:#C21F12; font-weight:700; }
.oh-ck-act{ display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.oh-ck-act .oh-btn{ min-height:40px; }
@media (max-width:767.98px){
  .oh-ck-bar{ flex-direction:column; align-items:stretch; left:8px; right:8px; bottom:8px; padding:14px; }
  .oh-ck-act{ display:grid; grid-template-columns:1fr 1fr; }
  /* 10.10.2026: telefonda "Kabul et" üstte tam genişlik, altında yan yana
     "Yalnız zorunlu" + "Tercihler" (ret seçeneği aynı ekranda, görünür kalır). */
  .oh-ck-act [data-ck-yes]{ grid-column:1 / -1; order:-1; min-height:46px; }
  .oh-ck-act [data-ck-none]{ order:1; }
  .oh-ck-act [data-ck-prefs]{ order:2; }
}
.oh-ck-modal{ position:fixed; inset:0; z-index:1250; display:grid; place-items:center; padding:16px; }
.oh-ck-bg{ position:absolute; inset:0; background:rgba(15,17,20,.5); }
.oh-ck-box{ position:relative; width:min(560px,100%); max-height:calc(100vh - 32px); overflow:auto; background:#fff; border-radius:18px; padding:20px; box-shadow:0 30px 70px rgba(0,0,0,.3); font:500 14px/1.5 "Plus Jakarta Sans",system-ui,sans-serif; color:#3A4047; outline:none; }
.oh-ck-box header{ display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.oh-ck-box h2{ font-size:19px; font-weight:800; color:#15181A; margin:0; }
.oh-ck-box a{ color:#C21F12; font-weight:700; }
.oh-ck-row{ display:flex; justify-content:space-between; align-items:center; gap:14px; padding:14px 0; border-top:1px solid #F0F1F3; cursor:pointer; }
.oh-ck-row strong{ display:block; color:#15181A; } .oh-ck-row small{ display:block; color:#6B7178; font-size:12.5px; }
.oh-ck-always{ font-size:12.5px; font-weight:700; color:#16794A; white-space:nowrap; }
.oh-ck-box footer{ display:flex; gap:10px; justify-content:flex-end; margin-top:10px; flex-wrap:wrap; }
.oh-switch{ appearance:none; -webkit-appearance:none; width:46px; height:26px; flex:0 0 46px; border-radius:99px; background:#D5D9DE; position:relative; cursor:pointer; transition:background .15s; }
.oh-switch::after{ content:""; position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.25); transition:transform .15s; }
.oh-switch:checked{ background:#C21F12; } .oh-switch:checked::after{ transform:translateX(20px); }
.oh-switch:focus-visible{ outline:3px solid rgba(194,31,18,.35); outline-offset:2px; }

/* "Sepete ekle" düğmesi durumları (ürün kartları, ürün sayfası) */
[data-oh-add].is-busy{ opacity:.7; pointer-events:none; }
[data-oh-add].is-added{ background:#16794A !important; border-color:#16794A !important; }

@media (prefers-reduced-motion:reduce){
  .oh-drawer-panel,.oh-drawer-bg,.oh-search-panel,.oh-search-bg,.oh-toast,.oh-ck-bar,.oh-switch,.oh-switch::after{ transition:none; animation:none; }
}

/* ── Liste kartlarında "Sepete ekle" (urunler.php, category.php) ──
   Kart bir <a>; düğme bağlantının içine konamaz (geçersiz HTML). Sarmalayıcı
   .oh-pc'nin içinde, kartın alt satırının sağ yarısına oturur; sol yarıda "İncele". */
.oh-pc{ position:relative; height:100%; }
.oh-pc > a{ height:100%; }
.oh-pc.has-add .oh-product-action{ margin-right:calc(50% + 4px); }
.oh-pc-add{ position:absolute; right:18px; bottom:18px; width:calc(50% - 22px); min-height:48px; display:inline-flex; align-items:center; justify-content:center; gap:7px;
  border:0; border-radius:10px; background:#C21F12; color:#fff; font:700 .94rem/1 "Plus Jakarta Sans",system-ui,sans-serif; cursor:pointer;
  transition:background-color .18s ease, transform .18s ease; z-index:2; }
.oh-pc-add:hover{ background:#C70511; }
.oh-pc-add:focus-visible{ outline:3px solid rgba(194,31,18,.4); outline-offset:2px; }
.oh-pc:hover > .oh-product-card{ border-color:#d5cac3; box-shadow:0 12px 30px rgba(26,21,18,.10); transform:translateY(-3px); }
.oh-pc:hover > .oh-pc-add{ transform:translateY(-3px); }
@media (max-width:575.98px){
  .oh-pc.has-add .oh-product-action{ margin-right:calc(50% + 2px); }
  .oh-pc-add{ right:12px; bottom:12px; width:calc(50% - 14px); min-height:44px; font-size:.82rem; }
}
/* Kategori sayfası (Bootstrap kartı): düğme kartın altına tam genişlik */
.oh-pc-bs.has-add > .card{ padding-bottom:58px; }
.oh-pc-bs .oh-pc-add{ left:12px; right:12px; bottom:12px; width:auto; min-height:42px; }

/* =====================================================================
   ÇEREZ — GRAFİT CAM (02.10.2026, kullanıcı: "arka planı şeffaf, siyah
   şeffaf, premium cam granit dursun"). Çubuk ve tercih penceresi koyu yarı
   saydam + arka plan bulanıklığı; yazılar açık, ince ışık kenarı.
   backdrop-filter desteklemeyen tarayıcıda daha koyu düz zemin (okunur kalır).
   ===================================================================== */
.oh-ck-bar{
  background:rgba(14,16,19,.94);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 24px 60px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.08);
  color:rgba(255,255,255,.82);
}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .oh-ck-bar{
    background:linear-gradient(135deg, rgba(26,28,32,.86), rgba(8,9,11,.80));
    -webkit-backdrop-filter:blur(18px) saturate(1.5);
    backdrop-filter:blur(18px) saturate(1.5);
  }
}
.oh-ck-txt .bi{ color:#FF4B55; filter:drop-shadow(0 2px 8px rgba(194,31,18,.45)); }
.oh-ck-txt a{ color:#fff; text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(255,75,85,.8); }
.oh-ck-bar .oh-btn-link{ color:rgba(255,255,255,.78) !important; }
.oh-ck-bar .oh-btn-link:hover{ color:#fff !important; }
.oh-ck-bar .oh-btn-ghost{ background:rgba(255,255,255,.08); color:#fff !important; border-color:rgba(255,255,255,.22); }
.oh-ck-bar .oh-btn-ghost:hover{ background:rgba(255,255,255,.16); border-color:rgba(255,255,255,.4); }
.oh-ck-bar .oh-btn-primary{ box-shadow:0 8px 20px rgba(194,31,18,.4); }

.oh-ck-bg{ background:rgba(8,9,11,.45); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); }
.oh-ck-box{
  background:rgba(16,18,21,.96); color:rgba(255,255,255,.8);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 30px 80px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.08);
}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .oh-ck-box{ background:linear-gradient(150deg, rgba(30,33,38,.90), rgba(10,11,13,.86)); -webkit-backdrop-filter:blur(22px) saturate(1.5); backdrop-filter:blur(22px) saturate(1.5); }
}
.oh-ck-box h2,.oh-ck-row strong{ color:#fff; }
.oh-ck-row{ border-top-color:rgba(255,255,255,.08); }
.oh-ck-row small{ color:rgba(255,255,255,.6); }
.oh-ck-box a{ color:#fff; text-decoration:underline; text-decoration-color:rgba(255,75,85,.8); text-underline-offset:3px; }
.oh-ck-always{ color:#4ADE80; }
.oh-ck-box .oh-x{ background:rgba(255,255,255,.08); color:#fff; }
.oh-ck-box .oh-x:hover{ background:rgba(255,255,255,.16); }
.oh-ck-box .oh-btn-ghost{ background:rgba(255,255,255,.08); color:#fff !important; border-color:rgba(255,255,255,.22); }
.oh-ck-box .oh-btn-ghost:hover{ background:rgba(255,255,255,.16); border-color:rgba(255,255,255,.4); }
.oh-ck-box .oh-switch{ background:rgba(255,255,255,.2); }
.oh-ck-box .oh-switch:checked{ background:#C21F12; }

/* =====================================================================
   FAVORİ KALBİ (02.10.2026) — [data-oh-fav] (oh-shop.js). Ürün kartlarında
   görselin sağ üstünde yuvarlak cam düğme; favorideyse dolu kırmızı kalp.
   ===================================================================== */
.oh-fav-btn{ display:inline-grid; place-items:center; width:40px; height:40px; border-radius:50%; border:1px solid rgba(20,15,10,.08);
  background:rgba(255,255,255,.92); color:#3A4047; font-size:18px; line-height:1; cursor:pointer; padding:0;
  box-shadow:0 4px 14px rgba(16,19,22,.12); transition:color .15s, background-color .15s, transform .15s; -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
.oh-fav-btn:hover{ color:#C21F12; transform:scale(1.06); }
.oh-fav-btn.is-fav{ color:#C21F12; }
.oh-fav-btn:focus-visible,.ud-fav-wide:focus-visible{ outline:3px solid rgba(194,31,18,.4); outline-offset:2px; }
.oh-pop .bi{ animation:ohPop .35s cubic-bezier(.3,1.6,.5,1); }
@keyframes ohPop{ 0%{ transform:scale(1); } 40%{ transform:scale(1.35); } 100%{ transform:scale(1); } }
.oh-pc-fav,.sh-pcard-fav{ position:absolute; top:12px; right:12px; z-index:3; }
.sh-pcard{ position:relative; }
@media (prefers-reduced-motion:reduce){ .oh-pop .bi{ animation:none; } .oh-fav-btn{ transition:none; } }
/* Telefonda dar iki sütunlu kartlar (02.10.2026): "İncele" gizli (kartın tamamı
   bağlantı), "Sepete ekle" alt satırda tam genişlik, tek satır. */
@media (max-width:575.98px){
  .oh-pc.has-add .oh-product-action{ visibility:hidden; }
  .oh-pc-add{ left:12px; right:12px; width:auto; white-space:nowrap; font-size:.8rem; gap:5px; }
  .oh-pc-fav{ top:8px; right:8px; width:36px; height:36px; font-size:16px; }
}
