/* Global Typography & Base Styles */
body {
    font-family: 'Work Sans', sans-serif;
    background-color: var(--background);
    color: var(--on-background);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Manrope', sans-serif;
    letter-spacing: -0.04em;
    line-height: 1.1;
    font-weight: 800;
}

/* Fluid Text Utility Classes (Tailwind extension fallback) */
.text-fluid-h1 { font-size: clamp(2.5rem, 8vw, 5rem); }
.text-fluid-h2 { font-size: clamp(2rem, 5vw, 3.5rem); }
.text-fluid-body { font-size: clamp(1rem, 1.2vw, 1.125rem); }

/* Material Symbols configuration */
.material-symbols-outlined {
    font-variation-settings: 'FILL' 0, 'wght' 500, 'GRAD' 0, 'opsz' 24;
    vertical-align: middle;
}

/* Global Utility Classes */
.max-w-container-max { max-width: var(--container-max); }
.max-w-container-narrow { max-width: var(--container-narrow); }

.pb-section {
    padding-bottom: var(--section-spacing-mobile);
}

@media (min-width: 1024px) {
    .pb-section {
        padding-bottom: var(--section-spacing-desktop);
    }
}

.text-gradient {
    background: var(--gradient-brand);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    color: transparent; /* Fallback */
    padding-right: 0.15em;
    margin-right: -0.15em;
}

.bg-gradient-brand {
    background: var(--gradient-brand);
    color: var(--on-primary);
}

.hover-lift {
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.hover-lift:hover {
    transform: translateY(-8px);
}

.hover-glow:hover {
    box-shadow: 0 20px 40px -10px rgba(0, 107, 43, 0.2);
}
