/* e-İDEAL — Temel katman: reset, tipografi, yardımcı sınıflar */

*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }

html { -webkit-text-size-adjust: 100%; }

body {
  font-family: var(--font);
  font-size: var(--fs-md);
  line-height: var(--lh);
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
  font-variant-numeric: tabular-nums;
}

img, svg, video, canvas { display: block; max-width: 100%; }
[hidden] { display: none !important; }
button, input, select, textarea { font: inherit; color: inherit; }
button { background: none; border: 0; cursor: pointer; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; padding: 0; }
table { border-collapse: collapse; width: 100%; }

h1, h2, h3, h4, h5 { font-weight: 700; line-height: var(--lh-tight); letter-spacing: -.015em; }
h1 { font-size: var(--fs-3xl); letter-spacing: -.03em; }
h2 { font-size: var(--fs-2xl); letter-spacing: -.025em; }
h3 { font-size: var(--fs-xl); letter-spacing: -.02em; }
h4 { font-size: var(--fs-lg); }
h5 { font-size: var(--fs-md); }

:focus-visible { outline: none; box-shadow: var(--ring); border-radius: var(--r-xs); }

::selection { background: var(--brand); color: #fff; }

/* Kaydırma çubuğu */
* { scrollbar-width: thin; scrollbar-color: var(--line-2) transparent; }
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb {
  background: var(--line-2); border-radius: 99px;
  border: 3px solid transparent; background-clip: content-box;
}
*::-webkit-scrollbar-thumb:hover { background: var(--line-strong); background-clip: content-box; }

/* --- Yardımcı sınıflar --- */
.row { display: flex; align-items: center; }
.row-t { display: flex; align-items: flex-start; }
.col { display: flex; flex-direction: column; }
.between { justify-content: space-between; }
.center { justify-content: center; align-items: center; }
.wrap { flex-wrap: wrap; }
.grow { flex: 1 1 auto; min-width: 0; }
.g1{gap:var(--s1)} .g2{gap:var(--s2)} .g3{gap:var(--s3)}
.g4{gap:var(--s4)} .g5{gap:var(--s5)} .g6{gap:var(--s6)}

.mt1{margin-top:var(--s1)} .mt2{margin-top:var(--s2)} .mt3{margin-top:var(--s3)}
.mt4{margin-top:var(--s4)} .mt5{margin-top:var(--s5)} .mt6{margin-top:var(--s6)}
.mt7{margin-top:var(--s7)} .mt8{margin-top:var(--s8)}
.mb1{margin-bottom:var(--s1)} .mb2{margin-bottom:var(--s2)} .mb3{margin-bottom:var(--s3)}
.mb4{margin-bottom:var(--s4)} .mb5{margin-bottom:var(--s5)} .mb6{margin-bottom:var(--s6)}
.mb7{margin-bottom:var(--s7)} .mb8{margin-bottom:var(--s8)}

.t-xxs{font-size:var(--fs-xxs)} .t-xs{font-size:var(--fs-xs)}
.t-sm{font-size:var(--fs-sm)}   .t-md{font-size:var(--fs-md)}
.t-lg{font-size:var(--fs-lg)}   .t-xl{font-size:var(--fs-xl)}
.t-2xl{font-size:var(--fs-2xl)} .t-3xl{font-size:var(--fs-3xl)}
.w5{font-weight:500} .w6{font-weight:600} .w7{font-weight:700} .w8{font-weight:800}
.muted{color:var(--text-2)} .dim{color:var(--text-3)}
.brand{color:var(--brand)} .ok{color:var(--success)}
.warn{color:var(--warning)} .bad{color:var(--danger)}
.up{text-transform:uppercase; letter-spacing:.08em}
.tnum{font-variant-numeric:tabular-nums}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nowrap{white-space:nowrap}
.hide{display:none !important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.scroll-x { overflow-x: auto; -webkit-overflow-scrolling: touch; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important; animation-iteration-count: 1 !important;
    transition-duration: .01ms !important; scroll-behavior: auto !important;
  }
}
