/* ==========================================================================
   Super Viga — tek stil dosyası
   ==========================================================================
   Derleme adımı yok: bu dosya sunucuya olduğu gibi gider.

   TEMA
   ----
   Site KOYU açılır. Bu bir tercih değil, marka kimliği — yetişkin ürün satan
   bir mağazada koyu zemin hem göz yormaz hem de vitrin fotoğraflarını öne
   çıkarır. Ziyaretçi isterse üst menüden açık temaya geçer; seçim
   localStorage'da saklanır ve <html data-theme="light"> olarak uygulanır.

     :root                      → KOYU (varsayılan)
     :root[data-theme="light"]  → AÇIK (kullanıcı seçtiyse)

   Yeni renk eklerken İKİ bloğu da güncelle. Sabit renk kodu yazma; her zaman
   var(--token) kullan — yoksa tema değişince o parça bozuk kalır.

   ROL AYRIMI (karıştırması kolay, dikkat)
     --text      metin rengi        — koyuda açık, açıkta koyu (TERS DÖNER)
     --bg        sayfa zemini       — koyuda koyu, açıkta açık (TERS DÖNER)
     --deep      her iki temada da KOYU kalan yüzey (alt bilgi, duyuru şeridi)
     --on-deep   --deep üstündeki metin — her iki temada da açık
     --accent    vurgu (altın)      — her iki temada da benzer, tonu ayarlanır
   ========================================================================== */

/* ----------------------------------------------------------------- FONTLAR */
/*
   İKİ AİLE, NET GÖREV AYRIMI
   --------------------------
   Plus Jakarta Sans  → başlıklar. Geometrik, geniş omuzlu, 800'e kadar çıkan
                        değişken ağırlık. Büyük puntoda "cılız" görünmez.
   Inter              → gövde metni. Küçük puntoda en okunaklı seçeneklerden.

   Önceki kurulumda başlıklar Instrument Serif 400 idi: tek ve ince bir ağırlık.
   İnce serif küçük boyutta zarif durur ama 48px'lik bir başlıkta zayıf kalır ve
   sayfayı "hazır şablon" hissine iter. Premium algı ince harften değil, AĞIRLIK
   SIÇRAMASINDAN gelir: kalın başlık + normal gövde + sıkı harf aralığı.

   Her ikisi de kendi sunucumuzda barındırılır. CDN yok.
*/
@font-face {
  font-family: 'Jakarta';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('/assets/fonts/plus-jakarta-latin-wght.woff2') format('woff2-variations');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/assets/fonts/inter-latin-wght-normal.woff2') format('woff2-variations');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2122, U+2191, U+2193, U+2212;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/assets/fonts/inter-latin-ext-wght-normal.woff2') format('woff2-variations');
  unicode-range: U+0100-02AF, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF;
}

/* Alternatif başlık aileleri — önizlemedeki tipografi seçicisi bunları dener.
   Biri kalıcı seçilince diğerlerinin @font-face bloğu silinebilir. */
@font-face {
  font-family: 'Manrope';
  font-style: normal; font-weight: 400 800; font-display: swap;
  src: url('/assets/fonts/manrope-latin-wght.woff2') format('woff2-variations');
}
@font-face {
  font-family: 'InstrumentSans';
  font-style: normal; font-weight: 400 700; font-display: swap;
  src: url('/assets/fonts/instrument-latin-wght.woff2') format('woff2-variations');
}

/* ------------------------------------------------------------- TOKEN: KOYU */
:root {
  /* Zeminler — nötr kömür, hafif sıcak. Saf siyah (#000) kullanılmıyor:
     OLED'de keskin, fotoğraf kenarlarında "kesik" görünüyor. */
  --bg:          #0c0c0e;
  --surface:     #141418;
  --surface-2:   #1c1c22;
  --surface-3:   #24242c;
  --line:        #2c2c35;
  --line-soft:   #212129;

  /* Metin */
  --text:        #f1efea;
  --text-2:      #b8b5ae;
  --muted:       #85828c;

  /* Vurgu — KOYU ALTIN.
     Önceki ton (#d9b779) şampanyaydı: doygunluğu düşük olduğu için koyu
     zeminde yeşile kaçık ve soluk okunuyordu. Bu ton daha doygun ve daha
     koyu — siyah üstünde gerçek metal altın gibi durur.
     Kontrast: #0c0c0e zemininde 7.9:1 (WCAG AAA).

     Kırmızı bilinçli olarak kullanılmadı: bu kategoride kırmızı hızla
     "ucuz seks shop" hissi veriyor. */
  --accent:      #c9a227;   /* koyu altın */
  --accent-2:    #e2bc4b;   /* üstüne gelince parlar */
  --accent-dim:  rgba(201, 162, 39, .15);
  --on-accent:   #15120a;

  /* Ürün fotoğrafı zemini — İKİ temada da AÇIK kalır.
     Rol ayrımı: --surface tema ile ters döner, --product-bg dönmez.

     ⚠️ SAF BEYAZ OLMALI. Tedarikçi fotoğrafları beyaz fonda çekiliyor;
     buraya krem bir ton koyunca fotoğrafın kendi beyazı ile kutunun kremi
     arasında görünür bir kenar oluşuyor ve sayfa üç ayrı ton taşıyormuş gibi
     duruyordu. Beyaz seçilince fotoğrafın fonu kutuyla birleşir. */
  --product-bg:  #ffffff;

  /* Her iki temada da koyu kalan yüzey */
  --deep:        #121216;
  --on-deep:     #eae7e1;
  --deep-line:   #2a2a33;

  /* Durum renkleri */
  --ok:          #5fbf8b;
  --ok-bg:       rgba(95, 191, 139, .12);
  --warn:        #e0b355;
  --warn-bg:     rgba(224, 179, 85, .12);
  --danger:      #e2726b;
  --danger-bg:   rgba(226, 114, 107, .12);

  /* Gölge — koyu temada gölge yerine ışık halkası daha iyi okunuyor */
  --shadow-1:    0 1px 2px rgba(0,0,0,.5);
  --shadow-2:    0 8px 24px rgba(0,0,0,.45);
  --shadow-3:    0 20px 50px rgba(0,0,0,.55);
  --ring:        0 0 0 3px var(--accent-dim);

  /* Ölçü */
  --sp-1: .25rem;  --sp-2: .5rem;   --sp-3: .75rem;  --sp-4: 1rem;
  --sp-5: 1.5rem;  --sp-6: 2rem;    --sp-7: 3rem;    --sp-8: 4rem;  --sp-9: 6rem;

  --r-sm: 6px;  --r: 10px;  --r-lg: 16px;  --r-xl: 24px;  --r-full: 999px;

  --font:         'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --font-display: 'Jakarta', 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;

  /* Başlık ağırlıkları — tek yerden yönetilir ki hiyerarşi tutarlı kalsın */
  --w-display: 800;   /* hero */
  --w-h1:      750;
  --w-h2:      700;
  --w-h3:      650;

  /* Sıkı harf aralığı büyük puntoda "premium" hissin asıl kaynağıdır.
     Punto büyüdükçe negatifleşir — optik düzeltme. */
  --tr-display: -.035em;
  --tr-h1:      -.028em;
  --tr-h2:      -.022em;
  --tr-h3:      -.012em;

  --wrap: 1200px;
  --wrap-narrow: 760px;

  --ease: cubic-bezier(.4, 0, .2, 1);
  color-scheme: dark;
}

/* ------------------------------------------------------------- TOKEN: AÇIK */
:root[data-theme="light"] {
  --bg:          #faf8f4;
  --surface:     #ffffff;
  --surface-2:   #f4f1ea;
  --surface-3:   #ece7dd;
  --line:        #e0dad0;
  --line-soft:   #ece7de;

  --text:        #1a1815;
  --text-2:      #4a463f;
  --muted:       #7c7770;

  /* Açık temada altın koyulaşır — fildişi zeminde parlak altın okunmaz */
  --accent:      #8a6d16;
  --accent-2:    #6d5510;
  --accent-dim:  rgba(138, 109, 22, .13);
  --on-accent:   #fffdf5;

  --product-bg:  #ffffff;

  /* --deep ve --on-deep KASITLI OLARAK koyu kalır: alt bilgi ve duyuru şeridi
     iki temada da koyu görünsün, marka çıpası sabit dursun. */
  --deep:        #17161a;
  --on-deep:     #eae7e1;
  --deep-line:   #2e2d34;

  --ok:          #2f7d55;
  --ok-bg:       rgba(47, 125, 85, .1);
  --warn:        #9a6f14;
  --warn-bg:     rgba(154, 111, 20, .1);
  --danger:      #b23c34;
  --danger-bg:   rgba(178, 60, 52, .1);

  --shadow-1:    0 1px 2px rgba(26,24,21,.06);
  --shadow-2:    0 8px 24px rgba(26,24,21,.08);
  --shadow-3:    0 20px 50px rgba(26,24,21,.12);

  color-scheme: light;
}

/* ------------------------------------------------------------------- RESET */
*, *::before, *::after { box-sizing: border-box; }

* { margin: 0; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

body {
  font-family: var(--font);
  font-size: 16px;
  font-weight: 420;          /* değişken font: 400 ile 500 arası, ekranda daha dolgun */
  line-height: 1.65;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  /* Tema geçişi ani olmasın ama sayfa açılışında da titremesin */
  transition: background-color .25s var(--ease), color .25s var(--ease);
}

img, picture, video, canvas, svg { display: block; max-width: 100%; }
img { height: auto; }

input, button, textarea, select { font: inherit; color: inherit; }

button { cursor: pointer; background: none; border: 0; }

a { color: inherit; text-decoration: none; }

h1, h2, h3, h4 { line-height: 1.15; font-weight: 600; text-wrap: balance; }
p { text-wrap: pretty; }

:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: var(--r-sm);
}

