/* Typography Base */

h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5,
h6,
.h6 {
    font-family: var(--font-heading);
    font-weight: 700;
    line-height: var(--leading-tight);
    color: var(--color-text);
    margin-bottom: var(--space-4);
    letter-spacing: var(--tracking-tight);
}

h1,
.h1 {
    font-size: var(--text-5xl);
    font-weight: 800;
}

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

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

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

p,
ul,
ol {
    margin-bottom: var(--space-4);
    color: var(--color-text-secondary);
}

strong,
b {
    font-weight: 600;
    color: var(--color-text);
}

em,
i {
    font-style: italic;
}

.text-primary {
    color: var(--color-primary);
}

.text-accent {
    color: var(--color-accent);
}

.text-success {
    color: var(--color-success);
}

.text-warning {
    color: var(--color-warning);
}

.text-error {
    color: var(--color-error);
}

.text-muted {
    color: var(--color-text-secondary);
}

.text-white {
    color: var(--color-white);
}

.text-slate-300 {
    color: var(--color-slate-300);
}

.text-slate-400 {
    color: var(--color-slate-400);
}

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

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

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

.section-label {
    display: inline-block;
    font-size: var(--text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: var(--tracking-wide);
    color: var(--color-primary);
    margin-bottom: var(--space-3);
}

.section-title {
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 800;
    margin-bottom: var(--space-4);
    color: var(--color-text); /* Forcer la visibilité en light mode */
}

.section-desc {
    font-size: var(--text-lg);
    color: var(--color-text-secondary);
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.title-accent {
    color: var(--color-accent);
    position: relative;
    display: inline-block;
}

/* Decorator underline for title accent */
.title-accent::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0.1em;
    width: 100%;
    height: 0.15em;
    background-color: var(--color-accent);
    opacity: 0.2;
    border-radius: var(--radius-full);
    z-index: 0;
    transition: width 0.3s ease;
}

/* Sections sombres — titres blancs */
.section-bg-dark .section-title,
.section-bg-dark h2,
.section-bg-dark h3,
.section-bg-dark .h2,
.section-bg-dark .h3 {
    color: var(--color-white);
}

.section-bg-dark .section-label {
    color: #4dc2f1;
}

/* H1 hero — toujours visible (fix light mode) */
.hero-section h1,
.hero-section .h1 {
    color: var(--color-text);
}