/* Font Weight Utility Classes */
.ub-font-light {
    font-weight: 300;
}

.ub-font-regular {
    font-weight: 400;
}

.ub-font-medium {
    font-weight: 500;
}

.ub-font-semibold {
    font-weight: 600;
}

.ub-font-bold {
    font-weight: 700;
}

/* New Typography System */
.ub-h1 {
    font-size: 3rem;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

.ub-h2 {
    font-size: 2.25rem;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

.ub-h3 {
    font-size: 1.75rem;
    line-height: 1.4;
}

.ub-h4 {
    font-size: 1.5rem;
    line-height: 1.4;
}

.ub-h5 {
    font-size: 1.25rem;
    line-height: 1.4;
}

.ub-h6 {
    font-size: 1.125rem;
    line-height: 1.4;
}

.ub-body {
    font-size: 1rem;
    line-height: 1.5;
}

.ub-label {
    font-size: 0.875rem;
    line-height: 1.4;
}

/* Common Typography Styles */
.responsive-title {
    font-size: clamp(1.25rem, 2.5vw, 2rem);
    line-height: 1.2;
    margin-bottom: 0.75rem;
    font-weight: 600;
    letter-spacing: -0.02em;
}

.responsive-body {
    font-size: clamp(1rem, 1.75vw, 1.25rem);
    line-height: 1.5;
    margin-bottom: 1.25rem;
    opacity: 0.9;
}

/* Tablet Styles */
@media (max-width: 1024px) {
    .ub-h1 {
        font-size: 2.5rem;
    }

    .ub-h2 {
        font-size: 2rem;
    }

    .ub-h3 {
        font-size: 1.5rem;
    }

    .ub-h4 {
        font-size: 1.375rem;
    }

    .ub-h5 {
        font-size: 1.125rem;
    }

    .ub-h6 {
        font-size: 1rem;
    }

    .ub-body {
        font-size: 0.9375rem;
    }

    .ub-label {
        font-size: 0.8125rem;
    }

    .responsive-title {
        font-size: clamp(1.125rem, 2vw, 1.75rem);
        margin-bottom: 0.625rem;
    }

    .responsive-body {
        font-size: clamp(0.9375rem, 1.5vw, 1.125rem);
        margin-bottom: 1rem;
    }
}

/* Small Tablet Styles */
@media (max-width: 768px) {
    .ub-h1 {
        font-size: 2.25rem;
    }

    .ub-h2 {
        font-size: 1.75rem;
    }

    .ub-h3 {
        font-size: 1.375rem;
    }

    .ub-h4 {
        font-size: 1.25rem;
    }

    .ub-h5 {
        font-size: 1.125rem;
    }

    .ub-h6 {
        font-size: 1rem;
    }

    .ub-body {
        font-size: 0.875rem;
    }

    .ub-label {
        font-size: 0.75rem;
    }

    .responsive-title {
        font-size: clamp(1rem, 1.75vw, 1.5rem);
        margin-bottom: 0.5rem;
    }

    .responsive-body {
        font-size: clamp(0.875rem, 1.25vw, 1rem);
        margin-bottom: 0.875rem;
        line-height: 1.4;
    }
}

/* Mobile Styles */
@media (max-width: 480px) {
    .ub-h1 {
        font-size: 2rem;
    }

    .ub-h2 {
        font-size: 1.5rem;
    }

    .ub-h3 {
        font-size: 1.25rem;
    }

    .ub-h4 {
        font-size: 1.125rem;
    }

    .ub-h5 {
        font-size: 1rem;
    }

    .ub-h6 {
        font-size: 0.9375rem;
    }

    .ub-body {
        font-size: 0.875rem;
    }

    .ub-label {
        font-size: 0.75rem;
    }

    .responsive-title {
        font-size: clamp(0.9375rem, 1.5vw, 1.25rem);
        margin-bottom: 0.375rem;
    }

    .responsive-body {
        font-size: clamp(0.8125rem, 1.125vw, 0.9375rem);
        margin-bottom: 0.75rem;
        line-height: 1.4;
    }
}

/* Animation Styles */
.fade-in-up {
    opacity: 0;
    transform: translateY(20px);
    animation: fadeInUp 0.6s ease forwards;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Reduced Motion */
@media (prefers-reduced-motion: reduce) {
    .fade-in-up {
        animation: none;
        opacity: 1;
        transform: none;
    }
}