/* ===== Font Weight Utilities ===== */
.poppins-light {
    font-family: "Poppins", system-ui;
    font-weight: 300;
    font-style: normal;
}

.poppins-regular {
    font-family: "Poppins", system-ui;
    font-weight: 400;
    font-style: normal;
}

.poppins-medium {
    font-family: "Poppins", system-ui;
    font-weight: 500;
    font-style: normal;
}

.poppins-semibold {
    font-family: "Poppins", system-ui;
    font-weight: 600;
    font-style: normal;
}

.poppins-bold {
    font-family: "Poppins", system-ui;
    font-weight: 700;
    font-style: normal;
}

.poppins-black {
    font-family: "Poppins", system-ui;
    font-weight: 900;
    font-style: normal;
}

/* ===== Fluid Type Scale ===== */

/* Hero title — largest */
.type-display {
    font-family: "Poppins", system-ui;
    font-weight: 700;
    font-style: normal;
    font-size: clamp(2.25rem, 5vw, 3.75rem);
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: var(--text-primary);
}

/* Section headings */
.type-heading-1 {
    font-family: "Poppins", system-ui;
    font-weight: 600;
    font-style: normal;
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    line-height: 1.15;
    letter-spacing: -0.015em;
    color: var(--text-primary);
}

/* Card headings / sub-headings */
.type-heading-2 {
    font-family: "Poppins", system-ui;
    font-weight: 600;
    font-style: normal;
    font-size: clamp(1rem, 1.5vw, 1.25rem);
    line-height: 1.3;
    color: var(--text-primary);
}

/* Body text — standard */
.type-body {
    font-family: 'Open Sans', sans-serif;
    font-weight: 400;
    font-size: clamp(0.9375rem, 1.1vw, 1.0625rem);
    line-height: 1.6;
    color: var(--text-secondary);
}

/* Small / labels */
.type-small {
    font-family: 'Open Sans', sans-serif;
    font-weight: 400;
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--text-muted);
}

/* Overline / accent labels */
.type-overline {
    font-family: "Poppins", system-ui;
    font-weight: 600;
    font-style: normal;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--accent);
}

/* ===== Gradient Text Utility ===== */
.gradient-text {
    background: var(--gradient-hero-text);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* ===== Hero Subtitle ===== */
.hero-subtitle {
    font-family: 'Open Sans', sans-serif;
    font-weight: 400;
    font-size: clamp(1rem, 1.5vw, 1.1875rem);
    line-height: 1.6;
    color: var(--text-secondary);
    max-width: 580px;
}

/* ===== Section Description ===== */
.section-description {
    font-family: 'Open Sans', sans-serif;
    font-weight: 400;
    font-size: clamp(0.9375rem, 1.1vw, 1.0625rem);
    line-height: 1.7;
    color: var(--text-secondary);
    max-width: 600px;
}
