/* =========================================
   MINIMAL THEME — typographie noire, blanc, accent brand vert.
   Pas de bordures, pas de cards, juste de l'espace et du texte.
   ========================================= */
:root {
    --minimal-text:       #1a1a1a;
    --minimal-muted:      #6b7280;
    --minimal-bg:         #ffffff;
    --minimal-bg-soft:    #fafafa;
    --minimal-accent:     #337e16;
    --minimal-accent-soft:#e8f4e1;
    --minimal-border:     #e5e7eb;
    --minimal-font:       -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
    --minimal-font-serif: Georgia, "Times New Roman", serif;
}

body {
    font-family: var(--minimal-font);
    color: var(--minimal-text);
    background: var(--minimal-bg);
    font-size: 1.0625rem;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--minimal-font);
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--minimal-text);
}

h1, .h1 { font-size: clamp(2rem, 5vw, 3.25rem); margin-bottom: 1rem; }
h2, .h2 { font-size: clamp(1.5rem, 3.5vw, 2.25rem); margin-bottom: 0.75rem; }
h3, .h3 { font-size: clamp(1.25rem, 2.5vw, 1.625rem); margin-bottom: 0.5rem; }

a {
    color: var(--minimal-text);
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-thickness: 1px;
    text-decoration-color: var(--minimal-border);
    transition: text-decoration-color 0.2s ease;
}
a:hover {
    color: var(--minimal-accent);
    text-decoration-color: var(--minimal-accent);
}

/* Sections : généreusement aérées */
section, .section, .minimal-section {
    padding: 5rem 0;
}
@media (max-width: 767.98px) {
    section, .section, .minimal-section { padding: 3rem 0; }
}

/* Navigation : barre fine sans ornement */
.minimal-nav {
    border-bottom: 1px solid var(--minimal-border);
    background: var(--minimal-bg);
    padding: 1rem 0;
}
.minimal-nav .navbar-brand {
    font-weight: 700;
    font-size: 1.125rem;
    letter-spacing: -0.01em;
    text-decoration: none;
    color: var(--minimal-text);
}
.minimal-nav .nav-link {
    color: var(--minimal-muted);
    font-size: 0.9375rem;
    padding: 0.5rem 0.875rem;
    text-decoration: none;
    transition: color 0.15s ease;
}
.minimal-nav .nav-link:hover,
.minimal-nav .nav-link.active {
    color: var(--minimal-text);
}

/* Boutons : pill outline accent */
.btn {
    border-radius: 999px;
    font-weight: 500;
    padding: 0.625rem 1.5rem;
    text-decoration: none;
    transition: all 0.2s ease;
}
.btn-primary,
.btn.btn-primary {
    background: var(--minimal-text);
    color: var(--minimal-bg);
    border: 1px solid var(--minimal-text);
}
.btn-primary:hover {
    background: var(--minimal-accent);
    color: var(--minimal-bg);
    border-color: var(--minimal-accent);
}
.btn-outline-primary,
.btn-outline-secondary {
    background: transparent;
    color: var(--minimal-text);
    border: 1px solid var(--minimal-text);
}
.btn-outline-primary:hover,
.btn-outline-secondary:hover {
    background: var(--minimal-text);
    color: var(--minimal-bg);
}

/* Cards : on force du flat. */
.card {
    border: none !important;
    border-bottom: 1px solid var(--minimal-border) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}
.card .card-body { padding: 1.5rem 0; }

/* Footer */
.minimal-footer {
    border-top: 1px solid var(--minimal-border);
    padding: 3rem 0 2rem;
    color: var(--minimal-muted);
    font-size: 0.875rem;
}
.minimal-footer a { color: var(--minimal-muted); }
.minimal-footer a:hover { color: var(--minimal-text); }

/* Hero ultra-épuré */
.minimal-hero {
    padding: 7rem 0 5rem;
    background: var(--minimal-bg);
}
@media (max-width: 767.98px) {
    .minimal-hero { padding: 4rem 0 3rem; }
}
.minimal-hero .lead {
    font-size: 1.25rem;
    color: var(--minimal-muted);
    max-width: 36rem;
}

/* Section titles : juste un trait sous le h2 */
.section-title h2,
.minimal-section-title {
    position: relative;
    padding-bottom: 0.75rem;
    margin-bottom: 2rem;
}
.section-title h2::after,
.minimal-section-title::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 2.5rem;
    height: 2px;
    background: var(--minimal-accent);
}
.section-title { text-align: left; }

/* Badge subtil pour les filtres */
.badge,
.badge.bg-primary-subtle {
    background: var(--minimal-accent-soft) !important;
    color: var(--minimal-accent) !important;
    border-radius: 999px;
    font-weight: 500;
    padding: 0.375rem 0.75rem;
}

/* Liste plus aérée pour publications/blog */
.list-unstyled li { padding-block: 1rem; }

/* Container : un peu plus serré qu'un thème classique */
.container, .container-fluid { max-width: 1080px; }

/* =========================================================================
   AUDIT CONTRASTE — WCAG AA : mode nuit piloté par les tokens du thème.
   Le thème figeait --minimal-bg à blanc pendant que Bootstrap (dark-mode.css)
   éclaircissait les textes -> gris clair sur blanc partout (534 collisions).
   On remappe les tokens en nuit ; body, nav, cartes (transparentes), boutons
   et footer suivent par la cascade. Accent = vert de marque éclairci.
   ========================================================================= */
[data-bs-theme="dark"] {
    --minimal-text:        #e6e6e6;
    --minimal-muted:       #a8b3bd;
    --minimal-bg:          #0f1419;
    --minimal-bg-soft:     #161c24;
    --minimal-accent:      #7ed484;
    --minimal-accent-soft: #1a3d10;
    --minimal-border:      #2a3340;

    /* Liens & fil d'Ariane : vert clair de marque au lieu du bleu Bootstrap
       nuit (#6ea8fe). Bootstrap 5.3 colore les <a> via la variante -rgb. */
    --bs-link-color:            #7ed484;
    --bs-link-color-rgb:        126, 212, 132;
    --bs-link-hover-color:      #9ce2a1;
    --bs-link-hover-color-rgb:  156, 226, 161;
    --bs-primary-text-emphasis: #7ed484;
}

/* Bouton outline-dark (liens GitHub des ressources) : noir sur noir en nuit. */
[data-bs-theme="dark"] .btn-outline-dark {
    color: var(--minimal-text);
    border-color: var(--minimal-text);
}
[data-bs-theme="dark"] .btn-outline-dark:hover {
    background: var(--minimal-text);
    color: var(--minimal-bg);
}
