/* ============================================================================
   poster.css — "reklam ajansı afişi" katmanı

   AMAÇ: standart ürün sayfalarındaki düz, biçimsiz metni ve varyant listesini
   editoryal bir afişe çevirmek. Tek dosya, TÜM ürünler için — ürün başına ayrı
   stil yok, sunucuya ek yük yok, tarayıcı bir kez indirip önbelleğe alır.

   TASARIM KURALLARI
     · Hareket CSS ile. JS yalnızca "göründü mü" bilgisini veren tek bir
       IntersectionObserver — kaydırmada hesap yapılmaz, ana iş parçacığı boş kalır.
     · Renk sayfanın kendi vurgu renginden (--cl-accent) türer; buraya marka
       rengi gömülmez, her ürün kendi paletiyle çalışır.
     · `prefers-reduced-motion` açıksa tüm animasyonlar kapanır.
   ========================================================================== */

:root {
  --po-ac: var(--cl-accent, #6366f1);
  --po-ac2: var(--cl-accent-2, var(--po-ac));
  --po-ease: cubic-bezier(.22, 1, .36, 1);
}

/* ---------------------------------------------------------------- görünüm animasyonu
   TASARIM KARARI: temel durum GÖRÜNÜR. Giriş efekti yalnızca `.po-in`
   eklendiğinde bir kez oynayan bir animasyondur.
   Neden böyle: önce `.po-rise { opacity:0 }` yazmıştım; başka bir stil
   dosyası opacity'yi ezince öğeler `po-in` aldıkları hâlde GÖRÜNMEZ kaldı ve
   ürün açıklaması canlıda boş çıktı. Artık gizleme yalnızca animasyonun
   ilk karesinde var — JS çalışmasa, CSS ezilse, gözlemci tetiklenmese bile
   içerik her koşulda görünür. */
@keyframes poRise {
  from { opacity: 0; transform: translateY(22px) }
  to   { opacity: 1; transform: none }
}
.po-rise.po-in { animation: poRise .7s var(--po-ease) both }
.po-rise.po-in[data-po-d="1"] { animation-delay: .08s }
.po-rise.po-in[data-po-d="2"] { animation-delay: .16s }
.po-rise.po-in[data-po-d="3"] { animation-delay: .24s }
.po-rise.po-in[data-po-d="4"] { animation-delay: .32s }

/* ============================================================== AÇIKLAMA BLOĞU */

/* Panel: düz kutu yerine hafif ışıklı, kenarı belirgin bir yüzey */
.sm-product__desc {
  position: relative;
  border-radius: 22px !important;
  overflow: hidden;
  background:
    radial-gradient(720px 320px at 12% -8%, color-mix(in srgb, var(--po-ac) 16%, transparent), transparent 68%),
    linear-gradient(180deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .015)) !important;
  border: 1px solid rgba(255, 255, 255, .1) !important;
}
/* Üstten geçen ince ışık çizgisi — panelin "camdan" hissi */
.sm-product__desc::before {
  content: ''; position: absolute; inset: 0 0 auto 0; height: 1px;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--po-ac) 70%, white), transparent);
  opacity: .65;
}

/* Bölüm başlığı: afiş tipografisi */
.sm-product__panel-title {
  font-size: clamp(19px, 2.2vw, 26px) !important;
  font-weight: 900 !important;
  letter-spacing: -.7px !important;
  position: relative;
  padding-bottom: 12px;
}
.sm-product__panel-title::after {
  content: ''; position: absolute; left: 0; bottom: 0; width: 54px; height: 3px; border-radius: 3px;
  background: linear-gradient(90deg, var(--po-ac), var(--po-ac2));
  transition: width .5s var(--po-ease);
}
.sm-product__panel:hover .sm-product__panel-title::after { width: 92px }

/* --- Açıklama metni: editoryal ölçek --- */
.sm-product__desc .editor,
.sm-product__desc > div:not(.sm-product__panel-title) {
  font-size: 15.5px;
  line-height: 1.85;
}

/* Panelde artık "Description" başlığı yok; metnin ilk öğesi üstte fazladan
   boşluk bırakmasın diye ilk başlığın üst payı sıfırlanır. */
.sm-product__desc .editor > :first-child { margin-top: 0 }

/* Başlıklar: iri, sıkı, üstünde küçük bir vurgu çizgisi */
.sm-product__desc h1,
.sm-product__desc h2,
.sm-product__desc h3 {
  font-weight: 900;
  letter-spacing: -.9px;
  line-height: 1.15;
  margin: 34px 0 14px;
  position: relative;
  padding-left: 16px;
}
.sm-product__desc h1 { font-size: clamp(24px, 3.2vw, 36px) }
.sm-product__desc h2 { font-size: clamp(21px, 2.6vw, 29px) }
.sm-product__desc h3 { font-size: clamp(18px, 2.1vw, 23px) }
.sm-product__desc h1::before,
.sm-product__desc h2::before,
.sm-product__desc h3::before {
  content: ''; position: absolute; left: 0; top: .18em; bottom: .18em; width: 4px; border-radius: 4px;
  background: linear-gradient(180deg, var(--po-ac), transparent);
}