/* Ekran okuyucuya görünür, gözle görünmez */
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Klavyeyle gezinende ilk durak */
.skip {
  position: absolute; inset-inline-start: -9999px; top: 0; z-index: 200;
  padding: var(--sp-3) var(--sp-4);
  background: var(--accent); color: var(--on-accent);
  border-radius: 0 0 var(--r) 0;
}
.skip:focus { inset-inline-start: 0; }

/* ------------------------------------------------------------------ DÜZEN */
.wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--sp-5); }
.wrap--narrow { max-width: var(--wrap-narrow); }

main { flex: 1; }

.section { padding-block: var(--sp-8); }
.section--tight { padding-block: var(--sp-6); }

.stack > * + * { margin-top: var(--sp-4); }
.stack--lg > * + * { margin-top: var(--sp-6); }

.row { display: flex; gap: var(--sp-4); align-items: center; }
.row--between { justify-content: space-between; }
.row--wrap { flex-wrap: wrap; }

.grid { display: grid; gap: var(--sp-5); }
.grid--2 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.grid--3 { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.grid--4 { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }

/* --------------------------------------------------------------- TİPOGRAFİ */
/* Başlık ölçeği.
   Ağırlık ve harf aralığı token'dan gelir; punto büyüdükçe satır yüksekliği
   düşer ve aralık sıkışır — Apple'ın tipografisini "premium" yapan şey budur,
   süslü bir harf biçimi değil. */
.display {
  font-family: var(--font-display);
  font-weight: var(--w-display);
  letter-spacing: var(--tr-display);
  line-height: 1.02;
  font-size: clamp(2.6rem, 6.4vw, 4.6rem);
}
.h1 {
  font-family: var(--font-display);
  font-weight: var(--w-h1);
  letter-spacing: var(--tr-h1);
  line-height: 1.08;
  font-size: clamp(2.1rem, 4.6vw, 3.1rem);
}
.h2 {
  font-family: var(--font-display);
  font-weight: var(--w-h2);
  letter-spacing: var(--tr-h2);
  line-height: 1.12;
  font-size: clamp(1.7rem, 3.1vw, 2.3rem);
}
.h3 {
  font-family: var(--font-display);
  font-weight: var(--w-h3);
  letter-spacing: var(--tr-h3);
  font-size: 1.15rem;
}

.lede { font-size: 1.125rem; color: var(--text-2); max-width: 62ch; }
.small { font-size: .875rem; }
.tiny  { font-size: .78rem; }
.muted { color: var(--muted); }
.center { text-align: center; }

.eyebrow {
  font-size: .74rem; font-weight: 600; letter-spacing: .14em;
  text-transform: uppercase; color: var(--accent);
}

/* ----------------------------------------------------------------- DÜĞMELER */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--sp-2);
  padding: .78rem 1.4rem;
  border-radius: var(--r-full);
  font-size: .93rem; font-weight: 650; line-height: 1;
  letter-spacing: -.01em;
  border: 1px solid transparent;
  transition: transform .12s var(--ease), background-color .18s var(--ease),
              border-color .18s var(--ease), opacity .18s var(--ease);
  white-space: nowrap;
}
.btn:active { transform: translateY(1px); }
.btn[disabled], .btn[aria-disabled="true"] { opacity: .45; pointer-events: none; }

.btn--primary { background: var(--accent); color: var(--on-accent); }
.btn--primary:hover { background: var(--accent-2); }

.btn--ghost { border-color: var(--line); color: var(--text); background: transparent; }
.btn--ghost:hover { border-color: var(--accent); color: var(--accent); }

.btn--solid { background: var(--surface-3); color: var(--text); }
.btn--solid:hover { background: var(--line); }

.btn--danger { background: var(--danger-bg); color: var(--danger); border-color: var(--danger); }

.btn--sm { padding: .5rem .9rem; font-size: .82rem; }
.btn--lg { padding: 1rem 2rem; font-size: 1rem; }
.btn--full { width: 100%; }

/* Yalnızca ikon taşıyan kare düğme (örn. paylaş). .btn--lg'den sonra tanımlı ki
   dolgusu kareye dönsün. Yükseklik komşu düğmelerle hizalı kalır. */
.btn--icon { padding: 0; flex: 0 0 auto; aspect-ratio: 1; width: 52px; }
.btn--icon.btn--sm { width: 40px; }
.btn--icon svg { width: 20px; height: 20px; }
/* Kısa "kopyalandı" geri bildirimi */
.btn--icon.is-copied { border-color: var(--ok); color: var(--ok); }

/* ------------------------------------------------------------------ ROZET */
.badge {
  display: inline-flex; align-items: center; gap: .35rem;
  padding: .25rem .6rem;
  border-radius: var(--r-full);
  font-size: .7rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
  background: var(--surface-3); color: var(--text-2);
}
.badge--accent { background: var(--accent-dim); color: var(--accent); }
.badge--ok     { background: var(--ok-bg);     color: var(--ok); }
.badge--warn   { background: var(--warn-bg);   color: var(--warn); }
.badge--danger { background: var(--danger-bg); color: var(--danger); }

/* ------------------------------------------------------------------- ÜST BAR */
/* Duyuru şeridi — iki temada da koyu kalır */
.announce {
  background: var(--deep); color: var(--on-deep);
  font-size: .82rem; text-align: center;
  padding: var(--sp-2) var(--sp-4);
  border-bottom: 1px solid var(--deep-line);
}
.announce strong { color: var(--accent); font-weight: 600; }

.header {
  position: sticky; top: 0; z-index: 60;
  background: color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter: saturate(160%) blur(14px);
  border-bottom: 1px solid var(--line-soft);
}
.header__inner {
  display: flex; align-items: center; gap: var(--sp-5);
  min-height: 68px;
}

.logo {
  font-family: var(--font-display);
  font-size: 1.4rem; font-weight: 800; letter-spacing: -.03em;
  display: flex; align-items: baseline; gap: .3rem;
}
.logo span { color: var(--accent); }

.nav { display: flex; gap: var(--sp-5); align-items: center; margin-inline-start: var(--sp-4); }
.nav a {
  font-size: .9rem; font-weight: 550; color: var(--text-2);
  letter-spacing: -.008em;
  padding-block: .4rem; position: relative;
  white-space: nowrap;   /* "Delay Sprays" dar ekranda iki satıra kırılmasın */
  transition: color .16s var(--ease);
}
.nav a:hover, .nav a[aria-current="page"] { color: var(--text); }
.nav a[aria-current="page"]::after {
  content: ''; position: absolute; inset-inline: 0; bottom: -2px; height: 2px;
  background: var(--accent); border-radius: 2px;
}

.header__tools { margin-inline-start: auto; display: flex; align-items: center; gap: var(--sp-2); }

.icon-btn {
  width: 40px; height: 40px; display: grid; place-items: center;
  border-radius: var(--r-full); color: var(--text-2);
  transition: background-color .16s var(--ease), color .16s var(--ease);
  position: relative;
}
.icon-btn:hover { background: var(--surface-2); color: var(--text); }
.icon-btn svg { width: 20px; height: 20px; }

.cart-count {
  position: absolute; top: 2px; inset-inline-end: 2px;
  min-width: 18px; height: 18px; padding-inline: 4px;
  display: grid; place-items: center;
  background: var(--accent); color: var(--on-accent);
  border-radius: var(--r-full);
  font-size: .68rem; font-weight: 700; line-height: 1;
}
.cart-count[hidden] { display: none; }

/* Dil seçici */
/* Banner araması — açılır panel (dil menüsüyle aynı davranış). */
.hsearch { position: relative; }
.hsearch__panel {
  position: absolute; inset-inline-end: 0; top: calc(100% + 8px);
  z-index: 55; width: min(340px, 92vw);
  display: none; gap: var(--sp-2);
  padding: var(--sp-3);
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r); box-shadow: var(--shadow-3);
}
/* Ödeme seçenekleri ayıracı ("veya") — PayPal ile fatura seçeneği arası */
.pay-sep { display: flex; align-items: center; gap: var(--sp-3); margin: var(--sp-4) 0; color: var(--muted); font-size: .82rem; text-transform: uppercase; letter-spacing: .08em; }
.pay-sep::before, .pay-sep::after { content: ''; flex: 1; height: 1px; background: var(--line); }

/* Checkout güven öğeleri */
.trust-note { display: flex; align-items: flex-start; gap: var(--sp-2); }
.trust-note svg { flex: 0 0 auto; width: 15px; height: 15px; margin-top: 1px; color: var(--accent); }
.trust-line { display: flex; align-items: center; justify-content: center; gap: var(--sp-2); text-align: center; }
.trust-line svg { flex: 0 0 auto; width: 13px; height: 13px; color: var(--muted); }
.agree { display: flex; align-items: flex-start; gap: var(--sp-2); cursor: pointer; line-height: 1.55; }
.agree input { accent-color: var(--accent); margin-top: 2px; flex: 0 0 auto; }
.pay-disabled { pointer-events: none; opacity: .45; filter: grayscale(.5); }

