/* ============================================================
   HERKİM GROUP — Kurumsal Tasarım Sistemi
   Estetik: Rafine endüstriyel / laboratuvar-editoryal
   Palet: Crimson (#A31C3C) + mürekkep + sıcak kâğıt
   Tipografi: Archivo (display) / IBM Plex Sans (metin) / IBM Plex Mono (teknik)

   ------------------------------------------------------------
   İÇİNDEKİLER
   Dosya uzun; aradığınız bölüme gitmek için başlık metnini aratın.
   Sıra, dosyadaki gerçek bölüm yorumlarının sırasıdır.

     00  Ölçek belirteçleri (punto + boşluk)   ← :root bloğunun içinde
     01  Reset
     02  Tipografi yardımcıları
     03  Butonlar
     04  Üst bilgi bandı (döviz + iletişim)
     05  Site başlığı
     06  Mobil menü
     07  Sayfa kahramanı (hero)
     08  Kayan bant (marquee)
     09  Tanıtım videosu
     10  Bölüm iskeleti
     11  Sektör kartları
     12  Ürün "element" kartları
     13  Çalışma prensipleri
     14  İstatistik bandı (koyu)
     15  Kurumsal önizleme / zaman çizelgesi
     16  Doküman merkezi kartları
     17  Duyuru kartları
     18  Motto bandı
     19  İletişim CTA
     20  Form
     21  Alt bilgi
     22  Alt sayfa başlığı
     23  Ürün tablosu
     24  Teklif sepeti çekmecesi
     25  Arama katmanı
     26  SSS akordeon
     27  Sertifika kartları
     28  Marka kiti
     29  Yüzen ögeler
     30  Bildirim (toast)
     31  Çerez bildirimi
     32  Müşteri girişi & sipariş sepeti
     33  Görünürlük animasyonları
     34  Duyarlı düzen
     35  KURUMSAL RAFİNERİ KATMANI  ← geçersiz kılma katmanı
     36  Siparişlerim (ana sitede müşteri takibi)
     37  Rafineri 2 (distribütör emsalleri)

   UYARI: 35 ve 37 numaralı bloklar, yukarıdaki temel kuralların bir
   kısmını bilinçli olarak geçersiz kılar. Bir kuralı düzenlediğinizde
   ekranda değişiklik göremiyorsanız önce o iki bloğa bakın; hangi
   seçicileri ezdikleri 35 numaralı bloğun başındaki listede yazılıdır.
   ============================================================ */

:root {
  --crimson: #A31C3C;
  --crimson-deep: #7C102E;
  --crimson-hot: #C42449;
  --crimson-soft: #F6E3E8;
  --ink: #1B1216;
  --ink-2: #43333A;
  /* WCAG AA: eski #7A6A70, --paper-2 zemininde 4.34:1 ile eşiğin altında
     kalıyordu. 5 birim koyulaştırıldı; artık --paper-2 üzerinde 4.67:1,
     --paper üzerinde 5.10:1, beyaz üzerinde 5.48:1. */
  --ink-3: #75656B;
  /* Gövde metni mürekkebi: saf --ink yerine yumuşatılmış ton. Değer
     rafineri katmanında sabit hex olarak duruyordu, buraya taşındı. */
  --ink-body: #372E33;
  --paper: #FAF6F1;
  --paper-2: #F2ECE3;
  --paper-3: #E9E1D5;
  --white: #FFFFFF;
  --line: rgba(27, 18, 22, 0.16);
  --line-soft: rgba(27, 18, 22, 0.09);
  --ok: #2E6B4F;

  /* Saydam tonlar: dosyada 40+ yerde elle yazılan rgba değerleri aslında
     bu iki rengin saydam hâlidir —
       rgba(250, 246, 241, a) = --paper   (koyu zemin üstünde açık metin)
       rgba( 27,  18,  22, a) = --ink     (açık zemin üstünde çizgi/gölge)
     Değişken içine alınmadılar; çünkü rgb kanallarını var() ile ayrıştıran
     modern söz dizimi (relative color) kurumsal sitenin desteklemesi
     gereken tarayıcı yelpazesinde hâlâ güvenli değil. Yeni bir saydam ton
     yazarken bu iki üçlüyü kullanın, gözle yakın başka bir gri seçmeyin. */

  --font-display: "Archivo", "Arial Black", sans-serif;
  --font-body: "IBM Plex Sans", "Segoe UI", sans-serif;
  --font-mono: "IBM Plex Mono", "Courier New", monospace;

  --wrap: 1240px;
  --gutter: clamp(20px, 4vw, 48px);
  --radius: 3px;
  /* --shadow-offset / --shadow-offset-sm: 35 numaralı rafineri katmanında
     yeniden tanımlanır (sert ofset gölge yerine yumuşak derinlik).
     Buradaki eski sert değerler tamamen ezildiği için kaldırıldı. */
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);

  /* ---------- Ölçek belirteçleri (punto + boşluk) ---------- */
  /* NEDEN VAR: ölçüm yapıldığında tek bir sayfada 26 ayrı punto değeri
     çıktı; yalnız 10px ile 16px arasında birbirinden ayırt edilemeyen
     on iki değer vardı (10 / 10.5 / 11 / 11.5 / 12 / 12.5 / 13 / 13.5 /
     14 / 14.5 / 15 / 15.5) ve <p> gövde metni yedi farklı boyda
     yazılmıştı. Bu kadar çok basamak bir hiyerarşi kurmaz, aksine okuma
     sırasını yok eder. Aşağıdaki 9 punto + 6 boşluk basamağı o dağınık
     listenin damıtılmış hâlidir.

     PUNTO BASAMAKLARI — hangisi nerede:
       --fs-micro  11px  Yalnız mono mikro etiket: rozet, çip, sayaç,
                         yan etiket, tablo doküman düğmesi. Ölçeğin
                         TABANI; 11px'in altına inen yeni bir metin
                         boyutu yazılmaz.
       --fs-label  12px  Mono etiket ve künye: .kicker, tablo sütun
                         başlığı, form etiketi, kırıntı menü, alt bilgi
                         başlığı, zaman çizelgesi yılı, kart künyesi.
       --fs-small  14px  Sayfa metni OLMAYAN yoğun arayüz yazısı: menü
                         ve alt bilgi bağlantıları, tablo hücresi,
                         .btn--sm ve YÜZEN yüzeylerdeki (çekmece, kip
                         penceresi, bildirim, çerez kutusu, açılır kutu)
                         metin. Bu bilinçli bir kuraldır: yüzen yüzey
                         sayfa değil arayüzdür, sayfa gövdesiyle aynı
                         puntoyu almaz.
       --fs-body   16px  Sayfa içeriğindeki BÜTÜN akan metin. body ile
                         aynı değer, yani varsayılan paragraf kımıldamaz;
                         kart paragrafları bu değere YÜKSELİR.
       --fs-lead   ~19px Başlığın altındaki giriş paragrafı.
       --fs-h4     18px  Kart ve panel başlığı (sektör / doküman /
                         sertifika / müşteri kartı, zaman çizelgesi
                         maddesi, SSS sorusu).
       --fs-h3     ~24px Ara başlık ve katman başlığı (h3.display,
                         .principle h3, çekmece/giriş başlıkları).
       --fs-h2     ~40px Bölüm başlığı. DEĞER DEĞİŞMEDİ; h2.display'in
                         zaten hesapladığı clamp aynen taşındı.
       --fs-h1     ~57px Sayfa başlığı. DEĞER DEĞİŞMEDİ.

     BOŞLUK BASAMAKLARI — bölüm ARASI ritim (.section) zaten tutarlıydı
     ve buraya dâhil DEĞİLDİR; bunlar bölüm İÇİ boşluklardır:
       --space-2xs  4px  Etiket ile hemen altındaki değer.
       --space-xs   8px  Kart içi dar aralık, liste satırı iç boşluğu.
       --space-sm  16px  1. ARALIK: kicker → başlık, ikon → başlık.
       --space-md  24px  2. ARALIK: başlık → giriş paragrafı.
       --space-lg  32px  3. ARALIK: paragraf → sonraki blok (kart ızgarası,
                         madde listesi, CTA satırı, filtre çipleri).
       --space-head      4. ARALIK: .sec-head → bölüm içeriği. DEĞER
                         DEĞİŞMEDİ, yalnız belirtece alındı.

     KURAL — YENİ TEK SEFERLİK px DEĞERİ YAZMAYIN. Bir metne boyut
     verirken yukarıdaki dokuz basamaktan birini seçin; hiçbiri
     uymuyorsa ihtiyaç muhtemelen yanlıştır, önce en yakın basamağı
     deneyin. Aynısı boşluk için de geçerli. Ölçek dışında bilinçli
     bırakılan tek seferlik değerler vardır (.hero-watermark, .sec-no,
     .ec-formula, .motto-band blockquote, .brand-name, sabit kutu
     içindeki ikon/glif ölçüleri); bunlar okunacak metin değil grafik
     ögedir ve ilgili kuralların yanında ayrıca not düşülmüştür.

     Kutu iç boşlukları (card padding) bilerek belirtece alınmadı: onlar
     okuma ritmi değil, ince çizgi + ferah iç boşluk görsel karakterinin
     parçasıdır. */
  --fs-micro: 11px;
  --fs-label: 12px;
  --fs-small: 14px;
  --fs-body: 16px;
  --fs-lead: clamp(1.05rem, 1.4vw, 1.2rem);
  --fs-h4: 18px;
  --fs-h3: clamp(1.3rem, 1.6vw, 1.5rem);
  --fs-h2: clamp(1.7rem, 3.4vw, 2.5rem);
  --fs-h1: clamp(2.3rem, 4.6vw, 3.55rem);

  --space-2xs: 4px;
  --space-xs: 8px;
  --space-sm: 16px;
  --space-md: 24px;
  --space-lg: 32px;
  --space-head: clamp(34px, 5vw, 56px);
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: 1.65;
  color: var(--ink-body);
  background: var(--paper);
  overflow-x: hidden;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
input, select, textarea { font: inherit; color: inherit; }
ul, ol { list-style: none; }
::selection { background: var(--crimson); color: var(--paper); }
:focus-visible { outline: 2px solid var(--crimson); outline-offset: 3px; }

/* İnce doku: kâğıt greni */
body::before {
  content: "";
  position: fixed; inset: 0;
  pointer-events: none; z-index: 2000;
  /* opacity: 37 numaralı "Rafineri 2" bloğunda 0.028'e düşürülür;
     buradaki eski 0.05 değeri tamamen ezildiği için kaldırıldı. */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
}

/* Kaydırma çubuğu */
::-webkit-scrollbar { width: 12px; height: 12px; }
::-webkit-scrollbar-track { background: var(--paper-2); }
::-webkit-scrollbar-thumb { background: var(--ink-3); border: 3px solid var(--paper-2); border-radius: 8px; }
::-webkit-scrollbar-thumb:hover { background: var(--crimson); }

.wrap { max-width: var(--wrap); margin: 0 auto; padding-inline: var(--gutter); }

/* İçeriğe atlama bağlantısı — 11 sayfanın da <body> içindeki ilk odaklanabilir
   ögesi. Klavye kullanıcısı ilk TAB'da başlıktaki 15+ bağlantıyı atlayıp doğrudan
   <main id="main"> ögesine geçer. Ekranda YALNIZCA odaklanınca görünür: gizlemek
   için display:none KULLANILMAZ, çünkü o zaman odak sırasından da çıkar. */
.skip-link {
  position: absolute; top: -100px; left: var(--gutter); z-index: 200;
  background: var(--crimson); color: var(--white);
  padding: 10px 18px; border-radius: 2px;
  font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: 0.04em;
  transition: top 0.18s var(--ease-out);
}
.skip-link:focus { top: 10px; }

/* ---------- Tipografi yardımcıları ---------- */
/* NOKTALI İ UYARISI — text-transform: uppercase hakkında.
   Bu dosyadaki büyütme kuralları (.kicker, .hstat span, .stat-cell span,
   .field label, .footer h4, .page-hero .crumbs, .ci-row b ...) Türkçe
   metnin üstüne biniyor. Tarayıcılar text-transform'u <html lang> ile
   uyguladığı için lang="tr" iken "İletişim" doğru şekilde "İLETİŞİM"
   olur; ölçüldü ve doğrulandı. Yani bu kuralların güvenliği TAMAMEN
   lang="tr" özniteliğine bağlı — i18n.js dil değiştirirken
   document.documentElement.lang'i güncellemeye devam etmeli.
   YENİ kurala uppercase EKLEMEYİN; büyük harf gerekiyorsa metni
   kaynakta (HTML/i18n) büyük yazın. */