/* İlk paragraf "spot" — afişin giriş cümlesi gibi iri ve açık renk */
.sm-product__desc .editor > p:first-of-type {
  font-size: clamp(16px, 1.9vw, 19px);
  line-height: 1.65;
  color: rgba(255, 255, 255, .9);
  font-weight: 500;
}

/* ÖNEMLİ KELİMELER — kalın yazılan her şey vurgu renginde parlar.
   Metni değiştirmeye gerek yok: mevcut <b>/<strong> etiketleri yeter.

   ⚠️ GRADYAN HAM VURGU RENGİYLE BAŞLAMAZ. Eskiden `linear-gradient(100deg,
   var(--po-ac), ...)` idi; vurgu rengi koyu olan üründe kalın yazının SOL
   YARISI kayboluyordu. Steam Random Key'in vurgusu #1B2838 (Steam laciverti)
   ve koyu zeminde 1,07:1 ölçtüm — mağaza sahibi "hiçbiri okunmuyor" dedi.
   Sorun tek üründe değil: vurgusu koyu olan HER ürün açıklaması etkileniyordu.
   Artık gradyan vurgu renginin beyazla karıştırılmış hâliyle başlıyor; efekt
   duruyor, en koyu vurguda (#000) bile 5,9:1'in altına inmiyor.
   ⚠️ Ham `var(--po-ac)`e geri döndürme. */
