/**
 * Text Utilities
 */

/* Text Alignment */
.text-left { text-align: left !important; }
.text-center { text-align: center !important; }
.text-right { text-align: right !important; }
.text-justify { text-align: justify !important; }

/* Text Transform */
.text-lowercase { text-transform: lowercase !important; }
.text-uppercase { text-transform: uppercase !important; }
.text-capitalize { text-transform: capitalize !important; }
.text-normal-case { text-transform: none !important; }

/* Font Weight */
.font-light { font-weight: var(--font-weight-light) !important; }
.font-normal { font-weight: var(--font-weight-normal) !important; }
.font-medium { font-weight: var(--font-weight-medium) !important; }
.font-semibold { font-weight: var(--font-weight-semibold) !important; }
.font-bold { font-weight: var(--font-weight-bold) !important; }
.font-extrabold { font-weight: var(--font-weight-extrabold) !important; }

/* Font Size */
.text-xs { font-size: var(--font-size-xs) !important; }
.text-sm { font-size: var(--font-size-sm) !important; }
.text-base { font-size: var(--font-size-base) !important; }
.text-lg { font-size: var(--font-size-lg) !important; }
.text-xl { font-size: var(--font-size-xl) !important; }
.text-2xl { font-size: var(--font-size-2xl) !important; }
.text-3xl { font-size: var(--font-size-3xl) !important; }
.text-4xl { font-size: var(--font-size-4xl) !important; }

/* Line Height */
.leading-none { line-height: 1 !important; }
.leading-tight { line-height: 1.25 !important; }
.leading-snug { line-height: 1.375 !important; }
.leading-normal { line-height: 1.5 !important; }
.leading-relaxed { line-height: 1.625 !important; }
.leading-loose { line-height: 2 !important; }

/* Letter Spacing */
.tracking-tighter { letter-spacing: -0.05em !important; }
.tracking-tight { letter-spacing: -0.025em !important; }
.tracking-normal { letter-spacing: 0 !important; }
.tracking-wide { letter-spacing: 0.025em !important; }
.tracking-wider { letter-spacing: 0.05em !important; }
.tracking-widest { letter-spacing: 0.1em !important; }

/* Text Decoration */
.text-underline { text-decoration: underline !important; }
.text-line-through { text-decoration: line-through !important; }
.text-no-underline { text-decoration: none !important; }

/* Text Color (theme-aware) */
.text-primary { color: var(--theme-text-primary) !important; }
.text-secondary { color: var(--theme-text-secondary) !important; }
.text-muted { color: var(--theme-text-muted) !important; }
.text-inverse { color: var(--theme-text-inverse) !important; }

/* Text Color (semantic) */
.text-success { color: var(--theme-success) !important; }
.text-warning { color: var(--theme-warning) !important; }
.text-danger { color: var(--theme-danger) !important; }
.text-info { color: var(--theme-info) !important; }

/* Text Color (theme colors) */
.text-theme-primary { color: var(--theme-primary) !important; }
.text-theme-secondary { color: var(--theme-secondary) !important; }
.text-theme-accent { color: var(--theme-accent) !important; }

/* Text Color (theme color variants) */
.text-primary-light { color: var(--theme-primary-light) !important; }
.text-primary-dark { color: var(--theme-primary-dark) !important; }
.text-accent-light { color: var(--theme-accent-light) !important; }
.text-accent-dark { color: var(--theme-accent-dark) !important; }

/* Gradient Text Effects */
.text-gradient-primary {
    background: var(--theme-heading-primary);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.text-gradient-accent {
    background: var(--theme-gradient-accent);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.text-gradient-success {
    background: var(--theme-gradient-success);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.text-gradient-warning {
    background: var(--theme-gradient-warning);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Hover Text Colors */
.hover\:text-primary:hover { color: var(--theme-primary) !important; }
.hover\:text-accent:hover { color: var(--theme-accent) !important; }
.hover\:text-primary-dark:hover { color: var(--theme-primary-dark) !important; }

/* Link Styles */
.link-primary {
    color: var(--theme-primary);
    text-decoration: none;
    transition: color 0.3s ease;
}

.link-primary:hover {
    color: var(--theme-primary-dark);
    text-decoration: underline;
}

.link-accent {
    color: var(--theme-accent);
    text-decoration: none;
    transition: color 0.3s ease;
}

.link-accent:hover {
    color: var(--theme-accent-dark);
    text-decoration: underline;
}

/* White Space */
.whitespace-normal { white-space: normal !important; }
.whitespace-nowrap { white-space: nowrap !important; }
.whitespace-pre { white-space: pre !important; }
.whitespace-pre-line { white-space: pre-line !important; }
.whitespace-pre-wrap { white-space: pre-wrap !important; }

/* Word Break */
.break-normal { overflow-wrap: normal; word-break: normal !important; }
.break-words { overflow-wrap: break-word !important; }
.break-all { word-break: break-all !important; }

/* Text Overflow */
.truncate {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.text-ellipsis { text-overflow: ellipsis !important; }
.text-clip { text-overflow: clip !important; }

/* Font Style */
.italic { font-style: italic !important; }
.not-italic { font-style: normal !important; }

/* Vertical Align */
.align-baseline { vertical-align: baseline !important; }
.align-top { vertical-align: top !important; }
.align-middle { vertical-align: middle !important; }
.align-bottom { vertical-align: bottom !important; }
.align-text-top { vertical-align: text-top !important; }
.align-text-bottom { vertical-align: text-bottom !important; }

/* List Style */
.list-none { list-style-type: none !important; }
.list-disc { list-style-type: disc !important; }
.list-decimal { list-style-type: decimal !important; }

/* Responsive Text Alignment */
@media (max-width: 768px) {
    .text-md-center { text-align: center !important; }
    .text-md-left { text-align: left !important; }
    .text-md-right { text-align: right !important; }
}

@media (max-width: 576px) {
    .text-sm-center { text-align: center !important; }
    .text-sm-left { text-align: left !important; }
    .text-sm-right { text-align: right !important; }
}


/* WH custom variables and classes */
h1 {
    color: var(--theme-heading-primary);
}