/* Canlı kargo seçenekleri (checkout özeti) */
.ship-opts { display: flex; flex-direction: column; gap: var(--sp-2); margin-bottom: var(--sp-4); }
.ship-opt {
  display: flex; align-items: center; gap: var(--sp-3);
  border: 1px solid var(--line); border-radius: var(--r-full);
  padding: .55rem .9rem; cursor: pointer;
  transition: border-color .15s var(--ease);
}
.ship-opt:hover { border-color: var(--accent); }
.ship-opt:has(input:checked) { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 8%, transparent); }
.ship-opt input { accent-color: var(--accent); }
.ship-opt__price { margin-inline-start: auto; font-weight: 650; }

/* PayPal buton iframe'leri: sayfa koyu color-scheme bildirince Chromium,
   iframe şeffaflığını bozup arkasına OPAK BEYAZ zemin basıyor. Konteynerde
   color-scheme'i açığa sabitlemek şeffaflığı geri getirir — butonlar koyu
   panelin üstünde zeminsiz oturur. */
#paypal-button, #express-button { color-scheme: light; }

/* ÖDEME EYLEM KOLONU — PayPal SDK buton yığınını ~300px sabit çizer;
   iframe'e genişlik dayatmak yükseklik hesabını bozup son butonu yarım
   bırakıyor. Bu yüzden SDK'ya dokunulmaz: Checkout, ayraç ve diğer eylem
   butonları da AYNI 300px kolona alınıp ortalanır. min() sigortası: panel
   300px'ten darsa hepsi birlikte daralır, hiçbir buton kenardan taşamaz. */
#paypal-button, #express-button { max-width: 100%; }

/* SDK yüklenirken önce 150px'lik ön-izleme karesi MUTLAK konumla çizilir;
   alan ayrılmazsa birkaç saniye alttaki açıklama yazısının üstüne biner
   (ilk açılışta özensiz/şüpheli görünüm). Baştan yer ayır: bindirme olmaz,
   butonlar gelince yerleşim de neredeyse hiç oynamaz. */
#paypal-button, #express-button { min-height: 150px; }

/* CSP, SDK'nın kendi enjekte ettiği <style> etiketini (nonce'suz) engelliyor;
   o etiketin yaptığı tek iş buydu: bileşen çerçevesi sarmalayıcıyı doldurur.
   Bu kural olmadan çerçeve 300×150 varsayılanında kalıyor — butonlar dar
   çiziliyor ve en alttaki (Pay Later) yarım kesiliyordu. Yükseklik, SDK'nın
   sarmalayıcıya yazdığı inline height'tan gelir. */
#paypal-button iframe.component-frame,
#express-button iframe.component-frame {
  display: block;
  width: 100%;
  height: 100%;
}

/* Yükleme karesi (prerender) ve "invisible" durumundaki çerçeveler GİZLİ.
   Bunları gizleyen SDK stilleri de CSP'ye takılıyor; kural gelmeyince kare,
   biçimsiz "PayPal / venmo / Pay Later" metni olarak alttaki yazıların
   üstüne biniyordu. Yüklenirken ayrılmış boşluk (min-height) sessiz kalır,
   butonlar hazır olunca tek seferde görünür. */
#paypal-button iframe.prerender-frame,
#express-button iframe.prerender-frame,
#paypal-button iframe.invisible,
#express-button iframe.invisible {
  display: none !important;
}
#paypal-button, #express-wrap,
.cart-layout .panel > .btn--full,
.cart-layout .panel > .pay-sep {
  display: flex; flex-direction: column;
  width: min(300px, 100%);
  margin-inline: auto;
}
.cart-layout .panel > a.btn--full { flex-direction: row; }

/* Siparişi TAMAMLA butonu — standart butondan ayrışsın: ikon + metin, kalın,
   belirgin gölge. Bu bir "finish" eylemi, sıradan bir buton değil. */
.btn--finish {
  display: inline-flex; align-items: center; justify-content: center;
  gap: var(--sp-2); font-weight: 700; letter-spacing: -.01em;
  box-shadow: 0 8px 24px color-mix(in srgb, var(--accent) 35%, transparent);
}
.btn--finish svg { width: 20px; height: 20px; flex: none; }
.btn--finish:hover { transform: translateY(-1px); }

.hsearch__panel[data-open] { display: flex; }
.hsearch__panel .input { flex: 1; min-width: 0; }
.hsearch__panel .btn { flex: none; }
/* Dar ekranda panel butona sağdan hizalanınca sola taşıyordu. Mobilde
   .hsearch'i static yapıp paneli STICKY HEADER'a göre konumlandırıyoruz:
   dikeyde header ile hareket eder, yatayda tüm header genişliğine yayılır. */
@media (max-width: 860px) {
  .hsearch { position: static; }
  .hsearch__panel { inset-inline: var(--sp-3); width: auto; top: calc(100% + 6px); }
}

.lang { position: relative; }
.lang__menu {
  position: absolute; inset-inline-end: 0; top: calc(100% + 8px);
  min-width: 160px; padding: var(--sp-2);
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r); box-shadow: var(--shadow-2);
  display: none;
}
.lang[open] .lang__menu, .lang__menu[data-open] { display: block; }
.lang__menu a {
  display: flex; justify-content: space-between; gap: var(--sp-3);
  padding: .5rem .7rem; border-radius: var(--r-sm); font-size: .88rem;
}
.lang__menu a:hover { background: var(--surface-2); }
.lang__menu a[aria-current="true"] { color: var(--accent); font-weight: 600; }

/* Mobil menü düğmesi */
.burger { display: none; }

/* --------------------------------------------------------------------- HERO */
.hero {
  position: relative;
  padding-block: clamp(var(--sp-7), 9vw, var(--sp-9));
  overflow: hidden;
}
.hero::before {
  /* Yumuşak altın ışık — koyu zeminde derinlik verir */
  content: ''; position: absolute; inset: 0;
  background:
    radial-gradient(60% 80% at 78% 18%, var(--accent-dim), transparent 62%),
    radial-gradient(50% 60% at 12% 88%, var(--accent-dim), transparent 58%);
  pointer-events: none;
}
/* Hero: metin + ürün HER ZAMAN yan yana (mobilde de web gibi, alt alta değil). */
.hero__inner {
  position: relative; display: grid;
  grid-template-columns: 1.1fr .9fr; gap: var(--sp-4); align-items: center;
}
@media (min-width: 900px) {
  .hero__inner { grid-template-columns: 1.05fr .95fr; gap: var(--sp-7); }
}
/* Dar ekranda iki sütun sığsın: başlık/metin/buton ölçekle küçülür. */
@media (max-width: 640px) {
  .hero__inner { gap: var(--sp-3); }
  .hero .display { font-size: clamp(1.4rem, 6.6vw, 2.4rem); line-height: 1.08; }
  .hero .lede    { font-size: .82rem; line-height: 1.5; }
  .hero .eyebrow { font-size: .6rem; }
  .hero .btn--lg { padding: .7rem 1rem; font-size: .82rem; }
  .hero .row--wrap { gap: var(--sp-2); }
  .hero .tiny    { font-size: .66rem; }
}
.hero__art {
  /* SABİT kare kutu: tüm slaytlarda birebir aynı boyut/konum. Sadece içindeki
     ürün değişir; beyaz kare üründen ürüne asla oynamaz. */
  aspect-ratio: 1 / 1;
  width: 100%;
  margin-inline: auto;
  border-radius: var(--r-xl);
  /* Zemin: merkez saf beyaz, kenarlar hafifçe griye döner. Böylece tam beyaz
     kenarlı / kare köşeli (PNG) bir ürün gelse bile kutunun içinde erimez. */
  background:
    radial-gradient(135% 135% at 50% 28%,
      var(--product-bg) 62%,
      color-mix(in srgb, var(--product-bg) 90%, #737884) 100%);
  border: 1px solid var(--line);
  /* Dış gölge + iç hairline + yumuşak iç vignet: ürünün kenarı her zaman
     çerçevelenir, beyaz zeminde kaybolmaz. */
  box-shadow:
    var(--shadow-3),
    inset 0 0 0 1px rgba(15, 18, 22, .06),
    inset 0 0 46px rgba(15, 18, 22, .05);
  overflow: hidden;
  /* Küçük padding → ürüne daha fazla büyüme alanı. Slider görselleri 1000x1000
     ve ~%9 iç boşlukla üretildiğinden ürün yine de kenara yapışmaz.
     NOT: display:grid + height:100% görseli alttan kırpıyordu; blok düzen +
     object-fit:contain kullanılıyor (simetrik ortalar, asla kırpmaz). */
  padding: clamp(var(--sp-2), 2vw, var(--sp-4));
}
/* Görselin TAMAMI görünür (contain, kırpma yok), padding içinde ortalanır. */
.hero__art img { width: 100%; height: 100%; object-fit: contain; object-position: center; }

/* --------------------------------------------------------------- HERO SLIDER
   Kaydırmalı slider. Slaytlar yan yana dizilir (flex satır), .hero__track
   translateX ile kayar. Tek slayt varken (varsayılan) hiçbir animasyon/kontrol
   görünmez — düzen eskisiyle birebir aynı kalır. */
.hero__viewport { position: relative; overflow: hidden; touch-action: pan-y; }
.hero__track {
  display: flex;
  transition: transform .7s var(--ease);
  will-change: transform;
}
.hero__slide {
  flex: 0 0 100%;
  min-width: 100%;
  /* Aktif olmayan slayt hafif soluk — göz aktif olana odaklanır (elit his) */
  transition: opacity .7s var(--ease);
}
.hero__slide:not(.is-active) { opacity: .35; }
/* Tek slaytta (varsayılan) sönümleme olmasın */
.hero__track > .hero__slide:only-child { opacity: 1; }

/* İçerik girişi — aktif slaytta başlık ve görsel yumuşakça belirir */
@media (prefers-reduced-motion: no-preference) {
  .hero__slide .stack > *,
  .hero__slide .hero__art { opacity: 0; transform: translateY(14px); }
  .hero__slide.is-active .stack > *,
  .hero__slide.is-active .hero__art {
    opacity: 1; transform: none;
    transition: opacity .6s var(--ease), transform .6s var(--ease);
  }
  .hero__slide.is-active .stack > *:nth-child(1) { transition-delay: .05s; }
  .hero__slide.is-active .stack > *:nth-child(2) { transition-delay: .12s; }
  .hero__slide.is-active .stack > *:nth-child(3) { transition-delay: .19s; }
  .hero__slide.is-active .stack > *:nth-child(4) { transition-delay: .26s; }
  .hero__slide.is-active .stack > *:nth-child(5) { transition-delay: .33s; }
  .hero__slide.is-active .hero__art { transition-delay: .12s; }
}

/* Oklar — kenarlarda, dikey ortada */
.hero__nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  z-index: 3;
  width: 44px; height: 44px;
  display: grid; place-items: center;
  border-radius: var(--r-full);
  background: color-mix(in srgb, var(--surface) 82%, transparent);
  border: 1px solid var(--line);
  color: var(--text);
  cursor: pointer;
  backdrop-filter: blur(6px);
  transition: background .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease);
}
.hero__nav:hover { border-color: var(--accent); color: var(--accent); }
.hero__nav:active { transform: translateY(-50%) scale(.94); }
.hero__nav svg { width: 20px; height: 20px; }
.hero__nav--prev { left: clamp(var(--sp-2), 2vw, var(--sp-5)); }
.hero__nav--prev svg { transform: scaleX(-1); }
.hero__nav--next { right: clamp(var(--sp-2), 2vw, var(--sp-5)); }

