@charset "UTF-8";
/* ============================================================================
   SEVEN TOWERS — Ana Stil Dosyası
   Kimya Lojistik Liman Hizmetleri Depolama San. ve Tic. Ltd. Şti.
   ----------------------------------------------------------------------------
   Hazırlayan : UI/UX Tasarımcı  ·  Tarih: 2026-09-02
   Teknoloji  : Saf, elle yazılmış modern CSS. Build adımı YOK.
                Tailwind / SCSS / PostCSS / npm KULLANILMAZ.
   Bağımlılık : Yalnızca Google Fonts <link> (Archivo + Inter).
   Eşlik eden : assets/css/admin.css (admin panel), assets/js/vendor/lenis.css
   ----------------------------------------------------------------------------
   FONT <link> — <head> içine, bu dosyadan ÖNCE:

   <link rel="preconnect" href="https://fonts.googleapis.com">
   <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
   <link href="https://fonts.googleapis.com/css2?family=Archivo:wght@500;600;700;800&family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
   ----------------------------------------------------------------------------
   İÇİNDEKİLER
     01  Tokenlar (:root)
     02  Reset / normalize
     03  Taban tipografi
     04  Yardımcı sınıflar (container / section / grid / overlay)
     05  Animasyon başlangıç durumları (GSAP devralır) + no-js güvenliği
     06  Butonlar
     07  Scroll ilerleme çubuğu
     08  Header · masaüstü menü · dropdown
     09  Mobil menü (hamburger + tam ekran panel)
     10  Özel imleç (custom cursor)
     11  Hero
     12  Bölüm başlığı (eyebrow + başlık + açıklama)
     13  Ürün kartı
     14  Hizmet kartı
     15  "Neden Biz" listesi (numaralı, dikey ilerleme çizgili)
     16  Değer kartı
     17  İmza an #1 — pinlenmiş hizmet sahnesi
     18  İmza an #2 — Yedi Kule sahnesi
     19  İmza an #3 — istatistik şeridi
     20  CTA bölümü
     21  Sayfa banner + breadcrumb
     22  Zig-zag hizmet listesi (hizmetler.php)
     23  Detay sayfası düzeni (sticky teklif kartı, kazanımlar, ambalaj)
     24  Yatay şerit (diğer ürünler / hizmetler)
     25  Form alanları
     26  Bildirim / alert
     27  Rozet (badge) · tablo · ayırıcı
     28  Footer
     29  Mobil sabit aksiyon çubuğu
     30  404
     31  Erişilebilirlik · prefers-reduced-motion · print
     ++  Geliştirici notları (dosya sonu)
   ========================================================================== */


/* ==========================================================================
   01 — TOKENLAR
   ========================================================================== */
:root {

  /* --- 1.1 Ham renk skalası: TURUNCU (marka primary = 500) ---------------- */
  --c-orange-50:  #FDF3E9;
  --c-orange-100: #FAE3CC;
  --c-orange-200: #F4C599;
  --c-orange-300: #EDA766;
  --c-orange-400: #E68C3E;
  --c-orange-500: #DE701B;   /* MARKA — kullanıcı tarafından verildi */
  --c-orange-600: #C05E13;
  --c-orange-700: #9A4A0F;
  --c-orange-800: #73370B;
  --c-orange-900: #4D2507;

  /* --- 1.2 Ham renk skalası: GRİ (marka secondary = 500) ------------------ */
  --c-gray-50:  #F4F4F4;
  --c-gray-100: #E6E6E6;
  --c-gray-200: #CFCFCF;
  --c-gray-300: #B4B4B4;
  --c-gray-400: #939393;
  --c-gray-500: #727272;     /* MARKA — kullanıcı tarafından verildi */
  --c-gray-600: #5C5C5C;
  --c-gray-700: #454545;
  --c-gray-800: #2E2E2E;
  --c-gray-900: #1C1C1C;

  /* --- 1.3 Kırık beyaz katmanları (saf beyaz gövde zemini YASAK) ---------- */
  --c-sand-50:  #FBFAF7;     /* kart / yükseltilmiş yüzey */
  --c-sand-100: #F7F5F0;     /* SAYFA ZEMİNİ */
  --c-sand-200: #EFEBE3;     /* dönüşümlü bölüm / ayırıcı şerit */
  --c-sand-300: #E4DFD4;     /* ince kenarlık, hairline */

  /* --- 1.4 Endüstriyel koyu nötr (footer / CTA / istatistik) -------------- */
  --c-ink-900: #16181A;
  --c-ink-800: #202326;
  --c-ink-700: #2C3033;
  --c-ink-600: #3A3F43;

  /* --- 1.5 Durum renkleri ------------------------------------------------ */
  --c-danger:  #B42318;  --c-danger-bg:  #FEF3F2;  --c-danger-bd:  #FDA29B;
  --c-success: #15803D;  --c-success-bg: #F0FDF4;  --c-success-bd: #86EFAC;
  --c-warning: #8C4A0C;  --c-warning-bg: #FDF3E9;  --c-warning-bd: #EDA766;
  --c-info:    #0B6BCB;  --c-info-bg:    #EFF6FF;  --c-info-bd:    #93C5FD;

  /* --- 1.6 Semantik renkler ---------------------------------------------- *
   * Ölçülmüş kontrast oranları TASARIM_SISTEMI.md 1.4 tablosunda.
   * KRİTİK: --c-orange-500 sayfa zemininde 2.99:1 -> METİN OLARAK KULLANILMAZ.
   * Turuncu metin gerektiğinde --text-accent (orange-700, 5.74:1) kullanılır.  */
  --bg-page:            var(--c-sand-100);
  --bg-surface:         var(--c-sand-50);
  --bg-surface-2:       var(--c-sand-200);
  --bg-band:            var(--c-sand-200);
  --bg-dark:            var(--c-ink-900);
  --bg-dark-soft:       var(--c-ink-800);
  --bg-accent:          var(--c-orange-500);
  --bg-accent-soft:     var(--c-orange-50);

  --text-strong:        #1C1E20;   /* başlıklar  — 15.35:1 */
  --text-body:          #3A3D40;   /* gövde      — 10.03:1 */
  /* ikincil metin. Üç kırık beyaz katmanın HEPSİNDE AA geçer:
     sand-50 5.21:1 · sand-100 4.99:1 · sand-200 4.58:1  */
  --text-muted:         #676A6D;
  --text-accent:        var(--c-orange-700); /* turuncu METİN — 5.74:1 */
  --text-on-dark:       var(--c-sand-50);    /* 17.05:1 */
  --text-on-dark-muted: #B8B4AE;             /*  8.63:1 */
  --text-on-accent:     var(--c-ink-900);    /* turuncu zeminde KOYU metin — 5.46:1 */

  --border-hair:   var(--c-sand-300);   /* dekoratif ince çizgi */
  --border-soft:   #D9D3C6;
  --border-strong: var(--c-gray-500);   /* form alanı kenarlığı — 4.42:1 */
  --border-dark:   rgba(251, 250, 247, .16);

  --focus-ring:      var(--c-orange-600);  /* 3.97:1 (UI bileşeni >= 3:1) */
  --focus-ring-dark: var(--c-orange-400);  /* 6.94:1 koyu zeminde */
  --focus-glow:      rgba(222, 112, 27, .22);
  --selection-bg:    var(--c-orange-200);
  --selection-fg:    var(--c-ink-900);

  /* --- 1.7 Görsel overlayleri (İçerik Yöneticisi envanteri — BAĞLAYICI) --- */
  --ov-hero:    linear-gradient(180deg, rgba(20,20,20,.72) 0%, rgba(20,20,20,.45) 45%, rgba(20,20,20,.78) 100%);
  --ov-banner:  rgba(30,30,30,.62);
  --ov-cta:     rgba(20,20,20,.80);
  --ov-contact: rgba(30,30,30,.70);
  --ov-card:    linear-gradient(180deg, rgba(22,24,26,0) 45%, rgba(22,24,26,.60) 100%);

  /* --- 1.8 Tipografi ----------------------------------------------------- */
  --font-display: "Archivo", "Archivo Black", "Segoe UI", "Helvetica Neue", Roboto, Arial, sans-serif;
  --font-body:    "Inter", "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  --font-mono:    ui-monospace, "Cascadia Mono", "Segoe UI Mono", Consolas, "Liberation Mono", monospace;

  /* Akışkan ölçek: 375px -> 1440px arası doğrusal, uçlarda sabitlenir */
  --fs-2xs:  0.75rem;                                       /* 12  sabit */
  --fs-xs:   clamp(0.8125rem, 0.78rem + 0.15vw, 0.875rem);  /* 13 -> 14 */
  --fs-sm:   clamp(0.875rem,  0.84rem + 0.18vw, 0.9375rem); /* 14 -> 15 */
  --fs-base: clamp(1rem,      0.96rem + 0.20vw, 1.0625rem); /* 16 -> 17 */
  --fs-md:   clamp(1.0625rem, 1.00rem + 0.30vw, 1.1875rem); /* 17 -> 19 */
  --fs-lg:   clamp(1.1875rem, 1.10rem + 0.40vw, 1.375rem);  /* 19 -> 22 */
  --fs-xl:   clamp(1.375rem,  1.24rem + 0.60vw, 1.75rem);   /* 22 -> 28 */
  --fs-2xl:  clamp(1.625rem,  1.40rem + 1.00vw, 2.25rem);   /* 26 -> 36 */
  --fs-3xl:  clamp(2rem,      1.60rem + 1.70vw, 3rem);      /* 32 -> 48 */
  --fs-4xl:  clamp(2.5rem,    1.90rem + 2.60vw, 4rem);      /* 40 -> 64 */
  --fs-5xl:  clamp(3rem,      2.00rem + 4.40vw, 5.5rem);    /* 48 -> 88 */

  --lh-tight:   1.06;
  --lh-heading: 1.16;
  --lh-snug:    1.35;
  --lh-body:    1.68;
  --lh-loose:   1.78;

  --ls-mega:    -0.035em;   /* 48px+ başlıklar */
  --ls-head:    -0.022em;   /* 28-44px başlıklar */
  --ls-tight:   -0.012em;
  --ls-normal:  0;
  --ls-wide:    0.06em;
  --ls-eyebrow: 0.16em;     /* üst etiket */

  /* --- 1.9 Boşluk (8px tabanlı) ------------------------------------------ */
  --sp-1:  0.25rem;  --sp-2:  0.5rem;   --sp-3:  0.75rem;  --sp-4:  1rem;
  --sp-5:  1.25rem;  --sp-6:  1.5rem;   --sp-7:  1.75rem;  --sp-8:  2rem;
  --sp-10: 2.5rem;   --sp-12: 3rem;     --sp-14: 3.5rem;   --sp-16: 4rem;
  --sp-20: 5rem;     --sp-24: 6rem;     --sp-32: 8rem;

  --section-y:       clamp(3.5rem, 2.2rem + 5.5vw, 7.5rem);
  --section-y-tight: clamp(2.5rem, 1.8rem + 3.0vw, 4.5rem);
  --gutter:          clamp(1.25rem, 0.8rem + 2vw, 2.5rem);
  --gap-grid:        clamp(1rem, 0.6rem + 1.6vw, 2rem);

  /* --- 1.10 Ölçü sınırları ----------------------------------------------- */
  --container:        1240px;
  --container-wide:   1440px;
  --container-narrow: 780px;   /* okuma sütunu ~68 karakter */
  --header-h:         84px;
  --header-h-shrunk:  62px;
  --mobilebar-h:      64px;

  /* --- 1.11 Köşe yarıçapı ------------------------------------------------ */
  --r-xs:   4px;
  --r-sm:   6px;
  --r-md:  10px;   /* görseller — envanter notu B: 8-12px */
  --r-lg:  16px;
  --r-xl:  24px;
  --r-pill: 999px;

  /* --- 1.12 Gölge (sıcak nötr tonlu, katmanlı) ---------------------------- */
  --sh-1: 0 1px 2px rgba(22,24,26,.06), 0 1px 3px rgba(22,24,26,.05);
  --sh-2: 0 2px 4px rgba(22,24,26,.05), 0 6px 14px -4px rgba(22,24,26,.10);
  --sh-3: 0 4px 8px rgba(22,24,26,.05), 0 16px 32px -8px rgba(22,24,26,.14);
  --sh-4: 0 24px 60px -12px rgba(22,24,26,.24);
  --sh-accent: 0 10px 26px -8px rgba(222,112,27,.45);
  --sh-inset-hair: inset 0 0 0 1px var(--border-hair);

  /* --- 1.13 Geçiş süreleri ve easing -------------------------------------- */
  --t-fast:   140ms;
  --t:        240ms;
  --t-slow:   420ms;
  --t-slower: 700ms;
  --e-out:    cubic-bezier(.16, 1, .3, 1);      /* expo-out — ana easing */
  --e-inout:  cubic-bezier(.65, 0, .35, 1);
  --e-spring: cubic-bezier(.34, 1.56, .64, 1);  /* buton pop */

  /* --- 1.14 z-index katmanları -------------------------------------------- */
  --z-base:      0;
  --z-raised:   10;
  --z-sticky:  100;
  --z-progress:150;
  --z-header:  200;
  --z-dropdown:210;
  --z-mobilebar:250;
  --z-overlay: 290;
  --z-drawer:  300;
  --z-modal:   400;
  --z-toast:   500;
  --z-cursor:  900;
}


/* ==========================================================================
   02 — RESET / NORMALIZE
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-h-shrunk) + var(--sp-6));
  -webkit-tap-highlight-color: rgba(222, 112, 27, .18);
}
/* Lenis devredeyken tarayıcının kendi smooth scrollu kapatılır */
html.lenis { scroll-behavior: auto; }
html.lenis, html.lenis body { height: auto; }

body {
  margin: 0;
  min-height: 100svh;
  background-color: var(--bg-page);
  color: var(--text-body);
  font-family: var(--font-body);
  font-size: var(--fs-base);
  line-height: var(--lh-body);
  font-weight: 400;
  font-synthesis-weight: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
/* Mobil aksiyon çubuğu içeriği örtmesin */
@media (max-width: 640px) {
  body { padding-bottom: calc(var(--mobilebar-h) + env(safe-area-inset-bottom, 0px)); }
}
body.is-locked { overflow: hidden; }

h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd { margin: 0; }
ul[class], ol[class] { list-style: none; margin: 0; padding: 0; }

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

input, button, textarea, select { font: inherit; color: inherit; margin: 0; }
button { background: none; border: 0; cursor: pointer; }
textarea { resize: vertical; }

table { border-collapse: collapse; border-spacing: 0; width: 100%; }

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

hr { border: 0; border-top: 1px solid var(--border-hair); margin: var(--sp-8) 0; }

::selection { background: var(--selection-bg); color: var(--selection-fg); }

/* Odak halkası — YALNIZCA klavye/programatik odakta görünür */
:focus { outline: none; }
:focus-visible {
  outline: 3px solid var(--focus-ring);
  outline-offset: 2px;
  border-radius: var(--r-xs);
  box-shadow: 0 0 0 6px var(--focus-glow);
}
.on-dark :focus-visible,
.st-footer :focus-visible,
.st-cta :focus-visible,
.st-stats :focus-visible,
.st-banner :focus-visible,
.st-hero :focus-visible { outline-color: var(--focus-ring-dark); }

/* İnce kaydırma çubuğu (WebKit) */
::-webkit-scrollbar { width: 11px; height: 11px; }
::-webkit-scrollbar-track { background: var(--c-sand-200); }
::-webkit-scrollbar-thumb {
  background: var(--c-gray-300);
  border-radius: var(--r-pill);
  border: 3px solid var(--c-sand-200);
}
::-webkit-scrollbar-thumb:hover { background: var(--c-gray-400); }


/* ==========================================================================
   03 — TABAN TİPOGRAFİ
   ========================================================================== */
h1, h2, h3, h4, .h1, .h2, .h3, .h4 {
  font-family: var(--font-display);
  color: var(--text-strong);
  font-weight: 700;
  line-height: var(--lh-heading);
  letter-spacing: var(--ls-head);
  text-wrap: balance;
}
h1, .h1 { font-size: var(--fs-4xl); line-height: var(--lh-tight); letter-spacing: var(--ls-mega); font-weight: 800; }
h2, .h2 { font-size: var(--fs-3xl); }
h3, .h3 { font-size: var(--fs-xl);  letter-spacing: var(--ls-tight); }
h4, .h4 { font-size: var(--fs-lg);  letter-spacing: var(--ls-tight); font-weight: 600; }
h5, h6 {
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: 600;
  letter-spacing: var(--ls-tight);
  color: var(--text-strong);
}

p { text-wrap: pretty; }
p + p { margin-top: var(--sp-5); }

.lead { font-size: var(--fs-md); line-height: var(--lh-loose); color: var(--text-body); }
.lead--xl { font-size: var(--fs-lg); }

.text-accent { color: var(--text-accent); }
.text-muted  { color: var(--text-muted); }
.text-strong { color: var(--text-strong); }
.on-dark .text-accent { color: var(--c-orange-400); }

/* Gövde metni içindeki bağlantı */
.prose a,
a.link {
  color: var(--text-accent);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  text-decoration-color: rgba(154, 74, 15, .4);
  transition: color var(--t) var(--e-out), text-decoration-color var(--t) var(--e-out);
}
.prose a:hover,
a.link:hover { color: var(--c-orange-800); text-decoration-color: currentColor; }

/* Okuma sütunu — detay sayfası uzun metinleri */
.prose { max-width: 68ch; }
.prose > * + * { margin-top: var(--sp-5); }
.prose p { font-size: var(--fs-md); line-height: var(--lh-loose); }
.prose h2 { font-size: var(--fs-2xl); margin-top: var(--sp-10); }
.prose h3 { margin-top: var(--sp-8); }
.prose strong { color: var(--text-strong); font-weight: 600; }
.prose ul { list-style: none; padding: 0; }
.prose ul li { position: relative; padding-left: var(--sp-7); margin-top: var(--sp-3); }
.prose ul li::before {
  content: "";
  position: absolute;
  left: 0; top: .62em;
  width: 14px; height: 2px;
  background: var(--c-orange-500);
}

/* Üst etiket (eyebrow) */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-3);
  font-family: var(--font-body);
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: var(--text-accent);
}
.eyebrow::before {
  content: "";
  width: 28px; height: 2px;
  background: var(--c-orange-500);
  flex: none;
}
.on-dark .eyebrow { color: var(--c-orange-400); }

