/* Local Font Import */
@font-face {
    font-family: 'Outfit';
    src: url('../../fonts/Outfit-VariableFont.ttf') format('truetype');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

:root {
    /* Font Families */
    --f-main: 'Outfit', sans-serif;
    --f-mono: 'Courier New', monospace;

    /* Fluid Font Sizes (Mobile -> Desktop) */
    --fs-xs: clamp(0.75rem, 0.70rem + 0.25vw, 0.875rem);
    --fs-sm: clamp(0.875rem, 0.83rem + 0.22vw, 1rem);
    --fs-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
    --fs-lg: clamp(1.125rem, 1.08rem + 0.22vw, 1.25rem);
    --fs-xl: clamp(1.25rem, 1.16rem + 0.45vw, 1.5rem);
    --fs-2xl: clamp(1.5rem, 1.32rem + 0.9vw, 2rem);
    --fs-3xl: clamp(1.875rem, 1.46rem + 2.05vw, 3rem);
    --fs-4xl: clamp(2.5rem, 2rem + 2vw, 3.5rem);
    --fs-5xl: clamp(3rem, 2.5rem + 3vw, 4.5rem);
    --fs-6xl: clamp(3.5rem, 3rem + 4vw, 5.5rem);
    --fs-8xl: clamp(4.5rem, 3rem + 6vw, 8rem);

    /* Line Heights */
    --lh-tight: 1.1;
    --lh-base: 1.6;
    --lh-loose: 1.8;
    --lh-heavy: 1.9;

    /* Font Weights */
    --fw-light: 300;
    --fw-normal: 400;
    --fw-medium: 500;
    --fw-bold: 700;
}

/* Typography Utilities */

/* Font Families */
.font-main {
    font-family: var(--f-main);
}

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

/* Font Sizes */
.text-xs {
    font-size: var(--fs-xs);
}

.text-sm {
    font-size: var(--fs-sm);
}

.text-base {
    font-size: var(--fs-base);
}

.text-lg {
    font-size: var(--fs-lg);
}

.text-xl {
    font-size: var(--fs-xl);
}

.text-2xl {
    font-size: var(--fs-2xl);
}

.text-3xl {
    font-size: var(--fs-3xl);
}

.text-4xl {
    font-size: var(--fs-4xl);
}

.text-5xl {
    font-size: var(--fs-5xl);
}

.text-6xl {
    font-size: var(--fs-6xl);
}

.text-8xl {
    font-size: var(--fs-8xl);
}

/* Specific Font Size Overrides */
.text-1\.1 {
    font-size: 1.1rem;
}

.text-1\.15 {
    font-size: 1.15rem;
}

/* Font Weights */
.font-light {
    font-weight: var(--fw-light);
}

.font-normal {
    font-weight: var(--fw-normal);
}

.font-medium {
    font-weight: var(--fw-medium);
}

.font-bold {
    font-weight: var(--fw-bold);
}

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

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

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

.text-justify {
    text-align: justify;
    hyphens: auto;
}

/* Line Heights */
.leading-tight {
    line-height: var(--lh-tight);
}

.leading-base {
    line-height: var(--lh-base);
}

.leading-relaxed {
    line-height: var(--lh-loose);
}

.leading-loose {
    line-height: var(--lh-heavy);
}

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

.underline {
    text-decoration: underline;
}

/* Font Styles */
.italic {
    font-style: italic;
}

.not-italic {
    font-style: normal;
}

/* Tracking */
.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;
}

/* Uppercase */
.uppercase {
    text-transform: uppercase;
}

/* Smart Mobile Layout Overrides */
@media (max-width: 768px) {

    /* Auto-center titles in sections */
    .e-section h1,
    .e-section h2,
    .e-section h3,
    .e-section h4 {
        text-align: center;
        margin-left: auto;
        margin-right: auto;
    }

    /* Auto-justify and balance paragraphs in sections */
    .e-section p,
    .e-section .text-ghost {
        text-align: justify;
        text-align-last: center;
        /* PERFECT for mobile: centers short/last lines */
        hyphens: auto;
        word-break: break-word;
        /* Safety for long words */
    }

    /* SPECIFIC: Cards on mobile look better fully centered */
    .e-card p,
    .e-card .text-ghost,
    .e-card h1,
    .e-card h2,
    .e-card h3,
    .e-card h4 {
        text-align: center;
    }
}