/* ============================================
   WIBOC - Typography
   ============================================ */

h1, .h1 {
    font-size: var(--wiboc-font-size-3xl);
    color: var(--wiboc-primary);
    margin-bottom: var(--wiboc-spacing-xl);
    font-weight: var(--wiboc-weight-bold);
}

h2, .h2 {
    font-size: var(--wiboc-font-size-2xl);
    color: var(--wiboc-primary);
    margin-bottom: var(--wiboc-spacing-lg);
    font-weight: var(--wiboc-weight-bold);
}

h3, .h3 {
    font-size: var(--wiboc-font-size-xl);
    color: var(--wiboc-primary);
    margin-bottom: var(--wiboc-spacing-md);
    font-weight: var(--wiboc-weight-semibold);
}

h4, .h4 {
    font-size: var(--wiboc-font-size-lg);
    color: var(--wiboc-dark);
    margin-bottom: var(--wiboc-spacing-sm);
    font-weight: var(--wiboc-weight-semibold);
}

p {
    margin-bottom: var(--wiboc-spacing-sm);
    color: var(--wiboc-dark);
}

small {
    font-size: var(--wiboc-font-size-sm);
    color: var(--wiboc-gray-500);
}

.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }

.text-primary { color: var(--wiboc-primary); }
.text-accent { color: var(--wiboc-accent); }
.text-success { color: var(--wiboc-success); }
.text-danger { color: var(--wiboc-danger); }
.text-warning { color: var(--wiboc-warning); }
.text-info { color: var(--wiboc-info); }
.text-muted { color: var(--wiboc-gray-500); }
.text-white { color: var(--wiboc-white); }

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

.text-xs { font-size: var(--wiboc-font-size-xs); }
.text-sm { font-size: var(--wiboc-font-size-sm); }
.text-base { font-size: var(--wiboc-font-size-base); }
.text-lg { font-size: var(--wiboc-font-size-lg); }
.text-xl { font-size: var(--wiboc-font-size-xl); }
.text-2xl { font-size: var(--wiboc-font-size-2xl); }

.uppercase { text-transform: uppercase; }
.letter-spacing { letter-spacing: 0.5px; }