/* Noktalar — altta ortada */
.hero__dots {
  position: absolute; z-index: 3;
  left: 0; right: 0; bottom: clamp(var(--sp-3), 3vw, var(--sp-5));
  display: flex; justify-content: center; gap: var(--sp-2);
}
.hero__dots button {
  width: 9px; height: 9px; padding: 0;
  border-radius: var(--r-full);
  border: 1px solid var(--accent);
  background: transparent;
  cursor: pointer;
  transition: width .3s var(--ease), background .2s var(--ease);
}
.hero__dots button.is-active { width: 26px; background: var(--accent); }

/* Mobil: okları gizle (kaydırma parmağıyla yapılır), noktalar kalır */
@media (max-width: 700px) {
  .hero__nav { display: none; }
  .hero__slide:not(.is-active) { opacity: 1; }  /* dar ekranda tam görünür */
}

/* -------------------------------------------------------------- GÜVEN ŞERİDİ */
.trust {
  display: grid; gap: var(--sp-4);
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  padding: var(--sp-5);
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r-lg);
}
.trust__item { display: flex; gap: var(--sp-3); align-items: flex-start; }
.trust__item svg { width: 22px; height: 22px; color: var(--accent); flex: none; margin-top: 2px; }
.trust__item strong { display: block; font-size: .92rem; }
.trust__item span { font-size: .82rem; color: var(--muted); }

/* ---------------------------------------------------------------- ÜRÜN KARTI */
.card {
  display: flex; flex-direction: column;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  overflow: hidden;
  transition: border-color .18s var(--ease), transform .18s var(--ease),
              box-shadow .18s var(--ease);
}
.card:hover { border-color: var(--accent); transform: translateY(-3px); box-shadow: var(--shadow-2); }

/* Ürün fotoğrafları BEYAZ ZEMİNLİ çekiliyor (tedarikçi görselleri böyle gelir).
   Bu yüzden görsel yüzeyi her iki temada da açık kalır ve fotoğraf "vitrin
   kutusunda" durur: koyu sayfada beyaz bir dikdörtgenin sırıtması yerine,
   kasıtlı ve tutarlı bir vitrin etkisi olur. object-fit: contain kullanılır —
   cover, uzun tüp ve kutu fotoğraflarının kenarını kırpıyordu. */
.card__media {
  position: relative; aspect-ratio: 1;
  background: var(--product-bg);
  overflow: hidden;
  padding: var(--sp-4);
}
.card__media img {
  width: 100%; height: 100%; object-fit: contain;
  transition: transform .4s var(--ease);
}
.card:hover .card__media img { transform: scale(1.05); }

.card__flags { position: absolute; top: var(--sp-3); inset-inline-start: var(--sp-3); display: flex; gap: var(--sp-2); }

.card__body { padding: var(--sp-4); display: flex; flex-direction: column; gap: var(--sp-2); flex: 1; }
.card__brand { font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.card__name {
  font-family: var(--font-display);
  font-size: 1.02rem; font-weight: 700; line-height: 1.25;
  letter-spacing: -.015em;
}
.card__blurb { font-size: .84rem; color: var(--muted); flex: 1; }

.card__foot { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); margin-top: var(--sp-2); }
.price {
  font-family: var(--font-display);
  font-size: 1.12rem; font-weight: 750; letter-spacing: -.02em;
  font-variant-numeric: tabular-nums;
}
.price s { font-size: .85rem; font-weight: 400; color: var(--muted); margin-inline-end: .4rem; }

/* --------------------------------------------------------------- KATEGORİ KART */
/* Kategori ve marka kutusu.
   Görsel YOKKEN de düzgün görünmeli — yeni bir kategori açıldığında fotoğrafı
   henüz yüklenmemiş olur ve boş gri bir dikdörtgen sitenin tamamını ucuzlatır.
   Bu yüzden zemin, ince altın ışıklı bir gradyandır; üstüne görsel gelirse
   görsel kazanır, gelmezse kutu yine de kasıtlı görünür. */
.tile {
  position: relative; display: block;
  aspect-ratio: 3 / 2;
  border-radius: var(--r-lg); overflow: hidden;
  border: 1px solid var(--line);
  background:
    radial-gradient(120% 90% at 78% 12%, var(--accent-dim), transparent 62%),
    linear-gradient(150deg, var(--surface-2), var(--surface-3));
  transition: border-color .18s var(--ease), transform .18s var(--ease);
}
.tile:hover { border-color: var(--accent); transform: translateY(-2px); }
.tile img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease); }
.tile:hover img { transform: scale(1.05); }
.tile__label {
  position: absolute; inset: auto 0 0 0;
  padding: var(--sp-6) var(--sp-4) var(--sp-4);
  background: linear-gradient(to top, rgba(8,8,10,.94) 30%, transparent);
  color: #f1efea;
}
/* Görsel yoksa gradyan perdeye gerek yok — zemin zaten koyu */
.tile:not(:has(img)) .tile__label { background: none; }
.tile__label strong { display: block; font-size: 1.05rem; }
.tile__label span { font-size: .8rem; opacity: .8; }

/* ----------------------------------------------------------- MARKA ŞERİDİ
   Marka logoları tek sıra hâlinde kendiliğinden kayar. Logo, aydınlık bir
   "vitrin" kutusuna TAM SIĞAR (object-fit yerine max-width/height + contain):
   kart boyutu sabit kalır, logo kırpılmaz, PNG ya da JPG fark etmez.
   Kenarlarda yumuşak solma (mask) ile şerit sonsuzmuş gibi görünür. */
