/* ================================================================================
Файл: typography.css
Описание: Типографика и текстовые стили
Версия: 2.0.0
================================================================================ */

/* ===== БАЗОВЫЙ ТЕКСТ ===== */
p {
  margin-bottom: var(--spacing-md);
  line-height: 1.6;
}

strong, b {
  font-weight: var(--font-weight-semibold);
}

em, i {
  font-style: italic;
}

small {
  font-size: var(--font-size-sm);
}

mark {
  background: var(--warning-color);
  color: var(--text-black);
  padding: 0.1rem 0.3rem;
  border-radius: var(--radius-sm);
}

/* ===== ССЫЛКИ ===== */
a {
  color: var(--primary-color);
  text-decoration: none;
  transition: color var(--transition-base);
}

a:hover {
  color: var(--primary-light);
  text-decoration: underline;
}

a.btn, a.button {
  text-decoration: none;
}

/* ===== СПИСКИ ===== */
ul, ol {
  padding-left: var(--spacing-lg);
  margin-bottom: var(--spacing-md);
}

ul {
  list-style-type: disc;
}

ol {
  list-style-type: decimal;
}

li {
  margin-bottom: var(--spacing-xs);
}

/* ===== ЦВЕТ ТЕКСТА ===== */
.text-primary { color: var(--primary-color); }
.text-secondary { color: var(--text-secondary); }
.text-muted { color: var(--text-muted); }
.text-success { color: var(--success-color); }
.text-danger { color: var(--danger-color); }
.text-warning { color: var(--warning-color); }
.text-info { color: var(--info-color); }
.text-white { color: var(--text-white); }
.text-black { color: var(--text-black); }

/* ===== РАЗМЕР ТЕКСТА ===== */
.text-xs { font-size: var(--font-size-xs); }
.text-sm { font-size: var(--font-size-sm); }
.text-base { font-size: var(--font-size-base); }
.text-lg { font-size: var(--font-size-lg); }
.text-xl { font-size: var(--font-size-xl); }
.text-2xl { font-size: var(--font-size-2xl); }
.text-3xl { font-size: var(--font-size-3xl); }
.text-4xl { font-size: var(--font-size-4xl); }

/* ===== ЖИРНОСТЬ ===== */
.fw-normal { font-weight: var(--font-weight-normal); }
.fw-medium { font-weight: var(--font-weight-medium); }
.fw-semibold { font-weight: var(--font-weight-semibold); }
.fw-bold { font-weight: var(--font-weight-bold); }

/* ===== ВЫРАВНИВАНИЕ ===== */
.text-left { text-align: left; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.text-justify { text-align: justify; }

/* ===== ТРАНСФОРМАЦИЯ ===== */
.text-uppercase { text-transform: uppercase; }
.text-lowercase { text-transform: lowercase; }
.text-capitalize { text-transform: capitalize; }

/* ===== СПЕЦИАЛЬНЫЕ СТИЛИ ===== */
.lead {
  font-size: var(--font-size-lg);
  color: var(--text-secondary);
  margin-bottom: var(--spacing-lg);
}

.display-1 {
  font-size: var(--font-size-4xl);
  font-weight: var(--font-weight-bold);
  line-height: 1.1;
}

.display-2 {
  font-size: var(--font-size-3xl);
  font-weight: var(--font-weight-bold);
  line-height: 1.2;
}

/* ===== ТРОЕТОЧИЕ ===== */
.text-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ===== PERMALINK ===== */
.text-underline { text-decoration: underline; }
.text-no-underline { text-decoration: none; }

/* ===== LINE HEIGHT ===== */
.leading-none { line-height: 1; }
.leading-tight { line-height: 1.25; }
.leading-normal { line-height: 1.5; }
.leading-relaxed { line-height: 1.75; }
.leading-loose { line-height: 2; }