/* Sayısal veriler — sabit genişlikli rakam */
.tnum { font-variant-numeric: tabular-nums; font-feature-settings: "tnum" 1; }


/* ==========================================================================
   04 — YARDIMCI SINIFLAR
   ========================================================================== */
.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.container--wide   { max-width: var(--container-wide); }
.container--narrow { max-width: var(--container-narrow); }

.section { padding-block: var(--section-y); position: relative; }
.section--tight     { padding-block: var(--section-y-tight); }
.section--flush-top { padding-top: 0; }
.section--band      { background: var(--bg-band); }
.section--surface   { background: var(--bg-surface); }
.section--dark      { background: var(--bg-dark); color: var(--text-on-dark); }
.section--dark h1, .section--dark h2,
.section--dark h3, .section--dark h4 { color: var(--text-on-dark); }
.on-dark { color: var(--text-on-dark); }
.on-dark .text-muted { color: var(--text-on-dark-muted); }

/* Izgaralar — mobil öncelikli, tek sütundan açılır */
.grid { display: grid; gap: var(--gap-grid); }
.grid-2, .grid-3, .grid-4 { display: grid; gap: var(--gap-grid); grid-template-columns: 1fr; }

.rule { height: 1px; background: var(--border-hair); border: 0; margin: 0; }
.rule--accent { height: 3px; width: 56px; background: var(--c-orange-500); border-radius: var(--r-pill); }

/* Görsel çerçevesi — envanter notu B: 10px radius + ince gri çerçeve */
.media {
  position: relative;
  overflow: hidden;
  border-radius: var(--r-md);
  background: var(--c-sand-200);
  box-shadow: inset 0 0 0 1px rgba(114, 114, 114, .15);
}
.media > img { width: 100%; height: 100%; object-fit: cover; }
.media--16x9 { aspect-ratio: 16 / 9; }
.media--8x5  { aspect-ratio: 8 / 5; }
.media--4x3  { aspect-ratio: 4 / 3; }
.media--12x5 { aspect-ratio: 12 / 5; }
.media--1x1  { aspect-ratio: 1 / 1; }

/* Koyu overlay katmanları — metin binen görsellerde ZORUNLU */
.overlay-dark, .overlay-hero, .overlay-banner,
.overlay-cta, .overlay-contact { position: relative; isolation: isolate; }
.overlay-dark::after, .overlay-hero::after, .overlay-banner::after,
.overlay-cta::after, .overlay-contact::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}
.overlay-hero::after    { background: var(--ov-hero); }
.overlay-banner::after  { background: var(--ov-banner); }
.overlay-cta::after     { background: var(--ov-cta); }
.overlay-contact::after { background: var(--ov-contact); }
.overlay-dark::after    { background: rgba(22, 24, 26, .55); }

/* Ekran okuyucuya özel */
.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.skip-link {
  position: absolute;
  left: var(--sp-4); top: var(--sp-4);
  z-index: var(--z-toast);
  transform: translateY(-250%);
  background: var(--c-ink-900);
  color: var(--text-on-dark);
  padding: var(--sp-3) var(--sp-5);
  border-radius: var(--r-sm);
  font-weight: 600;
  transition: transform var(--t) var(--e-out);
}
.skip-link:focus-visible { transform: translateY(0); }

/* Yığın / kümeleme */
.stack > * + * { margin-top: var(--sp-4); }
.stack-6 > * + * { margin-top: var(--sp-6); }
.stack-8 > * + * { margin-top: var(--sp-8); }
.cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-4); }
.center { text-align: center; }
.center .eyebrow { justify-content: center; }
.nowrap { white-space: nowrap; }
.full-bleed { width: 100vw; margin-left: 50%; transform: translateX(-50%); }


/* ==========================================================================
   05 — ANİMASYON BAŞLANGIÇ DURUMLARI
   --------------------------------------------------------------------------
   KURAL: Bu sınıflar YALNIZCA <html class="js"> varken gizler.
   main.js dosyasının İLK satırı şu olmalı:
       document.documentElement.classList.add('js');
   JS kapalıysa veya hata verirse .js sınıfı hiç eklenmez, içerik görünür kalır.
   prefers-reduced-motion açıkken de tümü görünür kalır (bkz. 31).
   ========================================================================== */
.js .reveal        { opacity: 0; transform: translate3d(0, 28px, 0); will-change: transform, opacity; }
.js .reveal-left   { opacity: 0; transform: translate3d(-32px, 0, 0); }
.js .reveal-right  { opacity: 0; transform: translate3d(32px, 0, 0); }
.js .reveal-scale  { opacity: 0; transform: scale(.94); }
.js .reveal-mask   { clip-path: inset(0 100% 0 0); }
.js .reveal-mask-y { clip-path: inset(100% 0 0 0); }

/* Kelime bazlı başlık girişi — splitWords() yardımcısı sarar */
/* .word / .word > i kuralları BİLEREK .reveal-words'e bağlı değil (2026-09-07):
   mobil dal başlıktan `reveal-words` sınıfını kaldırıyor ama JS'in ürettiği
   <i> sarmalayıcılar DOM'da kalıyor. Kural sınıfa bağlıyken <i> tarayıcı
   varsayılanına (İTALİK) düşüyordu — "kırılım değişince başlık italik oldu". */
.word { display: inline-block; overflow: hidden; vertical-align: bottom; }
.word > i { display: inline-block; font-style: inherit; }
.js .reveal-words .word > i { transform: translate3d(0, 105%, 0); }

/* Satır bazlı maske girişi */
.reveal-lines .line { display: block; overflow: hidden; }
.js .reveal-lines .line > span { display: block; transform: translate3d(0, 105%, 0); }

/* Parallax katmanı — GSAP yPercent devralır */
.parallax { will-change: transform; }
.parallax-media > img { transform: scale(1.14); transform-origin: center; }

/* Sayaç — JS 0dan başlatır; JS yoksa nihai değer HTMLde yazılı kalır */
.counter { font-variant-numeric: tabular-nums; }

/* Animasyon bitince GSAP bu sınıfı ekler, will-change kalkar */
.anim-done { will-change: auto; }


/* ==========================================================================
   06 — BUTONLAR
   --------------------------------------------------------------------------
   Turuncu zeminde KOYU metin kullanılır (beyaz metin AA geçmez: 3.26:1).
   .btn--primary  : turuncu zemin + koyu metin (5.46:1)     -> ana aksiyon
   .btn--dark     : antrasit zemin + kırık beyaz (17.05:1)  -> koyu bölümlerde
   .btn--ghost    : şeffaf + gri kenarlık                   -> ikincil
   .btn--link     : ok animasyonlu metin bağlantısı         -> "Tümünü incele"
   ========================================================================== */
.btn {
  --btn-bg: var(--c-orange-500);
  --btn-fg: var(--text-on-accent);
  --btn-bd: transparent;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-3);
  padding: 0.875rem 1.625rem;
  min-height: 48px;              /* dokunma hedefi >= 44px */
  border: 1px solid var(--btn-bd);
  border-radius: var(--r-sm);
  background: var(--btn-bg);
  color: var(--btn-fg);
  font-family: var(--font-body);
  font-size: var(--fs-sm);
  font-weight: 600;
  letter-spacing: .01em;
  line-height: 1.2;
  text-align: center;
  cursor: pointer;
  overflow: hidden;
  isolation: isolate;
  transition:
    background-color var(--t) var(--e-out),
    border-color     var(--t) var(--e-out),
    color            var(--t) var(--e-out),
    transform        var(--t) var(--e-out),
    box-shadow       var(--t) var(--e-out);
}
/* Hover parlaması — soldan sağa geçen açık katman */
.btn::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: currentColor;
  opacity: 0;
  transform: translateX(-101%);
  transition: transform var(--t-slow) var(--e-out), opacity var(--t) var(--e-out);
}
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0) scale(.985); transition-duration: var(--t-fast); }
.btn[disabled], .btn.is-disabled, .btn[aria-disabled="true"] {
  cursor: not-allowed;
  opacity: .5;
  transform: none;
  box-shadow: none;
  pointer-events: none;
}

/* Ok ikonu — hover ileri kayar */
.btn__arrow { flex: none; width: 16px; height: 16px; transition: transform var(--t) var(--e-out); }
.btn:hover .btn__arrow { transform: translateX(4px); }

/* --- Varyantlar --------------------------------------------------------- */
.btn--primary { box-shadow: var(--sh-accent); }
.btn--primary:hover { --btn-bg: var(--c-orange-400); box-shadow: 0 14px 30px -8px rgba(222,112,27,.55); }
.btn--primary:active { --btn-bg: var(--c-orange-700); --btn-fg: #FFFFFF; } /* beyaz/orange-700 = 6.25:1 (orange-600 ile 4.33:1, AA geçmezdi) */

.btn--dark { --btn-bg: var(--c-ink-900); --btn-fg: var(--text-on-dark); box-shadow: var(--sh-2); }
.btn--dark:hover { --btn-bg: var(--c-ink-700); }
.btn--dark:active { --btn-bg: var(--c-ink-900); }

.btn--ghost {
  --btn-bg: transparent;
  --btn-fg: var(--text-strong);
  --btn-bd: var(--c-gray-400);
}
.btn--ghost:hover { --btn-bd: var(--c-ink-900); --btn-bg: rgba(22,24,26,.04); }
.btn--ghost:active { --btn-bg: rgba(22,24,26,.08); }

/* Koyu zeminde ghost */
.on-dark .btn--ghost, .btn--ghost-light {
  --btn-fg: var(--text-on-dark);
  --btn-bd: rgba(251,250,247,.35);
}
.on-dark .btn--ghost:hover, .btn--ghost-light:hover {
  --btn-bd: var(--text-on-dark);
  --btn-bg: rgba(251,250,247,.10);
}

/* Ölçüler */
.btn--sm { padding: .625rem 1.125rem; min-height: 40px; font-size: var(--fs-xs); }
.btn--lg { padding: 1.0625rem 2.125rem; min-height: 56px; font-size: var(--fs-base); }
.btn--block { display: flex; width: 100%; }

/* Metin bağlantısı + kayan ok (kart altı "Tüm Ürünleri İnceleyin") */
.btn--link {
  --btn-bg: transparent;
  --btn-fg: var(--text-accent);
  padding: 0;
  min-height: 0;
  border: 0;
  border-radius: 0;
  font-weight: 600;
  font-size: var(--fs-sm);
  box-shadow: none;
  overflow: visible;
}
.btn--link::before { display: none; }
.btn--link::after {
  content: "";
  position: absolute;
  left: 0; right: 22px; bottom: -6px;
  height: 2px;
  background: var(--c-orange-500);
  transform-origin: left;
  transform: scaleX(0);
  transition: transform var(--t-slow) var(--e-out);
}
.btn--link:hover { transform: none; --btn-fg: var(--c-orange-800); }
.btn--link:hover::after { transform: scaleX(1); }
.on-dark .btn--link { --btn-fg: var(--c-orange-400); }
.on-dark .btn--link:hover { --btn-fg: var(--c-orange-300); }

/* Telefon butonu (CTA yanındaki) */
.btn--tel {
  --btn-bg: transparent;
  --btn-fg: inherit;
  padding: 0;
  min-height: 0;
  border: 0;
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-weight: 700;
  letter-spacing: var(--ls-tight);
  box-shadow: none;
  overflow: visible;
}
.btn--tel::before { display: none; }
.btn--tel:hover { transform: none; color: var(--c-orange-400); }

/* Gönderim durumu — spinner */
.btn.is-loading { pointer-events: none; color: transparent; }
.btn.is-loading::after {
  content: "";
  position: absolute;
  width: 20px; height: 20px;
  border: 2px solid rgba(22,24,26,.28);
  border-top-color: var(--c-ink-900);
  border-radius: 50%;
  animation: st-spin .7s linear infinite;
}
.btn--dark.is-loading::after { border-color: rgba(251,250,247,.3); border-top-color: var(--text-on-dark); }
@keyframes st-spin { to { transform: rotate(360deg); } }

/* İkon butonu (kapatma, şerit okları) */
.btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px; height: 44px;
  border-radius: var(--r-sm);
  border: 1px solid var(--border-soft);
  background: var(--bg-surface);
  color: var(--text-strong);
  transition: background-color var(--t) var(--e-out), border-color var(--t) var(--e-out), transform var(--t) var(--e-out);
}
.btn-icon:hover { border-color: var(--c-ink-900); transform: translateY(-2px); }
.btn-icon:active { transform: translateY(0); }
.btn-icon[disabled] { opacity: .4; pointer-events: none; }
.btn-icon svg { width: 18px; height: 18px; }


/* ==========================================================================
   07 — SCROLL İLERLEME ÇUBUĞU
   ========================================================================== */
.scroll-progress {
  position: fixed;
  inset: 0 0 auto 0;
  height: 2px;
  z-index: var(--z-progress);
  background: transparent;
  pointer-events: none;
}
.scroll-progress__bar {
  height: 100%;
  width: 100%;
  background: linear-gradient(90deg, var(--c-orange-600), var(--c-orange-400));
  transform: scaleX(0);
  transform-origin: 0 50%;
  will-change: transform;
}


/* ==========================================================================
   08 — HEADER · MASAÜSTÜ MENÜ · DROPDOWN
   ========================================================================== */
.st-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: var(--z-header);
  height: var(--header-h);
  display: flex;
  align-items: center;
  background: transparent;
  border-bottom: 1px solid transparent;
  transition:
    height          var(--t-slow) var(--e-out),
    background-color var(--t-slow) var(--e-out),
    border-color    var(--t-slow) var(--e-out),
    box-shadow      var(--t-slow) var(--e-out);
}
/* Scrollda küçülen + cam efektli yapışkan hâl (JS .is-stuck ekler) */
.st-header.is-stuck {
  height: var(--header-h-shrunk);
  background: rgba(252, 251, 249, .93);
  border-bottom-color: var(--border-hair);
  box-shadow: var(--sh-1);
}
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .st-header.is-stuck {
    background: rgba(252, 251, 249, .86);
    -webkit-backdrop-filter: saturate(150%) blur(14px);
    backdrop-filter: saturate(150%) blur(14px);
  }
}
/* Hero üstünde (şeffaf durumda) header içeriği açık renkte durur */
.st-header--over-hero:not(.is-stuck) { color: var(--text-on-dark); }
.st-header--over-hero:not(.is-stuck) .st-nav__link { color: var(--text-on-dark); }
.st-header--over-hero:not(.is-stuck) .st-header__tel { color: var(--text-on-dark); }
/* Banner/iç sayfa: header baştan opak */
.st-header--solid { background: var(--bg-page); border-bottom-color: var(--border-hair); }

.st-header__inner {
  width: 100%;
  max-width: var(--container-wide);
  margin-inline: auto;
  padding-inline: var(--gutter);
  display: flex;
  align-items: center;
  gap: var(--sp-6);
}

/* Logo */
.st-logo { display: flex; align-items: center; flex: none; }
.st-logo img, .st-logo svg {
  height: 48px; width: auto;
  transition: height var(--t-slow) var(--e-out);
}
.is-stuck .st-logo img, .is-stuck .st-logo svg { height: 38px; }
/* Açık/koyu logo değişimi — hero üstünde açık sürüm */
.st-logo__light { display: none; }
.st-header--over-hero:not(.is-stuck) .st-logo__dark  { display: none; }
.st-header--over-hero:not(.is-stuck) .st-logo__light { display: block; }