.kicker {
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--crimson);
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.kicker::before { content: ""; width: 34px; height: 2px; background: var(--crimson); }

/* font-weight / font-stretch: 35 numaralı katmanda ince kesime çekilir
   (560 / %104). h1 ve h2 punto skalası da 37 numaralı blokta yeniden
   yazılır. Buradaki eski değerler tamamen ezildiği için kaldırıldı;
   yalnız h3 hâlâ burada belirlenir. */
.display {
  font-family: var(--font-display);
  line-height: 1.02;
  letter-spacing: -0.015em;
  text-wrap: balance;
}
h3.display { font-size: var(--fs-h3); }

.lead { font-size: var(--fs-lead); color: var(--ink-2); max-width: 62ch; }
.mono { font-family: var(--font-mono); }
.muted { color: var(--ink-3); }
.accent { color: var(--crimson); }

/* ---------- Butonlar ---------- */
/* DİKKAT: buton görünümünün büyük kısmı 35 ve 37 numaralı katmanlarda
   son hâlini alır. Oradan gelenler: kenarlık kalınlığı/rengi, yazı
   ağırlığı, harf aralığı, gölge ve hover/active davranışı. Buradaki
   `border` kısayolu yalnız `solid` stilini yaşatır — kalınlık ve renk
   35'te ezilir; kısayolu bozmamak için olduğu gibi bırakıldı. */
.btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 26px;
  font-family: var(--font-display);
  font-size: var(--fs-body); font-stretch: 105%;
  border: 2px solid var(--ink);
  border-radius: var(--radius);
  background: var(--paper);
  color: var(--ink);
  transition: transform 0.18s var(--ease-out), box-shadow 0.18s var(--ease-out), background 0.18s, color 0.18s;
  white-space: nowrap;
}
/* .btn:hover ve .btn:active kuralları 35/37 numaralı katmanlarda tümüyle
   yeniden yazıldığı için buradaki eski "zıplayan" sürümleri kaldırıldı. */
.btn--primary { background: var(--crimson); border-color: var(--crimson-deep); color: var(--white); }
.btn--primary:hover { background: var(--crimson-hot); }
.btn--dark { background: var(--ink); color: var(--paper); }
.btn--ghost { box-shadow: none; border-color: var(--line); background: transparent; }
.btn--ghost:hover { border-color: var(--ink); box-shadow: var(--shadow-offset-sm); }
.btn--sm { padding: 9px 16px; font-size: var(--fs-small); }
.btn .arr { transition: transform 0.18s var(--ease-out); }
.btn:hover .arr { transform: translateX(4px); }

/* ---------- Üst bilgi bandı (döviz + iletişim) ---------- */
.topbar {
  background: var(--ink);
  color: var(--paper);
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  position: relative;
  z-index: 60;
}
.topbar .wrap { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 40px; }
.tb-rates { display: flex; align-items: center; gap: 20px; overflow: hidden; white-space: nowrap; }
.tb-rates .rate { display: inline-flex; gap: 8px; align-items: baseline; }
.tb-rates .rate b { color: var(--crimson-hot); font-weight: 500; }
.tb-rates .rate .up { color: #6FBF92; }
.tb-rates .rate .down { color: #E4738D; }
/* WCAG AA: 0.45 saydamlık --ink zemininde 4.28:1 veriyordu (11px metin
   için eşik 4.5:1). 0.48'e çıkarıldı → 4.70:1. */
.tb-note { color: rgba(250,246,241,0.48); font-size: var(--fs-micro); }
.tb-links { display: flex; gap: 18px; align-items: center; white-space: nowrap; }
.tb-links a:hover { color: var(--crimson-hot); }
.tb-lang { display: inline-flex; border: 1px solid rgba(250,246,241,0.25); border-radius: 2px; overflow: hidden; }
.tb-lang button { padding: 3px 9px; font-family: var(--font-mono); font-size: var(--fs-micro); letter-spacing: 0.06em; color: rgba(250,246,241,0.55); border-left: 1px solid rgba(250,246,241,0.16); transition: background 0.15s, color 0.15s; }
.tb-lang button:first-child { border-left: 0; }
.tb-lang button:hover { color: var(--paper); }
.tb-lang button.on { background: var(--crimson); color: var(--white); }
.tb-group { color: rgba(250,246,241,0.55); }
.tb-group:hover { color: var(--crimson-hot); }

/* ---------- Site başlığı ---------- */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(250, 246, 241, 0.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
  transition: box-shadow 0.25s;
}
.site-header.scrolled { box-shadow: 0 6px 24px rgba(27, 18, 22, 0.1); }
.site-header .wrap { display: flex; align-items: center; gap: 28px; min-height: 78px; }

.brand { display: flex; align-items: center; gap: 13px; flex-shrink: 0; }
.brand-mark { width: 52px; height: 52px; transition: transform 0.4s var(--ease-out); }
.brand:hover .brand-mark { transform: rotate(-8deg); }
/* KELİME MARKASI — punto ölçeğinin DIŞINDA, bilinçli olarak. Aşağıdaki
   21px / 10.5px ve 0.42em harf aralığı, işaretin genişliğine ve 640px'te
   markayı gizleyen kurala göre ayarlanmıştır; bir logo kilidi metin
   okuma ölçeğine bağlanmaz. Aynısı portal.css'teki .sb .brand-name b
   için de geçerlidir. */
.brand-name { line-height: 1.05; }
.brand-name b {
  display: block;
  font-family: var(--font-display); font-weight: 800; font-stretch: 115%;
  font-size: 21px; letter-spacing: 0.03em; color: var(--crimson);
}
.brand-name span {
  display: block;
  font-family: var(--font-mono); font-size: 10.5px;
  letter-spacing: 0.42em; color: var(--ink-2); text-transform: uppercase;
}

.nav { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.nav > li { position: relative; }
.nav > li > a {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 10px 13px;
  font-weight: 600; font-size: var(--fs-small);
  border-radius: var(--radius);
  transition: color 0.15s, background 0.15s;
}
.nav > li > a:hover, .nav > li > a.active { color: var(--crimson); background: var(--crimson-soft); }
.nav > li > a.active { position: relative; }
.nav .caret { width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); }

.dropdown {
  position: absolute; top: calc(100% + 10px); left: 0;
  min-width: 250px;
  background: var(--white);
  border: 2px solid var(--ink);
  border-radius: var(--radius);
  box-shadow: var(--shadow-offset);
  padding: 8px;
  opacity: 0; visibility: hidden; transform: translateY(8px);
  transition: opacity 0.18s, transform 0.18s, visibility 0.18s;
}
.nav > li:hover .dropdown, .nav > li:focus-within .dropdown { opacity: 1; visibility: visible; transform: translateY(0); }
.dropdown a {
  display: flex; justify-content: space-between; align-items: center;
  padding: 10px 12px; font-size: var(--fs-small); font-weight: 500;
  border-radius: 2px;
}
.dropdown a:hover { background: var(--crimson); color: var(--white); }
.dropdown a .mono { font-size: var(--fs-micro); color: var(--ink-3); }
.dropdown a:hover .mono { color: rgba(255,255,255,0.7); }
.dropdown hr { border: 0; border-top: 1px solid var(--line-soft); margin: 6px 4px; }

.header-actions { display: flex; align-items: center; gap: 10px; }
.icon-btn {
  position: relative;
  display: grid; place-items: center;
  width: 42px; height: 42px;
  border: 1.5px solid var(--line);
  border-radius: var(--radius);
  transition: border-color 0.15s, background 0.15s, color 0.15s;
}
.icon-btn:hover { border-color: var(--ink); background: var(--ink); color: var(--paper); }
.icon-btn .count {
  position: absolute; top: -7px; right: -7px;
  min-width: 19px; height: 19px; padding: 0 5px;
  display: grid; place-items: center;
  background: var(--crimson); color: var(--white);
  font-family: var(--font-mono); font-size: var(--fs-micro); font-weight: 600;
  border-radius: 99px;
}
.burger { display: none; }

/* ---------- Mobil menü ---------- */
/* Kapalıyken yalnız translateX ile kenara itmek yetmiyordu: panel hâlâ
   "visible" sayıldığı için klavye sekmesi görünmez bağlantıların içinde
   dolaşıyor, ekran okuyucu da menüyü iki kez okuyordu. .search-overlay ve
   .drawer-overlay ile aynı kalıp uygulandı; visibility geçişi süreyi
   paylaşır, böylece panel kayarak çıkarken görünür kalır. */
.mobile-nav {
  position: fixed; inset: 0; z-index: 90;
  background: var(--ink); color: var(--paper);
  padding: 90px var(--gutter) 40px;
  transform: translateX(100%);
  visibility: hidden;
  transition: transform 0.35s var(--ease-out), visibility 0.35s;
  overflow-y: auto;
}
.mobile-nav.open { transform: translateX(0); visibility: visible; }
/* 24px punto ölçek DIŞINDA bilinçli bir tek seferlik değerdir: mobil menü
   bağlantıları okuma sırası için değil PARMAK için boyutlandırılmıştır ve
   bu panel masaüstü ölçeğiyle asla aynı ekranda bulunmaz. --fs-h3'e
   çekmeyin, dokunma hedefi küçülür. */
.mobile-nav a { display: block; padding: 14px 0; font-family: var(--font-display); font-weight: 700; font-size: 24px; border-bottom: 1px solid rgba(250,246,241,0.12); }
.mobile-nav a:hover { color: var(--crimson-hot); }
.mobile-nav .sub { font-family: var(--font-body); font-size: var(--fs-body); font-weight: 500; padding: 10px 0 10px 18px; color: rgba(250,246,241,0.75); }
.mobile-nav .mn-close { position: absolute; top: 22px; right: var(--gutter); font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: 0.15em; color: var(--crimson-hot); }

/* ---------- Sayfa kahramanı (hero) ---------- */
.hero {
  position: relative;
  padding: clamp(56px, 9vw, 110px) 0 0;
  overflow: hidden;
}
.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: clamp(28px, 5vw, 72px);
  align-items: center;
}
/* 22px → --space-sm (16px): kicker→başlık aralığı artık .sec-head ile
   birebir aynı. Hero başlığı 6px yukarı gelir, bu bilinçlidir. */
.hero .kicker { margin-bottom: var(--space-sm); }
.hero h1 em { font-style: normal; color: var(--crimson); position: relative; }
.hero h1 em::after {
  content: ""; position: absolute; left: 0; bottom: 4px;
  width: 100%; height: 10px;
  background: var(--crimson-soft); z-index: -1;
}
.hero .lead { margin: var(--space-md) 0 var(--space-lg); }
.hero-ctas { display: flex; flex-wrap: wrap; gap: 16px; }
.hero-visual { position: relative; min-height: 380px; }
.hero-visual svg { width: 100%; height: auto; }

.hero-watermark {
  position: absolute; right: -3%; top: 4%;
  font-family: var(--font-display); font-weight: 800; font-stretch: 120%;
  /* Punto ölçeği DIŞINDA bilinçli bir tek seferlik değer: bu bir grafik
     ögedir (içi boş kontur, pointer-events:none, user-select:none),
     okunacak metin değil. --fs-* basamağına çekmeyin. */
  font-size: clamp(120px, 22vw, 300px);
  color: transparent;
  /* -webkit-text-stroke: 35 numaralı katmanda 0.07 saydamlığa iner;
     buradaki eski 0.12 değeri tamamen ezildiği için kaldırıldı. */
  letter-spacing: -0.02em;
  pointer-events: none; user-select: none;
  line-height: 1;
}

.hero-strip {
  margin-top: clamp(48px, 7vw, 84px);
  border-top: 2px solid var(--ink);
  border-bottom: 2px solid var(--ink);
  background: var(--white);
}
.hero-strip .wrap {
  display: grid; grid-template-columns: repeat(4, 1fr);
}
.hstat { padding: 26px 22px; border-left: 1px solid var(--line); }
.hstat:first-child { border-left: 0; }
.hstat b {
  display: block;
  font-family: var(--font-display); font-weight: 800; font-stretch: 110%;
  font-size: clamp(1.7rem, 3.4vw, 2.6rem);
  color: var(--crimson); line-height: 1;
}
/* ">" gerekçesi için .stat-cell > span kuralındaki nota bakın (aynı tuzak). */
.hstat > span { font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-2); }

