﻿/* Typography Utility Classes */

/* Text Sizes */
.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;
}

.text-5xl {
    font-size: var(--font-size-5xl) !important;
}

/* Line Heights */
.leading-none {
    line-height: var(--line-height-none) !important;
}

.leading-tight {
    line-height: var(--line-height-tight) !important;
}

.leading-normal {
    line-height: var(--line-height-normal) !important;
}

.leading-relaxed {
    line-height: var(--line-height-relaxed) !important;
}

.leading-loose {
    line-height: var(--line-height-loose) !important;
}

/* Letter Spacing */
.tracking-tighter {
    letter-spacing: var(--letter-spacing-tighter) !important;
}

.tracking-tight {
    letter-spacing: var(--letter-spacing-tight) !important;
}

.tracking-normal {
    letter-spacing: var(--letter-spacing-normal) !important;
}

.tracking-wide {
    letter-spacing: var(--letter-spacing-wide) !important;
}

.tracking-wider {
    letter-spacing: var(--letter-spacing-wider) !important;
}

.tracking-widest {
    letter-spacing: var(--letter-spacing-widest) !important;
}

/* Text Transform */
.uppercase {
    text-transform: uppercase !important;
}

.lowercase {
    text-transform: lowercase !important;
}

.capitalize {
    text-transform: capitalize !important;
}

.normal-case {
    text-transform: none !important;
}

/* Text Decoration */
.underline {
    text-decoration: underline !important;
}

.line-through {
    text-decoration: line-through !important;
}

.no-underline {
    text-decoration: none !important;
}

/* 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;
}

/* Font Styles */
.italic {
    font-style: italic !important;
}

.not-italic {
    font-style: normal !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;
}

/* Responsive Typography Utilities */
@media (min-width: 640px) {
    .sm\:text-xs {
        font-size: var(--font-size-xs) !important;
    }

    .sm\:text-sm {
        font-size: var(--font-size-sm) !important;
    }

    .sm\:text-base {
        font-size: var(--font-size-base) !important;
    }

    .sm\:text-lg {
        font-size: var(--font-size-lg) !important;
    }

    .sm\:text-xl {
        font-size: var(--font-size-xl) !important;
    }

    .sm\:text-2xl {
        font-size: var(--font-size-2xl) !important;
    }

    .sm\:text-3xl {
        font-size: var(--font-size-3xl) !important;
    }
}

@media (min-width: 768px) {
    .md\:text-xs {
        font-size: var(--font-size-xs) !important;
    }

    .md\:text-sm {
        font-size: var(--font-size-sm) !important;
    }

    .md\:text-base {
        font-size: var(--font-size-base) !important;
    }

    .md\:text-lg {
        font-size: var(--font-size-lg) !important;
    }

    .md\:text-xl {
        font-size: var(--font-size-xl) !important;
    }

    .md\:text-2xl {
        font-size: var(--font-size-2xl) !important;
    }

    .md\:text-3xl {
        font-size: var(--font-size-3xl) !important;
    }

    .md\:text-4xl {
        font-size: var(--font-size-4xl) !important;
    }
}

@media (min-width: 1024px) {
    .lg\:text-xs {
        font-size: var(--font-size-xs) !important;
    }

    .lg\:text-sm {
        font-size: var(--font-size-sm) !important;
    }

    .lg\:text-base {
        font-size: var(--font-size-base) !important;
    }

    .lg\:text-lg {
        font-size: var(--font-size-lg) !important;
    }

    .lg\:text-xl {
        font-size: var(--font-size-xl) !important;
    }

    .lg\:text-2xl {
        font-size: var(--font-size-2xl) !important;
    }

    .lg\:text-3xl {
        font-size: var(--font-size-3xl) !important;
    }

    .lg\:text-4xl {
        font-size: var(--font-size-4xl) !important;
    }

    .lg\:text-5xl {
        font-size: var(--font-size-5xl) !important;
    }
}

/* Print Styles */
@media print {
    * {
        color: #000 !important;
        background: transparent !important;
    }

    body {
        font-size: 12pt !important;
        line-height: 1.5 !important;
    }

    h1 {
        font-size: 24pt !important;
    }

    h2 {
        font-size: 20pt !important;
    }

    h3 {
        font-size: 18pt !important;
    }

    h4 {
        font-size: 16pt !important;
    }

    h5 {
        font-size: 14pt !important;
    }

    h6 {
        font-size: 12pt !important;
    }
}