.brandmarquee {
  position: relative; overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.brandmarquee__track {
  display: flex; width: max-content; gap: var(--sp-4);
  animation: brand-scroll var(--brand-dur, 30s) linear infinite;
}
.brandmarquee:hover .brandmarquee__track,
.brandmarquee:focus-within .brandmarquee__track { animation-play-state: paused; }
@keyframes brand-scroll { to { transform: translateX(-50%); } }

.brandcard {
  flex: 0 0 auto; width: clamp(140px, 40vw, 172px);
  display: flex; flex-direction: column; gap: var(--sp-2);
  text-align: center;
}
/* KARE kutu: hangi en-boy oranında logo gelirse gelsin object-fit:contain ile
   tam ortalanır (alt-üst / sağ-sol eşit boşluk), asla taşmaz, asla kırpılmaz. */
.brandcard__logo {
  aspect-ratio: 1 / 1;
  border-radius: var(--r-lg);
  background: var(--product-bg);
  border: 1px solid var(--line);
  display: grid; place-items: center;
  padding: var(--sp-4); overflow: hidden;
  transition: border-color .18s var(--ease), transform .18s var(--ease);
}
.brandcard:hover .brandcard__logo { border-color: var(--accent); transform: translateY(-2px); }
.brandcard__logo img { width: 100%; height: 100%; object-fit: contain; }

/* --------------------------------------------- KAYAN SLOGAN ŞERİDİ (hero altı)
   İnce, ikon + mesaj, sürekli kayar. Renkler token'lardan gelir → koyu ve açık
   temada kendiliğinden uyumlu. brand-scroll keyframe'ini paylaşır. */
.promostrip {
  overflow: hidden;
  border-block: 1px solid var(--line);
  background: var(--surface);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
}
.promostrip__track {
  display: flex; width: max-content; align-items: center;
  gap: var(--sp-8);
  padding: .55rem var(--sp-5);
  animation: brand-scroll var(--promo-dur, 30s) linear infinite;
}
.promostrip:hover .promostrip__track { animation-play-state: paused; }
.promostrip__item {
  display: inline-flex; align-items: center; gap: var(--sp-2);
  flex: none; white-space: nowrap;
  font-size: .82rem; font-weight: 550; letter-spacing: .01em;
  color: var(--text-2);
}
.promostrip__item svg { width: 15px; height: 15px; flex: none; color: var(--accent); }
@media (prefers-reduced-motion: reduce) {
  .promostrip__track { animation: none; flex-wrap: wrap; width: auto; justify-content: center; }
  .promostrip { mask-image: none; -webkit-mask-image: none; }
}

/* -------------------------------------- NASIL KULLANILIR + GÜVENLİK KARTLARI
   Ana sayfa altı: solda Krem/Sprey dinamik filtreli kullanım adımları,
   sağda "Read before use" güvenlik kartı. Mobilde alt alta. */
/* İki kart EŞİT genişlikte yan yana ve eşit boyda (stretch). */
.usage-grid { display: grid; gap: var(--sp-5); align-items: stretch; }
@media (min-width: 900px) {
  .usage-grid { grid-template-columns: 1fr 1fr; }
}
.usage-steps { list-style: none; display: flex; flex-direction: column; gap: var(--sp-3); margin-top: var(--sp-4); }
/* display:flex, HTML hidden özniteliğini ezer — gizli panel gerçekten gizlensin */
.usage-steps[hidden] { display: none; }
.usage-steps li { display: flex; gap: var(--sp-3); align-items: flex-start; font-size: .9rem; line-height: 1.65; color: var(--text-2); }
.usage-steps__num {
  flex: none; width: 26px; height: 26px; border-radius: var(--r-full);
  display: grid; place-items: center; margin-top: 1px;
  background: var(--accent-dim); color: var(--accent);
  font-size: .78rem; font-weight: 800; font-variant-numeric: tabular-nums;
}
/* "How to use" kartıyla AYNI görsel dil: düz panel, h3 başlık (yanında küçük
   kalkan), maddeler usage-steps rozet düzeninde (numara yerine ✓ ikonu). */
.safety-card__head { display: flex; align-items: center; gap: var(--sp-2); }
.safety-card__icon {
  flex: none; display: grid; place-items: center;
  width: 26px; height: 26px; border-radius: var(--r-full);
  background: var(--accent-dim); color: var(--accent);
}
.safety-card__icon svg { width: 14px; height: 14px; }
.usage-steps--safety { margin-top: var(--sp-4); }
.usage-steps__num svg { width: 13px; height: 13px; }

/* ------------------------------------------------------------------ FAVORİLER
   Kalp: kartın sağ üstünde. Seçim localStorage'da (hesap gerekmez).
   is-fav durumunda kalp dolu altın olur. */
.card { position: relative; }
.card__fav {
  position: absolute; top: var(--sp-3); inset-inline-end: var(--sp-3); z-index: 3;
  width: 34px; height: 34px; border-radius: var(--r-full);
  display: grid; place-items: center; cursor: pointer;
  background: color-mix(in srgb, var(--surface) 82%, transparent);
  border: 1px solid var(--line); color: var(--muted);
  backdrop-filter: blur(6px);
  transition: color .15s var(--ease), border-color .15s var(--ease), transform .15s var(--ease);
}
.card__fav svg { width: 17px; height: 17px; }
.card__fav:hover { color: var(--accent); border-color: var(--accent); transform: scale(1.08); }
.card__fav[aria-pressed="true"] { color: var(--accent); border-color: var(--accent); }
.card__fav[aria-pressed="true"] svg { fill: var(--accent); }
/* Masaüstü nav'da favori linki gizli (header ikonundan erişilir);
   dar ekranda header ikonu sığmaz → mobil menüde link görünür. */
.nav__fav { display: none; }
@media (max-width: 860px) {
  .icon-btn--fav { display: none; }
  .nav--open .nav__fav { display: block; }
}

/* -------------------------------------------------------------- SSS AKORDEONU
   Sorular dışarıda; tıklayınca cevap altında açılır. Panelden yönetilir. */
.faq-list { display: flex; flex-direction: column; gap: var(--sp-3); }
.faq-item {
  border: 1px solid var(--line); border-radius: var(--r-lg);
  background: var(--surface);
  transition: border-color .18s var(--ease);
}
.faq-item[open], .faq-item:hover { border-color: color-mix(in srgb, var(--accent) 45%, var(--line)); }
.faq-item summary {
  display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4);
  padding: var(--sp-4) var(--sp-5);
  cursor: pointer; list-style: none; user-select: none;
  font-weight: 600; font-size: .98rem;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::marker { content: ''; }
.faq-item__chev {
  flex: none; width: 26px; height: 26px; border-radius: var(--r-full);
  display: grid; place-items: center;
  background: var(--accent-dim); color: var(--accent);
  font-weight: 700; transition: transform .2s var(--ease);
}
.faq-item[open] .faq-item__chev { transform: rotate(45deg); }
.faq-item p {
  padding: 0 var(--sp-5) var(--sp-4);
  color: var(--muted); line-height: 1.75; font-size: .92rem;
  max-width: 75ch;
}

/* ------------------------------------------------------- MARKA AKORDEONU
   Markalar sayfası: kapalıyken yalnızca marka görünür, tıklayınca ürünleri
   altında açılır. Native <details> — JS yok, her cihazda çalışır. */
.brand-acc-list { display: flex; flex-direction: column; gap: var(--sp-3); }
.brand-acc {
  border: 1px solid var(--line); border-radius: var(--r-lg);
  background: var(--surface); overflow: hidden;
  transition: border-color .18s var(--ease);
}
.brand-acc[open], .brand-acc:hover { border-color: color-mix(in srgb, var(--accent) 45%, var(--line)); }
.brand-acc__head {
  display: flex; align-items: center; gap: var(--sp-4);
  padding: var(--sp-4) var(--sp-5); cursor: pointer; list-style: none;
  user-select: none;
}
.brand-acc__head::-webkit-details-marker { display: none; }
.brand-acc__head::marker { content: ''; }
.brand-acc[open] .brand-acc__head { border-bottom: 1px solid var(--line); }
.brand-acc__logo {
  width: 54px; height: 54px; flex: none; border-radius: var(--r);
  background: var(--product-bg); border: 1px solid var(--line);
  display: grid; place-items: center; overflow: hidden; padding: 6px;
}
.brand-acc__logo img { width: 100%; height: 100%; object-fit: contain; }
.brand-acc__mono { font-family: var(--font-display); font-weight: 700; color: var(--accent); font-size: 1.3rem; }
.brand-acc__title { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.brand-acc__title b { font-family: var(--font-display); font-size: 1.12rem; letter-spacing: -.01em; }
.brand-acc__chev { flex: none; color: var(--muted); }
.brand-acc__chev svg { display: block; width: 18px; height: 18px; transform: rotate(90deg); transition: transform .25s var(--ease); }
.brand-acc[open] .brand-acc__chev svg { transform: rotate(-90deg); color: var(--accent); }
.brand-acc__body { padding: var(--sp-5); }
.brand-acc__foot { display: flex; justify-content: center; margin-top: var(--sp-5); }

/* ---------------------------------------------------- NASIL ÇALIŞIR — ADIMLAR
   İkonlu, numaralı, dikey birbirine bağlı adımlar (kuru metin yerine). */
.steps { list-style: none; display: flex; flex-direction: column; }
.step {
  display: grid; grid-template-columns: 56px 1fr; gap: var(--sp-5);
  padding-bottom: var(--sp-7); position: relative;
}
.step:last-child { padding-bottom: 0; }
/* Adımları birbirine bağlayan dikey çizgi */
.step:not(:last-child)::before {
  content: ''; position: absolute; inset-inline-start: 27px; top: 60px; bottom: 0;
  width: 2px; background: var(--line);
}
.step__badge {
  position: relative; z-index: 1;
  width: 56px; height: 56px; border-radius: var(--r-full);
  display: grid; place-items: center;
  background: var(--accent-dim); color: var(--accent);
  border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--line));
}
.step__badge svg { width: 24px; height: 24px; }
.step__num {
  position: absolute; top: -6px; inset-inline-end: -6px;
  width: 22px; height: 22px; border-radius: var(--r-full);
  background: var(--accent); color: var(--on-accent);
  font-size: .72rem; font-weight: 800; display: grid; place-items: center;
  font-variant-numeric: tabular-nums;
}
.step__text { padding-top: var(--sp-1); }
.step__title { font-family: var(--font-display); font-size: 1.2rem; letter-spacing: -.01em; margin-bottom: var(--sp-2); }
.step__body { color: var(--muted); line-height: 1.7; }
@media (max-width: 560px) {
  .step { grid-template-columns: 44px 1fr; gap: var(--sp-4); }
  .step__badge { width: 44px; height: 44px; }
  .step__badge svg { width: 20px; height: 20px; }
  .step__num { width: 20px; height: 20px; }
  .step:not(:last-child)::before { inset-inline-start: 21px; top: 48px; }
}

/* ---- Info açılır kutusu (iletişim sayfası) — popover, düzeni bozmaz ---- */
.infobox { position: relative; }
.infobox__toggle {
  display: inline-flex; align-items: center; gap: var(--sp-2);
  cursor: pointer; list-style: none; white-space: nowrap;
  color: var(--text-2); font-size: .86rem;
  padding: .38rem .7rem; border: 1px solid var(--line); border-radius: var(--r-full);
  transition: color .15s var(--ease), border-color .15s var(--ease);
}
.infobox__toggle::-webkit-details-marker { display: none; }
.infobox__toggle::marker { content: ''; }
.infobox__toggle svg { width: 16px; height: 16px; color: var(--accent); flex: none; }
.infobox__toggle:hover,
.infobox[open] .infobox__toggle { color: var(--text); border-color: color-mix(in srgb, var(--accent) 40%, var(--line)); }
.infobox__body {
  position: absolute; z-index: 30; inset-inline-end: 0; top: calc(100% + 8px);
  width: min(360px, 86vw);
  padding: var(--sp-4);
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r); box-shadow: var(--shadow-3);
  font-size: .9rem; line-height: 1.6;
}
.infobox__body p + p { margin-top: var(--sp-3); }