/* ---------- Kayan bant (marquee) ---------- */
.marquee {
  background: var(--crimson);
  color: var(--paper);
  overflow: hidden;
  padding: 13px 0;
  border-bottom: 2px solid var(--crimson-deep);
}
.marquee-track {
  display: flex; gap: 48px;
  white-space: nowrap;
  width: max-content;
  animation: marquee 36s linear infinite;
  font-family: var(--font-mono); font-size: var(--fs-small); letter-spacing: 0.14em; text-transform: uppercase;
}
.marquee-track span { display: inline-flex; align-items: center; gap: 48px; }
.marquee-track .sep { color: rgba(250,246,241,0.55); }
@keyframes marquee { to { transform: translateX(-50%); } }
.marquee:hover .marquee-track { animation-play-state: paused; }

/* ---------- Tanıtım videosu ---------- */
.video-frame { max-width: 920px; margin: 0 auto; border: 2px solid var(--ink); border-radius: var(--radius); box-shadow: var(--shadow-offset); overflow: hidden; background: var(--ink); }
.yt-facade { display: block; width: 100%; aspect-ratio: 16 / 9; background-size: cover; background-position: center; position: relative; cursor: pointer; border: 0; padding: 0; }
.yt-facade::after { content: ""; position: absolute; inset: 0; background: rgba(27, 18, 22, 0.30); transition: background 0.25s; }
.yt-facade:hover::after { background: rgba(27, 18, 22, 0.12); }
.yt-play { position: absolute; inset: 0; margin: auto; width: 92px; height: 64px; display: grid; place-items: center; z-index: 1; transition: transform 0.2s var(--ease-out); }
.yt-facade:hover .yt-play { transform: scale(1.09); }
.yt-play svg { width: 92px; height: 64px; filter: drop-shadow(0 8px 18px rgba(0, 0, 0, 0.45)); }
.video-frame iframe { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; }

/* ---------- Bölüm iskeleti ---------- */
.section { position: relative; padding: clamp(64px, 9vw, 120px) 0; }
.section--tint { background: var(--paper-2); border-block: 1px solid var(--line-soft); }
.section--dark { background: var(--ink); color: var(--paper); }
.section--crimson { background: var(--crimson); color: var(--white); }

/* flex-wrap: başlık + yandaki metin/CTA dar ekranda tek satıra sığmıyor,
   sarma olmadan sağdaki öge ekranın dışına taşıyordu. Satır arası boşluk
   sütun boşluğundan küçük tutuldu (18px / 28px), alt alta düşünce
   aradaki boşluk gereksiz büyümesin. */
/* .section iç boşluğu (bölümler ARASI ritim) ölçüldü, tutarlıydı ve
   bilerek belirtece alınmadı. Aşağıdaki --space-head yalnız bölüm İÇİ
   ilk aralıktır ve değeri birebir eskisiyle aynıdır. */
/* BÖLÜM BAŞLIĞI DAİMA TEK SÜTUNDUR: önce kicker, sonra başlık, ALTINDA açıklama.
   ÖNCEDEN yatay bir flex satırıydı (justify-content: space-between +
   align-items: flex-end): başlık solda, açıklama paragrafı sağda duruyordu.
   Başlık kısa ("Biz kimiz?") ve açıklama uzun olduğunda ikisi farklı yükseklikte
   hizalanıyor, aralarında geniş bir boşluk kalıyor ve okuma sırası bozuluyordu.
   KURAL: içerik ve görseller HER ZAMAN başlığın altında akar; başlığın YANINA
   ikinci bir sütun koymayın. */
.sec-head { margin-bottom: var(--space-head); }
.sec-head .display { margin-top: var(--space-sm); }
/* Başlık bloğundan SONRA gelen her doğrudan çocuk aynı aralığı alır. Kural
   ögeye değil KONUMA bağlıdır; çünkü bu blok kimi bölümde <p class="lead">,
   kimisinde <a class="btn">, kimisinde düz bir <div> ile bitiyor. Yalnızca
   .lead'e üst boşluk verildiğinde düğmeyle biten bölümlerde düğme başlığa
   yapışıyordu (bkz. "06 — Doküman Merkezi"). */
.sec-head > * + * { margin-top: var(--space-md); }
/* Açıklama ölçüsü tek noktadan: HTML'de satır içi max-width YAZMAYIN.
   (Eskiden sayfalara dağılmış 38ch/40ch/44ch değerleri vardı.) */
.sec-head .lead { max-width: 58ch; }
.sec-no {
  position: absolute; top: 26px; right: var(--gutter);
  font-family: var(--font-display); font-weight: 800; font-stretch: 120%;
  /* Punto ölçeği DIŞINDA: .hero-watermark ile aynı gerekçe — konturlu,
     seçilemeyen, tıklanamayan bir grafik işaret. */
  font-size: clamp(70px, 10vw, 150px); line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1px var(--line);
  pointer-events: none; user-select: none;
}
.section--dark .sec-no { -webkit-text-stroke-color: rgba(250,246,241,0.14); }
.side-label {
  position: absolute; left: 14px; top: 50%;
  transform: rotate(180deg) translateY(50%);
  writing-mode: vertical-rl;
  font-family: var(--font-mono); font-size: var(--fs-micro); letter-spacing: 0.4em; text-transform: uppercase;
  color: var(--ink-3);
  opacity: 0.65;
}

/* ---------- Sektör kartları ---------- */
.sector-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.sector-card {
  position: relative;
  border: 1.5px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
  padding: 26px 22px 22px;
  overflow: hidden;
  transition: transform 0.22s var(--ease-out), box-shadow 0.22s var(--ease-out), border-color 0.22s;
}
.sector-card:hover { transform: translateY(-5px); border-color: var(--ink); box-shadow: var(--shadow-offset); }
.sector-card .sc-ico { width: 46px; height: 46px; color: var(--crimson); margin-bottom: var(--space-sm); }
.sector-card h3 { font-family: var(--font-display); font-weight: 700; font-stretch: 108%; font-size: var(--fs-h4); margin-bottom: var(--space-xs); }
/* 13.5px → --fs-body (16px). Bu, ölçek çalışmasının GÖRÜNÜR değişikliği:
   kart metni %18 büyür, kartlar uzar. Kasıtlıdır — kart kopyası sayfa
   metnidir, arayüz yazısı değil. line-height 1.5 → 1.6 punto büyüdüğü
   için birlikte açıldı; dosyadaki başka hiçbir satır aralığına
   dokunulmadı. */
.sector-card p { font-size: var(--fs-body); color: var(--ink-3); line-height: 1.6; }
.sector-card .sc-no {
  position: absolute; top: 14px; right: 16px;
  font-family: var(--font-mono); font-size: var(--fs-micro); color: var(--ink-3); opacity: 0.7;
}

/* ---------- Ürün "element" kartları ---------- */
.filter-row { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: var(--space-lg); }
.chip {
  padding: 8px 16px;
  border: 1.5px solid var(--line);
  border-radius: 99px;
  font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: 0.06em;
  background: var(--white);
  transition: all 0.15s;
}
.chip:hover { border-color: var(--ink); }
.chip.on { background: var(--ink); border-color: var(--ink); color: var(--paper); }

.element-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.element-card {
  position: relative;
  border: 1.5px solid var(--ink);
  border-radius: var(--radius);
  background: var(--white);
  padding: 18px;
  display: flex; flex-direction: column;
  min-height: 218px;
  overflow: hidden;
  transition: transform 0.2s var(--ease-out), box-shadow 0.2s var(--ease-out);
}
.element-card::before {
  content: ""; position: absolute; inset: 0;
  background: var(--crimson);
  transform: scaleY(0); transform-origin: bottom;
  transition: transform 0.28s var(--ease-out);
  z-index: 0;
}
.element-card:hover::before { transform: scaleY(1); }
/* transform: 35 numaralı katmanda translateY(-3px) ile yeniden yazılır;
   buradaki eski çapraz kayma tamamen ezildiği için kaldırıldı. */
.element-card:hover { box-shadow: var(--shadow-offset); }
.element-card > * { position: relative; z-index: 1; }
.element-card:hover { color: var(--white); }
.element-card:hover .ec-cas, .element-card:hover .ec-meta { color: rgba(255,255,255,0.75); }
.element-card:hover .ec-formula { color: var(--white); }
.element-card:hover .ec-tag { background: var(--white); color: var(--crimson); }

.ec-top { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 4px; }
.ec-cas { font-family: var(--font-mono); font-size: var(--fs-micro); color: var(--ink-3); letter-spacing: 0.04em; }
.ec-tag {
  font-family: var(--font-mono); font-size: var(--fs-micro); font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase;
  background: var(--crimson); color: var(--white);
  padding: 3px 8px; border-radius: 2px;
}
.ec-tag--new { background: var(--ok); }
.ec-formula {
  font-family: var(--font-display); font-weight: 800; font-stretch: 110%;
  /* Punto ölçeği DIŞINDA bilinçli bir tek seferlik değer: ürün kartına
     kimliğini veren "periyodik cetvel" jesti. Ölçeğe çekilirse kart
     karakterini kaybeder. */
  font-size: clamp(1.6rem, 2.6vw, 2.15rem);
  color: var(--crimson);
  line-height: 1.05;
  margin: var(--space-xs) 0 var(--space-xs);
  word-break: break-word;
}
.ec-formula sub { font-size: 0.55em; }
.ec-name { font-weight: 600; font-size: var(--fs-body); line-height: 1.3; }
/* Sağdaki padding, mutlak konumlu "+" düğmesine (.ec-add) AYRILMIŞ YERDİR.
   .ec-add akıştan çıktığı için metin onun altına girer ve uzun kategori adları
   düğmeyle çakışırdı ("Deri & Tabaklama Kimyasalları"). Hesap: düğme sağdan
   14px içeride ve 36px geniş; kartın kendi padding'i 18px. 14 + 36 − 18 = 32px
   örtüşme, + 12px nefes payı = 44px. .ec-add ölçüsü değişirse burayı da güncelleyin. */
.ec-meta { margin-top: auto; padding-top: var(--space-sm); padding-right: 44px; font-family: var(--font-mono); font-size: var(--fs-label); color: var(--ink-3); display: flex; flex-direction: column; gap: 3px; }
.ec-add {
  position: absolute; right: 14px; bottom: 14px; z-index: 2;
  width: 36px; height: 36px;
  display: grid; place-items: center;
  border: 1.5px solid currentColor; border-radius: var(--radius);
  /* Ölçek dışı: 36px'lik kutuya ortalanmış "+" glifinin metriği. */
  font-size: 19px; font-weight: 600; line-height: 1;
  transition: background 0.15s, color 0.15s, transform 0.15s;
}
.ec-add:hover { background: var(--white); color: var(--crimson); transform: scale(1.08); }
.element-card .ec-add { color: var(--crimson); }
.element-card:hover .ec-add { color: var(--white); }
.element-card:hover .ec-add:hover { color: var(--crimson); }

/* ---------- Çalışma prensipleri ---------- */
.principles { border-top: 2px solid var(--ink); }
.principle {
  display: grid;
  grid-template-columns: 110px minmax(0, 1.1fr) minmax(0, 1.6fr);
  gap: clamp(18px, 4vw, 56px);
  align-items: baseline;
  padding: clamp(24px, 3.6vw, 40px) 0;
  border-bottom: 1px solid var(--line);
  transition: background 0.2s, padding-left 0.25s var(--ease-out);
}
.principle:hover { background: var(--white); padding-left: 18px; }
.principle .p-no {
  font-family: var(--font-mono); font-size: var(--fs-small); color: var(--crimson); letter-spacing: 0.1em;
}
/* Eski clamp 1440px'te 27.2px veriyordu; h3.display'in 25.6px'inden üç
   punto büyük olmasının bir gerekçesi yoktu. İkisi de artık --fs-h3. */
.principle h3 { font-family: var(--font-display); font-weight: 800; font-stretch: 110%; font-size: var(--fs-h3); }
.principle p { color: var(--ink-2); max-width: 56ch; }