/* Masaüstü menü */
.st-nav { display: none; margin-inline: auto; }
.st-nav__list { display: flex; align-items: center; gap: var(--sp-1); }
.st-nav__item { position: relative; }
.st-nav__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  padding: var(--sp-3) var(--sp-4);
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--text-body);
  border-radius: var(--r-xs);
  transition: color var(--t) var(--e-out);
}
.st-nav__link::after {
  content: "";
  position: absolute;
  left: var(--sp-4); right: var(--sp-4);
  bottom: 6px;
  height: 2px;
  background: var(--c-orange-500);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--t-slow) var(--e-out);
}
.st-nav__link:hover { color: var(--text-strong); }
.st-nav__link:hover::after,
.st-nav__item.is-active .st-nav__link::after,
.st-nav__link[aria-current="page"]::after { transform: scaleX(1); }
.st-nav__link[aria-current="page"] { color: var(--text-strong); font-weight: 600; }
.st-header--over-hero:not(.is-stuck) .st-nav__link:hover,
.st-header--over-hero:not(.is-stuck) .st-nav__link[aria-current="page"] { color: #FFFFFF; }

/* Dropdown oku */
.st-nav__caret { width: 10px; height: 10px; opacity: .6; transition: transform var(--t) var(--e-out); }
.st-nav__item:hover .st-nav__caret,
.st-nav__item:focus-within .st-nav__caret { transform: rotate(180deg); }

/* Açılır alt menü (ürünler / hizmetler) */
.st-dropdown {
  position: absolute;
  top: calc(100% + 10px);
  left: 50%;
  z-index: var(--z-dropdown);
  min-width: 290px;
  padding: var(--sp-3);
  background: var(--bg-surface);
  border: 1px solid var(--border-hair);
  border-radius: var(--r-md);
  box-shadow: var(--sh-3);
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, -8px);
  transition:
    opacity var(--t) var(--e-out),
    transform var(--t) var(--e-out),
    visibility 0s linear var(--t);
}
/* Fare köprüsü — menü ile panel arasında boşluk olsa da hover kopmaz */
.st-nav__item::after { content: ""; position: absolute; inset: 100% 0 auto 0; height: 12px; }
.st-nav__item:hover > .st-dropdown,
.st-nav__item:focus-within > .st-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
  transition-delay: 0s;
}
.st-dropdown__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  padding: var(--sp-3) var(--sp-4);
  border-radius: var(--r-xs);
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--text-body);
  transition: background-color var(--t-fast) var(--e-out), color var(--t-fast) var(--e-out);
}
.st-dropdown__link small { display: block; font-size: var(--fs-2xs); color: var(--text-muted); font-weight: 400; }
.st-dropdown__link:hover,
.st-dropdown__link:focus-visible {
  background: var(--c-orange-50);
  color: var(--text-accent);
}
/* Hover'da ONCEDEN padding-left buyuyordu; panel `width: max-content` oldugu
   icin acilir listenin genisligi hover ile degisiyordu (2026-09-08 talebi).
   Kayma artik ic ogeye transform ile veriliyor: genislik sabit kalir. */
/* Kayma YALNIZ metinde: ikon da otelenince acilir listede ikonlar hoverdan
   hovera zipliyordu (2026-09-08 talebi). Ikon sabit, metin yumusak kayar. */
.st-dropdown__link > span { transition: transform var(--t) var(--e-out); }
.st-dropdown__link:hover > span,
.st-dropdown__link:focus-visible > span { transform: translateX(4px); }
.st-dropdown__link:hover small { color: var(--c-orange-800); }
.st-dropdown__foot {
  margin-top: var(--sp-2);
  padding: var(--sp-3) var(--sp-4);
  border-top: 1px solid var(--border-hair);
}

/* Header sağ blok */
.st-header__actions { display: flex; align-items: center; gap: var(--sp-4); margin-left: auto; flex: none; }
.st-header__tel {
  display: none;
  align-items: center;
  gap: var(--sp-2);
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: 700;
  letter-spacing: var(--ls-tight);
  color: var(--text-strong);
  transition: color var(--t) var(--e-out);
}
.st-header__tel:hover { color: var(--text-accent); }
.st-header__tel svg { width: 16px; height: 16px; color: var(--c-orange-500); }
.st-header__cta { display: none; }


/* ==========================================================================
   09 — MOBİL MENÜ (hamburger + tam ekran panel)
   ========================================================================== */
.st-burger {
  position: relative;
  z-index: calc(var(--z-drawer) + 1);
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 46px; height: 46px;
  padding: 0 11px;
  border-radius: var(--r-sm);
  flex: none;
}
.st-burger span {
  display: block;
  height: 2px;
  width: 100%;
  background: currentColor;
  border-radius: 2px;
  transition: transform var(--t-slow) var(--e-out), opacity var(--t) var(--e-out), width var(--t) var(--e-out);
}
.st-burger span:nth-child(2) { width: 70%; }
.st-burger:hover span:nth-child(2) { width: 100%; }
.st-burger[aria-expanded="true"] { color: var(--text-on-dark); }
.st-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.st-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.st-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.st-drawer {
  position: fixed;
  inset: 0;
  z-index: var(--z-drawer);
  display: flex;
  flex-direction: column;
  background: var(--c-ink-900);
  color: var(--text-on-dark);
  padding: calc(var(--header-h) + var(--sp-4)) var(--gutter) var(--sp-10);
  overflow-y: auto;
  overscroll-behavior: contain;
  clip-path: circle(0% at calc(100% - 44px) 42px);
  visibility: hidden;
  transition: clip-path var(--t-slower) var(--e-inout), visibility 0s linear var(--t-slower);
}
.st-drawer.is-open {
  clip-path: circle(155% at calc(100% - 44px) 42px);
  visibility: visible;
  transition-delay: 0s;
}
.st-drawer__list { display: flex; flex-direction: column; }
.st-drawer__item { border-bottom: 1px solid var(--border-dark); }
.st-drawer__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  padding: var(--sp-5) 0;
  font-family: var(--font-display);
  font-size: var(--fs-xl);
  font-weight: 600;
  letter-spacing: var(--ls-tight);
  color: var(--text-on-dark);
  transition: color var(--t) var(--e-out), padding-left var(--t) var(--e-out);
}
.st-drawer__link:hover,
.st-drawer__link[aria-current="page"] { color: var(--c-orange-400); padding-left: var(--sp-3); }
/* Alt liste — tıklamayla açılır akordeon */
.st-drawer__toggle { flex: none; padding: var(--sp-2); color: var(--c-orange-400); }
.st-drawer__toggle svg { width: 18px; height: 18px; transition: transform var(--t) var(--e-out); }
.st-drawer__toggle[aria-expanded="true"] svg { transform: rotate(45deg); }
.st-drawer__sub {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows var(--t-slow) var(--e-inout);
}
.st-drawer__sub > div { overflow: hidden; }
.st-drawer__sub.is-open { grid-template-rows: 1fr; }
.st-drawer__sub a {
  display: block;
  padding: var(--sp-3) 0 var(--sp-3) var(--sp-5);
  font-size: var(--fs-sm);
  color: var(--text-on-dark-muted);
  border-left: 2px solid var(--border-dark);
  transition: color var(--t) var(--e-out), border-color var(--t) var(--e-out);
}
.st-drawer__sub a:hover { color: var(--text-on-dark); border-left-color: var(--c-orange-500); }
.st-drawer__foot { margin-top: auto; padding-top: var(--sp-10); display: grid; gap: var(--sp-4); }
.st-drawer__meta { font-size: var(--fs-sm); color: var(--text-on-dark-muted); line-height: var(--lh-snug); }
.st-drawer__meta strong { display: block; color: var(--text-on-dark); font-weight: 600; }


/* ==========================================================================
   10 — ÖZEL İMLEÇ (custom cursor)
   --------------------------------------------------------------------------
   Plan 3. bölüm: "imleç takip eden BÜYÜK daireler kapsam dışı".
   Bu yüzden ölçülü bir çözüm: 6px nokta + 30px ince halka.
   YALNIZCA pointer:fine + hover destekli cihazlarda ve reduced-motion kapalıysa.
   ========================================================================== */
.st-cursor, .st-cursor-dot { display: none; }

@media (pointer: fine) and (hover: hover) {
  html.has-cursor .st-cursor,
  html.has-cursor .st-cursor-dot {
    display: block;
    position: fixed;
    top: 0; left: 0;
    z-index: var(--z-cursor);
    pointer-events: none;
    will-change: transform;
  }
  html.has-cursor .st-cursor {
    width: 30px; height: 30px;
    margin: -15px 0 0 -15px;
    border: 1px solid var(--c-orange-500);
    border-radius: 50%;
    transition: width var(--t) var(--e-out), height var(--t) var(--e-out),
                margin var(--t) var(--e-out), background-color var(--t) var(--e-out),
                border-color var(--t) var(--e-out), opacity var(--t) var(--e-out);
  }
  html.has-cursor .st-cursor-dot {
    width: 6px; height: 6px;
    margin: -3px 0 0 -3px;
    background: var(--c-orange-500);
    border-radius: 50%;
  }
  /* Bağlantı/buton üstünde: halka büyür ve dolar */
  html.has-cursor.cursor-hover .st-cursor {
    width: 56px; height: 56px;
    margin: -28px 0 0 -28px;
    background: rgba(222, 112, 27, .16);
    border-color: transparent;
  }
  html.has-cursor.cursor-hover .st-cursor-dot { opacity: 0; }
  /* Etiketli hâl (kart üstünde "Detay") */
  html.has-cursor .st-cursor__label {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--c-orange-900);
    opacity: 0;
    transition: opacity var(--t) var(--e-out);
  }
  html.has-cursor.cursor-label .st-cursor__label { opacity: 1; }
  /* Metin seçimi sırasında imleç gizlenmez, yalnızca soluklaşır */
  html.has-cursor.cursor-text .st-cursor { opacity: .25; }
}


/* --------------------------------------------------------------------------
   10.b Sayfa geçiş örtüsü (page transition veil)
   JS yoksa hiç görünmez: başlangıç scaleY(0). GSAP giriş/çıkışta sürer.
   -------------------------------------------------------------------------- */
.page-veil {
  position: fixed;
  inset: 0;
  z-index: var(--z-overlay);
  background: var(--c-ink-900);
  pointer-events: none;
  transform: scaleY(0);
  transform-origin: top;
  will-change: transform;
}
@media (prefers-reduced-motion: reduce) { .page-veil { display: none; } }


/* ==========================================================================
   11 — HERO
   ========================================================================== */
.st-hero {
  position: relative;
  isolation: isolate;
  min-height: 92svh;
  min-height: 92vh;
  display: flex;
  align-items: flex-end;
  padding-top: calc(var(--header-h) + var(--sp-10));
  padding-bottom: clamp(3rem, 1.5rem + 6vw, 6.5rem);
  color: var(--text-on-dark);
  background: var(--c-ink-900);
  overflow: hidden;
}
.st-hero__bg { position: absolute; inset: -8% 0 -8% 0; z-index: 0; }
.st-hero__bg img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 55%;   /* envanter: hero-1 */
}
.st-hero__scrim { position: absolute; inset: 0; z-index: 1; background: var(--ov-hero); pointer-events: none; }
/* İnce endüstriyel ızgara dokusu — turuncu tint DEĞİL, nötr */
.st-hero__grid {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  opacity: .16;
  background-image:
    linear-gradient(to right, rgba(251,250,247,.25) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(251,250,247,.25) 1px, transparent 1px);
  background-size: 96px 96px;
  mask-image: radial-gradient(120% 90% at 50% 40%, #000 20%, transparent 78%);
  -webkit-mask-image: radial-gradient(120% 90% at 50% 40%, #000 20%, transparent 78%);
}
.st-hero__inner { position: relative; z-index: 3; width: 100%; }
.st-hero__eyebrow { color: var(--c-orange-400); margin-bottom: var(--sp-5); }
.st-hero__eyebrow::before { background: var(--c-orange-500); }
.st-hero__title {
  font-size: var(--fs-5xl);
  font-weight: 800;
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-mega);
  color: #FFFFFF;
  max-width: 17ch;
  text-shadow: 0 2px 24px rgba(0,0,0,.35);
}
/* Slogandaki TEK vurgu kelime turuncu (envanter notu 2) */
.st-hero__title .accent { color: var(--c-orange-400); }
.st-hero__sub {
  margin-top: var(--sp-6);
  max-width: 62ch;
  font-size: var(--fs-md);
  line-height: var(--lh-loose);
  color: rgba(251, 250, 247, .92);
}
.st-hero__actions { margin-top: var(--sp-8); display: flex; flex-wrap: wrap; gap: var(--sp-4); }

/* Aşağı ok göstergesi */
.st-hero__scroll {
  position: absolute;
  left: 50%; bottom: var(--sp-6);
  z-index: 4;
  transform: translateX(-50%);
  display: none;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-2);
  font-size: var(--fs-2xs);
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: rgba(251, 250, 247, .7);
}
.st-hero__scroll-line {
  width: 1px; height: 46px;
  background: linear-gradient(to bottom, rgba(251,250,247,.05), var(--c-orange-500));
  transform-origin: top;
}

/* Hero altı hızlı erişim şeridi — iki iş kolu */
.st-hero-split {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1px;
  background: var(--border-hair);
  border-block: 1px solid var(--border-hair);
}
.st-hero-split__item {
  display: flex;
  align-items: center;
  gap: var(--sp-5);
  padding: var(--sp-8) var(--sp-6);
  background: var(--bg-page);
  transition: background-color var(--t) var(--e-out);
}
.st-hero-split__item:hover { background: var(--bg-surface); }
.st-hero-split__icon {
  flex: none;
  width: 52px; height: 52px;
  display: grid; place-items: center;
  border-radius: var(--r-sm);
  background: var(--c-orange-50);
  color: var(--c-orange-700);
}
.st-hero-split__icon svg { width: 26px; height: 26px; }
.st-hero-split__item h3 { font-size: var(--fs-md); margin-bottom: 2px; }
.st-hero-split__item p { font-size: var(--fs-sm); color: var(--text-muted); line-height: var(--lh-snug); }


/* ==========================================================================
   12 — BÖLÜM BAŞLIĞI
   ========================================================================== */
.section-head { margin-bottom: clamp(2rem, 1.2rem + 2.4vw, 3.5rem); }
.section-head__title { margin-top: var(--sp-4); max-width: 20ch; }
.section-head__desc {
  margin-top: var(--sp-5);
  max-width: 62ch;
  font-size: var(--fs-md);
  line-height: var(--lh-loose);
  color: var(--text-muted);
}
.section-head--center { text-align: center; }
.section-head--center .eyebrow { justify-content: center; }
.section-head--center .section-head__title,
.section-head--center .section-head__desc { margin-inline: auto; }
/* Başlık solda, açıklama + buton sağda */
.section-head--split { display: grid; gap: var(--sp-6); align-items: end; }
.section-head--split .section-head__desc { margin-top: 0; }


/* ==========================================================================
   13 — ÜRÜN KARTI
   --------------------------------------------------------------------------
   Envanter notu 3 + 7: başlık görselin ÜZERİNE değil ALTINA gelir.
   Ürün görseli kimyasalı değil KULLANIM ALANINI gösterir; bu yüzden
   kısa açıklama başlığın hemen altında, aynı okuma bloğunda durur.
   ========================================================================== */
.card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--bg-surface);
  border: 1px solid var(--border-hair);
  border-radius: var(--r-md);
  overflow: hidden;
  transition: transform var(--t-slow) var(--e-out),
              box-shadow var(--t-slow) var(--e-out),
              border-color var(--t) var(--e-out);
}
.card:hover { transform: translateY(-4px); box-shadow: var(--sh-3); border-color: var(--border-soft); }
.card:focus-within { border-color: var(--c-orange-500); }

/* Kartın tamamını tıklanabilir yapan görünmez katman */
.card__link::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.card__link:focus-visible { outline: none; }
.card:has(.card__link:focus-visible) {
  outline: 3px solid var(--focus-ring);
  outline-offset: 2px;
  box-shadow: 0 0 0 6px var(--focus-glow);
}

.card__media { position: relative; overflow: hidden; background: var(--c-sand-200); }
.card__media img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform var(--t-slower) var(--e-out);
}
.card:hover .card__media img { transform: scale(1.06); }
/* Üst turuncu şerit — hover soldan sağa büyür */
.card__media::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 3px;
  background: var(--c-orange-500);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--t-slow) var(--e-out);
  z-index: 1;
}
.card:hover .card__media::after { transform: scaleX(1); }

.card__body { display: flex; flex-direction: column; flex: 1; padding: var(--sp-6); gap: var(--sp-3); }
.card__title { font-size: var(--fs-lg); letter-spacing: var(--ls-tight); }
.card__title-en {
  display: block;
  font-family: var(--font-body);
  font-size: var(--fs-xs);
  font-weight: 500;
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--text-muted);
  margin-top: 4px;
}
.card__text {
  font-size: var(--fs-sm);
  line-height: var(--lh-snug);
  color: var(--text-muted);
  /* 3 satırda kes — "Neden Biz" dışındaki kısa açıklamalarda taşma olmaz */
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.card__foot {
  margin-top: auto;
  padding-top: var(--sp-4);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-3);
  border-top: 1px solid var(--border-hair);
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--text-accent);
}
.card__foot svg { width: 16px; height: 16px; transition: transform var(--t) var(--e-out); }
.card:hover .card__foot svg { transform: translateX(4px); }

/* Ürün kartı — 4:3 görsel (envanter: product-*.jpg 1200x900) */
.card--product .card__media { aspect-ratio: 4 / 3; }

/* Hizmet kartı — 8:5 görsel + ikon rozeti */
.card--service .card__media { aspect-ratio: 8 / 5; }
.card--service .card__icon {
  position: absolute;
  left: var(--sp-5); bottom: var(--sp-5);
  z-index: 2;
  width: 48px; height: 48px;
  display: grid; place-items: center;
  border-radius: var(--r-sm);
  background: var(--c-orange-500);
  color: var(--text-on-accent);
  box-shadow: var(--sh-2);
  transition: transform var(--t-slow) var(--e-spring);
}
.card--service:hover .card__icon { transform: translateY(-4px) rotate(-6deg); }
.card--service .card__icon svg { width: 24px; height: 24px; }
.card--service .card__text { -webkit-line-clamp: 4; }

/* Sadeleştirilmiş kart (görselsiz — 404, ilgili linkler) */
.card--plain { padding: var(--sp-6); }
.card--plain .card__body { padding: 0; }


/* ==========================================================================
   14 — HİZMET / DEĞER İKONU ORTAK KUTUSU
   ========================================================================== */
.icon-box {
  flex: none;
  display: grid;
  place-items: center;
  width: 56px; height: 56px;
  border-radius: var(--r-sm);
  background: var(--c-orange-50);
  color: var(--c-orange-700);
  transition: background-color var(--t) var(--e-out), color var(--t) var(--e-out), transform var(--t-slow) var(--e-spring);
}
.icon-box svg { width: 26px; height: 26px; stroke-width: 1.6; }
.icon-box--sm { width: 40px; height: 40px; }
.icon-box--sm svg { width: 20px; height: 20px; }
.icon-box--solid { background: var(--c-orange-500); color: var(--text-on-accent); }
.icon-box--dark { background: rgba(222,112,27,.14); color: var(--c-orange-400); }
/* Çizgi ikon dili — inline SVG, stroke tabanlı */
.icon-line { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }


