/* Text Utilities - ROA2WEB */

/* Text Alignment */
.text-left {
  text-align: left;
}
.text-center {
  text-align: center;
}
.text-right {
  text-align: right;
}
.text-justify {
  text-align: justify;
}

/* Text Transform */
.uppercase {
  text-transform: uppercase;
}
.lowercase {
  text-transform: lowercase;
}
.capitalize {
  text-transform: capitalize;
}
.normal-case {
  text-transform: none;
}

/* Font Weight */
.font-thin {
  font-weight: 100;
}
.font-extralight {
  font-weight: 200;
}
.font-light {
  font-weight: var(--font-light);
}
.font-normal {
  font-weight: var(--font-normal);
}
.font-medium {
  font-weight: var(--font-medium);
}
.font-semibold {
  font-weight: var(--font-semibold);
}
.font-bold {
  font-weight: var(--font-bold);
}
.font-extrabold {
  font-weight: 800;
}
.font-black {
  font-weight: 900;
}

/* Font Size */
.text-xs {
  font-size: var(--text-xs);
}
.text-sm {
  font-size: var(--text-sm);
}
.text-base {
  font-size: var(--text-base);
}
.text-lg {
  font-size: var(--text-lg);
}
.text-xl {
  font-size: var(--text-xl);
}
.text-2xl {
  font-size: var(--text-2xl);
}
.text-3xl {
  font-size: var(--text-3xl);
}
.text-4xl {
  font-size: var(--text-4xl);
}

/* Line Height */
.leading-none {
  line-height: 1;
}
.leading-tight {
  line-height: var(--leading-tight);
}
.leading-snug {
  line-height: 1.375;
}
.leading-normal {
  line-height: var(--leading-normal);
}
.leading-relaxed {
  line-height: 1.625;
}
.leading-loose {
  line-height: var(--leading-loose);
}

/* Letter Spacing */
.tracking-tighter {
  letter-spacing: -0.05em;
}
.tracking-tight {
  letter-spacing: -0.025em;
}
.tracking-normal {
  letter-spacing: 0em;
}
.tracking-wide {
  letter-spacing: 0.025em;
}
.tracking-wider {
  letter-spacing: 0.05em;
}
.tracking-widest {
  letter-spacing: 0.1em;
}

/* Text Color */
.text-inherit {
  color: inherit;
}
.text-current {
  color: currentColor;
}
.text-transparent {
  color: transparent;
}
.text-primary {
  color: var(--color-primary);
}
.text-secondary {
  color: var(--color-secondary);
}
.text-success {
  color: var(--color-success);
}
.text-warning {
  color: var(--color-warning);
}
.text-error {
  color: var(--color-error);
}
.text-info {
  color: var(--color-info);
}
.text-muted {
  color: var(--color-text-muted);
}

/* Text Decoration */
.underline {
  text-decoration: underline;
}
.line-through {
  text-decoration: line-through;
}
.no-underline {
  text-decoration: none;
}

/* Text Overflow */
.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.text-ellipsis {
  text-overflow: ellipsis;
}

.text-clip {
  text-overflow: clip;
}

/* White Space */
.whitespace-normal {
  white-space: normal;
}
.whitespace-nowrap {
  white-space: nowrap;
}
.whitespace-pre {
  white-space: pre;
}
.whitespace-pre-line {
  white-space: pre-line;
}
.whitespace-pre-wrap {
  white-space: pre-wrap;
}

/* Word Break */
.break-normal {
  overflow-wrap: normal;
  word-break: normal;
}

.break-words {
  overflow-wrap: break-word;
}

.break-all {
  word-break: break-all;
}

/* Font Family */
.font-sans {
  font-family:
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    Roboto,
    sans-serif;
}

.font-serif {
  font-family: Georgia, Cambria, "Times New Roman", Times, serif;
}

.font-mono {
  font-family: var(--font-mono);
}

/* Responsive Text Utilities */
@media (max-width: 480px) {
  .mobile-text-xs {
    font-size: var(--text-xs);
  }
  .mobile-text-sm {
    font-size: var(--text-sm);
  }
  .mobile-text-base {
    font-size: var(--text-base);
  }
  .mobile-text-center {
    text-align: center;
  }
  .mobile-text-left {
    text-align: left;
  }
}

@media (max-width: 768px) {
  .tablet-text-xs {
    font-size: var(--text-xs);
  }
  .tablet-text-sm {
    font-size: var(--text-sm);
  }
  .tablet-text-center {
    text-align: center;
  }
  .tablet-text-left {
    text-align: left;
  }
}

@media (min-width: 1024px) {
  .desktop-text-lg {
    font-size: var(--text-lg);
  }
  .desktop-text-xl {
    font-size: var(--text-xl);
  }
}