/* ---------- İstatistik bandı (koyu) ---------- */
.stats-band { position: relative; overflow: hidden; }
.stats-band .hexbg { position: absolute; inset: 0; opacity: 0.06; pointer-events: none; }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border-inline: 1px solid rgba(250,246,241,0.16); }
.stat-cell { padding: clamp(26px, 4vw, 48px) 28px; border-left: 1px solid rgba(250,246,241,0.16); }
.stat-cell:first-child { border-left: 0; }
.stat-cell b {
  display: block;
  font-family: var(--font-display); font-weight: 800; font-stretch: 115%;
  font-size: clamp(2.4rem, 5.4vw, 4rem); line-height: 1;
  color: var(--paper);
}
.stat-cell b i { font-style: normal; font-size: 0.46em; vertical-align: 0.28em; color: var(--crimson-hot); font-weight: 800; margin-left: 2px; }
.hstat b i { font-style: normal; font-size: 0.5em; vertical-align: 0.22em; color: var(--crimson); font-weight: 800; margin-left: 1px; }
/* ÇOCUK BİRLEŞTİRİCİSİ (>) ŞART — sayıyı DEĞİL yalnızca etiketi biçimlendirir.
   Yapı: .stat-cell > b > span[data-count] + i   ve   .stat-cell > span (etiket).
   ">" olmadan bu kural <b> içindeki sayı span'ini de yakalıyordu: sayı 64px
   yerine 12px, soluk gri ve display:block oluyor, "+" işareti de alt satıra
   düşüyordu. Aynı tuzak .hstat için de geçerli. */
.stat-cell > span { display: block; margin-top: var(--space-xs); font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: 0.16em; text-transform: uppercase; color: rgba(250,246,241,0.6); }

/* ---------- Kurumsal önizleme / zaman çizelgesi ---------- */
/* Tek sütun: başlık + metin önce, yanındaki kutu (checklist) ALTINDA.
   ÖNCEDEN iki eşit sütundu; sağdaki kutu üstten hizalandığı için kısa başlığın
   yanında havada duruyor, başlıkla arasında kopukluk oluşuyordu. Bkz. .sec-head
   üzerindeki aynı gerekçe. */
.about-split { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-lg); align-items: start; }
.about-split .lead { margin: var(--space-md) 0 var(--space-md); max-width: 58ch; }
.about-split > div > p { max-width: 58ch; }        /* düz metin ölçüsü başlıkla aynı */
.about-split .checklist { max-width: 62ch; }        /* kutu tüm genişliğe yayılmasın */
.checklist li { display: flex; gap: 12px; padding: var(--space-xs) 0; font-weight: 500; }
.checklist li::before {
  content: "→"; color: var(--crimson); font-weight: 700; font-family: var(--font-mono);
}

.timeline { position: relative; padding-left: 30px; border-left: 2px solid var(--ink); }
.tl-item { position: relative; padding: 0 0 30px 0; }
.tl-item:last-child { padding-bottom: 0; }
.tl-item::before {
  content: ""; position: absolute; left: -37.5px; top: 7px;
  width: 13px; height: 13px;
  background: var(--paper); border: 3px solid var(--crimson); border-radius: 50%;
}
.tl-item .tl-year { font-family: var(--font-mono); font-size: var(--fs-label); color: var(--crimson); letter-spacing: 0.1em; }
.tl-item h3 { font-family: var(--font-display); font-weight: 700; font-stretch: 108%; font-size: var(--fs-h4); margin: var(--space-2xs) 0 var(--space-2xs); }
.tl-item p { font-size: var(--fs-body); color: var(--ink-2); }

/* ---------- Doküman merkezi kartları ---------- */
.doc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.doc-card {
  position: relative;
  background: var(--white);
  border: 1.5px solid var(--line);
  border-radius: var(--radius);
  padding: 26px 24px;
  display: flex; flex-direction: column; gap: var(--space-xs);
  transition: transform 0.2s var(--ease-out), box-shadow 0.2s var(--ease-out), border-color 0.2s;
}
.doc-card:hover { transform: translateY(-4px); border-color: var(--ink); box-shadow: var(--shadow-offset); }
.doc-card .dc-ext {
  align-self: flex-start;
  font-family: var(--font-mono); font-size: var(--fs-micro); font-weight: 600; letter-spacing: 0.14em;
  border: 1.5px solid var(--crimson); color: var(--crimson);
  padding: 3px 9px; border-radius: 2px;
}
.doc-card h3 { font-family: var(--font-display); font-weight: 700; font-stretch: 108%; font-size: var(--fs-h4); }
/* 14px → --fs-body: .sector-card p ile aynı gerekçe (kart kopyası sayfa
   metnidir). Doküman ızgarası boyca uzar, bu beklenen sonuçtur. */
.doc-card p { font-size: var(--fs-body); color: var(--ink-3); flex-grow: 1; }
.doc-card .dc-meta { font-family: var(--font-mono); font-size: var(--fs-label); color: var(--ink-3); display: flex; justify-content: space-between; border-top: 1px solid var(--line-soft); padding-top: var(--space-sm); }
.doc-card .dc-link { font-weight: 700; color: var(--crimson); font-size: var(--fs-small); display: inline-flex; gap: 8px; align-items: center; }

/* Duyuru kartları (.news-grid / .news-card / .nc-tag) KALDIRILDI: hiçbir sayfada
   duyuru bölümü yok, HK_NEWS verisi ve renderNews() de birlikte silindi. Duyuru
   bölümü geri gelirse stiller .doc-card kalıbından türetilebilir. */

/* ---------- Motto bandı ---------- */
.motto-band { text-align: center; position: relative; overflow: hidden; }
.motto-band .hexbg { position: absolute; inset: 0; opacity: 0.1; pointer-events: none; }
.motto-band blockquote {
  font-family: var(--font-display); font-weight: 800; font-stretch: 112%;
  /* Punto ölçeği DIŞINDA: sitedeki tek "pull quote". h2 seviyesine
     indirilirse crimson bandın tamamı düzleşir. */
  font-size: clamp(1.7rem, 4.4vw, 3.2rem);
  line-height: 1.15; max-width: 22ch; margin: 0 auto;
}
.motto-band .m-sub { margin-top: var(--space-sm); font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: 0.24em; text-transform: uppercase; color: rgba(255,255,255,0.75); }

/* ---------- İletişim CTA ---------- */
.contact-cta { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: clamp(30px, 6vw, 80px); align-items: center; }
.contact-info { display: flex; flex-direction: column; gap: 4px; }
.ci-row {
  display: flex; align-items: center; gap: 16px;
  padding: 16px 4px;
  border-bottom: 1px solid var(--line);
  transition: padding-left 0.2s var(--ease-out), background 0.2s;
}
.ci-row:hover { padding-left: 14px; background: var(--white); }
.ci-row .ci-ico { width: 22px; height: 22px; color: var(--crimson); flex-shrink: 0; }
.ci-row b { font-family: var(--font-mono); font-size: var(--fs-micro); letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-3); display: block; }
.ci-row span { font-weight: 600; font-size: var(--fs-body); }

/* ---------- Form ---------- */
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.field { display: flex; flex-direction: column; gap: 7px; }
.field--full { grid-column: 1 / -1; }
.field label { font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-2); }
/* Onay kutusu ve radyo düğmesi bu kuraldan MUAFTIR: aşağıdaki
   width:100% + padding + çerçeve onlara uygulanınca kutu forma
   yayılıyor (199x13 px) ve onay metni bozuk görünüyordu. */
.field input:not([type="checkbox"]):not([type="radio"]), .field select, .field textarea {
  padding: 13px 15px;
  background: var(--white);
  border: 1.5px solid var(--line);
  border-radius: var(--radius);
  transition: border-color 0.15s, box-shadow 0.15s;
  /* Yazı tipi/boyutu kalıtılmaz: form ögeleri tarayıcının kendi varsayılanını
     kullanır. Belirtilmezse <select> diğer alanlardan farklı görünür. */
  font-family: inherit; font-size: var(--fs-body); color: var(--ink);
  line-height: 1.4;
  width: 100%;
}
/* ---------- Onay kutuları (KVKK / ticari ileti) ---------- */
.field input[type="checkbox"], .field input[type="radio"] {
  width: 17px; height: 17px; flex: 0 0 17px;
  margin: 2px 0 0 0; padding: 0;
  accent-color: var(--crimson);
  cursor: pointer;
}
/* Onay satırı: kutu solda sabit, metin yanında akar. Etiket mono/uppercase
   DEĞİLDİR — bunlar okunacak sözleşme metinleri, alan başlığı değil. */
.consent-row {
  display: flex; align-items: flex-start; gap: 10px;
  font-family: var(--font-body);
  font-size: var(--fs-body); line-height: 1.55;
  letter-spacing: normal; text-transform: none;
  color: var(--ink-2); cursor: pointer;
}
.consent-row + .consent-row { margin-top: 10px; }
.consent-row span { flex: 1 1 auto; }
.consent-row a { color: var(--crimson); font-weight: 600; }
.consent-row a:hover { text-decoration: underline; }

.field input:not([type="checkbox"]):not([type="radio"]):focus, .field select:focus, .field textarea:focus {
  outline: none; border-color: var(--crimson);
  box-shadow: 3px 3px 0 rgba(163, 28, 60, 0.25);
}
.field textarea { min-height: 130px; resize: vertical; }

/* <select>: yerel (native) görünümü kapatıp diğer alanlarla aynı kutuya oturtur.
   appearance:none olmadan tarayıcı kendi çerçevesini, yüksekliğini ve okunu
   çizer; alan komşusu <input>'tan alçak ve farklı kenarlıklı görünür.
   Ok işareti gömülü SVG'dir — CSP dış kaynak yüklemeye izin vermez ve harici
   bir görsel için ekstra istek atmaya değmez. Sağdaki padding oku metnin
   üstüne bindirmemek içindir. */
.field select {
  appearance: none; -webkit-appearance: none; -moz-appearance: none;
  padding-right: 42px;
  cursor: pointer;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%23A31C3C' stroke-width='1.8' stroke-linecap='square'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 15px center;
  background-size: 12px 8px;
}
/* Açılır listenin kendi satırları işletim sistemi tarafından çizilir; yalnızca
   renkleri devralabiliriz. */
.field select option { color: var(--ink); background: var(--white); }