/* ==========================================================================
   15 — "NEDEN BİZ" LİSTESİ
   --------------------------------------------------------------------------
   7 madde. Metin uzunlukları eşit DEĞİL (4. madde 168 karakter, 7. madde 74).
   Bu yüzden ızgara + eşit yükseklik kartı KULLANILMAZ; numaralı akış listesi
   kullanılır ve yükseklik içeriğe göre serbest kalır. Taşma imkânsız.
   ========================================================================== */
.why {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  counter-reset: why;
}
/* Sol kenardaki dikey ilerleme çizgisi — GSAP scaleY ile boyar */
.why__track {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 2px;
  background: var(--border-hair);
}
.why__track-fill {
  position: absolute;
  inset: 0;
  background: var(--c-orange-500);
  transform: scaleY(0);
  transform-origin: top;
  will-change: transform;
}
.why__item {
  position: relative;
  counter-increment: why;
  padding: var(--sp-8) 0 var(--sp-8) clamp(3.25rem, 2rem + 5vw, 6rem);
  border-bottom: 1px solid var(--border-hair);
}
.why__item:last-child { border-bottom: 0; }
.why__item::before {
  content: counter(why, decimal-leading-zero);
  position: absolute;
  left: var(--sp-5); top: var(--sp-8);
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: var(--ls-wide);
  color: var(--text-accent);
  transition: color var(--t) var(--e-out);
}
.why__item::after {
  content: "";
  position: absolute;
  left: -4px; top: calc(var(--sp-8) + .35em);
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--bg-page);
  border: 2px solid var(--c-gray-300);
  transition: border-color var(--t) var(--e-out), transform var(--t) var(--e-spring);
}
.why__item.is-active::after,
.why__item:hover::after { border-color: var(--c-orange-500); transform: scale(1.25); }
.why__title { font-size: var(--fs-lg); margin-bottom: var(--sp-3); }
.why__text { font-size: var(--fs-base); line-height: var(--lh-loose); color: var(--text-body); max-width: 68ch; }


/* ==========================================================================
   16 — DEĞER KARTI (Hakkımızda / Değerlerimiz — 6 madde)
   ========================================================================== */
.value-card {
  display: flex;
  flex-direction: column;
  gap: var(--sp-4);
  padding: var(--sp-7);
  background: var(--bg-surface);
  border: 1px solid var(--border-hair);
  border-radius: var(--r-md);
  border-top: 3px solid transparent;
  transition: border-color var(--t) var(--e-out),
              box-shadow var(--t-slow) var(--e-out);
}
.value-card:hover {
  border-top-color: var(--c-orange-500);
  transform: translateY(-4px);
  box-shadow: var(--sh-2);
}
.value-card:hover .icon-box { background: var(--c-orange-500); color: var(--text-on-accent); transform: rotate(-8deg) scale(1.05); }
.value-card__title { font-size: var(--fs-md); }
.value-card__text { font-size: var(--fs-sm); line-height: var(--lh-loose); color: var(--text-muted); }

/* ==========================================================================
   18 — İMZA AN #2: YEDİ KULE SAHNESİ (hakkımızda)
   --------------------------------------------------------------------------
   Kaynak cümle paragrafta BİREBİR kalır; burası aynı 7 ifadenin görsel
   dağılımıdır. Yeni metin yazılmaz.
   ========================================================================== */
.towers { position: relative; background: var(--c-ink-900); color: var(--text-on-dark); overflow: hidden; }
.towers::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .10;
  background-image:
    linear-gradient(to right, rgba(251,250,247,.28) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(251,250,247,.18) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: linear-gradient(to top, #000, transparent 70%);
  -webkit-mask-image: linear-gradient(to top, #000, transparent 70%);
  pointer-events: none;
}
.towers__inner { position: relative; z-index: 1; }
.towers__stage {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  align-items: end;
  gap: clamp(.375rem, .2rem + .8vw, 1rem);
  min-height: clamp(240px, 34vw, 420px);
  margin-top: clamp(2rem, 1.2rem + 3vw, 4rem);
  padding-bottom: var(--sp-6);
  border-bottom: 1px solid var(--border-dark);
}
.tower {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  height: 100%;
}
.tower__bar {
  width: 100%;
  border-radius: 3px 3px 0 0;
  background: linear-gradient(to top, var(--c-ink-700), var(--c-ink-600));
  transform-origin: bottom;
  position: relative;
}
/* 7 kule kademeli yükselir — "yedi kule" motifi */
.tower:nth-child(1) .tower__bar { height: 34%; }
.tower:nth-child(2) .tower__bar { height: 46%; }
.tower:nth-child(3) .tower__bar { height: 58%; }
.tower:nth-child(4) .tower__bar { height: 100%; }
.tower:nth-child(5) .tower__bar { height: 58%; }
.tower:nth-child(6) .tower__bar { height: 46%; }
.tower:nth-child(7) .tower__bar { height: 34%; }
/* Kule tepesindeki turuncu bant — aydınlandığında yanar */
.tower__bar::after {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 5px;
  background: var(--c-gray-700);
  border-radius: 3px 3px 0 0;
  transition: background-color var(--t-slow) var(--e-out), box-shadow var(--t-slow) var(--e-out);
}
.tower.is-lit .tower__bar::after {
  background: var(--c-orange-500);
  box-shadow: 0 0 18px 2px rgba(222,112,27,.55);
}
.tower.is-lit .tower__bar { background: linear-gradient(to top, var(--c-ink-700), #3F454A); }
.tower__label {
  margin-top: var(--sp-4);
  font-family: var(--font-display);
  font-size: clamp(.6875rem, .58rem + .5vw, .9375rem);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: var(--ls-tight);
  text-align: center;
  color: var(--text-on-dark-muted);
  transition: color var(--t-slow) var(--e-out);
  hyphens: auto;
}
.tower.is-lit .tower__label { color: var(--text-on-dark); }
.tower__label b { display: block; color: var(--c-orange-400); font-weight: 700; }

/* Mobil: kuleler YAN YANA kalir, etiketler asagidan yukari dikey yazilir
   (2026-09-07, kullanici talebi). Onceki dikey liste sagi yapisik duruyor ve
   her madde iki satira boluniyordu. */
@media (max-width: 640px) {
  .towers__stage {
    grid-template-columns: repeat(7, 1fr);
    align-items: end;
    gap: 5px;
    min-height: 0;
    padding-bottom: var(--sp-5);
    border-bottom: 1px solid var(--border-dark);
  }
  .tower {
    flex-direction: column;
    justify-content: flex-end;
    align-items: stretch;
    gap: var(--sp-3);
    height: auto;
    padding: 0;
    border-bottom: 0;
  }
  .tower__bar { width: 100%; border-radius: 3px 3px 0 0; }
  /* Kademe px olarak: yuzde degerler artik esnek yukseklige dayanamiyor */
  .tower:nth-child(1) .tower__bar,
  .tower:nth-child(7) .tower__bar { height: 26px !important; }
  .tower:nth-child(2) .tower__bar,
  .tower:nth-child(6) .tower__bar { height: 38px !important; }
  .tower:nth-child(3) .tower__bar,
  .tower:nth-child(5) .tower__bar { height: 50px !important; }
  .tower:nth-child(4) .tower__bar { height: 64px !important; }
  .tower__bar::after { inset: 0 0 auto 0; height: 4px; border-radius: 3px 3px 0 0; }
  /* Dikey yazi: vertical-rl + 180deg = ASAGIDAN YUKARI okunur. */
  .tower__label {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    height: 132px;
    margin-top: 0;
    padding-block: 0;
    font-size: .6875rem;
    line-height: 1.15;
    letter-spacing: normal;
    text-align: right;          /* dondurme sonrasi: cubugun altindan baslar */
    white-space: nowrap;
    hyphens: none;
    /* 2026-09-07: kutu sutunun tamamini kapliyordu; dikey yazma modunda
       tek satir blok basina (dondurme sonrasi SOLA) yapisip kuleyle
       hizasizlasiyordu. Kutu metin genisligine inip ortalaniyor. */
    align-self: center;
    width: max-content;
  }
  .tower__label b { display: inline; }
  .tower__label b::before { content: " "; }
}


/* ==========================================================================
   19 — İMZA AN #3: İSTATİSTİK ŞERİDİ
   ========================================================================== */
.st-stats { position: relative; background: var(--c-ink-900); color: var(--text-on-dark); overflow: hidden; }
.st-stats__texture {
  position: absolute;
  inset: -20% 0;
  opacity: .12;
  background-image:
    linear-gradient(to right, rgba(251,250,247,.3) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(251,250,247,.3) 1px, transparent 1px);
  background-size: 64px 64px;
  will-change: transform;
  pointer-events: none;
}
.st-stats__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--border-dark);
}
.st-stat {
  background: var(--c-ink-900);
  padding: clamp(1.5rem, 1rem + 2vw, 2.75rem) clamp(1rem, .6rem + 1.5vw, 2rem);
  text-align: center;
}
.st-stat__value {
  display: flex;
  align-items: baseline;
  justify-content: center;
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 1.6rem + 3.6vw, 4.25rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: var(--ls-mega);
  color: #FFFFFF;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.st-stat__prefix, .st-stat__suffix { color: var(--c-orange-500); font-weight: 700; }
.st-stat__label {
  margin-top: var(--sp-4);
  font-size: var(--fs-sm);
  line-height: var(--lh-snug);
  color: var(--text-on-dark-muted);
  max-width: 20ch;
  margin-inline: auto;
}


/* ==========================================================================
   20 — CTA BÖLÜMÜ (tek bileşen, tüm sayfalarda tekrar kullanılır)
   ========================================================================== */
.st-cta {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--c-ink-900);
  color: var(--text-on-dark);
  padding-block: clamp(4rem, 2.5rem + 6vw, 8rem);
}
.st-cta__bg { position: absolute; inset: -10% 0; z-index: 0; }
.st-cta__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.st-cta__scrim { position: absolute; inset: 0; z-index: 1; background: var(--ov-cta); pointer-events: none; }
.st-cta__inner { position: relative; z-index: 2; max-width: 760px; }
.st-cta--center .st-cta__inner { margin-inline: auto; text-align: center; }
.st-cta--center .eyebrow { justify-content: center; }
.st-cta__title { font-size: var(--fs-3xl); color: #FFFFFF; margin-top: var(--sp-5); }
.st-cta__text { margin-top: var(--sp-5); font-size: var(--fs-md); line-height: var(--lh-loose); color: rgba(251,250,247,.88); }
.st-cta__actions {
  margin-top: var(--sp-8);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-6);
}
.st-cta--center .st-cta__actions { justify-content: center; }
.st-cta__tel {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-3);
  color: var(--text-on-dark);
  transition: color var(--t) var(--e-out);
}
.st-cta__tel svg { width: 20px; height: 20px; color: var(--c-orange-500); }
.st-cta__tel span { font-family: var(--font-display); font-size: var(--fs-lg); font-weight: 700; letter-spacing: var(--ls-tight); }
.st-cta__tel small { display: block; font-family: var(--font-body); font-size: var(--fs-2xs); font-weight: 400; letter-spacing: var(--ls-wide); text-transform: uppercase; color: var(--text-on-dark-muted); }
.st-cta__tel:hover { color: var(--c-orange-400); }


/* ==========================================================================
   21 — SAYFA BANNER + BREADCRUMB
   ========================================================================== */
.st-banner {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: flex-end;
  min-height: clamp(280px, 26vw + 120px, 440px);
  padding-top: calc(var(--header-h) + var(--sp-8));
  padding-bottom: clamp(2rem, 1.2rem + 3vw, 3.5rem);
  background: var(--c-ink-900);
  color: var(--text-on-dark);
  overflow: hidden;
}
.st-banner__bg { position: absolute; inset: -6% 0; z-index: 0; }
.st-banner__bg img { width: 100%; height: 100%; object-fit: cover; }
.st-banner__scrim { position: absolute; inset: 0; z-index: 1; background: var(--ov-banner); pointer-events: none; }
.st-banner__inner { position: relative; z-index: 2; width: 100%; }
.st-banner__title { font-size: var(--fs-4xl); color: #FFFFFF; max-width: 20ch; }
/* Turuncu ayraç. GSAP pseudo-elemana erişemez -> --rule-scale değişkeni animasyonlanır.
   Değişken tanımsızken 1 olduğu için JS kapalıyken ayraç görünür kalır. */
.st-banner__title::after {
  content: "";
  display: block;
  width: 64px; height: 3px;
  margin-top: var(--sp-5);
  background: var(--c-orange-500);
  border-radius: var(--r-pill);
  transform-origin: left;
  transform: scaleX(var(--rule-scale, 1));
}
.st-banner__sub { margin-top: var(--sp-5); max-width: 60ch; font-size: var(--fs-md); color: rgba(251,250,247,.9); line-height: var(--lh-loose); }
.st-banner__en {
  display: block;
  margin-top: var(--sp-2);
  font-family: var(--font-body);
  font-size: var(--fs-sm);
  font-weight: 500;
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--c-orange-400);
}

/* Breadcrumb */
.breadcrumb { margin-bottom: var(--sp-5); }
.breadcrumb ol { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); list-style: none; margin: 0; padding: 0; }
.breadcrumb li { display: flex; align-items: center; gap: var(--sp-2); font-size: var(--fs-xs); color: rgba(251,250,247,.72); }
.breadcrumb li + li::before { content: "/"; color: rgba(251,250,247,.4); }
.breadcrumb a { transition: color var(--t) var(--e-out); }
.breadcrumb a:hover { color: var(--c-orange-400); text-decoration: underline; text-underline-offset: 3px; }
.breadcrumb [aria-current="page"] { color: #FFFFFF; font-weight: 500; }
/* Açık zeminde breadcrumb */
.breadcrumb--light li { color: var(--text-muted); }
.breadcrumb--light li + li::before { color: var(--c-gray-300); }
.breadcrumb--light [aria-current="page"] { color: var(--text-strong); }


/* ==========================================================================
   22 — ZİG-ZAG HİZMET LİSTESİ (hizmetler.php)
   ========================================================================== */
.zigzag { display: grid; gap: clamp(3rem, 2rem + 4vw, 6rem); counter-reset: zz; }
.zigzag__row {
  position: relative;
  counter-increment: zz;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-6);
  align-items: center;
}
/* Arka plandaki büyük soluk numara — parallax ile hafif kayar */
.zigzag__num {
  position: absolute;
  right: 0; top: -.35em;
  z-index: 0;
  font-family: var(--font-display);
  font-size: clamp(5rem, 3rem + 12vw, 12rem);
  font-weight: 800;
  line-height: .8;
  letter-spacing: var(--ls-mega);
  color: var(--c-sand-300);
  opacity: .8;
  pointer-events: none;
  user-select: none;
  font-variant-numeric: tabular-nums;
}
.zigzag__num::before { content: counter(zz, decimal-leading-zero); }
.zigzag__media { position: relative; z-index: 1; }
.zigzag__media .media { aspect-ratio: 8 / 5; }
.zigzag__body { position: relative; z-index: 1; }
.zigzag__title { font-size: var(--fs-2xl); margin-top: var(--sp-4); }
.zigzag__short {
  margin-top: var(--sp-4);
  font-size: var(--fs-md);
  font-weight: 500;
  color: var(--text-strong);
  padding-left: var(--sp-5);
  border-left: 3px solid var(--c-orange-500);
  line-height: var(--lh-snug);
}
.zigzag__text { margin-top: var(--sp-5); color: var(--text-muted); line-height: var(--lh-loose); }
.zigzag__row a.zigzag__link::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.zigzag__cta { margin-top: var(--sp-6); }
.zigzag__row:hover .zigzag__media .media img { transform: scale(1.04); }
.zigzag__media .media img { transition: transform var(--t-slower) var(--e-out); }


/* ==========================================================================
   23 — DETAY SAYFASI DÜZENİ
   ========================================================================== */
.detail { display: grid; grid-template-columns: 1fr; gap: clamp(2rem, 1.4rem + 3vw, 4rem); }

/* Yapışkan hızlı teklif kartı (masaüstü) */
.quote-card {
  background: var(--bg-surface);
  border: 1px solid var(--border-soft);
  border-radius: var(--r-md);
  padding: var(--sp-7);
  box-shadow: var(--sh-2);
  border-top: 3px solid var(--c-orange-500);
}
.quote-card__eyebrow {
  font-size: var(--fs-2xs);
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: var(--text-accent);
}
.quote-card__title { margin-top: var(--sp-3); font-size: var(--fs-lg); }
.quote-card__text { margin-top: var(--sp-3); font-size: var(--fs-sm); color: var(--text-muted); line-height: var(--lh-loose); }
.quote-card .btn { margin-top: var(--sp-5); }
.quote-card__tel {
  margin-top: var(--sp-5);
  padding-top: var(--sp-5);
  border-top: 1px solid var(--border-hair);
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  font-size: var(--fs-sm);
  color: var(--text-muted);
}
.quote-card__tel a { font-family: var(--font-display); font-weight: 700; color: var(--text-strong); }
.quote-card__tel a:hover { color: var(--text-accent); }

