/* ============================================
   TYPOGRAPHY — Headings, Text, Links
   ============================================ */

/* === HEADINGS === */
h1,
.h1 {
    font-size: clamp(2.2rem, 5vw, 3.75rem);
    font-weight: var(--font-weight-black);
    line-height: var(--line-height-tight);
    letter-spacing: -0.025em;
    margin-bottom: var(--space-6);
}

h2,
.h2 {
    font-size: clamp(1.75rem, 4vw, 3rem);
    font-weight: var(--font-weight-extrabold);
    line-height: var(--line-height-tight);
    letter-spacing: -0.015em;
    margin-bottom: var(--space-5);
}

h3,
.h3 {
    font-size: clamp(1.375rem, 3vw, 2.25rem);
    font-weight: var(--font-weight-bold);
    line-height: 1.3;
    margin-bottom: var(--space-4);
}

h4,
.h4 {
    font-size: clamp(1.125rem, 2.5vw, 1.5rem);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-normal);
    margin-bottom: var(--space-3);
}

h5,
.h5 {
    font-size: clamp(1rem, 2vw, 1.25rem);
    font-weight: var(--font-weight-semibold);
    line-height: var(--line-height-normal);
    margin-bottom: var(--space-3);
}

/* === TEXT SIZES === */
.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);
}

/* === FONT WEIGHTS === */
.font-normal {
    font-weight: var(--font-weight-normal);
}

.font-medium {
    font-weight: var(--font-weight-medium);
}

.font-semibold {
    font-weight: var(--font-weight-semibold);
}

.font-bold {
    font-weight: var(--font-weight-bold);
}

.font-extrabold {
    font-weight: var(--font-weight-extrabold);
}

.font-black {
    font-weight: var(--font-weight-black);
}

/* === TEXT COLORS === */
.text-primary {
    color: var(--color-text-primary);
}

.text-secondary {
    color: var(--color-text-secondary);
}

.text-tertiary {
    color: var(--color-text-tertiary);
}

.text-white {
    color: var(--color-white);
}

.text-gold {
    color: var(--color-gold);
}

.text-accent {
    color: var(--color-gold);
}

.text-danger {
    color: var(--color-danger);
}

.text-success {
    color: var(--color-green);
}

/* === PARAGRAPH === */
.lead {
    font-size: clamp(1.05rem, 2vw, 1.2rem);
    line-height: var(--line-height-relaxed);
    color: var(--color-text-secondary);
    margin-bottom: var(--space-6);
}

p {
    margin-bottom: var(--space-4);
    line-height: var(--line-height-relaxed);
}

p:last-child {
    margin-bottom: 0;
}

/* === LINKS === */
.link {
    color: var(--color-gold);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.link:hover {
    color: var(--color-gold-dark);
    text-decoration: underline;
}

/* === TEXT MODIFIERS === */
.uppercase {
    text-transform: uppercase;
}

.capitalize {
    text-transform: capitalize;
}

.italic {
    font-style: italic;
}

.no-underline {
    text-decoration: none;
}

.tracking-tight {
    letter-spacing: -0.025em;
}

.tracking-normal {
    letter-spacing: 0;
}

.tracking-wide {
    letter-spacing: 0.04em;
}

.tracking-wider {
    letter-spacing: 0.08em;
}

.leading-tight {
    line-height: var(--line-height-tight);
}

.leading-normal {
    line-height: var(--line-height-normal);
}

.leading-relaxed {
    line-height: var(--line-height-relaxed);
}

.truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Highlight com tom dourado */
.highlight {
    background: rgba(212, 168, 67, 0.15);
    padding: 0 var(--space-1);
    border-radius: var(--radius-sm);
}