/* ---------- Alt bilgi ---------- */
.footer { background: var(--ink); color: var(--paper); }
.footer-cta {
  border-bottom: 1px solid rgba(250,246,241,0.14);
  padding: clamp(40px, 6vw, 64px) 0;
}
.footer-cta .wrap { display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
/* Sitedeki TEK .display sınıfı taşımayan h2 buydu; bu yüzden 37 numaralı
   katmandaki h2.display skalasından kaçıyor ve 41.6px'te kalıyordu.
   --fs-h2 ile diğer bütün bölüm başlıklarıyla aynı 40px'e çekildi. */
.footer-cta h2 { font-family: var(--font-display); font-weight: 800; font-stretch: 112%; font-size: var(--fs-h2); max-width: 20ch; line-height: 1.1; }
.footer-cta h2 em { font-style: normal; color: var(--crimson-hot); }

.footer-main { display: grid; grid-template-columns: 2fr 1fr 1fr 1.4fr; gap: clamp(28px, 5vw, 64px); padding: clamp(44px, 6vw, 70px) 0; }
.footer h4 { font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: 0.22em; text-transform: uppercase; color: var(--crimson-hot); margin-bottom: var(--space-sm); }
/* Alt bilgideki tanıtım cümlesi akan sayfa metnidir (bağlantı listesi
   değil), o yüzden --fs-small değil --fs-body alır; max-width:34ch
   satır uzunluğunu zaten dizginliyor. */
.footer-brand p { color: rgba(250,246,241,0.65); font-size: var(--fs-body); max-width: 34ch; margin-top: var(--space-sm); }
.footer-links li { padding: 5.5px 0; }
.footer-links a { color: rgba(250,246,241,0.78); font-size: var(--fs-small); transition: color 0.15s, padding-left 0.15s; }
.footer-links a:hover { color: var(--crimson-hot); padding-left: 6px; }
.footer-ent { display: flex; flex-direction: column; gap: 16px; }
.footer-ent .ent { border-left: 2px solid var(--crimson); padding-left: 14px; }
.footer-ent .ent b { display: block; font-size: var(--fs-small); font-weight: 600; }
.footer-ent .ent span { font-size: var(--fs-label); color: rgba(250,246,241,0.55); font-family: var(--font-mono); }

.footer-news { margin-top: var(--space-md); display: flex; gap: 0; }
.footer-news input {
  flex: 1; min-width: 0;
  background: rgba(250,246,241,0.07);
  border: 1.5px solid rgba(250,246,241,0.25); border-right: 0;
  border-radius: var(--radius) 0 0 var(--radius);
  padding: 11px 14px; color: var(--paper); font-size: var(--fs-small);
}
/* WCAG AA: 0.40 saydamlık, alanın kendi zemini (%7 kâğıt + mürekkep)
   üzerinde 3.52:1 veriyordu. 0.50'ye çıkarıldı → 4.68:1. */
.footer-news input::placeholder { color: rgba(250,246,241,0.5); }
.footer-news button {
  background: var(--crimson); color: var(--white);
  padding: 11px 18px; font-weight: 700; font-size: var(--fs-small);
  border-radius: 0 var(--radius) var(--radius) 0;
  border: 1.5px solid var(--crimson);
  transition: background 0.15s;
}
.footer-news button:hover { background: var(--crimson-hot); }

.footer-bottom { border-top: 1px solid rgba(250,246,241,0.14); padding: 22px 0; }
.footer-bottom .wrap { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.footer-bottom p { font-family: var(--font-mono); font-size: var(--fs-label); color: rgba(250,246,241,0.5); }
.footer-bottom nav { display: flex; gap: 20px; font-size: var(--fs-label); }
.footer-bottom nav a { color: rgba(250,246,241,0.6); }
.footer-bottom nav a:hover { color: var(--crimson-hot); }

/* ---------- Alt sayfa başlığı ---------- */
.page-hero {
  position: relative;
  background: var(--ink); color: var(--paper);
  padding: clamp(56px, 8vw, 96px) 0;
  overflow: hidden;
}
.page-hero .hexbg { position: absolute; inset: 0; opacity: 0.07; pointer-events: none; }
.page-hero .crumbs { font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: 0.12em; text-transform: uppercase; color: rgba(250,246,241,0.55); margin-bottom: var(--space-sm); }
.page-hero .crumbs a:hover { color: var(--crimson-hot); }
.page-hero .crumbs .sep { margin: 0 8px; color: var(--crimson-hot); }
/* DİKKAT — bu bildirim ÖLÜYDÜ: on alt sayfanın hepsinde page-hero başlığı
   class="display" taşıyor, yani h1.display (37 numaralı katman, dosya
   sonu) aynı özgüllükte ama daha sonra geldiği için kazanıyor. Buradaki
   eski clamp hiçbir zaman ekrana çıkmadı. Değeri değiştirmek yerine
   belirtece bağlandı ki dosya artık yalan söylemesin; gerçek boyutu
   değiştirmek isteyen --fs-h1 belirtecini düzenlemeli. */
.page-hero h1 { font-size: var(--fs-h1); }
.page-hero .lead { color: rgba(250,246,241,0.75); margin-top: var(--space-md); }

/* ---------- Ürün tablosu ---------- */
.table-tools { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-bottom: var(--space-md); }
.table-tools .search-box { flex: 1; min-width: 240px; position: relative; }
.table-tools .search-box input {
  width: 100%;
  padding: 13px 15px 13px 46px;
  background: var(--white);
  border: 1.5px solid var(--ink);
  border-radius: var(--radius);
  box-shadow: var(--shadow-offset-sm);
}
.table-tools .search-box svg { position: absolute; left: 15px; top: 50%; transform: translateY(-50%); width: 19px; height: 19px; color: var(--ink-3); }
.table-tools select {
  padding: 13px 15px;
  background: var(--white);
  border: 1.5px solid var(--line);
  border-radius: var(--radius);
}
.result-count { font-family: var(--font-mono); font-size: var(--fs-label); color: var(--ink-3); }

.table-wrap { overflow-x: auto; border: 2px solid var(--ink); border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow-offset); }
.ptable { width: 100%; border-collapse: collapse; min-width: 900px; }
.ptable thead th {
  position: sticky; top: 0;
  background: var(--ink); color: var(--paper);
  font-family: var(--font-mono); font-size: var(--fs-label); font-weight: 600;
  letter-spacing: 0.1em; text-transform: uppercase;
  text-align: left;
  padding: 14px 16px;
  cursor: pointer; user-select: none;
  white-space: nowrap;
}
.ptable thead th .sort { color: var(--crimson-hot); margin-left: 5px; }
.ptable tbody td { padding: 13px 16px; border-top: 1px solid var(--line-soft); font-size: var(--fs-small); vertical-align: middle; }
.ptable tbody tr { transition: background 0.12s; }
.ptable tbody tr:hover { background: var(--crimson-soft); }
.ptable .td-no { font-family: var(--font-mono); font-size: var(--fs-label); color: var(--ink-3); }
.ptable .td-name b { display: block; font-weight: 600; }
.ptable .td-name span { font-family: var(--font-mono); font-size: var(--fs-label); color: var(--crimson); }
.ptable .td-cas, .ptable .td-pack, .ptable .td-origin { font-family: var(--font-mono); font-size: var(--fs-label); white-space: nowrap; }
.ptable .cat-pill {
  font-family: var(--font-mono); font-size: var(--fs-micro); letter-spacing: 0.08em; text-transform: uppercase;
  background: var(--paper-2); border: 1px solid var(--line);
  padding: 3px 9px; border-radius: 99px; white-space: nowrap;
}
.ptable .doc-btns { display: flex; gap: 6px; }
.ptable .doc-btns a, .ptable .add-quote {
  font-family: var(--font-mono); font-size: var(--fs-micro); font-weight: 600;
  border: 1.5px solid var(--line); border-radius: 2px;
  padding: 5px 9px; white-space: nowrap;
  transition: all 0.12s;
}
.ptable .doc-btns a:hover { border-color: var(--ink); background: var(--ink); color: var(--paper); }
.ptable .add-quote { border-color: var(--crimson); color: var(--crimson); }
.ptable .add-quote:hover { background: var(--crimson); color: var(--white); }

/* ---------- Teklif sepeti çekmecesi ---------- */
.drawer-overlay {
  position: fixed; inset: 0; z-index: 95;
  background: rgba(27, 18, 22, 0.55);
  backdrop-filter: blur(3px);
  opacity: 0; visibility: hidden;
  transition: opacity 0.25s, visibility 0.25s;
}
.drawer-overlay.open { opacity: 1; visibility: visible; }
/* visibility: .mobile-nav ile aynı gerekçe — kapalı sepet çekmecesindeki
   düğmeler odak sırasından çıksın. border-left 35 numaralı katmanda
   yeniden yazıldığı için buradaki eski 2px'lik hâli kaldırıldı. */
.basket-drawer {
  position: fixed; top: 0; right: 0; bottom: 0; z-index: 96;
  width: min(440px, 100vw);
  background: var(--paper);
  transform: translateX(100%);
  visibility: hidden;
  transition: transform 0.32s var(--ease-out), visibility 0.32s;
  display: flex; flex-direction: column;
}
.basket-drawer.open { transform: translateX(0); visibility: visible; }
.bd-head { display: flex; justify-content: space-between; align-items: center; padding: 22px 24px; border-bottom: 2px solid var(--ink); background: var(--white); }
.bd-head h3 { font-family: var(--font-display); font-weight: 800; font-stretch: 110%; font-size: var(--fs-h3); }
.bd-head .mono { font-size: var(--fs-micro); color: var(--ink-3); }
.bd-close { font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: 0.1em; color: var(--crimson); font-weight: 600; }
.bd-body { flex: 1; overflow-y: auto; padding: 18px 24px; }
.bd-empty { text-align: center; padding: 60px 20px; color: var(--ink-3); }
.bd-empty svg { width: 54px; height: 54px; margin: 0 auto 16px; opacity: 0.4; }
.bd-item { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 13px 0; border-bottom: 1px solid var(--line); }
/* Çekmece YÜZEN bir arayüz yüzeyidir; buradaki metin sayfa gövdesi
   sayılmaz ve --fs-body değil --fs-small alır (bkz. :root ölçek notu). */
.bd-item b { font-size: var(--fs-small); font-weight: 600; display: block; }
.bd-item .mono { font-size: var(--fs-label); color: var(--ink-3); }
/* Ölçek dışı: silme düğmesindeki "×" glifinin metriği. */
.bd-item .bd-remove { color: var(--crimson); font-size: 18px; font-weight: 700; padding: 4px 8px; }
.bd-item .bd-remove:hover { background: var(--crimson-soft); border-radius: 2px; }
/* border-top 35 numaralı katmanda 1px var(--line) olarak yeniden yazılır. */
.bd-foot { padding: 20px 24px; background: var(--white); display: flex; flex-direction: column; gap: 10px; }
.bd-foot .btn { justify-content: center; }
.bd-note { font-size: var(--fs-label); color: var(--ink-3); text-align: center; }

/* ---------- Arama katmanı ---------- */
.search-overlay {
  position: fixed; inset: 0; z-index: 97;
  background: rgba(27, 18, 22, 0.66);
  backdrop-filter: blur(6px);
  display: grid; place-items: start center;
  padding: 12vh var(--gutter) 40px;
  opacity: 0; visibility: hidden;
  transition: opacity 0.2s, visibility 0.2s;
}
.search-overlay.open { opacity: 1; visibility: visible; }
.search-panel {
  width: min(640px, 100%);
  background: var(--paper);
  border: 2px solid var(--ink);
  border-radius: var(--radius);
  box-shadow: 8px 8px 0 rgba(163, 28, 60, 0.85);
  overflow: hidden;
  transform: translateY(-14px);
  transition: transform 0.25s var(--ease-out);
}
.search-overlay.open .search-panel { transform: translateY(0); }
.search-panel input {
  width: 100%;
  padding: 20px 22px;
  font-size: var(--fs-body);
  background: var(--white);
  border: 0; border-bottom: 1.5px solid var(--line);
}
.search-panel input:focus { outline: none; }
/* Odak göstergesi geri getirildi: yukarıdaki outline:none klavyeyle
   gezinen kullanıcıyı tamamen köre bırakıyordu. .search-panel'de
   overflow:hidden olduğu için dışa taşan çerçeve kırpılır; bu yüzden
   outline içeri alındı. Yalnız :focus-visible'da çıkar, fareyle
   tıklamada görünmez. */
.search-panel input:focus-visible { outline: 2px solid var(--crimson); outline-offset: -2px; }
.search-results { max-height: 46vh; overflow-y: auto; }
.search-results a {
  display: flex; justify-content: space-between; align-items: center; gap: 14px;
  padding: 13px 22px;
  border-bottom: 1px solid var(--line-soft);
  font-size: var(--fs-small);
}
.search-results a:hover { background: var(--crimson); color: var(--white); }
.search-results a:hover .mono { color: rgba(255,255,255,0.75); }
.search-results a .mono { font-size: var(--fs-label); color: var(--ink-3); }
.search-hint { padding: 12px 22px; font-family: var(--font-mono); font-size: var(--fs-micro); color: var(--ink-3); background: var(--paper-2); }

/* ---------- SSS akordeon ---------- */
.faq-list { border-top: 2px solid var(--ink); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item summary {
  display: flex; justify-content: space-between; align-items: center; gap: 18px;
  padding: 22px 4px;
  font-family: var(--font-display); font-weight: 700; font-stretch: 106%; font-size: var(--fs-h4);
  cursor: pointer; list-style: none;
  transition: color 0.15s, padding-left 0.2s var(--ease-out);
}
.faq-item summary::-webkit-details-marker { display: none; }
/* 22px ölçek dışı: bu bir metin değil, döndürülerek "×"e dönüşen artı
   glifidir; boyutu satır yüksekliğine göre ayarlanmıştır. */
.faq-item summary::after { content: "+"; font-family: var(--font-mono); font-size: 22px; color: var(--crimson); flex-shrink: 0; transition: transform 0.25s; }
.faq-item[open] summary::after { transform: rotate(45deg); }
.faq-item summary:hover { color: var(--crimson); padding-left: 10px; }
.faq-item .faq-body { padding: 0 4px 24px; color: var(--ink-2); max-width: 72ch; }

/* ---------- Sertifika kartları ---------- */
.cert-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.cert-card {
  text-align: center;
  border: 1.5px dashed var(--ink-3);
  border-radius: var(--radius);
  padding: 30px 18px;
  background: var(--white);
  transition: border-color 0.2s, transform 0.2s var(--ease-out);
}
.cert-card:hover { border-color: var(--crimson); border-style: solid; transform: translateY(-4px); }
.cert-card .cc-badge {
  width: 62px; height: 62px; margin: 0 auto 14px;
  display: grid; place-items: center;
  border: 2.5px solid var(--crimson); border-radius: 50%;
  /* Ölçek dışı: 62px'lik halkaya ortalanmış kısaltma; metin değil rozet. */
  font-family: var(--font-display); font-weight: 800; font-size: 13px; color: var(--crimson);
}
.cert-card h3 { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-h4); margin-bottom: var(--space-2xs); }
/* 12.5px → --fs-body: bu emirdeki EN BÜYÜK tek sıçrama (%28). Kart
   ortalanmış, metni kısa ve iç boşluğu 30px olduğu için kaldırıyor;
   4'lü ızgara 1080px civarında ayrıca gözle kontrol edilmeli. */
.cert-card p { font-size: var(--fs-body); color: var(--ink-3); }

/* ---------- Marka kiti ---------- */
.swatch-row { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.swatch { border: 1.5px solid var(--ink); border-radius: var(--radius); overflow: hidden; background: var(--white); }
.swatch .sw-color { height: 92px; }
.swatch .sw-info { padding: 12px 14px; }
.swatch .sw-info b { display: block; font-size: var(--fs-small); font-weight: 700; }
.swatch .sw-info span { font-family: var(--font-mono); font-size: var(--fs-label); color: var(--ink-3); }

.type-specimen { border: 1.5px solid var(--line); border-radius: var(--radius); background: var(--white); padding: 28px; display: flex; flex-direction: column; gap: 6px; }
.type-specimen .ts-label { font-family: var(--font-mono); font-size: var(--fs-micro); letter-spacing: 0.16em; text-transform: uppercase; color: var(--crimson); margin-bottom: var(--space-xs); }

.logo-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.logo-tile { border: 1.5px solid var(--line); border-radius: var(--radius); padding: 34px; display: grid; place-items: center; min-height: 190px; position: relative; }
.logo-tile--light { background: var(--white); }
.logo-tile--dark { background: var(--ink); }
.logo-tile--crimson { background: var(--crimson); }
.logo-tile .lt-label { position: absolute; top: 10px; left: 12px; font-family: var(--font-mono); font-size: var(--fs-micro); letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-3); }
.logo-tile--dark .lt-label, .logo-tile--crimson .lt-label { color: rgba(255,255,255,0.55); }
.logo-tile svg, .logo-tile img { width: 110px; height: 110px; }

/* ---------- Yüzen ögeler ---------- */
.float-wa {
  position: fixed; right: 22px; bottom: 22px; z-index: 80;
  width: 58px; height: 58px;
  display: grid; place-items: center;
  background: #23A455; color: var(--white);
  border: 2px solid var(--ink);
  border-radius: 50%;
  box-shadow: var(--shadow-offset-sm);
  transition: transform 0.2s var(--ease-out), box-shadow 0.2s var(--ease-out);
}
.float-wa:hover { transform: translate(-2px, -2px) scale(1.04); box-shadow: var(--shadow-offset); }
.float-wa svg { width: 28px; height: 28px; }

.to-top {
  position: fixed; right: 30px; bottom: 94px; z-index: 79;
  width: 42px; height: 42px;
  display: grid; place-items: center;
  background: var(--ink); color: var(--paper);
  border-radius: var(--radius);
  opacity: 0; visibility: hidden; transform: translateY(10px);
  transition: all 0.25s;
}
.to-top.show { opacity: 1; visibility: visible; transform: translateY(0); }
.to-top:hover { background: var(--crimson); }

/* ---------- Bildirim (toast) ---------- */
.toast {
  position: fixed; left: 50%; bottom: 30px; z-index: 99;
  transform: translate(-50%, 20px);
  background: var(--ink); color: var(--paper);
  border-left: 4px solid var(--crimson-hot);
  padding: 14px 22px;
  border-radius: var(--radius);
  font-size: var(--fs-small); font-weight: 500;
  box-shadow: 0 12px 34px rgba(27, 18, 22, 0.35);
  opacity: 0; visibility: hidden;
  transition: all 0.3s var(--ease-out);
  max-width: min(480px, calc(100vw - 40px));
}
.toast.show { opacity: 1; visibility: visible; transform: translate(-50%, 0); }

/* ---------- Çerez bildirimi ---------- */
.cookie-bar {
  position: fixed; left: 22px; bottom: 22px; z-index: 85;
  width: min(400px, calc(100vw - 44px));
  background: var(--white);
  border: 2px solid var(--ink);
  border-radius: var(--radius);
  box-shadow: var(--shadow-offset);
  padding: 20px;
  transform: translateY(16px); opacity: 0; visibility: hidden;
  transition: all 0.35s var(--ease-out);
}
.cookie-bar.show { transform: translateY(0); opacity: 1; visibility: visible; }
/* Çerez kutusu da yüzen bir yüzeydir → --fs-small (bkz. :root ölçek notu). */
.cookie-bar p { font-size: var(--fs-small); color: var(--ink-2); margin-bottom: var(--space-sm); }
.cookie-bar .cb-actions { display: flex; gap: 10px; }

/* ---------- Müşteri girişi & sipariş sepeti ---------- */
.user-wrap { position: relative; display: flex; }
/* Ölçek dışı: 26px'lik daireye ortalanmış baş harf. */
.user-ini { font-family: var(--font-display); font-weight: 800; font-size: 13px; color: var(--white); background: var(--crimson); width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; }
.icon-btn.user-on { border-color: var(--crimson); }
.icon-btn.user-on:hover { background: var(--white); }

.auth-overlay {
  position: fixed; inset: 0; z-index: 97;
  background: rgba(27, 18, 22, 0.66); backdrop-filter: blur(6px);
  display: grid; place-items: center; padding: 20px;
  opacity: 0; visibility: hidden; transition: opacity 0.2s, visibility 0.2s;
}
.auth-overlay.open { opacity: 1; visibility: visible; }
/* box-shadow 35 numaralı katmanda var(--shadow-offset) ile yeniden yazılır. */
.auth-panel {
  position: relative;
  width: min(420px, 100%); background: var(--white);
  border: 2px solid var(--ink); border-radius: var(--radius);
  padding: 30px 28px;
  transform: translateY(-12px); transition: transform 0.25s var(--ease-out);
}
.auth-overlay.open .auth-panel { transform: translateY(0); }
.auth-panel h3 { font-family: var(--font-display); font-weight: 800; font-stretch: 110%; font-size: var(--fs-h3); }
.auth-panel .a-sub { font-size: var(--fs-small); color: var(--ink-3); margin: var(--space-2xs) 0 var(--space-sm); }
.auth-err { display: none; margin-bottom: var(--space-sm); background: #FDECEC; border: 1px solid #F3B8B8; color: #A31C1C; border-radius: var(--radius); padding: 10px 13px; font-size: var(--fs-small); font-weight: 600; }
.auth-err.show { display: block; }
.auth-demo { margin-top: var(--space-sm); border-top: 1px dashed var(--line); padding-top: var(--space-sm); }
.auth-close { position: absolute; top: 14px; right: 16px; font-family: var(--font-mono); font-size: var(--fs-label); color: var(--crimson); font-weight: 600; }
.auth-close:hover { text-decoration: underline; }

.user-pop {
  position: absolute; right: 0; top: calc(100% + 10px); z-index: 70;
  min-width: 230px; background: var(--white); border: 2px solid var(--ink);
  border-radius: var(--radius); box-shadow: var(--shadow-offset);
  padding: 8px; display: none; text-align: left;
}
.user-pop.open { display: block; }
.user-pop .up-head { padding: 10px 12px; border-bottom: 1px solid var(--line-soft); margin-bottom: 6px; }
.user-pop .up-head b { display: block; font-size: var(--fs-small); color: var(--ink); }
.user-pop .up-head span { font-family: var(--font-mono); font-size: var(--fs-micro); color: var(--ink-3); }
.user-pop a, .user-pop button.up-item { display: block; width: 100%; text-align: left; padding: 9px 12px; font-size: var(--fs-small); font-weight: 500; border-radius: 2px; }
.user-pop a:hover, .user-pop button.up-item:hover { background: var(--crimson); color: #fff; }

/* VKN/TCKN biçim rozeti (hesap başvurusu + portal onay kutusu) */
.vkn-badge { font-family: var(--font-mono); font-size: var(--fs-label); font-weight: 600; font-style: normal; }
.vkn-badge.ok { color: #15803D; }
.vkn-badge.bad { color: var(--crimson); }

/* Sepette miktar denetimi */
.bd-right { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.bd-qty { display: inline-flex; align-items: center; border: 1.5px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.bd-qty button:disabled { opacity: 0.35; cursor: default; }
.bd-qty button { width: 27px; height: 27px; font-weight: 700; color: var(--crimson); background: var(--paper-2); line-height: 1; }
.bd-qty button:hover { background: var(--crimson-soft); }
.bd-qty i { font-style: normal; min-width: 30px; text-align: center; font-family: var(--font-mono); font-size: var(--fs-label); }
/* Serbest miktar girişi. Kimyasallar kilo ile satıldığı için 2.400 gibi değerler
   düğmeye basarak girilemez; kutuya doğrudan yazılır. Kutu çerçevesizdir:
   çerçeveyi saran .bd-qty çizer, böylece −/+ ile tek bir denetim gibi görünür. */
.bd-qty-input {
  width: 62px; text-align: center;
  font-family: var(--font-mono); font-size: var(--fs-label); color: var(--ink);
  background: var(--white); border: 0; border-inline: 1.5px solid var(--line);
  padding: 5px 4px; -moz-appearance: textfield;
}
.bd-qty-input:focus { outline: none; background: var(--crimson-soft); }
/* Birim etiketi denetimin DIŞINDA durur: çerçevenin içine alınırsa sayıyla
   karışıp miktarın bir parçası gibi okunuyor. */
.bd-qty-wrap { display: inline-flex; align-items: center; }
.bd-qty-unit { margin-left: var(--space-xs); font-family: var(--font-mono); font-size: var(--fs-label); color: var(--ink-3); }
.bd-mode { display: inline-flex; align-items: center; gap: 7px; margin: 2px 0 10px; font-family: var(--font-mono); font-size: var(--fs-micro); letter-spacing: 0.1em; color: #15803D; background: #E3F4E9; border: 1px solid #BFE3CC; border-radius: 999px; padding: 4px 11px; }
.bd-success { text-align: center; padding: 34px 16px; }
/* 26px ölçek dışı: 62px'lik halkaya ortalanmış onay işareti glifi. */
.bd-success .ok-ring { width: 62px; height: 62px; margin: 0 auto 14px; border-radius: 50%; border: 3px solid #15803D; color: #15803D; display: grid; place-items: center; font-size: 26px; font-weight: 800; }
.bd-success h4 { font-family: var(--font-display); font-weight: 800; font-stretch: 110%; font-size: var(--fs-h4); margin-bottom: var(--space-xs); }
.bd-success p { font-size: var(--fs-small); color: var(--ink-2); }
.bd-success .mono { color: var(--crimson); font-weight: 600; }

/* ---------- Görünürlük animasyonları ---------- */
.reveal { opacity: 0; transform: translateY(26px); transition: opacity 0.7s var(--ease-out), transform 0.7s var(--ease-out); }
.reveal.in { opacity: 1; transform: none; }
.reveal-d1 { transition-delay: 0.08s; }
.reveal-d2 { transition-delay: 0.16s; }
.reveal-d3 { transition-delay: 0.24s; }
.reveal-d4 { transition-delay: 0.32s; }

@keyframes float-y { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-14px); } }
@keyframes spin-slow { to { transform: rotate(360deg); } }
@keyframes pulse-node { 0%, 100% { opacity: 0.35; } 50% { opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
  html { scroll-behavior: auto; }
}

/* ---------- Duyarlı düzen ---------- */
@media (max-width: 1080px) {
  .nav { display: none; }
  .burger { display: grid; }
  .sector-grid, .element-grid, .cert-grid { grid-template-columns: repeat(3, 1fr); }
  .swatch-row { grid-template-columns: repeat(3, 1fr); }
  .footer-main { grid-template-columns: 1fr 1fr; }
  .side-label { display: none; }
}
@media (max-width: 860px) {
  .hero-grid, .about-split, .contact-cta { grid-template-columns: 1fr; }
  .hero-visual { min-height: 0; max-width: 440px; }
  .hero-strip .wrap { grid-template-columns: 1fr 1fr; }
  .hstat:nth-child(3) { border-left: 0; }
  .hstat { border-top: 1px solid var(--line); }
  .hstat:nth-child(-n+2) { border-top: 0; }
  .stats-grid { grid-template-columns: 1fr 1fr; }
  .stat-cell:nth-child(3) { border-left: 0; }
  .stat-cell { border-top: 1px solid rgba(250,246,241,0.16); }
  .stat-cell:nth-child(-n+2) { border-top: 0; }
  .doc-grid, .logo-tiles { grid-template-columns: 1fr 1fr; }
  .principle { grid-template-columns: 60px 1fr; }
  .principle p { grid-column: 2; }
  .sec-no { font-size: 64px; top: 18px; }
  .tb-links .tb-hide { display: none; }
}
@media (max-width: 640px) {
  .sector-grid, .element-grid, .doc-grid, .cert-grid, .form-grid, .logo-tiles { grid-template-columns: 1fr 1fr; }
  .element-grid { grid-template-columns: 1fr 1fr; }
  .swatch-row { grid-template-columns: 1fr 1fr; }
  .field--full { grid-column: 1 / -1; }
  .hero-ctas .btn { width: 100%; justify-content: center; }
  .footer-main { grid-template-columns: 1fr; }
  .tb-rates .rate:nth-child(n+3) { display: none; }
  .brand-name span { letter-spacing: 0.28em; }
  /* KRİTİK: telefonda başlık satırı (logo + kelime markası + 4 ikon
     düğmesi) 465px istiyordu; hamburger 403-445px arasına düşüp ekranın
     dışında kalıyor, body'deki overflow-x:hidden yüzünden kaydırarak da
     ulaşılamıyordu — yani ana menü erişilemez oluyordu. Telefonda yalnız
     logo işareti bırakıldı; hamburger artık 284-326px arasında duruyor,
     yani 326px ve üzeri her ekranda tamamen görünür (360/375/390/393/414
     dahil bütün güncel telefonlar). Yalnız 320px'lik çok eski cihazlarda
     sağdan 6px kırpılır; düğmenin 36px'i hâlâ dokunulabilir durumda.
     Daha da yer gerekirse bu blokta .site-header .wrap gap'ini küçültün.
     Seçici bilerek .site-header ile sınırlandı:
     .brand-name alt bilgide ve portal.css'te (.lg-side, .sb) de kullanılır,
     oralarda gizlenmemeli. */
  .site-header .brand-name { display: none; }
}
@media (max-width: 460px) {
  .sector-grid, .element-grid, .doc-grid, .cert-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   KURUMSAL RAFİNERİ KATMANI — premium sadeleştirme
   Emsal analizi (BASF · Clariant · LANXESS · Brenntag · IMCD):
   nötr zemin + yumuşak koyu gri metin, tek vurgu renginin %5-10
   disiplini, ince kesimli büyük başlıklar, keskin köşe, kalın
   çerçeve yerine ince çizgi ve zarif derinlik. Emoji yok.

   ------------------------------------------------------------
   BU KATMAN NEYİ EZİYOR — ÖNCE BURAYI OKUYUN
   Aşağıdaki kurallar dosyanın başındaki temel kuralların üstüne yazar.
   Yukarıda bir değeri değiştirip ekranda sonuç göremiyorsanız sebebi
   büyük ihtimalle burasıdır. Tamamen ölü kalan eski bildirimler
   temizlendi; aşağıda kalanlar ise KISMEN ezdikleri için duruyor:

     :root ............ --shadow-offset, --shadow-offset-sm
                        (temel :root'taki sert ofset gölgeler silindi)
     .display ......... font-weight, font-stretch
     .btn ............. border-width + border-color (border kısayolunun
                        yalnız `solid` kısmı 03. bölümden gelir),
                        font-weight, letter-spacing, box-shadow
     .btn:hover ....... box-shadow  (+ 37. blokta transform)
     .btn--primary .... border-color — .btn'in buradaki border-color'ı
                        03. bölümdeki .btn--primary bildirimini ezdiği
                        için crimson-deep burada yeniden söyleniyor
     .btn--ghost ...... DİKKAT: 03. bölümdeki border-color ve box-shadow
                        bildirimleri buradaki .btn tarafından eziliyor,
                        yani ghost varyantı artık ayrı bir kenarlık
                        rengi taşımıyor. Tasarım kararı ekibe ait;
                        davranış korunsun diye dokunulmadı.
     .icon-btn ........ border-width (stil ve renk 05. bölümde kalır)
     .hero-watermark .. -webkit-text-stroke
     .element-card, .doc-card, .cust-card, .search-panel,
     .auth-panel, .user-pop ... border-width + border-color
     .element-card:hover ... transform
     .auth-panel ...... box-shadow
     .basket-drawer ... border-left
     .bd-foot ......... border-top
     .bd-head ......... border-bottom-width (stil ve renk 24. bölümde kalır)

   37 numaralı "Rafineri 2" bloğu ayrıca h1.display / h2.display punto
   skalasını, .btn:hover + .btn:active transformlarını, body::before
   dokusunu ve .hero-ctas .btn--primary iç boşluğunu belirler.
   ============================================================ */
:root {
  --shadow-offset: 0 1px 2px rgba(27, 18, 22, 0.05), 0 18px 44px rgba(27, 18, 22, 0.09);
  --shadow-offset-sm: 0 1px 2px rgba(27, 18, 22, 0.05), 0 8px 22px rgba(27, 18, 22, 0.07);
}
/* body rengi artık :root'taki --ink-body belirtecinden geliyor. */
.display { font-weight: 560; font-stretch: 104%; }
h1.display { font-weight: 500; }
.display b, .display strong { font-weight: 720; }

.btn {
  border-width: 1px;
  border-color: rgba(27, 18, 22, 0.30);
  font-weight: 600;
  letter-spacing: 0.01em;
  box-shadow: none;
}
.btn:hover { box-shadow: var(--shadow-offset-sm); }
.btn--primary { border-color: var(--crimson-deep); }
.btn--dark { border-color: var(--ink); }
.icon-btn { border-width: 1px; }

.hero-watermark { -webkit-text-stroke: 1px rgba(163, 28, 60, 0.07); }

.element-card, .doc-card, .cust-card, .search-panel, .auth-panel, .user-pop {
  border-width: 1px;
  border-color: var(--line);
}
.element-card:hover { transform: translateY(-3px); }
.auth-panel { box-shadow: var(--shadow-offset); }
.basket-drawer { border-left: 1px solid var(--line); }
.bd-foot { border-top: 1px solid var(--line); }
.bd-head { border-bottom-width: 1px; }

/* ---------- Siparişlerim (ana sitede müşteri takibi) ---------- */
.mo-scope { font-size: var(--fs-small); color: var(--ink-3); margin-bottom: var(--space-sm); }
.mo-scope .mono { color: var(--ink); font-weight: 600; }
.mo-empty { text-align: center; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); padding: 48px 24px; }
.mo-empty p { color: var(--ink-2); margin-bottom: var(--space-sm); }
.mo-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-offset-sm); padding: 22px 24px; margin-bottom: 18px; }
.mo-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.mo-head b.mono { font-size: var(--fs-body); letter-spacing: 0.02em; }
/* ÇOCUK BİRLEŞTİRİCİSİ (>) ŞART — .stat-cell > span ile birebir aynı tuzak.
   Yapı: .mo-head > div > (b.mono + span[tarih])  ve  .mo-head > span.ost.
   Eski `.mo-head span` seçicisi (0,1,1) özgüllüğüyle DURUM ROZETİNİ de
   yakalıyordu; .ost ve .ost--* (0,1,0) olduğu için rozet kendi durum
   rengini değil bu kuralın soluk grisini alıyor, 11px yerine 12px'e
   çıkıyor ve 2px yukarıdan kayıyordu — yani aşağıdaki beş .ost--* renk
   kuralı tamamen ölüydü. Zincir .mo-head > div > span'e daraltıldı;
   tekrar torun seçiciye çevirmeyin. */
.mo-head > div > span { display: block; font-size: var(--fs-label); color: var(--ink-3); margin-top: var(--space-2xs); }
.ost { font-family: var(--font-mono); font-size: var(--fs-micro); font-weight: 600; letter-spacing: 0.07em; padding: 5px 12px; border-radius: 999px; border: 1px solid; white-space: nowrap; }
.ost--bekliyor { color: #92400E; background: #FEF6E7; border-color: #F3DFB8; }
.ost--onay    { color: #1D4ED8; background: #EFF4FE; border-color: #C7D8F9; }
.ost--uretim  { color: #7C2D9C; background: #F8F0FC; border-color: #E5CCF0; }
.ost--sevk    { color: #0E7490; background: #ECFBFF; border-color: #BEE9F2; }
.ost--teslim  { color: #15803D; background: #F0FAF3; border-color: #C6E8D2; }
.mo-items { border-top: 1px solid var(--line-soft); margin-top: var(--space-sm); }
.mo-item { display: flex; justify-content: space-between; gap: 14px; padding: 9px 0; border-bottom: 1px solid var(--line-soft); font-size: var(--fs-small); }
.mo-item .mono { color: var(--ink-3); font-size: var(--fs-label); }
.mo-prog { height: 4px; background: var(--paper-3); border-radius: 999px; margin: var(--space-sm) 0 var(--space-sm); overflow: hidden; }
.mo-prog i { display: block; height: 100%; background: var(--crimson); border-radius: 999px; transition: width 0.4s var(--ease-out); }
.mo-tl { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.mo-tl-step { border-top: 2px solid var(--line); padding-top: var(--space-xs); }
.mo-tl-step b { display: block; font-size: var(--fs-label); font-weight: 600; color: var(--ink-3); }
.mo-tl-step span { font-size: var(--fs-micro); color: var(--ink-3); opacity: 0.8; }
.mo-tl-step.done, .mo-tl-step.now { border-top-color: var(--crimson); }
.mo-tl-step.done b { color: var(--ink); }
.mo-tl-step.now b { color: var(--crimson); }
.mo-meta { margin-top: var(--space-sm); font-size: var(--fs-label); color: var(--ink-3); }
.mo-note { margin-top: var(--space-xs); font-size: var(--fs-small); color: var(--ink-2); background: var(--paper-2); border: 1px solid var(--line-soft); border-radius: 3px; padding: 9px 12px; }
@media (max-width: 640px) { .mo-tl { grid-template-columns: repeat(2, 1fr); } }

/* Rafineri 2: distribütör emsalleri (Brenntag/IMCD/Azelis ölçümleri) —
   ılımlı hero ölçeği, zıplamayan butonlar, fısıltı düzeyinde doku */
/* h1/h2 punto skalasının GERÇEKTE kazandığı yer burasıdır — temel
   katmandaki .page-hero h1 bildirimi ölüdür. Belirteçlerin içindeki
   clamp'ler bu iki satırdan birebir kopyalandı, yani ekranda hiçbir
   şey değişmedi (1440px'te h2 hâlâ 40px). Başlık ölçeğini değiştirmek
   isteyen --fs-h1 / --fs-h2 belirtecini düzenlemeli. */
h1.display { font-size: var(--fs-h1); }
h2.display { font-size: var(--fs-h2); }
.btn:hover { transform: none; }
.btn:active { transform: none; box-shadow: none; }
body::before { opacity: 0.028; }
.hero-ctas .btn--primary { padding-inline: 30px; }

/* Varil ürünlerinde sepetteki toplam kilo. Miktarın ALTINDA, ikincil tonda:
   asıl giriş varil sayısıdır, kilo onun türevidir ve okunurluğu bozmamalı. */
.bd-qty-wrap { flex-wrap: wrap; }
.bd-qty-kg {
  flex: 1 0 100%; margin-top: var(--space-2xs);
  font-family: var(--font-mono); font-size: var(--fs-micro); color: var(--ink-3);
  text-align: right;
}

/* "Beni hatırla" — giriş penceresinde güvenlik/kolaylık tercihi. */
.auth-remember { margin-top: var(--space-sm); }
.auth-remember-lab { display: flex; align-items: flex-start; gap: var(--space-xs); cursor: pointer; }
.auth-remember-lab input { width: 17px; height: 17px; margin: 1px 0 0; flex: 0 0 auto; accent-color: var(--crimson); cursor: pointer; }
.auth-remember-txt { display: flex; flex-direction: column; gap: 2px; }
.auth-remember-txt b { font-size: var(--fs-small); color: var(--ink); font-weight: 600; }
.auth-remember-txt span { font-size: var(--fs-micro); color: var(--ink-3); line-height: 1.4; }

/* ---------- İletişim formu: gönderilemedi kutusu ---------- */
.cf-fallback {
  grid-column: 1 / -1;
  border: 1px solid var(--line);
  border-left: 3px solid var(--crimson);
  border-radius: var(--radius);
  background: var(--paper-2);
  padding: 16px 18px;
  margin-top: 4px;
}
.cf-fallback b { display: block; font-size: var(--fs-body); color: var(--ink); margin-bottom: 4px; }
.cf-fallback p { font-size: var(--fs-small); color: var(--ink-2); line-height: 1.55; margin-bottom: 12px; }
.cf-fallback-links { display: flex; flex-wrap: wrap; gap: 8px; }

/* ============================================================
   TESİS GALERİSİ
   Kurumsal ve hizmetler sayfalarındaki gerçek tesis fotoğrafları.
   Izgara auto-fit ile kırılır: dar ekranda tek sütun, geniş ekranda
   3-4 sütun. Her kart sabit oranda (4:3) kırpılır ki satırlar hizalı
   dursun — fotoğraflar farklı en-boy oranlarında geliyor.
   ============================================================ */
.tesis-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--space-md);
}
.tesis-card {
  position: relative;
  display: block;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--white);
  box-shadow: var(--shadow-offset-sm);
  cursor: zoom-in;
  text-align: left;
  width: 100%;
  font: inherit;
  color: inherit;
  transition: transform 0.35s var(--ease-out), box-shadow 0.35s var(--ease-out);
}
.tesis-card:hover, .tesis-card:focus-visible { transform: translateY(-3px); box-shadow: var(--shadow-offset); }
.tesis-card img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: var(--sand);
}
/* Bina panoraması ve vitrin dikey: kendi oranlarında dursunlar */
.tesis-card--wide { grid-column: 1 / -1; }
.tesis-card--wide img { aspect-ratio: 21 / 10; }
.tesis-cap {
  display: block;
  padding: var(--space-sm) var(--space-md);
  font-size: var(--fs-small);
  font-weight: 600;
  color: var(--ink-2);
  border-top: 1px solid var(--line);
}

/* --- Büyütme penceresi --- */
.lightbox {
  position: fixed; inset: 0; z-index: 120;
  display: none; align-items: center; justify-content: center;
  background: rgba(27, 18, 22, 0.92);
  padding: var(--space-md);
}
.lightbox.show { display: flex; }
.lightbox img {
  max-width: min(1200px, 94vw);
  max-height: 82vh;
  width: auto; height: auto;
  border-radius: var(--radius);
  box-shadow: 0 24px 60px rgba(0,0,0,.5);
}
.lb-cap {
  position: absolute; left: 0; right: 0; bottom: max(16px, env(safe-area-inset-bottom));
  text-align: center; color: var(--paper);
  font-size: var(--fs-small); font-weight: 600;
  padding: 0 var(--space-md);
}
.lb-close {
  position: absolute; top: 14px; right: 16px;
  background: none; border: 0; cursor: pointer;
  color: var(--paper); font-weight: 800; letter-spacing: .08em;
  font-size: var(--fs-small); padding: 10px 12px;
}
.lb-nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  background: rgba(250,246,241,.14); border: 0; cursor: pointer;
  color: var(--paper); font-size: 26px; line-height: 1;
  width: 46px; height: 46px; border-radius: 50%;
}
.lb-nav:hover { background: rgba(250,246,241,.26); }
.lb-prev { left: 12px; } .lb-next { right: 12px; }
@media (max-width: 640px) { .lb-nav { display: none; } }


/* ============================================================
   DAİRESEL SUNUM (carousel)
   İşaretli ızgara (.tesis-grid[data-sunum]) main.js tarafından buna
   dönüştürülür. Sonsuz döngü: son kareden ileri gidince başa, ilk
   kareden geri gidince sona sarar — iki yön de her zaman açıktır.
   JS çalışmazsa ızgara olduğu gibi kalır (bkz. .sunum-yok).
   ============================================================ */
.sunum { position: relative; }
.sunum-sahne {
  position: relative;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--ink);
  box-shadow: var(--shadow-offset-sm);
}
.sunum-sahne img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  cursor: zoom-in;
  /* Kare değişince yumuşak geçiş; kaydırma değil sönümlenme — farklı
     en-boy oranındaki fotoğraflar yan yana kaydırılınca zıplıyordu. */
  animation: sunumGir 0.42s var(--ease-out);
}
@keyframes sunumGir { from { opacity: 0; transform: scale(1.015); } to { opacity: 1; transform: none; } }

.sunum-ok {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 46px; height: 46px; border-radius: 50%;
  border: 0; cursor: pointer;
  background: rgba(27,18,22,.55);
  color: var(--paper);
  font-size: 26px; line-height: 1;
  display: flex; align-items: center; justify-content: center;
  transition: background 0.25s var(--ease-out);
}
.sunum-ok:hover, .sunum-ok:focus-visible { background: var(--crimson); }
.sunum-prev { left: 12px; }
.sunum-next { right: 12px; }

.sunum-alt {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: var(--space-sm);
  padding: var(--space-sm) 2px 0;
}
.sunum-cap { font-size: var(--fs-small); font-weight: 700; color: var(--ink-2); }
.sunum-sayac { font-family: var(--font-mono); font-size: var(--fs-small); color: var(--ink-3); white-space: nowrap; }

.sunum-noktalar { display: flex; flex-wrap: wrap; gap: 7px; margin-top: var(--space-sm); }
.sunum-nokta {
  width: 9px; height: 9px; border-radius: 50%; padding: 0;
  border: 1px solid var(--line-strong, var(--line));
  background: transparent; cursor: pointer;
  transition: background 0.25s var(--ease-out), transform 0.25s var(--ease-out);
}
.sunum-nokta[aria-current="true"] { background: var(--crimson); border-color: var(--crimson); transform: scale(1.25); }

/* JS sunumu kurunca özgün ızgara gizlenir ama DOM'da kalır:
   büyütme penceresi aynı düğmeleri kullanıyor. */
.tesis-grid.sunum-yok { display: none; }

@media (max-width: 560px) {
  .sunum-ok { width: 38px; height: 38px; font-size: 21px; }
  .sunum-sahne img { aspect-ratio: 4 / 3; }
}

/* Sunum duraklat/oynat düğmesi. Sol altta, oklardan uzakta durur ki
   ok tuşlarına basarken yanlışlıkla durdurulmasın. */
.sunum-durdur {
  position: absolute; left: 12px; bottom: 12px;
  width: 34px; height: 34px; border-radius: 50%;
  border: 0; cursor: pointer;
  background: rgba(27,18,22,.55);
  color: var(--paper);
  font-size: 11px; line-height: 1;
  display: flex; align-items: center; justify-content: center;
  transition: background 0.25s var(--ease-out);
}
.sunum-durdur:hover, .sunum-durdur:focus-visible { background: var(--crimson); }

/* ============================================================
   FİYAT GÖSTERİMİ
   Liste fiyatları (data.js -> HK_FIYAT). Fiyatı olmayan üründe
   "Teklif alın" yazar; boş hücre bırakılmaz.
   ============================================================ */
.fiyat-kutu { display: grid; gap: 3px; }
.fiyat-satir { display: flex; align-items: baseline; gap: 7px; flex-wrap: wrap; }
.fiyat-tutar {
  font-family: var(--font-mono);
  font-weight: 600;
  font-size: var(--fs-small);
  color: var(--ink);
  white-space: nowrap;
}
.fiyat-ambalaj { font-size: 11.5px; color: var(--ink-3); white-space: nowrap; }
.fiyat-yok { font-size: var(--fs-small); color: var(--ink-3); font-style: italic; }
.td-fiyat { white-space: nowrap; }

/* Katalog kartında fiyat, ürün adının altında ayrı bir satır */
.fiyat-kart { margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--line); }

/* Ticari koşul kutusu. Fiyatlar herkese açık olduğu için bu satırlar
   göz ardı edilemeyecek kadar belirgin olmalı: sol kenarda bordo şerit. */
.fiyat-not {
  display: flex; flex-wrap: wrap; align-items: baseline;
  justify-content: space-between; gap: 6px 18px;
  margin-bottom: var(--space-md);
  padding: var(--space-sm) var(--space-md);
  border: 1px solid var(--line);
  border-left: 3px solid var(--crimson);
  border-radius: var(--radius);
  background: var(--white);
  font-size: var(--fs-small);
  color: var(--ink-2);
  line-height: 1.55;
}
.fiyat-not p { margin: 0; max-width: 72ch; }
.fiyat-not b { color: var(--ink); }
.fiyat-not .mono { font-family: var(--font-mono); color: var(--ink-3); white-space: nowrap; }

/* Sepette ambalaj seçici. Yalnız birden fazla ambalajı olan üründe çıkar
   (bkz. main.js ambalajListesi). Ürün adının altında, marka satırının
   yanında durur; küçük ve sade — çekmecede yer dar. */
.bd-amb {
  display: block;
  margin-top: 6px;
  max-width: 190px;
  padding: 4px 8px;
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--ink);
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 6px;
  cursor: pointer;
}
.bd-amb:focus-visible { outline: 2px solid var(--crimson); outline-offset: 1px; }

/* ============================================================
   KVKK / ÇEREZ POLİTİKASI
   Uzun hukuki metin. Okunabilirlik önce gelir: satır uzunluğu sınırlı,
   satır aralığı geniş, tablolar dar ekranda yatay kayar.
   ============================================================ */
.kvkk-h3 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 17px;
  color: var(--ink);
  margin: 30px 0 10px;
}
.kvkk-p {
  color: var(--ink-2);
  line-height: 1.72;
  margin-bottom: 14px;
}
.kvkk-liste { margin-bottom: 14px; }
.kvkk-liste li { line-height: 1.66; }

/* Tablo dar ekranda sayfayı yatay kaydırmasın, kendi içinde kaysın */
.kvkk-tablo { overflow-x: auto; margin: 4px 0 18px; }
.kvkk-tablo table {
  width: 100%;
  min-width: 460px;
  border-collapse: collapse;
  font-size: var(--fs-small);
}
.kvkk-tablo th, .kvkk-tablo td {
  text-align: left;
  vertical-align: top;
  padding: 9px 12px;
  border-bottom: 1px solid var(--line);
}
.kvkk-tablo th {
  font-family: var(--font-mono);
  font-size: 11.5px;
  letter-spacing: .06em;
  text-transform: none;   /* Türkçe i→İ bozulmasın diye büyük harf YOK */
  color: var(--ink-3);
  border-bottom-width: 1.5px;
}
.kvkk-tablo td { color: var(--ink-2); line-height: 1.6; }
.kvkk-tablo td.mono { font-family: var(--font-mono); color: var(--ink); white-space: nowrap; }

/* Yabancı ziyaretçiye metnin Türkçe olduğunu söyleyen kutu */
.kvkk-dil {
  border: 1px solid var(--line);
  border-left: 3px solid var(--crimson);
  border-radius: var(--radius);
  background: var(--white);
  padding: var(--space-sm) var(--space-md);
  font-size: var(--fs-small);
  color: var(--ink-2);
  line-height: 1.6;
}
.kvkk-guncelleme {
  margin-top: 28px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
  font-family: var(--font-mono);
  font-size: var(--fs-small);
  color: var(--ink-3);
}