/* "Bu hizmetle kazanacaklarınız" / "Başlıca kullanım alanları" listesi */
.benefits { display: grid; gap: var(--sp-4); }
.benefits__item {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: var(--sp-4);
  padding: var(--sp-5) var(--sp-5) var(--sp-5) var(--sp-5);
  background: var(--bg-surface);
  border: 1px solid var(--border-hair);
  border-radius: var(--r-sm);
  font-size: var(--fs-base);
  line-height: var(--lh-snug);
  color: var(--text-body);
  transition: border-color var(--t) var(--e-out), background-color var(--t) var(--e-out);
}
.benefits__item:hover { border-color: var(--c-orange-300); background: var(--c-orange-50); }
.benefits__check {
  flex: none;
  width: 26px; height: 26px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: var(--c-orange-500);
  color: var(--text-on-accent);
  margin-top: 1px;
}
.benefits__check svg { width: 14px; height: 14px; stroke-width: 2.6; }
/* Alt turuncu çizgi — GSAP --line değişkenini 0'dan 1'e çizer.
   Tanımsızken 1: JS kapalıyken çizgi görünür. */
.benefits__item::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -1px;
  height: 2px;
  background: var(--c-orange-500);
  transform: scaleX(var(--line, 1));
  transform-origin: left;
}

/* Ambalaj ve belgeler şeridi (7 ürün detayında + urunler.php) */
.packaging {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-5);
  padding: var(--sp-7);
  background: var(--bg-surface);
  border: 1px solid var(--border-hair);
  border-radius: var(--r-md);
}
.packaging__item { display: flex; align-items: center; gap: var(--sp-4); }
.packaging__item h4 { font-size: var(--fs-base); }
.packaging__item p { font-size: var(--fs-xs); color: var(--text-muted); line-height: var(--lh-snug); }
.packaging__note {
  grid-column: 1 / -1;
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  padding-top: var(--sp-5);
  border-top: 1px solid var(--border-hair);
  font-size: var(--fs-sm);
  color: var(--text-body);
}
.packaging__note svg { flex: none; width: 18px; height: 18px; color: var(--c-orange-600); margin-top: 2px; }

/* Vurgu kutusu — ürünler sayfası girişindeki MSDS/ambalaj paragrafı */
.callout {
  position: relative;
  padding: var(--sp-6) var(--sp-6) var(--sp-6) var(--sp-8);
  background: var(--c-orange-50);
  border: 1px solid var(--c-orange-200);
  border-radius: var(--r-sm);
  font-size: var(--fs-base);
  line-height: var(--lh-loose);
  color: var(--text-body);
}
.callout::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 4px;
  background: var(--c-orange-500);
  border-radius: var(--r-sm) 0 0 var(--r-sm);
}


/* ==========================================================================
   24 — YATAY ŞERİT (diğer ürünler / hizmetler; mobilde ürün ızgarası)
   ========================================================================== */
.rail { position: relative; }
.rail__track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(240px, 78vw);
  gap: var(--gap-grid);
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: var(--gutter);
  padding-bottom: var(--sp-4);
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}
.rail__track > * { scroll-snap-align: start; }
.rail__head { display: flex; align-items: end; justify-content: space-between; gap: var(--sp-4); margin-bottom: var(--sp-6); }
.rail__nav { display: none; gap: var(--sp-2); }
/* Sağ kenarda "daha var" ipucu — mobilde kısmi görünen kart hissi */
.rail::after {
  content: "";
  position: absolute;
  top: 0; bottom: var(--sp-4); right: calc(var(--gutter) * -1);
  width: clamp(24px, 6vw, 64px);
  background: linear-gradient(to right, transparent, var(--bg-page));
  pointer-events: none;
}
.section--band .rail::after { background: linear-gradient(to right, transparent, var(--bg-band)); }


/* ==========================================================================
   25 — FORM ALANLARI
   ========================================================================== */
.form { display: grid; gap: var(--sp-5); }
.form__grid { display: grid; grid-template-columns: 1fr; gap: var(--sp-5); }
.field { display: flex; flex-direction: column; gap: var(--sp-2); }
.field--full { grid-column: 1 / -1; }

.label {
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--text-strong);
  letter-spacing: var(--ls-tight);
}
.label .req { color: var(--c-danger); margin-left: 2px; }
.label .opt { color: var(--text-muted); font-weight: 400; font-size: var(--fs-xs); margin-left: var(--sp-2); }

.input, .select, .textarea {
  width: 100%;
  min-height: 50px;
  padding: var(--sp-3) var(--sp-4);
  background: var(--bg-surface);
  border: 1px solid var(--border-strong);
  border-radius: var(--r-sm);
  color: var(--text-strong);
  font-size: var(--fs-base);
  line-height: 1.5;
  transition: border-color var(--t) var(--e-out),
              box-shadow var(--t) var(--e-out),
              background-color var(--t) var(--e-out);
}
.textarea { min-height: 150px; padding-block: var(--sp-4); line-height: var(--lh-body); }
.input::placeholder, .textarea::placeholder { color: var(--c-gray-400); opacity: 1; }
.input:hover, .select:hover, .textarea:hover { border-color: var(--c-gray-600); }
.input:focus, .select:focus, .textarea:focus {
  outline: none;
  border-color: var(--c-orange-500);
  box-shadow: 0 0 0 4px var(--focus-glow);
  background: #FFFFFF;
}
.input:focus-visible, .select:focus-visible, .textarea:focus-visible { outline: none; box-shadow: 0 0 0 4px var(--focus-glow); }
.input:disabled, .select:disabled, .textarea:disabled {
  background: var(--c-sand-200);
  border-color: var(--border-hair);
  color: var(--text-muted);
  cursor: not-allowed;
}

/* Select — özel ok */
.select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: var(--sp-10);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23454545' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right var(--sp-4) center;
  cursor: pointer;
}

/* Yardım metni + hata */
.help { font-size: var(--fs-xs); color: var(--text-muted); line-height: var(--lh-snug); }
.error-text {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-2);
  font-size: var(--fs-xs);
  font-weight: 500;
  color: var(--c-danger);
  line-height: var(--lh-snug);
}
.error-text svg { flex: none; width: 14px; height: 14px; margin-top: 2px; }

/* Hata durumu */
.field.has-error .input,
.field.has-error .select,
.field.has-error .textarea { border-color: var(--c-danger); background: var(--c-danger-bg); }
.field.has-error .input:focus,
.field.has-error .select:focus,
.field.has-error .textarea:focus { box-shadow: 0 0 0 4px rgba(180, 35, 24, .16); }
.field.has-error .label { color: var(--c-danger); }

/* Başarı durumu */
.field.is-valid .input,
.field.is-valid .select,
.field.is-valid .textarea { border-color: var(--c-success); }

/* Koşullu alan — Talep Konusu = "Ürün Satın Alma" iken açılır */
.field--conditional {
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
  transition: grid-template-rows var(--t-slow) var(--e-inout), opacity var(--t) var(--e-out);
}
.field--conditional > .field__inner { overflow: hidden; min-height: 0; }
.field--conditional.is-open { grid-template-rows: 1fr; opacity: 1; }
/* Ön seçimle gelen alanın 1 saniyelik turuncu vurgusu */
.field.is-highlighted .select,
.field.is-highlighted .input { animation: st-field-pulse 1s var(--e-out) 1; }
@keyframes st-field-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(222,112,27,.55); border-color: var(--c-orange-500); }
  100% { box-shadow: 0 0 0 14px rgba(222,112,27,0); border-color: var(--border-strong); }
}

/* Onay kutusu / KVKK satırı */
.check { display: flex; align-items: flex-start; gap: var(--sp-3); font-size: var(--fs-sm); color: var(--text-muted); line-height: var(--lh-snug); }
.check input[type="checkbox"] {
  flex: none;
  appearance: none;
  -webkit-appearance: none;
  width: 20px; height: 20px;
  margin-top: 2px;
  border: 1px solid var(--border-strong);
  border-radius: var(--r-xs);
  background: var(--bg-surface);
  cursor: pointer;
  transition: background-color var(--t-fast) var(--e-out), border-color var(--t-fast) var(--e-out);
}
.check input[type="checkbox"]:checked {
  background: var(--c-orange-500);
  border-color: var(--c-orange-600);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2316181A' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
}

/* Bal küpü (honeypot) — ekranda ve ekran okuyucuda yok */
.hp-field {
  position: absolute !important;
  left: -9999px;
  width: 1px; height: 1px;
  overflow: hidden;
  opacity: 0;
}

/* Form kabuğu */
.form-shell {
  background: var(--bg-surface);
  border: 1px solid var(--border-hair);
  border-radius: var(--r-md);
  padding: clamp(1.5rem, 1rem + 2vw, 2.75rem);
  box-shadow: var(--sh-2);
}
.form-shell__head { margin-bottom: var(--sp-7); }
.form-shell__head h2 { font-size: var(--fs-2xl); }
.form-shell__head p { margin-top: var(--sp-3); color: var(--text-muted); font-size: var(--fs-sm); line-height: var(--lh-loose); }
.form__foot { display: flex; flex-direction: column; gap: var(--sp-4); }

/* İletişim bilgi kartı */
.info-card {
  display: flex;
  gap: var(--sp-4);
  padding: var(--sp-6);
  background: var(--bg-surface);
  border: 1px solid var(--border-hair);
  border-radius: var(--r-md);
  transition: border-color var(--t) var(--e-out);
}
.info-card:hover { border-color: var(--c-orange-300); transform: translateY(-3px); }
.info-card__label {
  font-size: var(--fs-2xs);
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: var(--text-muted);
}
.info-card__value { margin-top: var(--sp-2); font-size: var(--fs-base); font-weight: 500; color: var(--text-strong); line-height: var(--lh-snug); }
.info-card__value a:hover { color: var(--text-accent); text-decoration: underline; text-underline-offset: 3px; }
.info-card__extra { margin-top: var(--sp-3); font-size: var(--fs-xs); }

/* Harita kabuğu — lazy iframe */
.map-shell {
  position: relative;
  aspect-ratio: 16 / 9;
  min-height: 300px;
  border-radius: var(--r-md);
  overflow: hidden;
  background: var(--c-sand-200);
  border: 1px solid var(--border-hair);
}
.map-shell iframe { width: 100%; height: 100%; border: 0; }
.map-shell__placeholder {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  gap: var(--sp-3);
  text-align: center;
  color: var(--text-muted);
  font-size: var(--fs-sm);
}


/* ==========================================================================
   26 — BİLDİRİM / ALERT
   ========================================================================== */
.alert {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-4);
  padding: var(--sp-5) var(--sp-6);
  border: 1px solid var(--c-info-bd);
  border-left-width: 4px;
  border-radius: var(--r-sm);
  background: var(--c-info-bg);
  color: var(--text-body);
  font-size: var(--fs-sm);
  line-height: var(--lh-loose);
}
.alert__icon { flex: none; width: 22px; height: 22px; margin-top: 1px; color: var(--c-info); }
.alert__title { display: block; font-weight: 600; color: var(--text-strong); margin-bottom: var(--sp-1); font-size: var(--fs-base); }
.alert--success { background: var(--c-success-bg); border-color: var(--c-success-bd); }
.alert--success .alert__icon { color: var(--c-success); }
.alert--danger  { background: var(--c-danger-bg);  border-color: var(--c-danger-bd); }
.alert--danger .alert__icon { color: var(--c-danger); }
.alert--warning { background: var(--c-warning-bg); border-color: var(--c-warning-bd); }
.alert--warning .alert__icon { color: var(--c-warning); }
.alert__close { flex: none; margin-left: auto; padding: var(--sp-1); color: var(--text-muted); border-radius: var(--r-xs); }
.alert__close:hover { color: var(--text-strong); }

/* Form başarı kartı — gönderim sonrası (POST-Redirect-GET) */
.success-card {
  display: grid;
  gap: var(--sp-4);
  justify-items: center;
  text-align: center;
  padding: clamp(2rem, 1.5rem + 3vw, 3.5rem);
  background: var(--bg-surface);
  border: 1px solid var(--c-success-bd);
  border-radius: var(--r-md);
  box-shadow: var(--sh-2);
}
.success-card__icon {
  width: 64px; height: 64px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: var(--c-success-bg);
  color: var(--c-success);
}
.success-card__icon svg { width: 30px; height: 30px; stroke-width: 2.4; }
.success-card h2 { font-size: var(--fs-xl); }
.success-card p { color: var(--text-muted); max-width: 46ch; }


/* ==========================================================================
   27 — ROZET · TABLO · AYIRICI
   ========================================================================== */
.badge {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  padding: 4px var(--sp-3);
  border-radius: var(--r-pill);
  background: var(--c-sand-200);
  color: var(--text-body);
  font-size: var(--fs-2xs);
  font-weight: 600;
  letter-spacing: .04em;
  line-height: 1.5;
  white-space: nowrap;
}
.badge--accent  { background: var(--c-orange-100); color: var(--c-orange-800); }  /* 7.42:1 */
.badge--solid   { background: var(--c-orange-500); color: var(--text-on-accent); }
.badge--dark    { background: var(--c-ink-800); color: var(--text-on-dark); }
.badge--success { background: var(--c-success-bg); color: var(--c-success); }
.badge--danger  { background: var(--c-danger-bg);  color: var(--c-danger); }
.badge--outline { background: transparent; box-shadow: inset 0 0 0 1px var(--border-soft); color: var(--text-muted); }
.badge__dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex: none; }

/* Tablo (ön yüz — teknik özet vb.) */
.table-wrap { overflow-x: auto; border: 1px solid var(--border-hair); border-radius: var(--r-md); background: var(--bg-surface); }
.table { width: 100%; min-width: 520px; font-size: var(--fs-sm); }
.table th, .table td { padding: var(--sp-4) var(--sp-5); text-align: left; border-bottom: 1px solid var(--border-hair); }
.table thead th {
  background: var(--c-sand-200);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: var(--fs-xs);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--text-strong);
  white-space: nowrap;
}
.table tbody tr:last-child td { border-bottom: 0; }
.table tbody tr:hover { background: var(--c-orange-50); }

/* Ayırıcı — bölümler arası ince şerit */
.divider { height: 1px; background: var(--border-hair); }
.divider--band { height: clamp(8px, 1.4vw, 14px); background: var(--c-orange-500); }
.divider--dashed { height: 0; border-top: 1px dashed var(--border-soft); }


/* ==========================================================================
   28 — FOOTER
   ========================================================================== */
.st-footer { background: var(--c-ink-900); color: var(--text-on-dark-muted); }
.st-footer a { transition: color var(--t) var(--e-out); }
.st-footer__top { padding-block: clamp(3rem, 2rem + 4vw, 5rem); }
.st-footer__grid { display: grid; grid-template-columns: 1fr; gap: clamp(2rem, 1.5rem + 2vw, 3rem); }
.st-footer__brand img, .st-footer__brand svg { height: 38px; width: auto; }
.st-footer__about { margin-top: var(--sp-5); font-size: var(--fs-sm); line-height: var(--lh-loose); max-width: 46ch; }
.st-footer__title {
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: var(--text-on-dark);
  margin-bottom: var(--sp-5);
}
.st-footer__list { display: grid; gap: var(--sp-3); font-size: var(--fs-sm); }
.st-footer__list a { display: inline-flex; align-items: center; gap: var(--sp-2); }
.st-footer__list a::before {
  content: "";
  width: 0; height: 1px;
  background: var(--c-orange-500);
  transition: width var(--t) var(--e-out);
}
.st-footer__list a:hover { color: var(--text-on-dark); }
.st-footer__list a:hover::before { width: 12px; }
.st-footer__contact { display: grid; gap: var(--sp-4); font-size: var(--fs-sm); line-height: var(--lh-snug); }
.st-footer__contact div { display: flex; gap: var(--sp-3); }
.st-footer__contact svg { flex: none; width: 17px; height: 17px; color: var(--c-orange-500); margin-top: 2px; }
.st-footer__contact strong { display: block; color: var(--text-on-dark); font-weight: 600; }
.st-footer__contact a:hover { color: var(--c-orange-400); }
.st-footer__social { display: flex; gap: var(--sp-3); margin-top: var(--sp-6); }
.st-footer__social a {
  display: grid; place-items: center;
  width: 40px; height: 40px;
  border: 1px solid var(--border-dark);
  border-radius: var(--r-sm);
  color: var(--text-on-dark-muted);
}
.st-footer__social a:hover { border-color: var(--c-orange-500); color: var(--c-orange-400); background: rgba(222,112,27,.08); }
.st-footer__social svg { width: 18px; height: 18px; }
.st-footer__bottom {
  border-top: 1px solid var(--border-dark);
  padding-block: var(--sp-6);
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-4);
  align-items: center;
  justify-content: space-between;
  font-size: var(--fs-xs);
}
.st-footer__bottom a:hover { color: var(--c-orange-400); }
.st-footer__legal { max-width: none; flex: 1 1 auto; min-width: 0; line-height: var(--lh-snug); }


/* ==========================================================================
   29 — MOBİL SABİT AKSİYON ÇUBUĞU
   ========================================================================== */
