/* ============================================
   Şevval Emlak — Base Styles
   Typography, reset ve temel element stilleri.
   Token'ları kullanır, !important kullanmaz.
   ============================================ */

/* ── Minimal Reset ── */
*,
*::before,
*::after {
    box-sizing: border-box;
}

/* ── Typography ──
   GÜVENLI YAKLAŞIM: Heading/paragraf/link stilleri
   YALNIZCA açık opt-in sınıfları kullanıldığında uygulanır.
   .sv-page sarmalayıcısı tek başına mevcut stillere
   müdahale ETMEZ.
   ============================================ */

/* Opt-in heading sınıfları */
.sv-heading-1 {
    font-family: var(--sv-font-heading);
    font-size: var(--sv-text-4xl);
    font-weight: var(--sv-weight-bold);
    color: var(--sv-text);
    line-height: 1.2;
    margin: 0 0 var(--sv-space-lg) 0;
}

.sv-heading-2 {
    font-family: var(--sv-font-heading);
    font-size: var(--sv-text-3xl);
    font-weight: var(--sv-weight-bold);
    color: var(--sv-text);
    line-height: 1.3;
    margin: 0 0 var(--sv-space) 0;
}

.sv-heading-3 {
    font-family: var(--sv-font-heading);
    font-size: var(--sv-text-2xl);
    font-weight: var(--sv-weight-semi);
    color: var(--sv-text);
    line-height: 1.35;
    margin: 0 0 var(--sv-space-sm) 0;
}

.sv-heading-4 {
    font-family: var(--sv-font-heading);
    font-size: var(--sv-text-lg);
    font-weight: var(--sv-weight-semi);
    color: var(--sv-text);
    line-height: 1.4;
    margin: 0 0 var(--sv-space-sm) 0;
}

.sv-heading-5 {
    font-family: var(--sv-font);
    font-size: var(--sv-text-base);
    font-weight: var(--sv-weight-semi);
    color: var(--sv-text-secondary);
    line-height: 1.4;
    margin: 0 0 var(--sv-space-xs) 0;
}

.sv-heading-6 {
    font-family: var(--sv-font);
    font-size: var(--sv-text-sm);
    font-weight: var(--sv-weight-medium);
    color: var(--sv-text-secondary);
    line-height: 1.4;
    margin: 0 0 var(--sv-space-xs) 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* ── Yardımcı Metin Sınıfları ── */
.sv-text-center { text-align: center; }
.sv-text-left   { text-align: left; }
.sv-text-right  { text-align: right; }

.sv-text-muted     { color: var(--sv-text-muted); }
.sv-text-secondary { color: var(--sv-text-secondary); }
.sv-text-primary   { color: var(--sv-primary); }
.sv-text-white     { color: var(--sv-text-white); }
.sv-text-success   { color: var(--sv-success); }
.sv-text-danger    { color: var(--sv-danger); }

.sv-text-sm   { font-size: var(--sv-text-sm); }
.sv-text-lg   { font-size: var(--sv-text-lg); }
.sv-text-xl   { font-size: var(--sv-text-xl); }
.sv-text-bold { font-weight: var(--sv-weight-bold); }

/* ── Truncate (Taşan Metni Kes) ── */
.sv-truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sv-line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.sv-line-clamp-3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