/* ---- İnsan doğrulaması (2 + 2 = ?) ---- */
.field--human { max-width: 260px; }
.human-check { display: flex; align-items: center; gap: var(--sp-3); }
.human-check__q {
  font-family: var(--font-display); font-size: 1.15rem; font-weight: 700;
  white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--text);
}
.human-check .input { max-width: 110px; }
.brandcard__mono {
  font-family: var(--font-display); font-weight: var(--w-h2);
  font-size: 2rem; color: var(--muted);
}
.brandcard__name { font-size: .82rem; color: var(--text-2); line-height: 1.35; }
.brandcard__name b { display: block; color: var(--text); font-size: .95rem; }

/* Markalar sayfası: aynı logo kartlarının duyarlı ızgarası (kayan değil) */
.brandgrid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: var(--sp-5);
}
.brandgrid .brandcard { width: auto; }

/* Hareket azalt tercihinde kayma durur; kartlar ortalanıp sarar */
@media (prefers-reduced-motion: reduce) {
  .brandmarquee { -webkit-mask-image: none; mask-image: none; }
  .brandmarquee__track { animation: none; width: auto; flex-wrap: wrap; justify-content: center; }
}

/* ---------------------------------------------------- GENEL KAYAN ŞERİT
   Kategoriler ve öne çıkan ürünler için tek sıra, ortalı, kendiliğinden kayan
   şerit (marka şeridiyle aynı mantık, brand-scroll keyframe'ini paylaşır).
   İçerik ekrandan kısaysa da ortalı durur; çoğaldıkça yayılır. Fareyle üstüne
   gelince durur ki ürün kartındaki "Sepete ekle" tıklanabilsin. */
.marquee {
  position: relative; overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.marquee__track {
  display: flex; width: max-content; gap: var(--sp-4);
  justify-content: center;
  /* Ürün şeridi TERS yönde (sağa) kayar — marka şeridi sola kaydığı için ikisi
     zıt yönde akar, aynı yöne kayıp monoton görünmez. Aynı brand-scroll
     keyframe'i reverse ile ters çalışır; kopyalanmış içerik yüzünden döngü
     yine kusursuzdur. */
  animation: brand-scroll var(--marq-dur, 40s) linear infinite reverse;
}
.marquee:hover .marquee__track,
.marquee:focus-within .marquee__track { animation-play-state: paused; }

.marquee__cat  { flex: 0 0 auto; width: clamp(230px, 66vw, 300px); }
.marquee__prod { flex: 0 0 auto; width: clamp(240px, 72vw, 268px); }
.marquee__prod .card { height: 100%; }

@media (prefers-reduced-motion: reduce) {
  .marquee { -webkit-mask-image: none; mask-image: none; }
  .marquee__track { animation: none; width: auto; flex-wrap: wrap; }
}

/* ------------------------------------------------------------------ FORMLAR */
.field { display: flex; flex-direction: column; gap: var(--sp-2); }
.field > label { font-size: .85rem; font-weight: 500; color: var(--text-2); }

.input, .select, .textarea {
  width: 100%;
  padding: .72rem .9rem;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r);
  font-size: .95rem;
  transition: border-color .16s var(--ease), box-shadow .16s var(--ease);
}
.input:focus, .select:focus, .textarea:focus {
  outline: none; border-color: var(--accent); box-shadow: var(--ring);
}
.input[aria-invalid="true"] { border-color: var(--danger); }
.textarea { min-height: 130px; resize: vertical; }

.select {
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%),
                    linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: calc(100% - 18px) 55%, calc(100% - 13px) 55%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  padding-inline-end: 2.4rem;
}

.check { display: flex; gap: var(--sp-3); align-items: flex-start; font-size: .9rem; cursor: pointer; }
.check input { width: 18px; height: 18px; accent-color: var(--accent); flex: none; margin-top: 2px; }

.hint { font-size: .8rem; color: var(--muted); }
.error-text { font-size: .82rem; color: var(--danger); }

/* ------------------------------------------------------------------- UYARI */
.notice {
  padding: var(--sp-4);
  border: 1px solid var(--line);
  border-inline-start: 3px solid var(--muted);
  border-radius: var(--r);
  background: var(--surface);
  font-size: .9rem;
}
.notice--ok     { border-inline-start-color: var(--ok);     background: var(--ok-bg); }
.notice--warn   { border-inline-start-color: var(--warn);   background: var(--warn-bg); }
.notice--danger { border-inline-start-color: var(--danger); background: var(--danger-bg); }
.notice--info   { border-inline-start-color: var(--accent); background: var(--accent-dim); }

/* ------------------------------------------------------------------- PANEL */
.panel {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: var(--sp-5);
}
.panel--flush { padding: 0; overflow: hidden; }

/* ------------------------------------------------------------------- TABLO */
.table-wrap { overflow-x: auto; }
.table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.table th, .table td { padding: .7rem .8rem; text-align: start; border-bottom: 1px solid var(--line-soft); }
.table th { font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.table tbody tr:hover { background: var(--surface-2); }
.table td.num, .table th.num { text-align: end; font-variant-numeric: tabular-nums; }

/* -------------------------------------------------------------------- SEPET */
.line-item {
  display: grid;
  grid-template-columns: 84px 1fr auto;
  gap: var(--sp-4);
  padding-block: var(--sp-4);
  border-bottom: 1px solid var(--line-soft);
  align-items: center;
}
.line-item__img {
  width: 84px; aspect-ratio: 1; border-radius: var(--r);
  background: var(--product-bg); overflow: hidden; padding: 6px;
}
.line-item__img img { width: 100%; height: 100%; object-fit: contain; }

.qty { display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: var(--r-full); }
.qty button { width: 34px; height: 34px; display: grid; place-items: center; color: var(--text-2); }
.qty button:hover { color: var(--accent); }
.qty input {
  width: 40px; text-align: center; border: 0; background: none;
  font-variant-numeric: tabular-nums; font-weight: 600;
}
.qty input::-webkit-outer-spin-button, .qty input::-webkit-inner-spin-button { appearance: none; }

.totals { display: flex; flex-direction: column; gap: var(--sp-3); }
.totals__row { display: flex; justify-content: space-between; font-size: .92rem; }
.totals__row--big {
  font-size: 1.15rem; font-weight: 700;
  padding-top: var(--sp-3); border-top: 1px solid var(--line);
}

/* Ücretsiz kargo çubuğu */
.freebar { height: 6px; background: var(--surface-3); border-radius: var(--r-full); overflow: hidden; }
.freebar > i { display: block; height: 100%; background: var(--accent); border-radius: inherit; transition: width .4s var(--ease); }

/* Sepet düzeni: solda ürünler, sağda özet. Mobilde (≤860px) tek sütuna iner —
   yoksa özet paneli 280px'i zorlayıp ürün sütununu ezerdi. */
.cart-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(280px, 1fr);
  gap: var(--sp-6);
  align-items: start;
}

/* Ödeme düzeni: solda adres formu, sağda özet/PayPal. Sepetle aynı mantık —
   mobilde (≤860px) tek sütuna iner. Eskiden bu ızgara satır içi stille
   kuruluydu; inline stil medya sorgusuyla ezilemediğinden dar ekranda iki
   sütun üst üste biniyordu. Sınıfa taşındı ki mobilde düzgün katlansın. */
.checkout-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(300px, 1fr);
  gap: var(--sp-6);
  align-items: start;
}

/* -------------------------------------------------------------- ÜRÜN SAYFASI */
.product { display: grid; gap: var(--sp-7); }
@media (min-width: 900px) { .product { grid-template-columns: 1.05fr .95fr; align-items: start; } }

.gallery__main {
  position: relative;
  aspect-ratio: 1; border-radius: var(--r-lg); overflow: hidden;
  background: var(--product-bg); border: 1px solid var(--line);
  padding: var(--sp-5);
}
.gallery__main img { width: 100%; height: 100%; object-fit: contain; }
/* Ana alandaki video — resmin yerini tıkla-oynatınca alır (16:9 değil, kareyi
   doldurur; siyah zemin). iframe yalnızca tıklayınca eklenir. */