.mobile-bar {
  position: fixed;
  inset: auto 0 0 0;
  z-index: var(--z-mobilebar);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  height: calc(var(--mobilebar-h) + env(safe-area-inset-bottom, 0px));
  padding-bottom: env(safe-area-inset-bottom, 0px);
  background: var(--border-hair);
  border-top: 1px solid var(--border-hair);
  box-shadow: 0 -6px 20px -8px rgba(22,24,26,.18);
  transform: translateY(0);
  transition: transform var(--t-slow) var(--e-out);
}
.mobile-bar.is-hidden { transform: translateY(110%); }
.mobile-bar__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  background: var(--bg-surface);
  color: var(--text-strong);
  font-size: var(--fs-sm);
  font-weight: 600;
}
.mobile-bar__btn svg { width: 18px; height: 18px; }
.mobile-bar__btn:active { background: var(--c-sand-200); }
.mobile-bar__btn--accent { background: var(--c-orange-500); color: var(--text-on-accent); }
.mobile-bar__btn--accent:active { background: var(--c-orange-700); color: #FFFFFF; } /* 6.25:1 */
@media (min-width: 641px) { .mobile-bar { display: none; } }


/* ==========================================================================
   30 — 404
   ========================================================================== */
.err {
  min-height: 78svh;
  min-height: 78vh;
  display: grid;
  align-content: center;
  padding-top: calc(var(--header-h) + var(--sp-10));
  padding-bottom: var(--sp-16);
}
.err__code {
  font-family: var(--font-display);
  font-size: clamp(5rem, 3rem + 14vw, 12rem);
  font-weight: 800;
  line-height: .82;
  letter-spacing: var(--ls-mega);
  color: var(--c-sand-300);
  font-variant-numeric: tabular-nums;
  user-select: none;
}
.err__code span { color: var(--c-orange-600); } /* 3.97:1 — büyük dekoratif metin */
.err__title { margin-top: var(--sp-6); font-size: var(--fs-3xl); }
.err__text { margin-top: var(--sp-5); max-width: 52ch; color: var(--text-muted); font-size: var(--fs-md); line-height: var(--lh-loose); }
.err__actions { margin-top: var(--sp-8); }
.err__links { margin-top: var(--sp-12); padding-top: var(--sp-8); border-top: 1px solid var(--border-hair); }
.err__links h2 { font-size: var(--fs-lg); margin-bottom: var(--sp-5); }
.err__chips { display: flex; flex-wrap: wrap; gap: var(--sp-3); }
.err__chips a {
  display: inline-flex;
  padding: var(--sp-2) var(--sp-4);
  border: 1px solid var(--border-soft);
  border-radius: var(--r-pill);
  background: var(--bg-surface);
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--text-body);
  transition: border-color var(--t) var(--e-out), color var(--t) var(--e-out), background-color var(--t) var(--e-out);
}
.err__chips a:hover { border-color: var(--c-orange-500); color: var(--text-accent); background: var(--c-orange-50); }


/* ==========================================================================
   31 — RESPONSIVE
   --------------------------------------------------------------------------
   Mobil öncelikli. Kırılımlar:  <=640 (mobil) · 641-1024 (tablet) · >=1025 (masaüstü)
   ========================================================================== */

/* --- Tablet ve üzeri: >= 641px ------------------------------------------ */
@media (min-width: 641px) {
  .grid-2 { grid-template-columns: repeat(2, 1fr); }
  .grid-3 { grid-template-columns: repeat(2, 1fr); }
  .grid-4 { grid-template-columns: repeat(2, 1fr); }

  .st-hero-split { grid-template-columns: repeat(2, 1fr); }
  .st-stats__grid { grid-template-columns: repeat(4, 1fr); }
  .st-cta__actions { gap: var(--sp-8); }

  .form__grid { grid-template-columns: repeat(2, 1fr); }
  .packaging { grid-template-columns: repeat(3, 1fr); }

  .zigzag__row { grid-template-columns: repeat(2, 1fr); gap: clamp(1.5rem, 1rem + 3vw, 3.5rem); }
  .zigzag__row:nth-child(even) .zigzag__media { order: 2; }
  .zigzag__num { right: auto; left: 0; top: -.5em; }
  .zigzag__row:nth-child(even) .zigzag__num { left: auto; right: 0; }

  .st-footer__grid { grid-template-columns: repeat(2, 1fr); }
  .rail__track { grid-auto-columns: minmax(260px, 42vw); }

  .section-head--split { grid-template-columns: 1.1fr 1fr; }

  .err__code { line-height: .78; }
}

/* --- Masaüstü: >= 1025px ------------------------------------------------ */
@media (min-width: 1025px) {
  .grid-3 { grid-template-columns: repeat(3, 1fr); }
  .grid-4 { grid-template-columns: repeat(4, 1fr); }

  /* Header: hamburger gizlenir, menü ve CTA açılır */
  .st-nav { display: block; }
  .st-burger { display: none; }
  .st-drawer { display: none; }
  .st-header__tel { display: inline-flex; }
  .st-header__cta { display: inline-flex; }

  .st-hero__scroll { display: flex; }
  .st-hero-split { grid-template-columns: repeat(2, 1fr); }

  /* Pinlenmiş hizmet sahnesi — 2 sütun */

  /* Detay sayfası — içerik + yapışkan teklif kartı */
  .detail { grid-template-columns: minmax(0, 1fr) 340px; align-items: start; }
  .detail__aside { position: sticky; top: calc(var(--header-h-shrunk) + var(--sp-6)); }

  .benefits { grid-template-columns: repeat(2, 1fr); }
  .packaging { grid-template-columns: repeat(3, 1fr); }

  .st-footer__grid { grid-template-columns: 1.6fr 1fr 1fr 1.3fr; }

  .rail__nav { display: flex; }
  .rail__track { grid-auto-columns: minmax(280px, 1fr); overflow-x: auto; }

  /* Ürün ızgarası: 7 ürün — 4 + 3 yerleşim yerine düzenli 4'lü akış */
  .grid-products { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--gap-grid); }
  /* Son satırdaki 3 kart ortalanır */
  .grid-products > :nth-child(5) { grid-column: 1 / span 1; }

  .form-shell { padding: clamp(2rem, 1.4rem + 2vw, 3rem); }
  .contact-layout { display: grid; grid-template-columns: 1.35fr 1fr; gap: clamp(2rem, 1.4rem + 3vw, 4rem); align-items: start; }
}

/* --- Geniş masaüstü: >= 1280px ------------------------------------------ */
@media (min-width: 1280px) {
  .section-head__title { max-width: 24ch; }
  .st-hero__title { max-width: 15ch; }
}

/* Yatay mobil / kısa ekran — hero taşmasın */
@media (max-height: 560px) and (orientation: landscape) {
  .st-hero { min-height: auto; padding-top: calc(var(--header-h) + var(--sp-8)); padding-bottom: var(--sp-10); }
  .st-hero__scroll { display: none; }
}


/* ==========================================================================
   32 — ERİŞİLEBİLİRLİK · REDUCED MOTION · PRINT
   ========================================================================== */

/* Hareket azaltma — animasyon başlangıç durumları GERİ ALINIR,
   içerik anında görünür olur. GSAP tarafında da matchMedia ile kontrol edilir. */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
  .js .reveal, .js .reveal-left, .js .reveal-right, .js .reveal-scale {
    opacity: 1 !important;
    transform: none !important;
  }
  .js .reveal-mask, .js .reveal-mask-y { clip-path: none !important; }
  .js .reveal-words .word > i,
  .js .reveal-lines .line > span { transform: none !important; }
  .parallax-media > img { transform: none !important; }
  .st-hero__grid, .st-stats__texture, .towers::before { display: none; }
  .st-cursor, .st-cursor-dot { display: none !important; }
  .why__track-fill { transform: scaleY(1) !important; }
  .tower__bar::after { background: var(--c-orange-500); }
  .tower__label { color: var(--text-on-dark); }
  .benefits__item::after { transform: scaleX(1); }
}

/* Yüksek kontrast tercihi */
@media (prefers-contrast: more) {
  :root {
    --text-muted: #4A4D50;
    --border-hair: var(--c-gray-400);
    --border-soft: var(--c-gray-500);
  }
  .card, .value-card, .info-card, .benefits__item { border-color: var(--c-gray-500); }
}

/* Dokunmatik cihaz — hover efektleri devre dışı, transform hilesi yok */
@media (hover: none) {
  .card:hover { transform: none; box-shadow: none; }
  .card:hover .card__media img { transform: none; }
  .value-card:hover, .info-card:hover { transform: none; }
  .btn:hover { transform: none; }
}