.sm-product__desc strong,
.sm-product__desc b {
  color: transparent;
  background: linear-gradient(100deg,
    color-mix(in srgb, var(--po-ac) 45%, #fff),
    color-mix(in srgb, var(--po-ac2) 55%, #fff) 70%, #fff);
  -webkit-background-clip: text; background-clip: text;
  font-weight: 800;
}
/* Açık temada gradyan #fff'te bitemez — beyaz zeminde kaybolur. Aynı efekt,
   ters yön: vurgu rengi SİYAHLA karıştırılıyor. */
html[data-sm-theme="light"] .sm-product__desc strong,
html[data-sm-theme="light"] .sm-product__desc b {
  /* %45 tavanı ölçümle seçildi: vurgu rengi bembeyaz olsa bile beyaz zeminde
     4,74:1 — AA'nın altına düşmüyor. Yükseltme. */
  background: linear-gradient(100deg,
    color-mix(in srgb, var(--po-ac) 45%, #000),
    color-mix(in srgb, var(--po-ac2) 40%, #000) 70%, #0E1726);
  -webkit-background-clip: text; background-clip: text;
}
/* ⚠️ color-mix YOKSA gradyan geçersiz olur ve `color:transparent` yüzünden
   yazı TAMAMEN görünmez kalırdı. Efektten vazgeçip düz renge düşüyoruz. */
@supports not (color: color-mix(in srgb, red 50%, white)) {
  .sm-product__desc strong,
  .sm-product__desc b { color: #fff; background: none; -webkit-text-fill-color: #fff }
  html[data-sm-theme="light"] .sm-product__desc strong,
  html[data-sm-theme="light"] .sm-product__desc b { color: #0E1726; -webkit-text-fill-color: #0E1726 }
}

/* Vurgulanmış cümle (<mark>) — afişteki şerit */
.sm-product__desc mark {
  background: linear-gradient(100deg, color-mix(in srgb, var(--po-ac) 30%, transparent), transparent);
  color: inherit; border-radius: 5px; padding: 1px 6px;
  box-shadow: inset 0 -2px 0 color-mix(in srgb, var(--po-ac) 60%, transparent);
}

/* Listeler: madde imi yerine renkli işaret, satırlar ayrı ayrı okunur */
.sm-product__desc ul { list-style: none; padding-left: 0 }
.sm-product__desc ul > li {
  position: relative; padding: 7px 0 7px 30px; margin: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .05);
  transition: padding-left .22s var(--po-ease), color .22s;
}
.sm-product__desc ul > li:last-child { border-bottom: 0 }
.sm-product__desc ul > li::before {
  content: ''; position: absolute; left: 6px; top: 1.05em; width: 8px; height: 8px; border-radius: 3px;
  background: linear-gradient(135deg, var(--po-ac), var(--po-ac2));
  box-shadow: 0 0 0 0 color-mix(in srgb, var(--po-ac) 55%, transparent);
  transition: box-shadow .3s var(--po-ease), transform .3s var(--po-ease);
}
.sm-product__desc ul > li:hover { padding-left: 36px; color: #fff }
.sm-product__desc ul > li:hover::before {
  transform: rotate(45deg) scale(1.1);
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--po-ac) 16%, transparent);
}

/* Sıralı liste: numaralar rozet olur — "nasıl çalışır" adımları için */
.sm-product__desc ol { list-style: none; counter-reset: po; padding-left: 0 }
.sm-product__desc ol > li {
  counter-increment: po; position: relative; padding: 10px 0 10px 48px; margin: 0;
}
.sm-product__desc ol > li::before {
  content: counter(po); position: absolute; left: 0; top: 8px;
  width: 30px; height: 30px; border-radius: 10px; display: flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 900; color: #fff;
  background: linear-gradient(145deg, var(--po-ac), color-mix(in srgb, var(--po-ac) 40%, #000));
  box-shadow: 0 8px 18px -8px var(--po-ac), inset 0 1px 0 rgba(255, 255, 255, .35);
}

/* Tablolar: satır vurgusu */
.sm-product__desc table { width: 100%; border-collapse: collapse; margin: 18px 0 }
.sm-product__desc th {
  text-align: left; font-size: 11.5px; letter-spacing: .7px; text-transform: uppercase;
  color: var(--po-ac); padding: 10px 12px; border-bottom: 1px solid rgba(255, 255, 255, .14);
}
.sm-product__desc td { padding: 11px 12px; border-bottom: 1px solid rgba(255, 255, 255, .06) }
.sm-product__desc tr:hover td { background: rgba(255, 255, 255, .035) }

/* Alıntı: afiş sloganı */
.sm-product__desc blockquote {
  margin: 22px 0; padding: 18px 22px; border-radius: 16px; border: 0;
  background: linear-gradient(135deg, color-mix(in srgb, var(--po-ac) 15%, transparent), transparent);
  border-left: 3px solid var(--po-ac);
  font-size: 16.5px; font-weight: 600; line-height: 1.6;
}

/* ============================================================ VARYANT SEÇİMİ */

.sm-buy__label {
  font-size: 10.5px !important; font-weight: 800 !important;
  letter-spacing: 1.4px !important; text-transform: uppercase !important;
  opacity: .55;
}

/* Plan/grup hapları */
.sm-buy__group {
  position: relative; overflow: hidden;
  transition: transform .18s var(--po-ease), border-color .18s, background .25s !important;
}
.sm-buy__group:hover { transform: translateY(-2px) }
.sm-buy__group.is-active { box-shadow: 0 10px 26px -12px var(--po-ac) }

/* Varyant kartı: kenardan içeri akan ışık + seçilince belirgin çerçeve */
.sm-buy__variant {
  position: relative; overflow: hidden; border-radius: 16px !important;
  transition: transform .18s var(--po-ease), border-color .2s, background .25s, box-shadow .28s !important;
}
.sm-buy__variant::before {
  content: ''; position: absolute; inset: 0; pointer-events: none; opacity: 0;
  background: linear-gradient(100deg, color-mix(in srgb, var(--po-ac) 22%, transparent), transparent 60%);
  transition: opacity .28s var(--po-ease);
}
.sm-buy__variant:hover::before { opacity: 1 }
.sm-buy__variant:hover { transform: translateY(-3px) }
.sm-buy__variant.is-active {
  box-shadow: 0 14px 34px -16px var(--po-ac), inset 0 0 0 1px color-mix(in srgb, var(--po-ac) 55%, transparent);
}
.sm-buy__variant.is-active::before { opacity: 1 }
/* Seçili karta sol kenardan renk şeridi */
.sm-buy__variant.is-active::after {
  content: ''; position: absolute; left: 0; top: 12%; bottom: 12%; width: 3px; border-radius: 3px;
  background: linear-gradient(180deg, var(--po-ac), var(--po-ac2));
}
.sm-buy__variant-price { font-weight: 900 !important; letter-spacing: -.4px }

/* Satın alma düğmesi: canlı gradyan + üzerinden geçen parıltı */
.sm-buy__cta {
  position: relative; overflow: hidden; font-weight: 900 !important; letter-spacing: .3px;
  transition: transform .18s var(--po-ease), filter .18s, box-shadow .28s !important;
}
.sm-buy__cta::after {
  content: ''; position: absolute; top: 0; bottom: 0; width: 40%;
  left: -60%; transform: skewX(-18deg);
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .28), transparent);
  transition: left .55s var(--po-ease);
}
.sm-buy__cta:hover::after { left: 120% }
.sm-buy__cta:hover { transform: translateY(-2px); filter: brightness(1.06) }

/* ==================================================================== SSS */
#product-faq details,
.sm-product__panel details {
  border-radius: 14px; transition: background .22s, border-color .22s;
}
#product-faq details:hover,
.sm-product__panel details:hover { background: rgba(255, 255, 255, .04) }
#product-faq summary,
.sm-product__panel summary { transition: color .2s }
#product-faq details[open] summary,
.sm-product__panel details[open] summary { color: var(--po-ac) }

/* ------------------------------------------------------- erişilebilirlik */
@media (prefers-reduced-motion: reduce) {
  .po-rise, .po-rise.po-in { animation: none !important; opacity: 1 !important; transform: none !important }
  .sm-buy__cta::after { display: none }
  .sm-product__desc ul > li,
  .sm-buy__variant,
  .sm-buy__group { transition: none !important }
}

@media (max-width: 640px) {
  .sm-product__desc h1, .sm-product__desc h2, .sm-product__desc h3 { padding-left: 12px }
  .sm-product__desc .editor { font-size: 15px }
}
