/*
 * Haut de page d'un article — Figma node 2644:70971.
 *
 * Cadrage de la maquette : panneau sur toute la largeur du conteneur (1792) et 494 de haut, coin
 * haut-droit volontairement NON arrondi. Liseré secondaire de 3px en retrait de 19/20
 * horizontalement et 15 verticalement, contenu à 133 du liseré. Ligne de service et titre séparés
 * de 32.
 */

.article-header {
    /* Il ne porte pas d'espacement au-dessus : il vient juste sous l'en-tête du site. */
    padding-block-end: var(--space-big-hero);
}

.article-header__panel {
    position: relative;
    /* 494 dans la maquette, contre 600 pour le haut de page d'une page. */
    height: 494px;
    /* 15 en haut et en bas, 19 à gauche et 20 à droite : les valeurs de la maquette, qui ne sont
       pas symétriques. */
    padding: 15px 20px 15px 19px;
    overflow: hidden;
    border-radius: var(--radius-xxs) 0 var(--radius-xxs) var(--radius-xxs);
    background-color: var(--color-primary);
    width: min(var(--container-max-width), 100% - 2 * var(--container-gutter));
    margin-inline: auto;
}

.article-header__media {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.article-header__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Double dégradé de la maquette, le premier peint au-dessus du second. Angles 187,4 et 138,8,
   contre 189 et 133,2 pour le haut de page d'une page — deux et cinq degrés d'écart. */
.article-header__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background-image:
        linear-gradient(187.44deg, var(--color-primary) 3.176%, var(--color-primary-alpha-5) 36.846%),
        linear-gradient(138.77deg, var(--color-primary) 29.782%, var(--color-primary-alpha-20) 98.599%);
}

.article-header__frame {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
    border: 3px solid var(--color-secondary);
}

.article-header__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-bloc);
    /* 133 du liseré dans la maquette, soit 155 du bord du panneau. */
    padding-inline: 133px 132px;
}

/* ---- Ligne de service ---- */

.article-header__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    /* 727 dans la maquette. */
    max-width: 727px;
    font-size: var(--font-size-p);
    line-height: var(--line-height-body);
    color: var(--color-text-invert);
}

/*
 * Le « • » de la maquette est un séparateur décoratif : posé en CSS, il n'entre pas dans le texte
 * lu par un lecteur d'écran, qui annoncerait sinon « puce » entre la date et la durée.
 */
.article-header__meta-item + .article-header__meta-item::before {
    content: "•";
    padding-inline: var(--space-compact);
}

.article-header__title {
    /* 1032 dans la maquette. */
    max-width: 1032px;
    font-family: var(--font-family-heading);
    /* 76px et interlignage 73 (ratio 0,96), réduit quand la place manque. */
    font-size: clamp(2rem, 4vw, var(--font-size-xl));
    font-weight: 700;
    line-height: 0.96;
    color: var(--color-text-invert);
}

/* ---- Adaptations ---- */

@media (max-width: 1200px) {
    .article-header {
        --container-gutter: var(--space-bloc);
        padding-block-end: var(--space-large);
    }

    .article-header__panel {
        height: 420px;
    }

    .article-header__content {
        padding-inline: var(--space-large);
    }
}

@media (max-width: 768px) {
    .article-header {
        --container-gutter: var(--space-m);
    }

    .article-header__panel {
        /* auto plutôt qu'une hauteur fixe : sur écran étroit, un titre long dépasserait d'un
           cadre de 420. */
        height: auto;
        min-height: 340px;
        padding: 10px;
    }

    .article-header__content {
        gap: var(--space-list);
        padding-block: var(--space-large);
        padding-inline: var(--space-list);
    }
}