/* Yazdırma */
@media print {
  .st-header, .st-drawer, .mobile-bar, .scroll-progress,
  .st-cursor, .st-cursor-dot, .st-hero__scroll, .rail__nav { display: none !important; }
  body { background: #FFFFFF; color: #000000; padding-bottom: 0; }
  .section { padding-block: 1.5rem; }
  .st-cta, .st-stats, .towers, .section--dark { background: #FFFFFF !important; color: #000000 !important; }
  .st-cta__bg, .st-cta__scrim, .st-banner__bg, .st-banner__scrim { display: none !important; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 10px; color: #555555; }
  .card, .value-card { break-inside: avoid; border: 1px solid #CCCCCC; }
}


/* ============================================================================
   GELİŞTİRİCİ NOTLARI  —  Full Stack Geliştirici için bağlayıcı kullanım kuralları
   ============================================================================

   1) BAŞLATMA
      - <html> etiketine hiçbir sınıf yazma. main.js dosyasının İLK satırı:
            document.documentElement.classList.add('js');
        Bu sınıf eklenene kadar .reveal / .reveal-words hiçbir şeyi gizlemez;
        JS kapalıysa veya hata verirse site tamamen okunur kalır (kabul kriteri).
      - Lenis başlatıldığında <html> üzerine 'lenis' sınıfı eklenir (Lenis bunu
        kendisi yapar). CSS bunu bekliyor.
      - Özel imleci açacaksan <html> üzerine 'has-cursor' sınıfını SADECE
        (pointer:fine) && !prefers-reduced-motion durumunda ekle.

   2) TURUNCU KULLANIM KURALI  (kontrast — pazarlık dışı)
      - #DE701B kırık beyaz zeminde 2.99:1 -> METİN OLARAK ASLA KULLANILMAZ.
      - Turuncu METİN gerektiğinde: var(--text-accent) = #9A4A0F (5.74:1).
      - Turuncu ZEMİN üstünde metin: var(--text-on-accent) = #16181A (5.46:1).
        Turuncu zeminde BEYAZ metin YAZMA (3.26:1, AA değil).
      - Koyu (ink) zeminde turuncu metin serbest: #DE701B / #16181A = 5.46:1.
      - Turuncu = aksiyon, vurgu, çizgi, ikon, hover. Geniş dolgu alanı değil.

   3) HEADER
      - Ana sayfada:   <header class="st-header st-header--over-hero">
      - Diğer sayfalarda: <header class="st-header st-header--solid">
      - Scrollda JS 'is-stuck' sınıfını ekler/kaldırır (eşik: ~80px).
      - Logo iki sürüm: <img class="st-logo__dark" src="assets/img/logo.svg">
                        <img class="st-logo__light" src="assets/img/logo-light.svg">
        CSS hangisinin görüneceğini kendi yönetir.

   4) MOBİL MENÜ
      - Buton: <button class="st-burger" aria-expanded="false"
                 aria-controls="st-drawer"><span></span><span></span><span></span></button>
      - Panel: <div class="st-drawer" id="st-drawer">
      - Açarken: drawer.classList.add('is-open'); body.classList.add('is-locked');
        burger.setAttribute('aria-expanded','true'); + odak tuzağı (focus trap) + ESC ile kapat.

   5) GÖRSELLER
      - Yol: assets/img/<dosya>.jpg (DÜZ yapı — plan 12.1). img_url() yardımcısı kullan.
      - Hero: loading="eager" fetchpriority="high". Diğer HEPSİ: loading="lazy" decoding="async".
      - width/height ZORUNLU (CLS): hero 1920x1080, banner 1920x800, bölüm 1600x1000,
        ürün 1200x900, cta-bg 1920x900, contact-bg 1600x900.
      - object-position değerleri icerik/GORSEL_ENVANTERI.md tablosundan alınır;
        hero-1 için CSS içinde varsayılan 'center 55%' yazılı. Farklı hero kullanılırsa
        inline style ile object-position geç.
      - Metin binen görsellerde overlay sınıfı ZORUNLU: .overlay-hero / .overlay-banner /
        .overlay-cta / .overlay-contact.

   6) ANİMASYON KANCALARI (GSAP bu sınıfları arar — bkz. tasarim/GSAP_SENARYOLARI.md)
      .reveal .reveal-left .reveal-right .reveal-scale .reveal-mask .reveal-mask-y
      .reveal-words (içinde .word > i)   .reveal-lines (içinde .line > span)
      .parallax .parallax-media .counter
      .grid-services kartlari  .towers/.tower(.is-lit)  .why__track-fill
      .scroll-progress__bar  .st-header(.is-stuck)  .benefits__item
      GSAP animasyon bitince ilgili elemana .anim-done ekle (will-change temizliği).

   7) FORM
      - Koşullu ürün alanı: <div class="field field--conditional" id="urun-alani">
                              <div class="field__inner"> ... </div>
                            </div>
        Talep Konusu = "Ürün Satın Alma" -> classList.add('is-open') + select'e
        required verme (görünmezken required olmamalı, tarayıcı hata verir).
      - ?konu= / ?urun= ile ön seçim yapıldığında ilgili .field'a 1 sn 'is-highlighted' ekle.
      - Honeypot alanı .hp-field sınıfını alır ve tabindex="-1" autocomplete="off" taşır.
      - Sunucu hatasında ilgili .field'a 'has-error' ekle + .error-text bas +
        input'a aria-invalid="true" aria-describedby="<hata-id>".

   8) 7 ÜRÜN IZGARASI
      Masaüstünde .grid-products (4 sütun) kullan: 4 + 3 dizilir, son satır sola yaslı
      kalır ve bu bilinçlidir (ortalanmış 3 kart, ızgara ritmini bozar).
      Mobilde .rail (yatay snap şerit) kullan — plan 5.1/3. maddesi.

   9) "NEDEN BİZ" 7 MADDE
      Izgara/kart KULLANMA. .why yapısı akış listesidir; 4. madde 168 karakter,
      7. madde 74 karakter — eşit yükseklikli kart bu farkı kaldıramaz, taşar.
      .why__track + .why__track-fill sol kenar çizgisidir, GSAP scrub ile boyanır.

  10) KONTEYNER SEÇİMİ
      .container         -> 1240px, genel bölümler
      .container--wide   -> 1440px, header ve tam genişlik şeritler
      .container--narrow ->  780px, detay sayfası okuma sütunu / KVKK metni

  11) YENİ RENK YAZMA
      Hex kodu doğrudan yazma; her zaman var(--...) kullan. Yeni bir ton gerekiyorsa
      önce 1.1/1.2/1.3 skalasına ekle, sonra semantik takma ad ver.

  ============================================================================ */


/* ============================================================================
   EK SINIFLAR — Full Stack Geliştirici (G2), 2026-09-02
   ----------------------------------------------------------------------------
   Tasarımcı'nın style.css'i YENİDEN YAZILMADI. Aşağıdakiler yalnızca G2'nin
   ürettiği HTML iskeletinin ihtiyaç duyduğu, dosyada karşılığı olmayan
   sınıflardır (API_SOZLESMESI "Dosya sahipliği" notu uyarınca dosya sonuna
   açık başlıkla eklendi). Hiçbir mevcut kural değiştirilmemiştir.
   Renkler yalnız var(--…) token'ları ile verilmiştir.
   ========================================================================== */

/* --- G2.1 Mobil menü satırı (link + akordeon düğmesi yan yana) ------------ */
.st-drawer__row { display: flex; align-items: center; gap: var(--sp-2); }
.st-drawer__row .st-drawer__link { flex: 1 1 auto; }

/* --- G2.2 "Neden Biz" iki sütunlu yerleşim (≥1025'te görsel sticky) ------- */
.why-layout { display: grid; gap: var(--gap-grid); }
@media (min-width: 1025px) {
  .why-layout { grid-template-columns: 1.25fr 1fr; gap: clamp(2rem, 1.4rem + 3vw, 4rem); align-items: start; }
  .why-layout__aside { position: sticky; top: calc(var(--header-h-shrunk) + var(--sp-8)); }
}

/* --- G2.3 Hakkımızda "Ne Yapıyoruz?" görsel sütunu ------------------------ */
.about-what__media { display: grid; gap: var(--gap-grid); align-content: start; }
.about-what__grid { align-items: start; }

/* --- G2.4 "Neden Bize Güvenmelisiniz?" kapanış vurgusu -------------------- */
.trust__punch {
  font-family: var(--font-display);
  font-size: var(--fs-2xl);
  font-weight: 700;
  line-height: var(--lh-heading);
  letter-spacing: var(--ls-head);
  color: var(--text-strong);
  max-width: 24ch;
}
.trust__body + .trust__body { margin-top: var(--sp-5); }

/* --- G2.5 Görseli olmayan kart (TASARIM_SISTEMI §9.1 "Görsel yok") -------- */
.card__media-fallback {
  display: grid;
  place-items: center;
  aspect-ratio: inherit;
  min-height: 160px;
  background: var(--c-sand-200);
  color: var(--c-gray-500);
}
.card__media-fallback svg { width: 32px; height: 32px; }

/* --- G2.6 Ürün ızgarası: ≤640 yatay snap şerit · 641+ ızgara -------------- */
/*     Tek DOM, üç davranış (plan §5.1/3 + TASARIM_SISTEMI Geliştirici notu 8) */
@media (min-width: 641px) {
  .rail__track--products {
    grid-auto-flow: row;
    grid-template-columns: repeat(2, 1fr);
    grid-auto-columns: auto;
    overflow-x: visible;
    scroll-snap-type: none;
    padding-bottom: 0;
  }
  .rail--grid::after { display: none; }
}
@media (min-width: 1025px) {
  .rail__track--products { grid-template-columns: repeat(4, 1fr); }
}

/* --- G2.8 Ana sayfa tanıtım bloğu ---------------------------------------- */
.st-intro__grid { align-items: center; }

/* --- G2.9 İletişim sayfası yan paneli ------------------------------------ */
.contact-aside .benefits { grid-template-columns: 1fr; }
.contact-aside .benefits__item { padding: var(--sp-4); font-size: var(--fs-sm); }

/* --- G2.10 Hero altı iki kol şeridi: başlık h2 olarak basılıyor ----------- */
.st-hero-split__item h2 { font-size: var(--fs-md); margin-bottom: 2px; }
.st-hero-split__item > span { display: block; }

/* --- G2.11 Zig-zag satırındaki hizmet ikonu ------------------------------ */
.zigzag__body .icon-box { margin-bottom: var(--sp-2); }

/* --- G2.12 Bölüm başlığı: buton sağ sütunda alta hizalanır ---------------- */
@media (min-width: 641px) {
  .section-head--split > :last-child { justify-self: end; }
}

/* --- G2.13 CSS boyutu tanımlı olmayan inline SVG'ler ---------------------- */
.quote-card__tel svg { flex: none; width: 18px; height: 18px; color: var(--c-orange-600); }
.alert__icon svg     { width: 100%; height: 100%; }
.packaging__note svg { width: 18px; height: 18px; }

/* --- G2.14 Harita yer tutucusu: içerik dikeyde ortada toplansın ---------- */
.map-shell__placeholder { align-content: center; padding: var(--sp-8); }

/* --- G2.15 Koyu zeminde başlık rengi (KONTRAST DÜZELTMESİ) --------------- *
   style.css §04'te yalnız `.section--dark h1..h4` tanımlı. G2 koyu bölümleri
   `.on-dark` ile işaretliyor (.towers, .st-stats, .st-cta, .st-banner);
   bu seçici olmadan h2 `--text-strong` (#1C1E20) kalıyor ve ink-900 üstünde
   OKUNMUYOR. Aşağıdaki kural yalnızca eksik seçiciyi tamamlar.               */
.on-dark h1, .on-dark h2, .on-dark h3, .on-dark h4,
.on-dark .h1, .on-dark .h2, .on-dark .h3, .on-dark .h4 { color: var(--text-on-dark); }
.on-dark .section-head__desc { color: var(--text-on-dark-muted); }

/* --- G2.16 Okuma sütununda lead paragraf (.prose p daha spesifik) -------- */
.prose p.lead     { font-size: var(--fs-md); }
.prose p.lead--xl { font-size: var(--fs-lg); color: var(--text-strong); }

/* --- G2.17 JS kapalıyken Yedi Kule zaten "yanık" görünür ----------------- */
html:not(.js) .tower__bar::after { background: var(--c-orange-500); }
html:not(.js) .tower__label { color: var(--text-on-dark); }

/* ============================================================================
   G3 — DÜZELTME TURU (Full Stack Geliştirici, 2026-09-03)
   Test Uzmanı'nın HATA_RAPORU.md bulguları için eklenen kurallar.
   Tasarımcı'nın token'ları ve yukarıdaki hiçbir kural DEĞİŞTİRİLMEDİ;
   burada yalnızca eksik/yetersiz olan noktalar tamamlanıyor.
   ============================================================================ */

/* --- G3.1 · O6 — Mobilde hero CTA'sı sabit alt çubuğun altında kalıyordu ----
   Ölçüm (390×820, scrollY=0, iframe tekniği):
     mobile-bar top = 756   ·   CTA0 "Ürünlerimizi İnceleyin" = 762–818
   Yani birincil eylem çağrısı ilk ekranda TAMAMEN çubuğun arkasındaydı ve
   elementFromPoint testi düğme yerine .mobile-bar__btn döndürüyordu.

   Kök neden: TASARIM_SISTEMI.md satır 239 "hero alt başlığı mobilde 8 satır,
   hero yüksekliği 92svh ile taşmıyor" varsayımı tutmuyor — hero içeriği 390px'te
   938px'e çıkıyor, yani 92vh'yi (754px) aşıp CTA'yı katlamanın altına itiyor.

   Çözüm: yalnızca <=640px'te hero'nun DİKEY ritmi sıkıştırılır. Token'lar
   ezilmez; mevcut ölçek içinde bir kademe küçük değerler kullanılır.
   Masaüstü/tablet görünümü hiç etkilenmez.                                    */
@media (max-width: 640px) {
  .st-hero {
    padding-top: calc(var(--header-h) + var(--sp-2));
    /* Hero, `align-items: flex-end` ile içeriği ALTA yaslıyor; mobilde o altı
       .mobile-bar (64px, position:fixed) örtüyor. Alt boşluk çubuk yüksekliği
       kadar bırakılır ki hero içeriği çubuğun arkasına hiç girmesin. */
    padding-bottom: calc(var(--mobilebar-h) + var(--sp-4) + env(safe-area-inset-bottom, 0px));
  }
  .st-hero__eyebrow { margin-bottom: var(--sp-2); }
  /* 5 satırlık slogan -> 4 satır; ölçek dışına çıkılmadı (--fs-5xl -> --fs-4xl) */
  .st-hero__title { font-size: var(--fs-4xl); }
  .st-hero__sub {
    margin-top: var(--sp-3);
    font-size: var(--fs-base);
    line-height: var(--lh-body);
  }
  .st-hero__actions { margin-top: var(--sp-5); gap: var(--sp-3); }
}

/* --- G3.2 · D1 — Ambalaj kartı başlığı h4 -> h3 -------------------------------
   `.packaging` bloğu bir <h2>'nin hemen altında duruyor; <h4> kullanmak başlık
   hiyerarşisinde h2 → h4 atlaması yaratıyordu (urunler.php ve 7 ürün detayı).
   Etiket <h3>'e çekildi; §22'deki `.packaging__item h4` kuralı KORUNDU, yalnızca
   aynı görünüm h3 için de tanımlanıyor. Görsel çıktı birebir aynıdır.          */
.packaging__item h3 { font-size: var(--fs-base); }

/* --- G3.3 · D2 — Koşullu "Ürün" alanı: neden CSS kuralı EKLENMEDİ ------------
   İlk denemede kapalı durum `.js` sınıfına bağlanmıştı
   (`html:not(.js) .field--conditional { grid-template-rows:1fr; opacity:1 }`).
   ÖLÇÜM SONUCU GERİ ALINDI: `.js` sınıfını main.js ekliyor ve main.js <body>
   sonunda yükleniyor; kural ilk boyamada eşleşip alanı AÇIK gösteriyor, sonra
   sınıf gelince `transition` üzerinden gözle görülür biçimde kapanıyordu
   (ölçüm: sayfa açılışında opacity 1 -> 0.38 -> 0). Yani düzeltme yeni bir
   görsel kusur üretiyordu.
   Nihai çözüm CSS'te değil:
     - JS kapalı        -> iletisim.php'deki <noscript><style> bloğu alanı açar,
     - JS açık          -> main.js initForm()/sync() yönetir,
     - GSAP yüklenemedi -> main.js güvenlik ağı `.is-open` sınıfını ekler,
   ve `aria-hidden` üç durumda da sunucudan HİÇ basılmaz.                       */

/* --- G3.4 · D3 — Header telefon ikonu: 2.99:1 -> 5.74:1 ----------------------
   §08'deki `.st-header__tel svg { color: var(--c-orange-500) }` kuralı, header'ın
   AÇIK zeminli iki durumunda (`--solid` ve scroll'da `.is-stuck` cam efekti)
   #DE701B / #F7F5F0 = 2.99:1 veriyordu — WCAG 1.4.11'in metin dışı bileşenler
   için istediği 3:1'in hemen altı. Tasarımcının kendi kuralı (dosya sonundaki
   "TURUNCU KULLANIM KURALI"): turuncu bir YÜZEYDİR, mürekkep değildir; turuncu
   mürekkep gerektiğinde --text-accent (#9A4A0F, 5.74:1) kullanılır.
   KOYU hero üstündeki şeffaf durum DEĞİŞTİRİLMEDİ: orada #DE701B / #16181A
   zaten 5.46:1 ve tasarımın istediği görünüm o.                                */
.st-header--solid .st-header__tel svg,
.st-header.is-stuck .st-header__tel svg { color: var(--text-accent); }

/* --------------------------------------------------------------------------
   KOORDİNATÖR DÜZELTMESİ (2026-09-03) — Harita bloğu dar ekranda taşıyordu.

   Ölçüm: iletisim.php · 390px viewport → .map-shell genişliği 533px,
   kapsayıcı 379px (360px'te 204px, 390px'te 175px, 430px'te 136px taşma).

   Sebep: .map-shell'de `aspect-ratio: 16/9` ile `min-height: 300px` çakışıyor.
   Dar ekranda orandan gelen yükseklik (379 × 9/16 ≈ 213px) min-height ile
   300px'e yükseltiliyor; genişlik açıkça verilmediği için tarayıcı onu da
   orandan türetiyor: 300 × 16/9 = 533px. `body { overflow-x: hidden }` bunu
   gizliyordu ama içerik gerçekten KIRPILIYORDU — "Google Haritalar'da aç"
   butonu sağdan kesik görünüyordu.

   Çözüm: genişliği açıkça sabitle. Böylece aspect-ratio yalnızca yüksekliği
   belirler, min-height de onu yükseltir; genişlik hiçbir zaman türetilmez.
   Tasarımcının 16/9 oranı ve 300px alt sınırı korunuyor.
   -------------------------------------------------------------------------- */
.map-shell { width: 100%; max-width: 100%; }

/* Savunma amaçlı: yer tutucu içeriği hiçbir koşulda kapsayıcıyı zorlamasın. */
.map-shell__placeholder { grid-template-columns: minmax(0, 1fr); justify-items: center; }
.map-shell__placeholder > * { max-width: 100%; min-width: 0; }
.map-shell__placeholder > span { overflow-wrap: anywhere; }
.map-shell__placeholder .btn { white-space: normal; text-align: center; }

/* --------------------------------------------------------------------------
   KOORDİNATÖR DÜZELTMESİ (2026-09-03) — Zigzag bölümü tablet genişliğinde
   sayfayı yatay kaydırılabilir yapıyordu.

   Ölçüm: hizmetler.php · 768/834/1024px → `window.scrollTo(500,0)` sonrası
   `scrollX = 26 / 25 / 21`. Yani kullanıcı gerçekten yana kaydırabiliyordu;
   `body { overflow-x: hidden }` bunu engellemiyor çünkü taşma html seviyesinde.

   Sebep: GSAP, .zigzag__body'ye yatay giriş animasyonu için
   `transform: matrix(1,0,0,1,36,0)` (36px sağa öteleme) uyguluyor ve bu,
   sahne tetiklenene kadar dinlenme durumu olarak kalıyor. Dar kapsayıcıda
   36px'lik öteleme ızgarayı kapsayıcının dışına taşırıyor.
   Kanıt: `* { transform: none }` uygulandığında taşma 25px → 0 oluyor ve
   .zigzag__body doğru yerine oturuyor (l=432, r=794, kapsayıcı 823).

   Çözüm: bölümü yatayda kırp. `clip` seçildi, `hidden` değil — `clip` yeni bir
   kaydırma bağlamı oluşturmaz, böylece ScrollTrigger'ın pin/sticky davranışı
   ve dikey kaydırma etkilenmez. Animasyonun kendisine dokunulmadı; sahne
   tetiklendiğinde öğe x:0'a gelip zaten görünür alana oturuyor.
   -------------------------------------------------------------------------- */
.zigzag { overflow-x: clip; }

/* --------------------------------------------------------------------------
   KOORDİNATÖR DÜZELTMESİ (2026-09-03) — Sistem imleci gizlenmiyordu.

   Özel imleç (§10) çizilirken Windows'un kendi oku da görünmeye devam ediyordu;
   ekranda iki imleç oluyordu. `cursor: none` hiçbir yerde tanımlı değildi.

   Kapsam: yalnızca özel imlecin zaten aktif olduğu koşullarda —
   `html.has-cursor` sınıfı JS tarafından SADECE pointer:fine + hover:hover
   cihazlarda ve `prefers-reduced-motion` kapalıyken ekleniyor. Dokunmatik
   cihazlarda ve reduced-motion'da sistem imleci olduğu gibi kalır.

   Form alanları bilinçli istisna: metin seçme ve imleç konumlandırma
   kullanılabilir kalmalı. Oralarda sistem imleci geri gelir ve JS'in eklediği
   `cursor-field` sınıfıyla özel imleç gizlenir — böylece çift imleç olmaz.
   -------------------------------------------------------------------------- */
@media (pointer: fine) and (hover: hover) {
  html.has-cursor,
  html.has-cursor * { cursor: none; }

  /* Metin girişi yapılan alanlarda sistem imleci geri gelsin */
  html.has-cursor input,
  html.has-cursor textarea,
  html.has-cursor select,
  html.has-cursor [contenteditable="true"] { cursor: auto; }

  html.has-cursor input[type="checkbox"],
  html.has-cursor input[type="radio"],
  html.has-cursor input[type="submit"],
  html.has-cursor input[type="button"],
  html.has-cursor select { cursor: pointer; }

  /* Form alanı üzerindeyken özel imleci gizle (çift imleç olmasın) */
  html.has-cursor.cursor-field .st-cursor,
  html.has-cursor.cursor-field .st-cursor-dot { opacity: 0; }
}

/* --------------------------------------------------------------------------
   MOBİL MENÜ — kapatma tuşu ve üst başlık (2026-09-03, kullanıcı talebi)
   Menü daha önce yalnızca hamburger'e tekrar basılarak veya ESC ile
   kapanabiliyordu; panelin içinde görünür bir çıkış yoktu.
   -------------------------------------------------------------------------- */
.st-drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  padding: var(--sp-5) var(--sp-6);
  border-bottom: 1px solid rgba(255, 255, 255, .12);
}
.st-drawer__brand { display: inline-flex; align-items: center; }
.st-drawer__logo { width: auto; height: 30px; }
.st-drawer__close {
  flex: none;
  display: inline-grid;
  place-items: center;
  width: 44px; height: 44px;           /* dokunma hedefi >= 44px */
  border-radius: 50%;
  color: #fff;
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .16);
  transition: background-color var(--t) var(--e-out), transform var(--t) var(--e-out);
}
.st-drawer__close svg { width: 22px; height: 22px; }
.st-drawer__close:hover { background: var(--c-orange-500); border-color: transparent; }
.st-drawer__close:active { transform: scale(.94); }
.st-drawer__close:focus-visible {
  outline: 2px solid var(--c-orange-500);
  outline-offset: 3px;
}

/* --------------------------------------------------------------------------
   ÜRÜN KARUSELİ (2026-09-03, kullanıcı talebi) — ana sayfa
   Önceki 4 sütunlu ızgaranın yerine sonsuz (döngüsel) karusel.

   Sütun sayısının TEK KAYNAĞI burasıdır: `--pcar-per`. JS bu değeri
   getComputedStyle ile okur, kendi kırılım noktası tanımı tutmaz — böylece
   CSS ile JS'in birbirinden ayrışması mümkün değil.
   -------------------------------------------------------------------------- */
.pcar {
  --pcar-per: 1;                 /* mobil */
  --pcar-gap: var(--gap-grid);
  position: relative;
}
@media (min-width: 641px)  { .pcar { --pcar-per: 2; } }   /* tablet */
@media (min-width: 1025px) { .pcar { --pcar-per: 3; } }   /* masaüstü: 3 sütun */

.pcar__viewport { overflow: hidden; }

.pcar__track {
  display: flex;
  gap: var(--pcar-gap);
  will-change: transform;
}
/* Kart genişliği sütun sayısından türetilir; boşluklar hesaba katılır. */
.pcar__track > * {
  flex: 0 0 calc((100% - (var(--pcar-per) - 1) * var(--pcar-gap)) / var(--pcar-per));
  max-width: calc((100% - (var(--pcar-per) - 1) * var(--pcar-gap)) / var(--pcar-per));
}
/* Kaydırma sırasında kart içi bağlantılar tıklanmasın (sürükleme kazası). */
.pcar.is-sliding .pcar__track { pointer-events: none; }

/* --- Denetimler ---------------------------------------------------------- */
.pcar__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-4);
  margin-top: var(--sp-6);
}
.pcar__btn {
  display: inline-grid;
  place-items: center;
  width: 48px; height: 48px;         /* dokunma hedefi >= 44px */
  border-radius: 50%;
  color: var(--text-strong);
  background: var(--bg-surface);
  border: 1px solid var(--border-hair);
  transition: background-color var(--t) var(--e-out), color var(--t) var(--e-out),
              border-color var(--t) var(--e-out), transform var(--t) var(--e-out);
}
.pcar__btn svg { width: 20px; height: 20px; }
.pcar__btn:hover { background: var(--c-orange-500); border-color: transparent; color: var(--c-ink-900, #16181A); }
.pcar__btn:active { transform: scale(.94); }
.pcar__btn:focus-visible { outline: 2px solid var(--text-accent); outline-offset: 3px; }

.pcar__status {
  min-width: 4.5rem;
  text-align: center;
  color: var(--text-muted);
  font-size: var(--fs-sm);
  font-variant-numeric: tabular-nums;
}
.pcar__cur { color: var(--text-strong); font-weight: 600; }
.pcar__sep { margin: 0 .35em; opacity: .5; }

/* --- JS kapalı: kullanılabilir yedek ------------------------------------- */
/* Karusel JS gerektirir. JS yokken şerit yatay kaydırılabilir olur ki
   7 ürünün tamamına erişilebilsin; denetimler gizlenir. */
html:not(.js) .pcar__viewport {
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}
html:not(.js) .pcar__track > * { scroll-snap-align: start; }
html:not(.js) .pcar__nav { display: none; }

/* Karusel hareketi: GSAP degil CSS gecisi — gsap.ticker (rAF) kisitlansa bile
   calisir ve transitionend guvenilir bir tamamlanma kancasi verir. */
.pcar__track { transition: transform .55s cubic-bezier(.65, 0, .35, 1); }
.pcar__track.is-instant { transition: none; }
@media (prefers-reduced-motion: reduce) {
  .pcar__track { transition: none; }
}

/* --------------------------------------------------------------------------
   İLETİŞİM BİLGİ KARTLARI (2026-09-03, kullanıcı talebi)
   Firma ünvanı + adres üstte yan yana, telefon/e-posta/çalışma saatleri altta.

   Önce iki ayrı ızgara (2 sütun + 3 sütun) kullanılmıştı; kolon kenarları
   hiçbir noktada hizalanmadığı için satırlar kayık görünüyordu. Artık tek bir
   3 sütunluk ızgara var: firma ünvanı 2 sütun kaplıyor, adres 1 sütun —
   böylece alttaki üç kartla aynı ritme oturuyorlar.
   -------------------------------------------------------------------------- */
.contact-info__grid { align-items: stretch; }
@media (min-width: 641px) {
  /* .grid-3 bu aralıkta 2 sütun: geniş kart tam satırı kaplar */
  .contact-info__grid .info-card--wide { grid-column: span 2; }
}
@media (min-width: 1025px) {
  /* 3 sütun: geniş kart 2 sütun, adres 1 sütun */
  .contact-info__grid .info-card--wide { grid-column: span 2; }
}

/* --------------------------------------------------------------------------
   FOOTER — yapımcı imzası (2026-09-03, kullanıcı talebi)
   Silivri Web logosu inline SVG olarak basılır; `fill: currentColor` sayesinde
   ayrı bir dosya gerekmeden footer'ın koyu zeminine uyum sağlar ve renk yalnızca
   tek yerden (aşağıdaki `color`) yönetilir.
   -------------------------------------------------------------------------- */
.st-credit {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-3);
  color: rgba(255, 255, 255, .42);
  transition: color var(--t) var(--e-out), opacity var(--t) var(--e-out);
}
/* Hover rengi footer'in genel kuralindan gelir (.st-footer__bottom a:hover -> turuncu);
   burada yalnizca odak gorunurlugu tanimlanir ki olu kural kalmasin. */
.st-credit:focus-visible { color: var(--c-orange-400); }
.st-credit:focus-visible { outline: 2px solid var(--c-orange-500); outline-offset: 4px; border-radius: 4px; }
.st-credit__text {
  font-size: var(--fs-xs);
  letter-spacing: .03em;
  text-transform: uppercase;
  white-space: nowrap;
}
.st-credit__logo { width: 44px; height: auto; fill: currentColor; flex: none; }

/* Dar ekranda telif metni ve imza alt alta, ortalanmış */
@media (max-width: 640px) {
  .st-footer__bottom { flex-direction: column; align-items: center; text-align: center; gap: var(--sp-4); }
}

/* --------------------------------------------------------------------------
   TURUNCU ZEMİNDE İKON RENGİ (2026-09-03, kullanıcı talebi)
   Turuncu rozet/daire içindeki koyu ikonlar hoş durmuyordu; beyaza çevrildi.

   Kontrast notu — Tasarımcı'nın "turuncu bir yüzeydir, mürekkep değildir"
   kuralı METİN için geçerliliğini koruyor: beyaz METİN #DE701B üzerinde
   3.26:1 kalıyor, WCAG'ın metin için istediği 4.5:1'i geçemiyor. Bu yüzden
   buton yazıları koyu bırakıldı. Ancak İKONLAR metin değil, grafiksel öğedir
   ve onlar için eşik 3:1'dir — 3.26:1 bu eşiği geçer. Dolayısıyla ayrı bir
   token tanımlandı; metin ve ikon renkleri artık birbirine karışmıyor.
   -------------------------------------------------------------------------- */
:root { --icon-on-accent: #FFFFFF; }

.icon-box--solid,
.card--service .card__icon,
.benefits__check,
.value-card:hover .icon-box { color: var(--icon-on-accent); }

/* Karusel okları: hover'da turuncuya dönerken ok da beyaz olsun */
.pcar__btn:hover { color: var(--icon-on-accent); }

/* --------------------------------------------------------------------------
   İKİ SÜTUNLU BÖLÜMLERDE GÖRSEL YÜKSEKLİĞİ (2026-09-03, kullanıcı talebi)

   Sorun: bu bölümlerde metin sütunu ile görsel sütunu farklı yüksekliklerde
   bitiyordu; görsel sabit `aspect-ratio` ile boyutlanıp dikeyde ortalandığı
   için üstte ve altta boşluk kalıyordu. Ölçüm (1400px, masaüstü):

     Ana sayfa · tanıtım        metin 829px  ↔ görsel 353px   (~238px açık)
     Ana sayfa · Neden Biz      metin 1291px ↔ yan sütun 304px
     Hakkımızda · Ne Yapıyoruz  metin 761px  ↔ görsel sütunu 737px
     İletişim · form            form 955px   ↔ yan panel 838px
     Hizmetler · zigzag         metin 455px  ↔ görsel 345px

   Çözüm: ilgili ızgaralarda `align-items: stretch`, görsel sarmalayıcısına
   `height: 100%` ve `.media`da `aspect-ratio: auto`. Görsel zaten
   `object-fit: cover` olduğu için oran korunur, sadece kırpma noktası değişir.
   Yalnızca >=1025px'te uygulanır: tek sütuna düşen mobilde oran korunmalı.
   -------------------------------------------------------------------------- */
@media (min-width: 1025px) {

  /* Ortak: bu bağlamlarda görsel kutusu sütunu doldurur */
  .st-intro__grid .media,
  .why-layout__aside .media,
  .about-what__media .media,
  .contact-aside .media,
  .zigzag__media .media {
    aspect-ratio: auto;
    height: 100%;
    min-height: 260px;
  }

  /* 1 — Ana sayfa tanıtım */
  .st-intro__grid { align-items: stretch; }
  .st-intro__grid > * { min-height: 0; }
  .st-intro__media { height: 100%; }

  /* 2 — Ana sayfa "Neden Seven Towers?"
        Yan sütun sticky idi; kullanıcı görselin bölümü doldurmasını istedi. */
  .why-layout { align-items: stretch; }
  .why-layout__aside { position: static; display: flex; flex-direction: column; }
  .why-layout__aside > figure { flex: 1; }

  /* 3 — Hakkımızda "Ne Yapıyoruz?": iki görsel sütunu eşit bölüşür */
  .about-what__grid { align-items: stretch; }
  .about-what__media {
    height: 100%;
    align-content: stretch;
    grid-auto-rows: 1fr;
  }

  /* 4 — İletişim: yan panel formun bitimine kadar iner, görsel kalanı doldurur */
  .contact-layout { align-items: stretch; }
  /* DUZELTME (2026-09-04): `margin-top: auto` .stack-6'nin verdigi araligi
     eziyor, "Neden Seven Towers" blogu ile altindaki gorsel bitisik kaliyordu.
     Araliği artik flex `gap` veriyor; figure kalan yuksekligi doldurmayi surduruyor. */
  .contact-aside { display: flex; flex-direction: column; gap: var(--sp-6); height: 100%; }
  .contact-aside > * + * { margin-top: 0; }
  .contact-aside > figure { flex: 1; }

  /* 5 — Hizmetler zigzag: görsel metinle aynı üst/alt çizgide biter */
  .zigzag__row { align-items: stretch; }
  .zigzag__media { display: flex; }
  .zigzag__media .media { width: 100%; }
}

/* --------------------------------------------------------------------------
   HAKKIMIZDA — "Neden Bize Güvenmelisiniz?" iki sütun (2026-09-03)
   Solda başlık + gövde, sağda kapanış sloganı. Slogan turuncu bir çizgiyle
   ayrılıp yapışkan durur; uzun gövde metni kaydırılırken görünürde kalır.
   -------------------------------------------------------------------------- */
.trust__grid { display: grid; gap: var(--gap-grid); }
.trust__aside { margin-top: var(--sp-6); }
.trust__punch { margin: 0; }

@media (min-width: 1025px) {
  .trust__grid {
    grid-template-columns: 1.35fr 1fr;
    gap: clamp(2.5rem, 1.5rem + 4vw, 5rem);
    align-items: start;
  }
  .trust__aside {
    margin-top: 0;
    padding-left: clamp(1.5rem, 1rem + 2vw, 2.5rem);
    border-left: 3px solid var(--c-orange-500);
    position: sticky;
    top: calc(var(--header-h-shrunk) + var(--sp-8));
  }
}

/* --------------------------------------------------------------------------
   ÜRÜNLER — "Ambalaj ve Belgelendirme" (2026-09-03, kullanıcı talebi)
   Bölüm tek satırlık düz bir şerit gibi kalıyordu ("çok sığ"). Her seçenek
   artık kendi kartında: köşede sıra numarası, dolu turuncu ikon rozeti,
   hover'da yükselen kart ve üstte büyüyen turuncu şerit.

   NOT: .packaging__item ögelerine .reveal EKLENMEZ — main.js bunları
   gsap.from() ile canlandırıyor, ikisi birlikte kalıcı görünmezliğe yol açar.
   -------------------------------------------------------------------------- */
.packaging { padding: 0; background: none; border: 0; gap: var(--gap-grid); }

.packaging__item {
  position: relative;
  display: block;
  padding: var(--sp-7) var(--sp-6) var(--sp-6);
  background: var(--bg-surface);
  border: 1px solid var(--border-hair);
  border-radius: var(--r-md);
  overflow: hidden;
  transition: box-shadow var(--t-slow) var(--e-out),
              border-color var(--t) var(--e-out);
}
/* Üstte hover'da soldan sağa büyüyen turuncu şerit */
.packaging__item::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: var(--c-orange-500);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--t-slow) var(--e-out);
}
.packaging__item:hover { transform: translateY(-4px); box-shadow: var(--sh-3); border-color: var(--border-soft); }
.packaging__item:hover::before { transform: scaleX(1); }