.gallery__video { position: absolute; inset: 0; background: #0b0b0d; }
.gallery__video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.gallery__thumbs { display: flex; gap: var(--sp-2); margin-top: var(--sp-3); flex-wrap: wrap; }
.gallery__thumbs button {
  width: 68px; aspect-ratio: 1; border-radius: var(--r-sm); overflow: hidden;
  border: 1px solid var(--line); background: var(--product-bg); padding: 4px;
}
.gallery__thumbs button[aria-selected="true"] { border-color: var(--accent); }
.gallery__thumbs img { width: 100%; height: 100%; object-fit: contain; }

/* Ürün videosu — tıkla-oynat facade (iframe yalnızca tıklayınca yüklenir) */
/* Video küçük görseli (thumbnail) — kapak resmi + ortada oynat ikonu rozeti.
   Resim thumb'larıyla aynı boyutta; net biçimde "video" olduğu belli olur. */
.gallery__thumb--video { position: relative; }
.gallery__thumb--video img { filter: brightness(.62); }
.gallery__thumb-play {
  position: absolute; inset: 0; display: grid; place-items: center;
  pointer-events: none; color: #fff;
}
.gallery__thumb-play svg {
  width: 26px; height: 26px; padding: 6px;
  background: color-mix(in srgb, var(--accent) 92%, #000); color: var(--on-accent);
  border-radius: 50%; margin-inline-start: 2px;
}
.gallery__thumb--video[aria-selected="true"] { border-color: var(--accent); }

/* ============================================================================
   STANDART ÜRÜN GÖRSEL KUTUSU — "beyaz vitrin karesi"
   ============================================================================
   Bundan sonra eklenen HER görsel (boyutu/oranı ne olursa olsun) bu kutuların
   içinde dört kenardan TAŞMADAN, ortalı ve mobil/tablet/masaüstü her yerde
   EŞİT görünür. Görsel boyutunu sen serbestçe ayarlarsın; kutu üç katmanlı
   kuralla garantiler:
     1) sabit oran (aspect-ratio) + overflow:hidden  → kesin, taşmaz sınır
     2) object-fit:contain + object-position:center  → asla kırpmaz/taşmaz, ortalar
     3) kenar gradyanı + iç hairline                 → sınır nettir, tam beyaz
        kenarlı ürün bile beyaz zeminde kaybolmaz
   Yeni bir görsel alanı eklerken bu sınıflardan birini (card__media /
   gallery__main / line-item__img) kullan — başka ayar gerekmez. */
.card__media,
.gallery__main,
.line-item__img {
  background:
    radial-gradient(135% 135% at 50% 28%,
      var(--product-bg) 62%,
      color-mix(in srgb, var(--product-bg) 90%, #737884) 100%);
  box-shadow: inset 0 0 0 1px rgba(15, 18, 22, .06);
}
.hero__art img,
.card__media img,
.gallery__main img,
.gallery__thumbs button img,
.line-item__img img {
  width: 100%; height: 100%;
  object-fit: contain; object-position: center;
  display: block;
}

/* ------------------------------------------------------------------- ALT BİLGİ */
.footer {
  background: var(--deep); color: var(--on-deep);
  border-top: 1px solid var(--deep-line);
  padding-block: var(--sp-7) var(--sp-5);
  margin-top: var(--sp-8);
}
.footer a { color: var(--on-deep); opacity: .78; font-size: .88rem; }
.footer a:hover { opacity: 1; color: var(--accent); }
.footer h4 { font-size: .76rem; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); margin-bottom: var(--sp-3); }
.footer__cols { display: grid; gap: var(--sp-6); grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.footer__links { display: flex; flex-direction: column; gap: var(--sp-2); }
/* Bülten şeridi — alt bilgi içinde, yasal metnin üstünde */
.footer__news {
  display: grid; gap: var(--sp-5);
  align-items: center;
  margin-top: var(--sp-6); padding-top: var(--sp-5);
  border-top: 1px solid var(--deep-line);
}
@media (min-width: 780px) {
  .footer__news { grid-template-columns: 1fr minmax(320px, .8fr); }
}
.footer__news h4 { margin-bottom: var(--sp-2); }
.footer__news-form { display: flex; gap: var(--sp-2); flex-wrap: wrap; }
.footer__news-form .input {
  flex: 1; min-width: 200px;
  background: rgba(255,255,255,.05);
  border-color: var(--deep-line);
  color: var(--on-deep);
}
.footer__news-form .input::placeholder { color: rgba(234,231,225,.45); }
.footer__news-form p { flex-basis: 100%; }

.footer__legal {
  margin-top: var(--sp-6); padding-top: var(--sp-4);
  border-top: 1px solid var(--deep-line);
  font-size: .78rem; opacity: .62; line-height: 1.7;
}
/* Yasal metin: tek satır özet, tıklayınca tam metin açılır (yasal gereklilik —
   metin DOM'da her sayfada durur, yalnızca görsel yükü azaltılmıştır). */
.footer__disclaimer summary {
  cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: .4rem;
}
.footer__disclaimer summary::-webkit-details-marker { display: none; }
.footer__disclaimer summary::marker { content: ''; }
.footer__disclaimer summary::after { content: '+'; font-weight: 700; opacity: .8; }
.footer__disclaimer[open] summary::after { content: '−'; }
.footer__disclaimer p { margin-top: var(--sp-2); max-width: 90ch; }
/* Telif + gönderim adresi: tek satır, iki uçta (dar ekranda alt alta sarar) */
.footer__legal-row {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: var(--sp-3); flex-wrap: wrap;
  margin-top: var(--sp-3);
}

/* ------------------------------------------------------------------ YAŞ KAPISI */
.agegate {
  position: fixed; inset: 0; z-index: 200;
  display: grid; place-items: center;
  padding: var(--sp-5);
  background: rgba(6,6,8,.88);
  backdrop-filter: blur(10px);
}
.agegate__box {
  max-width: 460px; width: 100%;
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r-lg); padding: var(--sp-6);
  text-align: center; box-shadow: var(--shadow-3);
}
.agegate__box .display { font-size: 2rem; margin-bottom: var(--sp-3); }

/* ------------------------------------------------------------------- MOBİL */
@media (max-width: 860px) {
  .nav { display: none; }
  .burger { display: grid; }

  /* Header dar ekrana sığsın: arama ikonu eklenince ALTI simge + logo 375px'i
     6px aşıyordu (özellikle açık modda göze çarpıyor). Header iç dolgusunu ve
     düğme boyutunu küçültünce hepsi taşmadan sığar. */
  .header__inner { gap: var(--sp-2); padding-inline: var(--sp-3); }
  .header__tools { gap: var(--sp-1); }
  .icon-btn { width: 34px; height: 34px; }
  .icon-btn svg { width: 18px; height: 18px; }

  /* Yaş kapısı: iki "tam genişlik" düğme dar ekranda yan yana sığmıyordu
     (metin küçülemez, taşardı). Mobilde alt alta dizilsinler. */
  .agegate__box .row { flex-direction: column; }

  .nav--open {
    display: flex; flex-direction: column; align-items: stretch;
    position: fixed; inset: 68px 0 auto 0; z-index: 55;
    background: var(--bg); border-bottom: 1px solid var(--line);
    padding: var(--sp-4) var(--sp-5) var(--sp-6);
    gap: var(--sp-1); margin: 0;
  }
  .nav--open a { padding: var(--sp-3) 0; font-size: 1rem; border-bottom: 1px solid var(--line-soft); }

  .cart-layout,
  .checkout-layout { grid-template-columns: 1fr; }

  .line-item { grid-template-columns: 64px 1fr; }
  .line-item__img { width: 64px; }
  .line-item > :last-child { grid-column: 1 / -1; }
}

/* ---------------------------------------------------------------- YARDIMCI */
.hr { height: 1px; background: var(--line); border: 0; margin-block: var(--sp-6); }
.pill-row { display: flex; gap: var(--sp-2); flex-wrap: wrap; }
.pill {
  padding: .4rem .85rem; border-radius: var(--r-full);
  border: 1px solid var(--line); font-size: .84rem; color: var(--text-2);
  transition: border-color .16s var(--ease), color .16s var(--ease);
}
.pill:hover { border-color: var(--accent); color: var(--accent); }
.pill[aria-current="true"],
.pill[aria-pressed="true"] { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
/* .pill bir <button> olabilir: buton görünümünü sıfırla */
button.pill { background: transparent; cursor: pointer; font: inherit; line-height: 1; }
button.pill[aria-pressed="true"] { background: var(--accent); }

/* Ortalı, nazik kategori süzgeç çubuğu (Shop) */
.filterchips {
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: var(--sp-2);
}

.empty { text-align: center; padding-block: var(--sp-8); color: var(--muted); }

/* ------------------------------------------------------- MAĞAZA SÜZGEÇLERİ */
/*
   Telefonda ürünlerin önüne üç sıra düğme çıkmasın diye süzgeçler katlanır.
   <details> kullanılıyor çünkü JavaScript olmadan da çalışır — betik yüklenmese
   bile müşteri süzgece erişebilir.

   Masaüstünde: başlık gizlenir, gövde her zaman açık.
   Mobilde:     başlık görünür, gövde kapalı gelir (süzgeç seçiliyse açık).
*/
.shop-search {
  display: flex; gap: var(--sp-2);
  max-width: 520px;
}
.shop-search .input { flex: 1; min-width: 0; }

.shop-filters { border: 0; }
.shop-filters > summary {
  display: none;                       /* masaüstünde başlık yok */
  align-items: center; gap: var(--sp-2);
  padding: .5rem .9rem;
  border: 1px solid var(--line); border-radius: var(--r-full);
  font-size: .85rem; font-weight: 600; color: var(--text-2);
  cursor: pointer; width: max-content;
  list-style: none;
}
.shop-filters > summary::-webkit-details-marker { display: none; }
.shop-filters > summary::after {
  content: '';
  width: 7px; height: 7px; margin-inline-start: .2rem;
  border-inline-end: 2px solid currentColor; border-block-end: 2px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
  transition: transform .18s var(--ease);
}
.shop-filters[open] > summary::after { transform: rotate(-135deg) translateY(0); }
.shop-filters > summary:hover { border-color: var(--accent); color: var(--accent); }

/* Seçili süzgeç varsa başlıkta altın nokta */
.shop-filters__dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--accent); display: inline-block;
}

.shop-filters__body { display: flex; flex-direction: column; gap: var(--sp-3); }

/* Masaüstü: details kapalı olsa bile gövde görünür */
@media (min-width: 761px) {
  .shop-filters:not([open]) > .shop-filters__body { display: flex; }
}

/* Mobil: başlık görünür, kapalıyken gövde gizli */
@media (max-width: 760px) {
  .shop-filters > summary { display: inline-flex; }
  .shop-filters__body { margin-top: var(--sp-3); }
}

/* Dar ekranda süzgeç düğmeleri küçülür — ürünler daha yukarıda kalsın */
.pill--sm { padding: .3rem .7rem; font-size: .8rem; }

/* Kategori filtresi pill'i içindeki ürün sayacı */
.pill__count {
  margin-inline-start: .4em; font-size: .82em; opacity: .55;
  font-variant-numeric: tabular-nums;
}
.pill[aria-pressed="true"] .pill__count { opacity: .85; }

/* Ana sayfa kategori paneli — seçili kategorinin ürünleri. [hidden] flex/grid
   bağlamında görünmeyi zorlayabildiği için açıkça gizliyoruz. */
.cat-panel[hidden] { display: none; }
.cat-panel__foot { display: flex; justify-content: center; margin-top: var(--sp-5); }
@media (max-width: 760px) {
  .pill--sm { padding: .28rem .62rem; font-size: .76rem; }
  .pill-row { gap: var(--sp-1); }
}
.empty svg { width: 48px; height: 48px; margin: 0 auto var(--sp-4); opacity: .4; }

/* ── Ürün detay: güven noktaları tek sıra (3 sütun) ─────── */
.trust-row {
  list-style: none; margin: 0; padding: var(--sp-3) 0 0;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-4);
  border-top: 1px solid var(--line, #2a2c34);
}
.trust-row li {
  display: flex; align-items: flex-start; gap: .5rem;
  font-size: .8rem; line-height: 1.35; color: var(--muted, #9aa);
}
.trust-row__ic {
  width: 18px; height: 18px; flex: none; margin-top: 1px;
  color: var(--accent, #c9a227);
}
@media (max-width: 640px) {
  .trust-row { grid-template-columns: 1fr; gap: var(--sp-2); }
}

/* ── Ürün sayfası: öне çıkan maddeler ────────────────────── */
.prod-bullets {
  list-style: none; margin: var(--sp-4) 0 0; padding: 0;
  display: grid; gap: var(--sp-2);
}
.prod-bullets li {
  display: flex; align-items: flex-start; gap: .6rem;
  font-size: .92rem; line-height: 1.4;
}
.prod-bullets__ic {
  width: 18px; height: 18px; flex: none; margin-top: 2px;
  color: var(--accent, #c9a227);
}

/* ── Kullanım kartları: Read before use + How to use ─────── */
.info-cards { display: grid; gap: var(--sp-3); margin-top: var(--sp-4); }
.info-cards--2 { grid-template-columns: 1fr 1fr; }
.info-cards--full { margin-top: var(--sp-6); }
@media (max-width: 640px) { .info-cards--2 { grid-template-columns: 1fr; } }

/* Çoklu alım teşviki (ürün sayfası, fiyat altı) */
.bulk-offer {
  display: inline-flex; align-items: center; gap: var(--sp-2);
  padding: .45rem .9rem; margin-top: var(--sp-2);
  border: 1px dashed var(--accent); border-radius: var(--r-full);
  color: var(--accent); font-size: .88rem; font-weight: 600;
}
.bulk-offer svg { width: 14px; height: 14px; }

/* Çoklu alım merdiveni: kademeler yan yana; aktif kademe dolgun altın */
.bulk-ladder { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin-top: var(--sp-2); }
.bulk-ladder .bulk-offer { margin-top: 0; transition: background-color .15s var(--ease), color .15s var(--ease); }
.bulk-ladder .bulk-offer.is-active { background: var(--accent); color: var(--on-accent, #1a1508); border-style: solid; }
.bulk-ladder .bulk-offer.is-active svg { color: inherit; }

/* Merdiven: fiyatla tek satır; etiket + dönen tek rozet */
.bulk-ladder { flex-wrap: nowrap; align-items: center; }
.bulk-ladder__label { font-size: .8rem; font-weight: 650; color: var(--muted); white-space: nowrap; }
.bulk-ladder .bulk-offer { cursor: pointer; background: transparent; white-space: nowrap; }

/* Kart üstü çoklu alım işareti — yalnız ikon */
.card__bulk { display: inline-flex; align-items: center; padding: .28rem .4rem; }
.card__bulk svg { width: 12px; height: 12px; }

/* Sepetteki "ikinci şans" çoklu alım çipi */
.bulk-offer--sm { font-size: .78rem; padding: .3rem .7rem; margin-top: var(--sp-2); background: transparent; cursor: pointer; }

/* ===========================================================================
   TAM EKRAN SLIDER (hero--full) — panel → Slider → Görünüm: Tam ekran
   Kenarlar SIFIR, üst banner'a ve alttaki kayar şeride bitişik. Medya
   (yüklenen video/görsel) alanı kaplar; slaytın tamamı ürüne bağlantıdır.
   --header-h değerini app.js gerçek banner yüksekliğinden yazar.
   =========================================================================== */
.hero--full {
  padding-block: 0;
  height: calc(100svh - var(--header-h, 64px));
  min-height: 380px;
}
.hero--full::before { display: none; }              /* klasik ışık efekti kapalı */
.hero--full .hero__viewport,
.hero--full .hero__track { height: 100%; }
.hero--full .hero__track { display: flex; }

.hero-full__slide {
  position: relative;
  flex: 0 0 100%;
  display: block;
  overflow: hidden;
  color: #fff;
}
/* YERLEŞİM SEÇENEĞİ (panel → slayt → Yerleşim):
   Orijinal (varsayılan) = medya sınırlar içinde TAM görünür, kesilmez;
   Ekrana yay (--cover)  = tüm alanı doldurur, kırpılabilir, daima ortalanır. */
.hero-full__slide video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: contain; object-position: center;
  background: #000;                          /* orijinal modda sinema bandı */
}
.hero-full__slide--cover video,
.hero-full__slide--cover .hero-full__img { object-fit: cover; }
.hero-full__slide--cover video { background: transparent; }
/* GÖRSEL ASLA KESİLMEZ: contain ile tam sığar; kalan alanı altındaki
   bulanık kopya doldurur — taşma da, siyah bant da olmaz. */
.hero-full__img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: contain; object-position: center;
  z-index: 1;
}
.hero-full__bg {
  position: absolute; inset: -32px;                 /* blur kenarı sızmasın */
  background-position: center; background-size: cover;
  filter: blur(28px) brightness(.55) saturate(1.1);
  transform: scale(1.08);
}
/* Yazı okunsun diye alttan yumuşak karartma — medya ne olursa olsun çalışır */
.hero-full__slide::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 45%, rgb(0 0 0 / .55) 100%);
  pointer-events: none;
}
.hero-full__caption {
  position: absolute; z-index: 1;
  inset-inline-start: clamp(var(--sp-5), 6vw, var(--sp-9));
  bottom: clamp(var(--sp-6), 8vh, var(--sp-9));
  display: flex; flex-direction: column; align-items: flex-start; gap: var(--sp-3);
  max-width: min(640px, 86%);
}
.hero-full__title {
  font-family: var(--font-display, inherit);
  font-size: clamp(1.9rem, 5vw, 3.4rem);
  font-weight: 700; line-height: 1.08; letter-spacing: -.02em;
  color: #fff; text-wrap: balance;
  text-shadow: 0 2px 24px rgb(0 0 0 / .45);
}
.hero-full__sub {
  font-size: clamp(.95rem, 1.6vw, 1.15rem); color: rgb(255 255 255 / .88);
  text-shadow: 0 1px 12px rgb(0 0 0 / .5);
}
.hero-full__cta { margin-top: var(--sp-2); }

/* Şerit tam dibe yapışır; hero üst boşluğu sıfır */
.hero--full + .promostrip { margin-top: 0; border-top: 0; }

/* MOBİL: tam boy dikey çerçeve yerine WEB GİBİ YATAY bant — yatay medya
   (1920×1080) birebir oturur, bulanık dolgu neredeyse görünmez ve müşteri
   hemen altındaki içeriği de görür. */
@media (max-width: 860px) {
  .hero--full {
    height: auto;
    aspect-ratio: 16 / 10;
    min-height: 220px;
    max-height: 70svh;
  }
  .hero-full__caption {
    inset-inline-start: var(--sp-4);
    bottom: var(--sp-6);
    gap: var(--sp-2);
    max-width: 88%;
  }
  .hero-full__title { font-size: clamp(1.25rem, 6vw, 1.9rem); }
  .hero-full__sub   { font-size: .85rem; }
  .hero-full__cta   { font-size: .85rem; padding: .55rem 1.1rem; margin-top: 0; }
  .hero--full .hero__dots { bottom: var(--sp-2); }
  .hero--full .hero__nav { display: none; }   /* mobilde parmakla kaydırma esas */
}

/* Ok ve noktalar koyu medya üstünde görünür kalsın */
.hero--full .hero__nav { background: rgb(0 0 0 / .35); color: #fff; border-color: rgb(255 255 255 / .3); }
.hero--full .hero__dots { position: absolute; bottom: var(--sp-4); left: 50%; transform: translateX(-50%); z-index: 2; }
.hero--full .hero__dots button { background: rgb(255 255 255 / .45); }
.hero--full .hero__dots button.is-active { background: var(--accent); }
.hero--full .hero__slide:not(.is-active) { opacity: 1; }   /* tam ekranda soluklaştırma yok */
