/* ==========================================================================
   Actualités PredictNeed IA — styles scopés (pages /actualites/ uniquement)
   N'utilise que les tokens de pn-public.css (couleurs, typographie, espaces).
   Ne redéfinit et ne modifie aucune classe pn-* générique existante.
   ========================================================================== */

.pn-news-intro { max-width: 62ch; }

/* --- Visuel de secours (aucune image stock, aucun faux dashboard) ------- */

.pn-news-fallback {
    position: relative;
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    min-height: 180px;
    background: linear-gradient(160deg, var(--pn-signal-soft) 0%, var(--pn-paper) 100%);
    overflow: hidden;
}
.pn-news-fallback__mark {
    position: absolute;
    width: 46%;
    max-width: 220px;
    opacity: 0.1;
}
.pn-news-fallback__label {
    position: relative;
    font-family: var(--pn-font-data);
    font-size: var(--pn-text-xs);
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--pn-signal-deep);
}

/* --- Meta (catégorie + date), réutilisée dans le hero, les cartes, le détail */

.pn-news-meta {
    display: flex;
    align-items: center;
    gap: var(--pn-space-sm);
    font-family: var(--pn-font-data);
    font-size: var(--pn-text-xs);
    letter-spacing: 0.04em;
    color: var(--pn-ink-600);
}
.pn-news-meta__categorie {
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--pn-signal-deep);
}
.pn-news-meta__separateur { color: var(--pn-border-strong); }

/* --- Bandeau visuel pleine largeur (rythme editorial, pas une publicite) */

.pn-news-banner {
    display: block;
    border-radius: var(--pn-radius-md);
    overflow: hidden;
    border: 1px solid var(--pn-border);
    background: var(--pn-paper);
}
.pn-news-banner__image {
    display: block;
    width: 100%;
    height: 280px;
    object-fit: cover;
    object-position: center;
}
.pn-news-banner__text {
    display: block;
    font-family: var(--pn-font-data);
    font-size: var(--pn-text-sm);
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--pn-signal-deep);
    text-align: center;
    padding: var(--pn-space-md) var(--pn-space-lg);
}

@media (max-width: 560px) {
    .pn-news-banner__image { height: 180px; }
    .pn-news-banner__text { font-size: var(--pn-text-xs); }
}

/* --- À la une --------------------------------------------------------- */

.pn-news-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: var(--pn-space-2xl);
    align-items: center;
    color: inherit;
    text-decoration: none;
}
.pn-news-hero:hover h2 { color: var(--pn-signal-deep); }
.pn-news-hero__visual {
    aspect-ratio: 16 / 10;
    border-radius: var(--pn-radius-md);
    overflow: hidden;
    border: 1px solid var(--pn-border);
}
.pn-news-hero__visual img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pn-news-hero__body > * + * { margin-top: var(--pn-space-md); }
.pn-news-hero__body h2 { font-size: var(--pn-text-3xl); line-height: 1.15; }
.pn-news-hero__body p { color: var(--pn-ink-600); font-size: var(--pn-text-md); line-height: 1.55; }

@media (max-width: 900px) {
    .pn-news-hero { grid-template-columns: 1fr; }
}

/* --- Grilles de cartes, rythmées (jamais des cartes toutes identiques) -- */

.pn-news-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--pn-space-lg);
}
.pn-news-grid--compact { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--pn-space-md); }

.pn-news-card {
    display: grid;
    gap: var(--pn-space-sm);
    align-content: start;
    color: inherit;
    text-decoration: none;
}
.pn-news-card__visual {
    aspect-ratio: 16 / 10;
    border-radius: var(--pn-radius-sm);
    overflow: hidden;
    border: 1px solid var(--pn-border);
}
.pn-news-card__visual img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pn-news-card h3 { font-size: var(--pn-text-base); line-height: 1.35; }
.pn-news-card:hover h3 { color: var(--pn-signal-deep); }
.pn-news-card p { font-size: var(--pn-text-sm); color: var(--pn-ink-600); line-height: 1.5; }

/* La première carte d'une grille "Actualités récentes" prend deux colonnes
   et un visuel plus grand : c'est ce qui casse l'effet "6 cartes identiques". */
.pn-news-grid > .pn-news-card--large {
    grid-column: span 2;
}
.pn-news-grid > .pn-news-card--large .pn-news-card__visual { aspect-ratio: 16 / 8; }
.pn-news-grid > .pn-news-card--large h3 { font-size: var(--pn-text-lg); }

.pn-news-grid--compact .pn-news-card__visual { aspect-ratio: 16 / 11; }
.pn-news-grid--compact h3 { font-size: var(--pn-text-sm); }

@media (max-width: 900px) {
    .pn-news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pn-news-grid--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pn-news-grid > .pn-news-card--large { grid-column: span 2; }
}
@media (max-width: 560px) {
    .pn-news-grid,
    .pn-news-grid--compact { grid-template-columns: minmax(0, 1fr); }
    .pn-news-grid > .pn-news-card--large { grid-column: span 1; }
}

/* --- Page détail d'une actualité ---------------------------------------- */

.pn-news-detail__visual {
    border-radius: var(--pn-radius-md);
    overflow: hidden;
    border: 1px solid var(--pn-border);
    aspect-ratio: 16 / 9;
}
.pn-news-detail__visual img { width: 100%; height: 100%; object-fit: cover; display: block; }

.pn-news-body { display: grid; gap: var(--pn-space-2xl); }
.pn-news-body__section { display: grid; gap: var(--pn-space-md); }
.pn-news-body__section h2 { font-size: var(--pn-text-xl); }
.pn-news-body__section p { color: var(--pn-ink-700); font-size: var(--pn-text-md); line-height: 1.65; }
.pn-news-body__list {
    display: grid;
    gap: var(--pn-space-sm);
    padding-left: 1.25em;
    color: var(--pn-ink-700);
    font-size: var(--pn-text-md);
    line-height: 1.55;
}
.pn-news-body__visual {
    border-radius: var(--pn-radius-sm);
    overflow: hidden;
    border: 1px solid var(--pn-border);
}
.pn-news-body__visual img { width: 100%; display: block; }

.pn-news-feature-link {
    display: inline-flex;
    align-items: center;
    gap: var(--pn-space-sm);
    font-size: var(--pn-text-sm);
    font-weight: 600;
    color: var(--pn-signal-deep);
    border-top: 1px solid var(--pn-border);
    padding-top: var(--pn-space-lg);
}

.pn-news-back-link {
    display: inline-flex;
    align-items: center;
    gap: var(--pn-space-sm);
    font-size: var(--pn-text-sm);
    font-weight: 600;
    color: var(--pn-ink-600);
    text-decoration: none;
}
.pn-news-back-link:hover { color: var(--pn-signal-deep); }

@media (max-width: 560px) {
    .pn-news-hero__body h2 { font-size: var(--pn-text-2xl); }
}