.packaging__no {
  position: absolute;
  top: var(--sp-5); right: var(--sp-6);
  font-family: var(--font-display);
  font-size: var(--fs-2xl);
  font-weight: 800;
  line-height: 1;
  color: var(--c-sand-300);
  pointer-events: none;
  user-select: none;
}
.packaging__item .icon-box { margin-bottom: var(--sp-5); }
.packaging__item h3 { font-size: var(--fs-lg); letter-spacing: var(--ls-tight); margin-bottom: var(--sp-2); }
.packaging__item p  { font-size: var(--fs-sm); color: var(--text-muted); line-height: var(--lh-body); }

/* MSDS / COA notu: kartların altında kendi şeridinde */
.packaging__note {
  /* DUZELTME (2026-09-04): .packaging zaten `gap` veriyor; ayrica margin-top
     eklenince aralik iki katina cikiyordu. Aralik tek kaynaktan (gap) gelsin. */
  margin-top: 0;
  padding: var(--sp-5) var(--sp-6);
  border: 1px solid var(--border-hair);
  border-top: 1px solid var(--border-hair);
  border-radius: var(--r-md);
  background: var(--c-orange-50);
  align-items: center;
}

/* Menü açılır listelerinde başlık başı ikonu (2026-09-07, kullanıcı talebi).
   Hizmetler kendi ikonunu, ürünler varil ikonunu kullanır. */
.st-dropdown__link { justify-content: flex-start; gap: var(--sp-3); }
.st-dropdown__link > span { flex: 1 1 auto; min-width: 0; }
.st-dropdown__ico {
  flex: none; width: 19px; height: 19px;
  color: var(--c-orange-500);
  transition: color var(--t-fast) var(--e-out);
}
.st-dropdown__ok { flex: none; width: 15px; height: 15px; margin-left: var(--sp-2); }
/* Mobil çekmecedeki alt liste de aynı ikonu taşır */
.st-drawer__sub a { display: flex; align-items: center; gap: var(--sp-3); }
.st-drawer__ico { flex: none; width: 18px; height: 18px; color: var(--c-orange-500); }
/* Açılır panelin <ul>'u sınıfsız olduğu için 271. satırdaki reset ona uğramıyordu:
   tarayıcı varsayılanı madde imi + 40px girinti sızıyordu (2026-09-07). */
.st-dropdown ul { list-style: none; margin: 0; padding: 0; }
/* Panel icerige gore genisler (uzun hizmet adi 2 satira kirilmasin — 2026-09-07,
   kullanici talebi). Yazi boyutu DEGISMEDI; ust sinir ekran disina tasmayi onler. */
.st-dropdown { min-width: 320px; width: max-content; max-width: min(520px, calc(100vw - 2 * var(--gutter, 24px))); }
.st-dropdown__link > span { white-space: nowrap; }

/* Arka planı aynı olan iki bölüm arka arkaya gelince alt+üst dolgu toplanıp
   çift boşluk oluşturuyordu (ana sayfada Ürünler → Hizmetler arası 229px).
   Aynı renkte ardışık bölümlerde dikiş yeri tek bir bölüm boşluğuna iner. */
.section--band + .section--band,
.section--surface + .section--surface,
.section--dark + .section--dark { padding-top: 0; }

/* Özel imleç yalnızca gerçek masaüstünde (2026-09-07, kullanıcı talebi).
   Dokunmatik cihazlarda ve dar ekranda sistem imleci geri döner; imlecin
   köşede donup kalması böylece mümkün olmuyor. */
@media (any-pointer: coarse), (max-width: 1024px) {
  .st-cursor, .st-cursor-dot { display: none !important; }
  html.has-cursor, html.has-cursor * { cursor: auto; }
  html.has-cursor a, html.has-cursor button,
  html.has-cursor [role="button"], html.has-cursor label { cursor: pointer; }
}

/* ==========================================================================
   MENÜ VE CTA — BÜYÜK HARF (2026-09-07, kullanıcı talebi)
   Türkçe i → İ dönüşümü doğru olsun diye <html lang="tr"> şart; mevcut.
   Büyük harf okunurluğu düşürdüğü için harf aralığı hafif açılır ve
   masaüstü menüsünde `--ls-tight` (negatif) etkisi kaldırılır.
   ========================================================================== */
.st-nav__link,
.st-header__cta,
.st-drawer__link,
.st-drawer__foot .btn {
  text-transform: uppercase;
}
.st-nav__link   { letter-spacing: 0.045em; font-weight: 600; }
.st-header__cta { letter-spacing: 0.05em; }
/* Çekmecede başlıklar zaten iri; aralık daha ölçülü, tight sıfırlanır */
.st-drawer__link      { letter-spacing: 0.02em; }
.st-drawer__foot .btn { letter-spacing: 0.05em; }
/* Büyük harf menüyü genişletti; dar masaüstünde (1025–1319px) telefon numarası
   zaten sığmıyor ve CTA ekran dışına taşıyordu (bu taşma büyük harften ÖNCE de
   40px vardı, sonra 163px'e çıktı — ölçüldü). Menü satır kırmaz, aralıklar
   daralır, telefon yalnızca ≥1320px'te görünür. */
.st-nav__link { white-space: nowrap; }
@media (min-width: 1025px) and (max-width: 1319px) {
  .st-header__tel { display: none !important; }
  .st-nav__link { padding-inline: var(--sp-2); letter-spacing: 0.03em; }
  .st-nav__link::after { left: var(--sp-2); right: var(--sp-2); }
}

/* Mobil logo biraz küçüktü; header yüksekliği (84px) değişmeden büyütüldü —
   2026-09-07. ≥641px'te masaüstü değerleri (48/38px) geçerli kalır. */
@media (max-width: 640px) {
  .st-logo img, .st-logo svg { height: 56px; }
  .is-stuck .st-logo img, .is-stuck .st-logo svg { height: 44px; }
}

/* BÜYÜK HARF CTA — optik dikey merkez (2026-09-07, kullanıcı talebi).
   Büyük harflerde alt uzantı (g, y, ş) olmadığı için metin kutusu içinde
   yukarıda durur ve altta daha çok boşluk varmış gibi görünür. Satır kutusunu
   sıkıp içeriği flex ile merkezleyerek üst/alt boşluk eşitlenir. */
.btn { line-height: 1.15; }
/* Fark olculdu: buyuk harfte alt bosluk 6.1px fazlaydi. Ust/alt dolgu arasina
   0.28em fark konarak metin optik merkeze indirilir (toplam yukseklik ayni). */
.st-nav__link,
.st-header__cta,
.st-drawer__foot .btn { padding-block: calc(var(--btn-pb, 0.875rem) + 0.14em) calc(var(--btn-pb, 0.875rem) - 0.14em); }
.st-header__cta { --btn-pb: 0.6875rem; }
.st-nav__link  { --btn-pb: var(--sp-3); }

/* Yedi Kule etiketleri her iki kırılımda da büyük harf (2026-09-07). */
.tower__label { text-transform: uppercase; }

/* GSAP from() ile giren kartlarda `transition: transform` YASAK (denetim F2,
   2026-09-08): CSS gecisi GSAP'in bitis degerini okudugu anda transform'u
   ara degerde tutuyor, kartlar kalici olarak 20-40px kaymis oturuyordu
   (misyon/vizyon, degerler, iletisim bilgi kartlari, ambalaj kartlari).
   Hover kaldirma yumusakligi giris animasyonu BITTIKTEN sonra (.anim-done)
   geri verilir. */
/* transform BILEREK YOK: geri konulunca GSAP'in yazdigi degeri gecise sokup
   karti yeniden kaydiriyordu (olculdu). Hover kalkmasi bu uc kartta gecissiz. */
.value-card.anim-done,
.info-card.anim-done,
.packaging__item.anim-done { transition: border-color var(--t) var(--e-out), box-shadow var(--t-slow) var(--e-out); }
