/* ==========================================================================
   SNL — Blocs : En-tête, Pied de page & Page d'accueil
   Transposition fidèle de layout.tsx + home.tsx (maquette Replit).
   Dépend de tokens.css (variables --snl-*).
   ========================================================================== */

:root { --snl-container: 1600px; }

/* Slider hero (plugin snl-hero-slider) : aligne la police « mono » sur DM Sans (système 2 polices) */
.snl-slider-wrapper { --snl-font-mono: var(--snl-font-sans, 'DM Sans', sans-serif); }

.snl * { box-sizing: border-box; }

/* Conteneur centré (max-w-[1600px] px-8/px-14) */
.snl-container {
  max-width: var(--snl-container);
  margin-inline: auto;
  padding-inline: clamp(1.5rem, 4vw, 3.5rem);
  width: 100%;
}

/* Boutons */
.snl-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  font-family: var(--snl-font-sans);
  font-weight: 700;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  padding: 0.95rem 1.75rem;
  line-height: 1;
  cursor: pointer;
  transition: all 0.2s ease;
  text-decoration: none;
  border: 0;
}
.snl-btn svg { width: 16px; height: 16px; }
.snl-btn--red { background: var(--snl-red); color: #fff; }
.snl-btn--red:hover { background: #fff; color: var(--snl-red); }
.snl-btn--ghost { border: 1px solid rgba(255,255,255,.3); color: #fff; background: transparent; }
.snl-btn--ghost:hover { border-color: rgba(255,255,255,.6); background: rgba(255,255,255,.05); }

/* ==========================================================================
   EN-TÊTE (Theme Builder — header sticky sombre)
   ========================================================================== */
.snl-header {
  position: fixed;            /* sticky fiable malgré le wrapper HFE */
  top: 0; left: 0; right: 0;
  z-index: 9999;
  width: 100%;
  background: #111111;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
/* Compense la hauteur du header fixe (64px) pour ne rien masquer. */
body { padding-top: 64px; }
.elementor-editor-active body { padding-top: 0; } /* éditeur Elementor : pas de décalage */
.snl-header__inner {
  max-width: var(--snl-container);
  margin-inline: auto;
  padding-inline: 1.5rem;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.snl-header__logo { display: flex; align-items: center; flex-shrink: 0; }
.snl-header__logo img { height: 40px; width: auto; object-fit: contain; }
.snl-header__nav {
  display: flex;
  gap: 2rem;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.snl-header__nav a { color: rgba(255,255,255,.7); transition: color .2s; text-decoration: none; }
.snl-header__nav a:hover,
.snl-header__nav a.is-current { color: var(--snl-red); }
.snl-header__actions { display: flex; align-items: center; gap: 0.75rem; }
.snl-header__icon { background: 0; border: 0; color: rgba(255,255,255,.6); cursor: pointer; display: inline-flex; transition: color .2s; padding: 0; }
.snl-header__icon:hover { color: #fff; }
.snl-header__icon svg { width: 16px; height: 16px; }
.snl-header__burger { display: none; background: 0; border: 0; color: rgba(255,255,255,.6); cursor: pointer; }
.snl-header__burger svg { width: 20px; height: 20px; }
.snl-header__mobile {
  border-top: 1px solid rgba(255,255,255,.1);
  background: #111111;
  padding: 1.25rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.snl-header__mobile[hidden] { display: none; }
.snl-header__mobile a {
  color: rgba(255,255,255,.7);
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.snl-header__mobile a:hover { color: var(--snl-red); }

/* Bouton « Haut de page » (scroll to top) */
.snl-totop {
  position: fixed; right: clamp(1rem, 3vw, 2rem); bottom: clamp(1rem, 3vw, 2rem);
  width: 46px; height: 46px; border: 0; border-radius: 50%; cursor: pointer;
  background: var(--snl-red); color: #fff; z-index: 9998;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 8px 24px rgba(0,0,0,.25);
  opacity: 0; visibility: hidden; transform: translateY(12px);
  transition: opacity .25s, transform .25s, background .2s, visibility .25s;
}
.snl-totop.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.snl-totop:hover { background: #b02323; }
.snl-totop svg { width: 20px; height: 20px; }
@media (prefers-reduced-motion: reduce) { .snl-totop { transition: opacity .2s, visibility .2s; transform: none; } }

@media (max-width: 1023px) {
  .snl-header__nav { display: none; }
  .snl-header__burger { display: inline-flex; }
}
@media (max-width: 767px) {
  .snl-header__actions .snl-btn { display: none; }
}

/* ==========================================================================
   PIED DE PAGE
   ========================================================================== */
.snl-footer { background: var(--snl-black-2); color: #fff; }
.snl-footer__inner { padding-block: 4rem; }
.snl-footer__grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 3rem;
  margin-bottom: 4rem;
}
.snl-footer__brand { grid-column: span 4; }
.snl-footer__brand img { height: 48px; width: auto; margin-bottom: 1.5rem; }
.snl-footer__desc { color: rgba(255,255,255,.4); font-size: 14px; line-height: 1.7; max-width: 20rem; margin-bottom: 1.5rem; }
.snl-footer__social { display: flex; gap: 0.75rem; }
.snl-footer__social a {
  width: 36px; height: 36px;
  border: 1px solid rgba(255,255,255,.2);
  display: flex; align-items: center; justify-content: center;
  color: #fff; transition: all .2s;
}
.snl-footer__social a:hover { border-color: var(--snl-red); color: var(--snl-red); }
.snl-footer__social svg { width: 16px; height: 16px; }
.snl-footer__cols {
  grid-column: span 8;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}
.snl-footer__h4 {
  font-family: var(--snl-font-mono);
  font-size: 10px; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--snl-red); margin: 0 0 1.25rem;
}
.snl-footer__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.75rem; }
.snl-footer__list a { color: rgba(255,255,255,.5); font-size: 14px; transition: color .2s; }
.snl-footer__list a:hover { color: #fff; }
.snl-footer__mini { color: rgba(255,255,255,.4); font-size: 14px; line-height: 1.6; margin-bottom: 1rem; }
.snl-footer__form { display: flex; gap: 0.5rem; }
.snl-footer__form input {
  flex: 1; background: transparent;
  border: 1px solid rgba(255,255,255,.2);
  color: #fff; padding: 0.5rem 0.75rem; font-size: 14px;
  font-family: var(--snl-font-mono);
}
.snl-footer__form input::placeholder { color: rgba(255,255,255,.3); }
.snl-footer__form input:focus { outline: 0; border-color: var(--snl-red); }
.snl-footer__form button { background: var(--snl-red); color: #fff; font-weight: 700; padding: 0.5rem 1rem; font-size: 14px; border: 0; cursor: pointer; transition: all .2s; }
.snl-footer__form button:hover { background: #fff; color: var(--snl-red); }
.snl-footer__bottom {
  border-top: 1px solid rgba(255,255,255,.1);
  padding-top: 2rem;
  display: flex; justify-content: space-between; align-items: center;
  gap: 1rem; flex-wrap: wrap;
}
.snl-footer__bottom nav { display: flex; flex-wrap: wrap; gap: 1.5rem; font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em; }
.snl-footer__bottom nav a { color: rgba(255,255,255,.3); transition: color .2s; }
.snl-footer__bottom nav a:hover { color: #fff; }
.snl-footer__copy { font-size: 10px; color: rgba(255,255,255,.25); font-family: var(--snl-font-mono); }

/* Footer responsive (manquait) : on empile marque + colonnes, colonnes 3→2→1 */
@media (max-width: 860px) {
  .snl-footer__grid { grid-template-columns: 1fr; gap: 2.75rem; margin-bottom: 2.75rem; }
  .snl-footer__brand, .snl-footer__cols { grid-column: auto; }
  .snl-footer__brand { max-width: 28rem; }
  .snl-footer__desc { max-width: none; }
  .snl-footer__cols { grid-template-columns: 1fr 1fr; gap: 2rem 1.5rem; }
}
@media (max-width: 480px) {
  .snl-footer__inner { padding-block: 3rem; }
  .snl-footer__cols { grid-template-columns: 1fr; }
  .snl-footer__bottom { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 900px) {
  .snl-footer__grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .snl-footer__brand, .snl-footer__cols { grid-column: auto; }
  .snl-footer__cols { grid-template-columns: repeat(2, 1fr); }
}

/* ==========================================================================
   HERO DE PAGE INTÉRIEURE
   ========================================================================== */
.snl-page-hero { background: var(--snl-black); color: #fff; padding-block: clamp(3rem, 6vw, 5rem); }
.snl-page-hero .snl-container { width: 100%; }
.snl-page-hero__eyebrow { font-family: var(--snl-font-mono); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.22em; color: var(--snl-red); margin: 0 0 0.75rem; }
.snl-page-hero__eyebrow--icon { display: inline-flex; align-items: center; gap: 0.5rem; }
.snl-page-hero__icon { display: inline-flex; color: var(--snl-red); }
.snl-page-hero__icon svg { width: 20px; height: 20px; }
.snl-page-hero__title { font-family: var(--snl-font-serif); font-weight: 700; color: #fff; line-height: 1.05; margin: 0; font-size: clamp(2.4rem, 5vw, 4rem); }
.snl-page-hero__sub { color: rgba(255,255,255,.6); font-size: 16px; line-height: 1.7; margin: 1rem 0 0; max-width: 40rem; }
.snl-page-section { padding-block: clamp(2.5rem, 5vw, 4rem); }

/* ---- Habillage des widgets NATIFS Elementor (héros / prose / formulaires) ---- */
/* Héros natif : conteneur .snl-page-hero contenant des widgets Titre natifs */
.snl-page-hero .elementor-heading-title { color: #fff; }
.snl-page-hero__eyebrow .elementor-heading-title { font-family: var(--snl-font-mono); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.22em; color: var(--snl-red); margin: 0 0 0.75rem; }
.snl-page-hero__title .elementor-heading-title { font-family: var(--snl-font-serif); font-weight: 700; font-size: clamp(2.4rem, 5vw, 4rem); line-height: 1.05; letter-spacing: -0.01em; margin: 0; }
.snl-page-hero__sub .elementor-heading-title { font-family: var(--snl-font-sans); font-weight: 400; font-size: 16px; color: rgba(255,255,255,.6); line-height: 1.7; margin: 1rem 0 0; max-width: 40rem; }
/* Prose native : conteneur .snl-prose contenant Titres + Éditeurs de texte natifs */
.snl-prose .elementor-widget-heading .elementor-heading-title { font-family: var(--snl-font-serif); font-size: 1.8rem; color: var(--snl-charcoal); margin: 1.5rem 0 0.75rem; }
.snl-prose .elementor-widget-text-editor { font-size: 17px; line-height: 1.8; color: var(--snl-charcoal); }
.snl-prose .elementor-widget-text-editor p { margin: 0 0 1.25rem; }
/* Formulaires Elementor brandés */
.snl-form-section .elementor-button { background: var(--snl-red); border-radius: 0; font-weight: 700; }
.snl-form-section .elementor-button:hover { background: var(--snl-red-dark); }
.snl-prose { max-width: 52rem; margin-inline: auto; font-size: 17px; line-height: 1.8; color: var(--snl-charcoal); }
.snl-prose h2 { font-family: var(--snl-font-serif); font-size: 1.8rem; margin: 2.5rem 0 1rem; }
.snl-prose p { margin: 0 0 1.25rem; }

/* ---- Single CPT (fiche détail) ---- */
.snl-single { padding-block: clamp(2.5rem, 5vw, 4rem); }
.snl-single__hero .snl-single__back { display: inline-block; font-family: var(--snl-font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em; color: rgba(255,255,255,.5); text-decoration: none; margin-bottom: 1rem; transition: color .2s; }
.snl-single__hero .snl-single__back:hover { color: var(--snl-red); }
.snl-single__grid { display: grid; grid-template-columns: 1fr 320px; gap: 3rem; align-items: start; }
.snl-single__media { margin-bottom: 2rem; overflow: hidden; }
.snl-single__media img { width: 100%; height: auto; display: block; }
.snl-single__content { font-size: 17px; line-height: 1.8; color: var(--snl-charcoal); }
.snl-single__content p { margin: 0 0 1.25rem; }
.snl-single__aside { border: 1px solid var(--snl-border); padding: 1.75rem; position: sticky; top: 88px; }
.snl-single__aside-title { font-family: var(--snl-font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--snl-red); margin: 0 0 1.25rem; }
.snl-single__facts { margin: 0; }
.snl-single__fact { display: flex; justify-content: space-between; gap: 1rem; padding: 0.7rem 0; border-bottom: 1px solid var(--snl-border); }
.snl-single__fact:last-child { border-bottom: 0; }
.snl-single__fact dt { color: var(--snl-muted); font-size: 13px; margin: 0; }
.snl-single__fact dd { margin: 0; font-weight: 600; font-size: 14px; text-align: right; color: var(--snl-charcoal); }
.snl-single__cta { margin-top: 1.5rem; width: 100%; justify-content: center; }
@media (max-width: 900px) { .snl-single__grid { grid-template-columns: 1fr; } .snl-single__aside { position: static; } }

/* ---- Single Article (aligné à gauche, façon Replit /news) ---- */
.snl-article__wrap { max-width: 820px; margin-inline: auto; padding: clamp(1.75rem, 4vw, 2.75rem) clamp(1.25rem, 4vw, 2rem) 0; }

/* Fil d'Ariane */
.snl-article__crumb { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; font-family: var(--snl-font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--snl-muted); margin-bottom: 1.5rem; }
.snl-article__crumb a { color: var(--snl-muted); text-decoration: none; transition: color .2s; }
.snl-article__crumb a:hover { color: var(--snl-charcoal); }
.snl-article__crumb span { color: #c9c9c9; }
.snl-article__crumb .snl-article__crumb-cat { color: var(--snl-red); }

/* Badge catégorie */
.snl-article__cat { display: inline-block; font-family: var(--snl-font-mono); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: #fff; background: var(--snl-red); padding: 0.35rem 0.85rem; text-decoration: none; margin-bottom: 1.25rem; }

/* Titre (gauche) */
.snl-article__title { font-family: var(--snl-font-serif); font-weight: 700; color: var(--snl-charcoal); line-height: 1.08; margin: 0 0 1.5rem; font-size: clamp(2rem, 4.2vw, 3.4rem); }

/* Chapô avec bordure rouge à gauche */
.snl-article__excerpt { font-family: var(--snl-font-serif); font-size: clamp(1.05rem, 1.5vw, 1.3rem); color: #3f3f46; line-height: 1.5; margin: 0 0 2rem; padding-left: 1.25rem; border-left: 3px solid var(--snl-red); }

/* Ligne auteur + méta + partage */
.snl-article__byline { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; padding: 1.25rem 0; border-block: 1px solid var(--snl-border); margin-bottom: clamp(2rem, 4vw, 3rem); }
.snl-article__author { display: flex; align-items: center; gap: 0.75rem; }
.snl-avatar { width: 40px; height: 40px; border-radius: 999px; background: var(--snl-red); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-family: var(--snl-font-serif); font-weight: 700; font-size: 18px; flex-shrink: 0; }
.snl-avatar--lg { width: 52px; height: 52px; font-size: 22px; }
.snl-article__author-info { display: flex; flex-direction: column; line-height: 1.25; }
.snl-article__author-name { font-weight: 700; font-size: 14px; color: var(--snl-charcoal); }
.snl-article__author-org { font-family: var(--snl-font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--snl-muted); }
.snl-article__meta { display: flex; align-items: center; gap: 0.5rem; font-family: var(--snl-font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--snl-muted); }
.snl-article__readtime { display: inline-flex; align-items: center; gap: 0.3rem; }
.snl-article__share-btn { margin-left: auto; display: inline-flex; align-items: center; gap: 0.45rem; background: transparent; border: 1px solid var(--snl-border); color: var(--snl-charcoal); font-family: var(--snl-font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; padding: 0.5rem 0.9rem; cursor: pointer; transition: all .2s; }
.snl-article__share-btn:hover { border-color: var(--snl-red); color: var(--snl-red); }

/* Image dans la colonne (pas pleine largeur) */
.snl-article__cover { position: relative; margin: 0 0 2.5rem; }
.snl-article__cover img { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; background: var(--snl-light); }
.snl-article__cover-tag { position: absolute; top: 0.75rem; left: 0.75rem; font-family: var(--snl-font-mono); font-size: 9px; text-transform: uppercase; letter-spacing: 0.12em; color: #fff; background: rgba(0,0,0,.6); padding: 0.25rem 0.5rem; }
.snl-article__cover figcaption { font-family: var(--snl-font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--snl-muted); padding-top: 0.75rem; }

/* Corps */
.snl-article__content { font-family: var(--snl-font-sans); font-weight: 400; font-size: 18px; line-height: 1.8; max-width: none; }
.snl-article__content p, .snl-article__content li { font-weight: 400; }
.snl-article__content img { max-width: 100%; height: auto; }
.snl-article__content h2, .snl-article__content h3 { font-family: var(--snl-font-sans); }

/* Mots-clés */
.snl-article__tagwrap { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--snl-border); }
.snl-article__tags-label { font-family: var(--snl-font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--snl-muted); margin: 0 0 0.75rem; }
.snl-article__tags { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.snl-article__tag { font-family: var(--snl-font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--snl-muted); border: 1px solid var(--snl-border); padding: 0.3rem 0.7rem; text-decoration: none; transition: all .2s; }
.snl-article__tag:hover { border-color: var(--snl-red); color: var(--snl-red); }

/* Bloc auteur */
.snl-article__authorbox { display: flex; gap: 1rem; align-items: flex-start; margin: 2.5rem 0 clamp(2rem, 4vw, 3.5rem); padding: 1.5rem; background: var(--snl-light); }
.snl-article__authorbox-name { font-family: var(--snl-font-serif); font-weight: 700; font-size: 16px; margin: 0 0 0.4rem; color: var(--snl-charcoal); }
.snl-article__authorbox-bio { font-size: 14px; line-height: 1.6; color: var(--snl-muted); margin: 0; }

/* ---- À lire aussi / Autres actualités ---- */
.snl-related { background: var(--snl-light-2); padding-block: clamp(3rem, 5vw, 4.5rem); }
.snl-related__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; }
.snl-related__eyebrow { font-family: var(--snl-font-mono); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.2em; color: var(--snl-red); margin: 0 0 0.4rem; }
.snl-related__title { font-family: var(--snl-font-serif); font-weight: 700; font-size: clamp(1.5rem, 2.5vw, 2.1rem); margin: 0; color: var(--snl-charcoal); }
.snl-related__all { font-family: var(--snl-font-mono); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--snl-muted); text-decoration: none; transition: color .2s; white-space: nowrap; }
.snl-related__all:hover { color: var(--snl-red); }
.snl-related .snl-agrid { margin-top: 0; }
.snl-related .snl-acard { background: #fff; }

/* ---- Bandeau newsletter sombre (bas d'article) ---- */
.snl-article-news { background: var(--snl-black); color: #fff; padding-block: clamp(3rem, 5vw, 4.5rem); text-align: center; }
.snl-article-news__eyebrow { font-family: var(--snl-font-mono); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.25em; color: var(--snl-red); margin: 0 0 1rem; }
.snl-article-news__title { font-family: var(--snl-font-serif); font-weight: 700; color: #fff; font-size: clamp(1.6rem, 3vw, 2.6rem); margin: 0 0 1.75rem; }
.snl-article-news__btn { display: inline-flex; }

@media (max-width: 640px) {
	.snl-article__byline { gap: 1rem; }
	.snl-article__share-btn { margin-left: 0; }
}

/* ==========================================================================
   TOPBAR « EN DIRECT »
   ========================================================================== */
.snl-topbar { background: var(--snl-red); overflow: hidden; }
.snl-topbar__inner { max-width: var(--snl-container); margin-inline: auto; padding-inline: 2rem; display: flex; align-items: center; height: 36px; }
.snl-topbar__label {
  display: flex; align-items: center; gap: 0.5rem;
  font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.1em;
  flex-shrink: 0; padding-right: 1.25rem; margin-right: 1.25rem;
  border-right: 1px solid rgba(255,255,255,.25);
  font-family: var(--snl-font-mono); color: #fff;
}
.snl-topbar__track { overflow: hidden; flex: 1; }
.snl-topbar__track .snl-marquee { gap: 3.5rem; }
.snl-topbar__track a {
  font-size: 11px; font-weight: 500; color: rgba(255,255,255,.8);
  font-family: var(--snl-font-mono); text-transform: uppercase; letter-spacing: 0.04em;
  transition: color .2s; flex-shrink: 0;
}
.snl-topbar__track a:hover { color: #fff; }
.snl-topbar__track a span { margin-right: 0.5rem; opacity: 0.5; }
.snl-topbar__brand { font-family: var(--snl-font-serif); font-weight: 700; font-size: 20px; padding-left: 1.25rem; margin-left: 1.25rem; border-left: 1px solid rgba(255,255,255,.25); color: #fff; }
@media (max-width: 640px) { .snl-topbar__brand { display: none; } }

/* Pastille "ping" */
.snl-ping { position: relative; display: inline-flex; height: 8px; width: 8px; }
.snl-ping span:first-child { position: absolute; inset: 0; border-radius: 999px; background: currentColor; opacity: .75; animation: snl-ping 1.2s cubic-bezier(0,0,.2,1) infinite; }
.snl-ping span:last-child { position: relative; display: inline-flex; height: 8px; width: 8px; border-radius: 999px; background: currentColor; }
.snl-ping--sm, .snl-ping--sm span { height: 6px; width: 6px; }
@keyframes snl-ping { 75%, 100% { transform: scale(2); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .snl-ping span:first-child { animation: none; } }

/* ==========================================================================
   HERO
   ========================================================================== */
.snl-hero { background: var(--snl-black); position: relative; overflow: hidden; display: flex; align-items: center; min-height: 680px; }
.snl-hero__bg { position: absolute; top: 0; bottom: 0; right: 0; width: 45%; z-index: 0; }
.snl-hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.snl-hero__bg::before { content: ""; position: absolute; inset: 0; background: linear-gradient(to right, var(--snl-black), rgba(10,11,15,.2) 50%, transparent); }
.snl-hero__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(10,11,15,.2), transparent 50%, rgba(10,11,15,.6)); }
.snl-hero__content { position: relative; z-index: 10; display: flex; flex-direction: column; padding: 5rem clamp(2rem, 4vw, 3.5rem); width: 58%; }
.snl-hero__live { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 2rem; color: var(--snl-red); }
.snl-hero__live span.snl-mono { font-weight: 900; font-size: 11px; letter-spacing: 0.25em; }
.snl-hero__title { font-family: var(--snl-font-serif); font-weight: 700; color: #fff; line-height: 1.04; margin: 0 0 1.5rem; font-size: clamp(2.6rem, 5.5vw, 5.2rem); }
.snl-hero__sub { color: rgba(255,255,255,.55); font-size: 17px; line-height: 1.7; margin-bottom: 2.5rem; max-width: 480px; }
.snl-hero__cta { display: flex; flex-wrap: wrap; gap: 1rem; }
@media (max-width: 1023px) { .snl-hero__bg { display: none; } .snl-hero__content { width: 100%; } }

/* ==========================================================================
   À LA UNE
   ========================================================================== */
.snl-une { background: #fff; }
.snl-une__inner { padding-block: 3.5rem; }
.snl-section-head { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 2rem; }
.snl-section-head__slash { color: var(--snl-red); font-weight: 700; font-size: 1.25rem; }
.snl-section-head h2 { font-family: var(--snl-font-sans); font-weight: 700; color: #18181b; font-size: 13px; text-transform: uppercase; letter-spacing: 0.2em; margin: 0; }
.snl-une__grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 2rem; margin-bottom: 2rem; }
.snl-une__featured { grid-column: span 7; }
.snl-une__featured a { display: block; text-decoration: none; }
.snl-une__thumb { width: 100%; aspect-ratio: 16/10; overflow: hidden; background: #f4f4f5; margin-bottom: 1.25rem; position: relative; }
.snl-une__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s; }
.snl-une__featured a:hover .snl-une__thumb img { transform: scale(1.03); }
.snl-une__badge-wrap { position: absolute; top: 1rem; left: 1rem; }
.snl-une__featured h3 { font-family: var(--snl-font-serif); font-weight: 700; color: #18181b; line-height: 1.1; margin: 0 0 0.75rem; font-size: clamp(1.5rem, 2.5vw, 2.2rem); transition: color .2s; }
.snl-une__featured a:hover h3 { color: var(--snl-red); }
.snl-une__excerpt { color: #71717a; font-size: 15px; line-height: 1.7; margin-bottom: 1rem; }
.snl-une__meta { display: flex; align-items: center; gap: 0.75rem; font-size: 14px; color: #a1a1aa; }
.snl-une__meta strong { color: #52525b; font-weight: 500; }
.snl-une__side { grid-column: span 5; display: flex; flex-direction: column; }
.snl-une__item { display: flex; gap: 1rem; padding: 1.25rem 0.5rem; margin-inline: -0.5rem; border-top: 1px solid #f4f4f5; text-decoration: none; transition: background .2s; }
.snl-une__side .snl-une__item:first-child { border-top: 0; padding-top: 0; }
.snl-une__item:hover { background: #fafafa; }
.snl-une__item-thumb { width: 112px; height: 80px; flex-shrink: 0; overflow: hidden; background: #f4f4f5; }
.snl-une__item-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.snl-une__item:hover .snl-une__item-thumb img { transform: scale(1.05); }
.snl-une__item-body { flex: 1; min-width: 0; display: flex; flex-direction: column; justify-content: space-between; }
.snl-une__item-body h4 { font-weight: 700; color: #18181b; font-size: 14px; line-height: 1.35; margin: 0.5rem 0 0.25rem; transition: color .2s; }
.snl-une__item:hover .snl-une__item-body h4 { color: var(--snl-red); }
.snl-une__item-time { color: #a1a1aa; font-size: 12px; font-family: var(--snl-font-mono); }
.snl-une__tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; padding-top: 1.5rem; border-top: 1px solid #f4f4f5; }
.snl-tab { padding: 0.5rem 1.25rem; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; border: 0; cursor: pointer; background: #f4f4f5; color: #71717a; transition: all .2s; border-radius: 2px; }
.snl-tab:hover { background: #e4e4e7; color: #27272a; }
.snl-tab.is-active { background: var(--snl-red); color: #fff; }
.snl-une__all { margin-left: auto; display: flex; align-items: center; gap: 0.375rem; font-size: 12px; font-weight: 700; color: #a1a1aa; text-transform: uppercase; letter-spacing: 0.1em; text-decoration: none; transition: color .2s; }
.snl-une__all:hover { color: var(--snl-red); }

/* Onglets de catégories (barre blanche sous le héros Actualités) */
.snl-cattabs { background: #fff; border-bottom: 1px solid #ececec; }
.snl-cattabs__inner { max-width: var(--snl-container); margin-inline: auto; display: flex; gap: 0; overflow-x: auto; padding-inline: clamp(1rem,4vw,2rem); scrollbar-width: none; }
.snl-cattabs__inner::-webkit-scrollbar { display: none; }
.snl-cattabs__tab { padding: 1.1rem 1.3rem; font-family: var(--snl-font-mono); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: #71717a; white-space: nowrap; border-bottom: 2px solid transparent; transition: color .2s, border-color .2s; }
.snl-cattabs__tab:hover { color: #27272a; }
.snl-cattabs__tab.is-active { color: var(--snl-red); border-bottom-color: var(--snl-red); }
.snl-cattabs button.snl-cattabs__tab { background: none; border-top: 0; border-left: 0; border-right: 0; cursor: pointer; }

/* Page Podcasts : barre de filtre pleine largeur + grille centrée */
.snl-podwrap__inner { padding-block: 2.5rem; }

/* Lecteur intégré (lightbox) — vidéo/audio joués SUR le site */
.snl-player[hidden] { display: none; }
.snl-player { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; padding: clamp(1rem,4vw,3rem); }
.snl-player__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.82); backdrop-filter: blur(4px); }
.snl-player__dialog { position: relative; width: 100%; max-width: 980px; }
.snl-player__close { position: absolute; top: -2.6rem; right: 0; width: 2.2rem; height: 2.2rem; border: 0; background: none; color: #fff; font-size: 2rem; line-height: 1; cursor: pointer; opacity: .85; transition: opacity .2s; }
.snl-player__close:hover { opacity: 1; }
.snl-player__frame { position: relative; background: #000; border-radius: 8px; overflow: hidden; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.snl-player__frame--video { aspect-ratio: 16 / 9; }
.snl-player__frame--video iframe { position: absolute; inset: 0; width: 100%; height: 100%; }
.snl-player__frame--audio { background: transparent; box-shadow: none; }
.snl-player__frame--audio iframe { width: 100%; height: 152px; display: block; }

/* Lecteur intégré sur la page single du podcast */
.snl-single__player { margin-bottom: 2rem; }
.snl-single__player--video { position: relative; aspect-ratio: 16 / 9; background: #000; border-radius: 8px; overflow: hidden; }
.snl-single__player--video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.snl-single__player--audio iframe { width: 100%; border: 0; border-radius: 8px; }
.snl-single__player-fallback { margin-bottom: 2rem; }

/* Catégorie badge */
.snl-cat { display: inline-block; color: #fff; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.1em; padding: 0.125rem 0.5rem; line-height: 1; font-family: var(--snl-font-mono); border-radius: 2px; background: var(--snl-red); }

@media (max-width: 1023px) {
  .snl-une__featured, .snl-une__side { grid-column: span 12; }
}

/* ==========================================================================
   MÉDIA + AGENCE (#080808)
   ========================================================================== */
.snl-agence { background: #080808; color: #fff; }
.snl-agence__head { padding: 5rem clamp(2rem,4vw,3.5rem) 4rem; max-width: var(--snl-container); margin-inline: auto; border-bottom: 1px solid rgba(255,255,255,.06); }
.snl-overline { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 2.5rem; }
.snl-overline__bar { display: none; } /* souligné rouge retiré */
.snl-overline span { font-family: var(--snl-font-mono); font-size: 10px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.35em; color: var(--snl-red); }
.snl-agence__head-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 2rem; align-items: end; }
.snl-agence__title { grid-column: span 7; font-family: var(--snl-font-serif); font-weight: 700; line-height: 1.04; margin: 0; font-size: clamp(2.6rem, 5vw, 5rem); }
.snl-agence__title span { color: var(--snl-red); }
.snl-agence__aside { grid-column: span 5; padding-left: 4rem; display: flex; flex-direction: column; justify-content: flex-end; gap: 1.5rem; }
.snl-agence__aside p { color: rgba(255,255,255,.4); font-size: 15px; line-height: 1.7; max-width: 24rem; margin: 0; }
.snl-agence__aside .snl-btn { align-self: flex-start; border: 1px solid rgba(255,255,255,.2); color: #fff; background: transparent; }
.snl-agence__aside .snl-btn:hover { border-color: var(--snl-red); background: var(--snl-red); }

/* Capability cards */
.snl-caps { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.06); }
.snl-cap { position: relative; overflow: hidden; height: 540px; border-right: 1px solid rgba(255,255,255,.06); }
.snl-cap:last-child { border-right: 0; }
.snl-cap__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.25,.46,.45,.94); }
.snl-cap:hover .snl-cap__img { transform: scale(1.07); }
.snl-cap__grad { position: absolute; inset: 0; background: linear-gradient(to top, #080808, transparent); opacity: .82; transition: opacity .5s; }
.snl-cap:hover .snl-cap__grad { opacity: .97; }
.snl-cap__num { position: absolute; top: 2rem; left: 2rem; z-index: 10; font-family: var(--snl-font-mono); font-size: 10px; font-weight: 900; letter-spacing: 0.35em; text-transform: uppercase; color: rgba(255,255,255,.25); transition: color .3s; }
.snl-cap:hover .snl-cap__num { color: var(--snl-red); }
.snl-cap__arrow { position: absolute; top: 2rem; right: 2rem; z-index: 10; color: #fff; opacity: 0; transform: translate(4px,-4px); transition: all .3s; }
.snl-cap:hover .snl-cap__arrow { opacity: 1; transform: none; }
.snl-cap__body { position: absolute; inset-inline: 0; bottom: 0; z-index: 10; padding: 0 2rem 2rem; transform: translateY(100px); transition: transform .5s cubic-bezier(.25,.46,.45,.94); }
.snl-cap:hover .snl-cap__body { transform: none; }
.snl-cap__desc { color: rgba(255,255,255,.6); font-size: 13px; line-height: 1.7; margin: 0 0 0.75rem; opacity: 0; transition: opacity .3s .12s; }
.snl-cap:hover .snl-cap__desc { opacity: 1; }
.snl-cap__line { display: none; } /* souligné rouge retiré */
.snl-cap__name { font-family: var(--snl-font-serif); font-weight: 700; color: #fff; line-height: 1.15; margin: 0; font-size: clamp(1.5rem, 2vw, 2.1rem); }
.snl-cap__tag { color: rgba(255,255,255,.3); font-size: 11px; font-family: var(--snl-font-mono); text-transform: uppercase; letter-spacing: 0.05em; margin: 0.375rem 0 0; }
.snl-cap__sweep { position: absolute; bottom: 0; inset-inline: 0; height: 2px; background: var(--snl-red); transform: scaleX(0); transform-origin: left; transition: transform .5s cubic-bezier(.25,.46,.45,.94); z-index: 20; }
.snl-cap:hover .snl-cap__sweep { transform: scaleX(1); }

/* Metrics strip */
.snl-metrics { border-top: 1px solid rgba(255,255,255,.06); }
.snl-metrics__grid { max-width: var(--snl-container); margin-inline: auto; display: grid; grid-template-columns: repeat(4, 1fr); }
.snl-metric { padding: 3rem clamp(1.5rem,2vw,3rem); border-left: 1px solid rgba(255,255,255,.06); }
.snl-metric:first-child { border-left: 0; }
.snl-metric__num { font-family: var(--snl-font-serif); font-weight: 400; font-size: clamp(3.2rem,5vw,5rem); line-height: 1; letter-spacing: -0.02em; color: #fff; margin-bottom: 1rem; }
.snl-metric__num span { color: var(--snl-red); }
.snl-metric__line { display: none; } /* souligné rouge retiré */
.snl-metric__label { color: #fff; font-weight: 600; font-size: 15px; margin: 0 0 0.25rem; }
.snl-metric__sub { font-family: var(--snl-font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: 0.22em; color: rgba(255,255,255,.25); margin: 0; }

/* Responsive — grilles home sans collapse (agence-head / caps / metrics / mags) */
@media (max-width: 900px) {
  .snl-agence__head-grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .snl-agence__title, .snl-agence__aside { grid-column: auto; }
  .snl-agence__aside { padding-left: 0; }
  .snl-caps { grid-template-columns: 1fr 1fr; }
  .snl-cap { height: 420px; }
  .snl-cap:nth-child(2n) { border-right: 0; }
  .snl-metrics__grid { grid-template-columns: 1fr 1fr; }
  .snl-metric { border-left: 0; border-top: 1px solid rgba(255,255,255,.06); }
  .snl-mags { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .snl-caps { grid-template-columns: 1fr; }
  .snl-cap { height: 360px; border-right: 0; }
}

/* Trusted-by */
.snl-trust { border-top: 1px solid rgba(255,255,255,.06); }
.snl-trust__inner { max-width: var(--snl-container); margin-inline: auto; padding: 1.75rem clamp(2rem,4vw,3.5rem); display: flex; flex-wrap: wrap; align-items: center; row-gap: 0.75rem; }
.snl-trust__label { font-family: var(--snl-font-mono); font-size: 9px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.4em; color: rgba(255,255,255,.2); margin-right: 2.5rem; flex-shrink: 0; }
.snl-trust__item { color: rgba(255,255,255,.3); font-weight: 500; font-size: 13px; transition: color .2s; }
.snl-trust__item:hover { color: rgba(255,255,255,.6); }
.snl-trust__dot { color: rgba(255,255,255,.1); margin-inline: 1rem; font-size: 12px; }

/* ==========================================================================
   À PROPOS — Notre histoire (2 colonnes claires, réf. capture client)
   ========================================================================== */
.snl-story { background: #fff; padding: clamp(3rem,6vw,5.5rem) clamp(1rem,4vw,2rem); }
.snl-story__inner { max-width: var(--snl-container); margin-inline: auto; display: grid; grid-template-columns: 1fr 1.15fr; gap: clamp(2.5rem,5vw,5rem); align-items: start; }
.snl-story__eyebrow { font-family: var(--snl-font-mono); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.35em; color: var(--snl-red); margin: 0 0 1.5rem; }
.snl-story__title { font-family: var(--snl-font-serif); font-weight: 400; color: var(--snl-charcoal); font-size: clamp(2.2rem,4vw,3.4rem); line-height: 1.08; margin: 0; }
.snl-story__title span { color: var(--snl-red); }
.snl-story__body { color: #52525b; font-size: 16px; line-height: 1.8; }
.snl-story__body p { margin: 0 0 1.5rem; }
.snl-story__body strong { color: var(--snl-charcoal); font-weight: 700; }
.snl-story__problem { background: #fdeaea; border-left: 3px solid var(--snl-red); padding: 1.5rem 1.75rem; margin-top: 2rem; }
.snl-story__problem-label { font-family: var(--snl-font-mono); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.2em; color: var(--snl-red); margin: 0 0 0.75rem; }
.snl-story__problem-text { color: #6b2b2b; font-size: 15px; line-height: 1.7; }
.snl-story__problem-text p { margin: 0; }
.snl-story__problem-text strong { color: #4a1f1f; font-weight: 700; }
@media (max-width: 860px) { .snl-story__inner { grid-template-columns: 1fr; } }

/* Page Contact — coordonnées + formulaire (2 colonnes) */
.snl-contact { background: #fff; padding: clamp(3rem,6vw,5.5rem) clamp(1rem,4vw,2rem); }
.snl-contact__inner { max-width: var(--snl-container); margin-inline: auto; display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(2.5rem,5vw,5rem); align-items: start; }
.snl-contact__eyebrow, .snl-contact__form-eyebrow { font-family: var(--snl-font-mono); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.3em; color: var(--snl-red); margin: 0 0 1rem; }
.snl-contact__title { font-family: var(--snl-font-serif); font-weight: 400; color: var(--snl-charcoal); font-size: clamp(1.9rem,3.2vw,2.8rem); line-height: 1.08; margin: 0 0 1.25rem; }
.snl-contact__text { color: #52525b; font-size: 16px; line-height: 1.7; margin: 0 0 2.5rem; max-width: 26rem; }
.snl-contact__cards { display: flex; flex-direction: column; gap: 0.75rem; }
.snl-contact__card { display: flex; align-items: center; gap: 1rem; border: 1px solid #ececec; border-radius: 8px; padding: 1.1rem 1.25rem; transition: border-color .2s, box-shadow .2s; }
.snl-contact__card[href]:hover { border-color: var(--snl-red); box-shadow: 0 6px 18px rgba(0,0,0,.05); }
.snl-contact__ico { width: 40px; height: 40px; flex-shrink: 0; border-radius: 50%; background: #fdeaea; color: var(--snl-red); display: inline-flex; align-items: center; justify-content: center; }
.snl-contact__val { display: block; color: var(--snl-charcoal); font-weight: 700; font-size: 14px; }
.snl-contact__sub { display: block; font-family: var(--snl-font-mono); font-size: 9px; text-transform: uppercase; letter-spacing: 0.12em; color: #a1a1aa; margin-top: 0.25rem; }
.snl-contact__form { background: #fafafa; border: 1px solid #ececec; border-radius: 12px; padding: clamp(1.5rem,3vw,2.5rem); }
.snl-contact__form-title { font-family: var(--snl-font-serif); font-weight: 400; color: var(--snl-charcoal); font-size: clamp(1.4rem,2.2vw,1.9rem); line-height: 1.1; margin: 0 0 1.75rem; }
.snl-contact__form .snl-form { max-width: none; }
@media (max-width: 860px) { .snl-contact__inner { grid-template-columns: 1fr; } }

/* Partenaires — marquee animée (sombre, réf. capture client) */
.snl-pmq { background: #080808; color: #fff; padding-block: clamp(2.5rem,5vw,4rem); overflow: hidden; }
.snl-pmq__inner { max-width: var(--snl-container); margin-inline: auto; padding-inline: clamp(2rem,4vw,3.5rem); }
.snl-pmq__track { overflow: hidden; padding-block: 0.55rem; }
.snl-pmq__marquee { display: inline-flex; gap: 0.75rem; white-space: nowrap; will-change: transform; }
.snl-pmq__marquee--l { animation: snl-pmq-left 38s linear infinite; }
.snl-pmq__marquee--r { animation: snl-pmq-right 38s linear infinite; }
.snl-pmq__track:hover .snl-pmq__marquee { animation-play-state: paused; }
@keyframes snl-pmq-left { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes snl-pmq-right { from { transform: translateX(-50%); } to { transform: translateX(0); } }
.snl-pmq__chip { display: inline-flex; align-items: center; gap: 0.65rem; background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.08); border-radius: 6px; padding: 0.7rem 1.1rem 0.7rem 0.7rem; flex-shrink: 0; }
.snl-pmq__dot { width: 22px; height: 22px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-family: var(--snl-font-mono); font-size: 10px; font-weight: 700; color: #fff; flex-shrink: 0; }
.snl-pmq__name { font-size: 13px; font-weight: 600; color: rgba(255,255,255,.75); }
.snl-pmq__stats { display: flex; align-items: center; gap: clamp(1.5rem,4vw,3.5rem); border-top: 1px solid rgba(255,255,255,.06); margin-top: 1.5rem; padding-top: 1.75rem; flex-wrap: wrap; }
.snl-pmq__stat { display: flex; align-items: baseline; gap: 0.6rem; }
.snl-pmq__stat-v { font-family: var(--snl-font-serif); font-size: 1.6rem; line-height: 1; }
.snl-pmq__stat-l { font-family: var(--snl-font-mono); font-size: 9px; text-transform: uppercase; letter-spacing: 0.12em; color: rgba(255,255,255,.4); max-width: 6rem; line-height: 1.4; }
.snl-pmq__names { margin-left: auto; font-family: var(--snl-font-mono); font-size: 9px; text-transform: uppercase; letter-spacing: 0.1em; color: rgba(255,255,255,.25); }

/* CTA Travaillons ensemble (sombre, réf. capture client) */
.snl-cta2 { background: #080808; color: #fff; padding: clamp(3rem,7vw,6rem) clamp(1rem,4vw,2rem); }
.snl-cta2__inner { max-width: var(--snl-container); margin-inline: auto; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2.5rem,5vw,5rem); align-items: center; }
.snl-cta2__eyebrow { font-family: var(--snl-font-mono); font-size: 9px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.4em; color: var(--snl-red); margin: 0 0 1.75rem; }
.snl-cta2__title { font-family: var(--snl-font-serif); font-weight: 400; color: #fff; font-size: clamp(2.2rem,4vw,3.6rem); line-height: 1.08; margin: 0 0 1.5rem; }
.snl-cta2__title span { color: var(--snl-red); }
.snl-cta2__text { color: rgba(255,255,255,.45); font-size: 16px; line-height: 1.7; max-width: 26rem; margin: 0; }
.snl-cta2__right { display: flex; flex-direction: column; gap: 1rem; }
.snl-cta2__card { position: relative; display: block; background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.08); padding: 1.1rem 1.4rem; transition: border-color .2s, background .2s; }
.snl-cta2__card:hover { border-color: rgba(212,43,43,.5); background: rgba(255,255,255,.05); }
.snl-cta2__card-main { display: flex; align-items: center; gap: 0.6rem; color: #fff; font-weight: 700; font-size: 15px; }
.snl-cta2__card-ico { color: var(--snl-red); display: inline-flex; }
.snl-cta2__card-sub { display: block; font-family: var(--snl-font-mono); font-size: 9px; text-transform: uppercase; letter-spacing: 0.15em; color: rgba(255,255,255,.35); margin-top: 0.35rem; }
.snl-cta2__card-arrow { position: absolute; top: 1.1rem; right: 1.2rem; color: rgba(255,255,255,.3); }
.snl-cta2__btn { display: block; text-align: center; background: var(--snl-red); color: #fff; font-family: var(--snl-font-sans); font-weight: 700; text-transform: uppercase; letter-spacing: 0.15em; font-size: 12px; padding: 1.1rem; transition: background .2s; }
.snl-cta2__btn:hover { background: #b82323; }
@media (max-width: 860px) { .snl-cta2__inner { grid-template-columns: 1fr; } }

/* Une communauté engagée — rangée de stats sociales (réf. capture client) */
.snl-community { background: #f7f6f5; padding: clamp(2.5rem,5vw,4rem) clamp(1rem,4vw,2rem); }
.snl-community__inner { max-width: var(--snl-container); margin-inline: auto; }
.snl-community__eyebrow { font-family: var(--snl-font-mono); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.35em; color: var(--snl-red); margin: 0 0 2.5rem; }
.snl-community__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; }
.snl-community__row { display: flex; align-items: baseline; gap: 0.6rem; }
.snl-community__icon { font-size: 0.95rem; }
.snl-community__value { font-family: var(--snl-font-serif); font-weight: 400; color: var(--snl-charcoal); font-size: clamp(1.6rem,2.6vw,2.1rem); line-height: 1; }
.snl-community__label { font-family: var(--snl-font-mono); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: #a1a1aa; margin: 0.6rem 0 0; }
@media (max-width: 768px) { .snl-community__grid { grid-template-columns: 1fr 1fr; gap: 2rem 1rem; } }

/* Nos formats — 3 cartes claires (réf. capture client) */
.snl-formats { background: #f4f4f5; padding: clamp(3rem,6vw,5rem) clamp(1rem,4vw,2rem); }
.snl-formats__inner { max-width: var(--snl-container); margin-inline: auto; }
.snl-formats__eyebrow { font-family: var(--snl-font-mono); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.35em; color: var(--snl-red); margin: 0 0 1rem; }
.snl-formats__heading { font-family: var(--snl-font-serif); font-weight: 400; color: var(--snl-charcoal); font-size: clamp(2rem,3.5vw,3rem); line-height: 1.05; margin: 0 0 2.5rem; }
.snl-formats__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.snl-format { background: #fff; padding: 2rem; }
.snl-format__icon { font-size: 1.6rem; margin-bottom: 1.5rem; }
.snl-format__title { font-family: var(--snl-font-serif); font-weight: 400; color: var(--snl-charcoal); font-size: 1.4rem; line-height: 1.1; margin: 0 0 0.9rem; }
.snl-format__desc { color: #52525b; font-size: 14px; line-height: 1.7; margin: 0 0 1.5rem; }
.snl-format__tag { display: inline-block; font-family: var(--snl-font-mono); font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: #71717a; border: 1px solid #e4e4e7; padding: 0.4rem 0.7rem; }
@media (max-width: 768px) { .snl-formats__grid { grid-template-columns: 1fr; } }

/* Nos valeurs — 4 colonnes lettrées (réf. capture client) */
.snl-values { background: #fff; padding: clamp(3rem,6vw,5rem) clamp(1rem,4vw,2rem); }
.snl-values__inner { max-width: var(--snl-container); margin-inline: auto; }
.snl-values__eyebrow { font-family: var(--snl-font-mono); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.35em; color: var(--snl-red); margin: 0 0 1rem; }
.snl-values__heading { font-family: var(--snl-font-serif); font-weight: 400; color: var(--snl-charcoal); font-size: clamp(2rem,3.5vw,3rem); line-height: 1.05; margin: 0 0 1rem; }
.snl-values__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.snl-value { padding: 3rem clamp(1rem,2vw,2rem) 1rem; border-top: 1px solid #ececec; }
.snl-value + .snl-value { border-left: 1px solid #ececec; }
.snl-value__letter { font-family: var(--snl-font-serif); font-weight: 400; font-size: 4rem; line-height: 1; color: #ececec; display: block; margin-bottom: 1.5rem; }
.snl-value__title { font-family: var(--snl-font-serif); font-weight: 400; color: var(--snl-charcoal); font-size: 1.3rem; line-height: 1.15; margin: 0 0 1rem; }
.snl-value__desc { color: #52525b; font-size: 14px; line-height: 1.7; margin: 0; }
@media (max-width: 900px) { .snl-values__grid { grid-template-columns: 1fr 1fr; } .snl-value:nth-child(odd) { border-left: 0; } }
@media (max-width: 520px) { .snl-values__grid { grid-template-columns: 1fr; } .snl-value { border-left: 0 !important; } }

/* Nos services — grille numérotée 2×2 (réf. capture client) */
.snl-services { background: #fff; padding: clamp(3rem,6vw,5rem) clamp(1rem,4vw,2rem); }
.snl-services__inner { max-width: var(--snl-container); margin-inline: auto; }
.snl-services__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; margin-bottom: 1rem; }
.snl-services__eyebrow { font-family: var(--snl-font-mono); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.35em; color: var(--snl-red); margin: 0 0 1rem; }
.snl-services__heading { font-family: var(--snl-font-serif); font-weight: 400; color: var(--snl-charcoal); font-size: clamp(2rem,3.5vw,3rem); line-height: 1.05; margin: 0; }
.snl-services__cta { flex-shrink: 0; display: inline-flex; align-items: center; gap: 0.5rem; border: 1px solid #d4d4d8; color: var(--snl-charcoal); font-family: var(--snl-font-mono); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.18em; padding: 0.8rem 1.4rem; transition: all .2s; }
.snl-services__cta:hover { border-color: var(--snl-red); color: var(--snl-red); }
.snl-services__grid { display: grid; grid-template-columns: 1fr 1fr; }
.snl-services__item { padding: 3rem clamp(0rem,3vw,3rem) 3rem 0; border-top: 1px solid #ececec; }
.snl-services__item:nth-child(even) { border-left: 1px solid #ececec; padding-left: clamp(1.5rem,3vw,3.5rem); }
.snl-services__numrow { display: flex; align-items: center; gap: 1.25rem; margin-bottom: 1.75rem; }
.snl-services__num { font-family: var(--snl-font-serif); font-weight: 400; font-size: 2.4rem; line-height: 1; color: #e4e4e7; }
.snl-services__rule { flex: 1; height: 1px; background: #ececec; }
.snl-services__title { font-family: var(--snl-font-serif); font-weight: 400; color: var(--snl-charcoal); font-size: 1.6rem; line-height: 1.1; margin: 0 0 1rem; }
.snl-services__desc { color: #52525b; font-size: 15px; line-height: 1.7; margin: 0 0 1.5rem; max-width: 32rem; }
.snl-services__tags { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.snl-services__tag { font-family: var(--snl-font-mono); font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: #71717a; border: 1px solid #e4e4e7; padding: 0.4rem 0.7rem; }
@media (max-width: 768px) {
  .snl-services__grid { grid-template-columns: 1fr; }
  .snl-services__item:nth-child(even) { border-left: 0; padding-left: 0; }
  .snl-services__head { flex-direction: column; }
}

/* Portfolio — Nos réalisations web (grille de mockups) */
.snl-portfolio__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.snl-portfolio__item { display: block; }
.snl-portfolio__shot { overflow: hidden; border-radius: 2px; }
.snl-portfolio__shot img { width: 100%; height: auto; display: block; transition: transform .5s; }
.snl-portfolio__item:hover .snl-portfolio__shot img { transform: scale(1.03); }
@media (max-width: 900px) { .snl-portfolio__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .snl-portfolio__grid { grid-template-columns: 1fr; } }

/* Magazines — disposition « couvertures » (couverture nette + date + titre) */
.snl-mags--covers .snl-mag__cover { aspect-ratio: 3 / 4; border-radius: 2px; box-shadow: 0 10px 30px rgba(0,0,0,.12); }
.snl-mags--covers .snl-mag__cover img { transition: transform .5s; }
.snl-mags--covers .snl-mag:hover .snl-mag__cover img { transform: scale(1.04); }
.snl-mags--covers .snl-mag__date { font-family: var(--snl-font-mono); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.15em; color: #a1a1aa; margin: 1rem 0 0.5rem; }
.snl-mags--covers .snl-mag__theme { font-family: var(--snl-font-serif); font-weight: 400; font-size: 1.15rem; line-height: 1.2; color: var(--snl-charcoal); margin: 0; }

/* ==========================================================================
   HÉROS À PROPOS / AGENCE — 2 colonnes sombres (réf. capture client)
   ========================================================================== */
.snl-abouthero { background: #080808; color: #fff; overflow: hidden; }
.snl-abouthero__inner { max-width: var(--snl-container); margin-inline: auto; padding-inline: clamp(2rem,4vw,3.5rem); display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; min-height: 580px; }
.snl-abouthero__left { padding-block: clamp(3rem,6vw,6rem); }
.snl-abouthero__eyebrow { font-family: var(--snl-font-mono); font-size: 9px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.45em; color: var(--snl-red); margin: 0 0 2rem; }
.snl-abouthero__title { font-family: var(--snl-font-serif); font-weight: 400; color: #fff; font-size: clamp(3rem,5vw,5.5rem); line-height: 1; margin: 0 0 2rem; }
.snl-abouthero__title em { font-style: normal; color: var(--snl-red); }
.snl-abouthero__text { color: rgba(255,255,255,.5); font-size: 16px; line-height: 1.7; max-width: 28rem; margin: 0 0 2.5rem; }
.snl-abouthero__cta { display: flex; align-items: center; gap: 1.75rem; flex-wrap: wrap; }
.snl-abouthero__btn { display: inline-flex; align-items: center; gap: 0.5rem; background: var(--snl-red); color: #fff; font-family: var(--snl-font-sans); font-weight: 700; text-transform: uppercase; letter-spacing: 0.15em; font-size: 11px; padding: 0.95rem 1.6rem; transition: background .2s; }
.snl-abouthero__btn:hover { background: #b82323; }
.snl-abouthero__link { font-family: var(--snl-font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.15em; color: rgba(255,255,255,.4); transition: color .2s; }
.snl-abouthero__link:hover { color: #fff; }
.snl-abouthero__right { border-left: 1px solid rgba(255,255,255,.06); padding-left: 4rem; display: flex; flex-direction: column; justify-content: center; gap: 2.5rem; }
.snl-abouthero__tags { display: flex; flex-direction: column; gap: 0.75rem; }
.snl-abouthero__tags span { font-family: var(--snl-font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: 0.15em; color: rgba(255,255,255,.2); }
.snl-abouthero__quote { font-family: var(--snl-font-serif); font-style: italic; font-weight: 400; font-size: clamp(1.2rem,1.8vw,1.6rem); line-height: 1.5; color: rgba(255,255,255,.7); margin: 0; padding: 0; border: 0; }
.snl-abouthero__stats { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; border-top: 1px solid rgba(255,255,255,.06); padding-top: 2rem; }
.snl-abouthero__stat-v { font-family: var(--snl-font-serif); font-size: 1.8rem; line-height: 1; margin-bottom: 0.25rem; }
.snl-abouthero__stat-l { font-family: var(--snl-font-mono); font-size: 9px; text-transform: uppercase; letter-spacing: 0.15em; color: rgba(255,255,255,.25); margin: 0; }
@media (max-width: 1023px) {
  .snl-abouthero__inner { grid-template-columns: 1fr; gap: 0; min-height: 0; }
  .snl-abouthero__right { display: none; }
}

/* Generic dark sub-section — fond posé directement (robustesse : reste sombre
   même si le parent .snl-agence ne s'applique pas, ex. CSS thème mise en cache). */
.snl-darkblock { border-top: 1px solid rgba(255,255,255,.06); background: #080808; color: #fff; }
.snl-darkblock__inner { max-width: var(--snl-container); margin-inline: auto; padding: 3.5rem clamp(2rem,4vw,3.5rem) 4rem; }

/* Variante CLAIRE d'un bloc (ex. « Socialnetlink Mag ») : fond blanc + texte sombre */
.snl-darkblock--light { background: #fff; border-top: 0; color: var(--snl-charcoal); }
.snl-darkblock--light .snl-h3-serif { color: var(--snl-charcoal); }
.snl-darkblock--light .snl-block-head__note { color: var(--snl-muted); }
.snl-darkblock--light .snl-mag__theme { color: var(--snl-charcoal); }
.snl-darkblock--light .snl-mag:hover .snl-mag__theme { color: var(--snl-red); }
.snl-darkblock--light .snl-mag__desc { color: var(--snl-muted); }
.snl-eyebrow-red { font-family: var(--snl-font-mono); font-size: 9px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.4em; color: var(--snl-red); margin: 0 0 0.75rem; }
.snl-h3-serif { font-family: var(--snl-font-serif); font-weight: 400; color: #fff; line-height: 1; margin: 0; font-size: clamp(1.8rem,3vw,2.6rem); }
.snl-block-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-bottom: 2.5rem; }
.snl-block-head__note { font-family: var(--snl-font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em; color: rgba(255,255,255,.25); }

/* Magazines */
.snl-mags { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.snl-mag__cover { position: relative; overflow: hidden; aspect-ratio: 3/4; }
.snl-mag__cover img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform .7s; }
.snl-mag:hover .snl-mag__cover img { transform: scale(1.05); }
.snl-mag__cover::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.6), transparent 50%); }
.snl-mag__status { position: absolute; top: 0.75rem; right: 0.75rem; z-index: 2; font-family: var(--snl-font-mono); font-size: 9px; text-transform: uppercase; letter-spacing: 0.1em; padding: 0.25rem 0.5rem; background: rgba(0,0,0,.6); color: rgba(255,255,255,.6); border: 1px solid rgba(255,255,255,.2); }
.snl-mag__status--up { background: var(--snl-red); color: #fff; border: 0; }
.snl-mag__num { position: absolute; bottom: 0.75rem; left: 1rem; z-index: 2; font-family: var(--snl-font-serif); font-size: 1.4rem; color: rgba(255,255,255,.9); }
.snl-mag__theme { color: #fff; font-weight: 600; font-size: 13px; line-height: 1.35; margin: 1rem 0 0.375rem; transition: color .3s; }
.snl-mag:hover .snl-mag__theme { color: var(--snl-red); }
.snl-mag__desc { color: rgba(255,255,255,.3); font-size: 11px; line-height: 1.7; margin: 0; }

/* Personnalités — portraits ronds N&B sur une ligne (réf. capture client) */
.snl-ppl__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; margin-bottom: 3rem; }
.snl-ppl__head .snl-eyebrow-red { letter-spacing: 0.35em; }
.snl-ppl__count { text-align: right; line-height: 1; flex-shrink: 0; }
.snl-ppl__count-num { font-family: var(--snl-font-serif); font-weight: 400; color: #fff; font-size: clamp(2.4rem, 4vw, 3.4rem); line-height: 1; display: block; text-shadow: 1.5px 0 rgba(212,43,43,.45), -1.5px 0 rgba(0,196,221,.35); }
.snl-ppl__count-label { font-family: var(--snl-font-mono); font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.3em; color: rgba(255,255,255,.4); }

.snl-ppl__row { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1.5rem; }
.snl-person { text-align: center; }
.snl-person__num { display: block; font-family: var(--snl-font-mono); font-size: 10px; font-weight: 700; letter-spacing: 0.2em; color: var(--snl-red); margin-bottom: 0.55rem; }
.snl-person__num::after { content: ""; display: block; width: 1px; height: 8px; margin: 0.35rem auto 0; background: rgba(212,43,43,.4); }
.snl-person__img { position: relative; width: clamp(84px, 8.5vw, 128px); aspect-ratio: 1/1; border-radius: 50%; overflow: hidden; margin: 0 auto 0.9rem; border: 1px solid rgba(255,255,255,.12); box-shadow: 0 0 0 4px rgba(255,255,255,.02); }
.snl-person__img img { width: 100%; height: 100%; object-fit: cover; object-position: top; filter: grayscale(1); transition: all .5s; }
.snl-person:hover .snl-person__img { border-color: rgba(212,43,43,.6); }
.snl-person:hover .snl-person__img img { filter: grayscale(0); transform: scale(1.05); }
.snl-person__name { font-family: var(--snl-font-serif); font-weight: 400; color: #fff; font-size: 15px; line-height: 1.25; margin: 0; transition: color .3s; }
.snl-person:hover .snl-person__name { color: var(--snl-red); }
.snl-person__div { display: block; width: 18px; height: 1px; background: rgba(255,255,255,.22); margin: 0.5rem auto; }
.snl-person__role { color: rgba(255,255,255,.35); font-family: var(--snl-font-mono); font-size: 9.5px; text-transform: uppercase; letter-spacing: 0.08em; line-height: 1.5; margin: 0; }
.snl-person--hidden { display: none; }
.snl-person--more { cursor: pointer; }
.snl-person__cluster { width: clamp(84px,8.5vw,128px); aspect-ratio: 1/1; border-radius: 50%; margin: 0 auto 0.9rem; border: 1px solid rgba(255,255,255,.12); display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 5px; padding: 16px; transition: border-color .3s; }
.snl-person__cluster img { width: 40%; aspect-ratio: 1/1; border-radius: 50%; object-fit: cover; object-position: top; filter: grayscale(1); }
.snl-person--more:hover .snl-person__cluster { border-color: rgba(212,43,43,.6); }
.snl-person--more:hover .snl-person__name { color: var(--snl-red); }

.snl-ppl__cta-wrap { text-align: center; margin-top: 3.5rem; }
.snl-ppl__cta { display: inline-flex; align-items: center; gap: 0.6rem; border: 1px solid rgba(255,255,255,.2); color: #fff; font-family: var(--snl-font-mono); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.18em; padding: 1rem 2.1rem; transition: all .3s; }
.snl-ppl__cta:hover { border-color: var(--snl-red); background: var(--snl-red); }
.snl-ppl__cta svg { width: 14px; height: 14px; }

/* Réalisations web */
.snl-realis { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1px; background: rgba(255,255,255,.06); }
.snl-realis__count { font-family: var(--snl-font-serif); color: var(--snl-red); font-size: 3rem; line-height: 1; display: block; }
.snl-realis__count-sub { font-family: var(--snl-font-mono); font-size: 9px; text-transform: uppercase; letter-spacing: 0.1em; color: rgba(255,255,255,.25); }
.snl-realis__cell { background: #080808; padding: 2rem 1.75rem; transition: background .3s; }
.snl-realis__cell:hover { background: rgba(255,255,255,.03); }
.snl-realis__icon { color: rgba(255,255,255,.1); font-size: 1.5rem; margin-bottom: 1.25rem; transition: color .3s; }
.snl-realis__cell:hover .snl-realis__icon { color: rgba(212,43,43,.5); }
.snl-realis__big { font-family: var(--snl-font-serif); font-size: 2rem; line-height: 1; color: #fff; margin-bottom: 0.75rem; }
.snl-realis__label { color: #fff; font-weight: 600; font-size: 13px; margin: 0 0 0.5rem; }
.snl-realis__desc { color: rgba(255,255,255,.3); font-size: 11px; line-height: 1.7; margin: 0; }

/* Réalisations — variante CLAIRE (fond blanc, texte noir — réf. capture client) */
.snl-realis-sec--light { background: #fff; color: var(--snl-charcoal); }
.snl-realis-sec--light .snl-h3-serif { color: var(--snl-charcoal); }
.snl-realis-sec--light .snl-realis__count { color: var(--snl-red); }
.snl-realis-sec--light .snl-realis__count-sub { color: var(--snl-muted); }
.snl-realis-sec--light .snl-realis { background: #ececec; border-top: 1px solid #ececec; }
.snl-realis-sec--light .snl-realis__cell { background: #fff; }
.snl-realis-sec--light .snl-realis__cell:hover { background: #fafafa; }
.snl-realis-sec--light .snl-realis__icon { color: rgba(10,11,15,.14); }
.snl-realis-sec--light .snl-realis__cell:hover .snl-realis__icon { color: rgba(212,43,43,.55); }
.snl-realis-sec--light .snl-realis__big { color: var(--snl-charcoal); }
.snl-realis-sec--light .snl-realis__label { color: var(--snl-charcoal); }
.snl-realis-sec--light .snl-realis__desc { color: var(--snl-muted); }

@media (max-width: 1023px) {
  .snl-agence__title, .snl-agence__aside { grid-column: span 12; }
  .snl-agence__aside { padding-left: 0; }
  .snl-caps { grid-template-columns: 1fr; }
  .snl-cap { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.06); }
  .snl-metrics__grid { grid-template-columns: repeat(2, 1fr); }
  .snl-mags { grid-template-columns: repeat(2, 1fr); }
  .snl-ppl__row { grid-template-columns: repeat(4, 1fr); row-gap: 2.5rem; }
  .snl-realis { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .snl-ppl__head { flex-direction: column; gap: 1rem; }
  .snl-ppl__count { text-align: left; }
  .snl-ppl__row { grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
}

/* ==========================================================================
   CONTENUS PREMIUM
   ========================================================================== */
.snl-premium { background: var(--snl-black); color: #fff; }
.snl-premium__inner { padding-block: clamp(3.5rem, 6vw, 5rem); }
.snl-premium__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 2.5rem; }
.snl-premium__head h2 { font-family: var(--snl-font-sans); font-weight: 700; color: #fff; font-size: 13px; text-transform: uppercase; letter-spacing: 0.25em; margin: 0; }
.snl-link-all { display: flex; align-items: center; gap: 0.375rem; font-size: 11px; font-weight: 700; color: rgba(255,255,255,.3); text-transform: uppercase; letter-spacing: 0.1em; text-decoration: none; transition: color .2s; }
.snl-link-all:hover { color: var(--snl-red); }
.snl-premium__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: rgba(255,255,255,.05); }
.snl-pcard { background: var(--snl-black); transition: background .2s; cursor: pointer; display: flex; flex-direction: column; text-decoration: none; }
.snl-pcard:hover { background: #131316; }
.snl-pcard__media { position: relative; aspect-ratio: 16/9; overflow: hidden; }
.snl-pcard__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s; }
.snl-pcard:hover .snl-pcard__media img { transform: scale(1.05); }
.snl-pcard__media::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.4); transition: background .3s; }
.snl-pcard:hover .snl-pcard__media::after { background: rgba(0,0,0,.2); }
.snl-pcard__type { position: absolute; top: 0.75rem; left: 0.75rem; z-index: 2; color: #fff; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.1em; padding: 0.25rem 0.5rem; font-family: var(--snl-font-mono); }
.snl-pcard__play { position: absolute; inset: 0; z-index: 2; display: flex; align-items: center; justify-content: center; }
.snl-pcard__play span { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border-radius: 999px; border: 2px solid rgba(255,255,255,.4); background: rgba(0,0,0,.3); color: #fff; transition: all .3s; }
.snl-pcard:hover .snl-pcard__play span { background: var(--snl-red); border-color: var(--snl-red); }
.snl-pcard__body { padding: 1.25rem; flex: 1; display: flex; flex-direction: column; }
.snl-pcard__body h3 { font-weight: 700; color: #fff; font-size: 14px; line-height: 1.35; margin: 0 0 0.5rem; transition: color .2s; }
.snl-pcard:hover .snl-pcard__body h3 { color: var(--snl-red); }
.snl-pcard__body p { color: rgba(255,255,255,.4); font-size: 12px; line-height: 1.7; margin: 0; }
@media (max-width: 1023px) { .snl-premium__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .snl-premium__grid { grid-template-columns: 1fr; } }

/* ==========================================================================
   CITATION
   ========================================================================== */
.snl-quote { background: var(--snl-black-2); color: #fff; border-top: 1px solid rgba(255,255,255,.05); }
.snl-quote__inner { padding-block: clamp(4rem, 7vw, 6rem); display: grid; grid-template-columns: repeat(12, 1fr); gap: 2.5rem; align-items: center; }
.snl-quote__text { grid-column: span 9; }
.snl-quote__mark { color: rgba(255,255,255,.2); font-family: var(--snl-font-serif); font-size: 3.75rem; line-height: 1; margin: 0 0 1rem; }
.snl-quote__body { font-family: var(--snl-font-serif); font-weight: 700; color: #fff; line-height: 1.2; margin: 0 0 2rem; font-size: clamp(1.8rem, 3.5vw, 3rem); }
.snl-quote__body em { font-style: normal; color: var(--snl-red); }
.snl-quote__author { display: flex; align-items: center; gap: 1rem; }
.snl-quote__author-bar { display: none; } /* souligné rouge retiré */
.snl-quote__author strong { color: #fff; font-size: 14px; display: block; }
.snl-quote__author p { color: rgba(255,255,255,.4); font-size: 12px; font-family: var(--snl-font-mono); text-transform: uppercase; letter-spacing: 0.05em; margin: 0; }
.snl-quote__portrait { grid-column: span 3; aspect-ratio: 3/4; overflow: hidden; }
.snl-quote__portrait img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.25); }
@media (max-width: 1023px) { .snl-quote__text { grid-column: span 12; } .snl-quote__portrait { display: none; } }

/* ==========================================================================
   STATS
   ========================================================================== */
.snl-stats { background: var(--snl-black); border-top: 1px solid rgba(255,255,255,.05); }
.snl-stats__grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.snl-stat { padding: 3.5rem 2rem; text-align: center; display: flex; flex-direction: column; align-items: center; border-left: 1px solid rgba(255,255,255,.08); }
.snl-stat:first-child { border-left: 0; }
.snl-stat__num { font-family: var(--snl-font-mono); font-weight: 900; color: #fff; line-height: 1; margin-bottom: 1rem; font-variant-numeric: tabular-nums; font-size: clamp(3rem, 5.5vw, 5rem); }
.snl-stat__num span { color: var(--snl-red); }
.snl-stat__line { display: none; } /* souligné rouge retiré */
.snl-stat__label { color: rgba(255,255,255,.4); font-size: 11px; text-transform: uppercase; letter-spacing: 0.25em; font-family: var(--snl-font-mono); font-weight: 500; }
@media (max-width: 767px) { .snl-stats__grid { grid-template-columns: 1fr; } .snl-stat { border-left: 0; border-top: 1px solid rgba(255,255,255,.08); } .snl-stat:first-child { border-top: 0; } }

/* ==========================================================================
   PARTENAIRES & CLIENTS — « Ils nous font confiance » / « Nos partenaires »
   (cartes de logos par groupe — réf. capture client)
   ========================================================================== */
.snl-trust2 { background: #fff; padding: 3.5rem clamp(1rem,5vw,3rem) 4rem; }
.snl-trust2__inner { max-width: 1200px; margin-inline: auto; text-align: center; }
.snl-trust2__title { text-align: center; font-family: var(--snl-font-serif); font-weight: 700; color: #16243f; font-size: clamp(1.9rem,3.5vw,2.8rem); line-height: 1.1; margin: 0 0 2rem; }
.snl-trust2__title::after { content: ""; display: block; width: 64px; height: 2px; background: #16243f; opacity: .3; margin: 1rem auto 0; }
.snl-trust2__full { display: block; width: 100%; height: auto; margin: 0 auto; }

/* ==========================================================================
   NEWSLETTER
   ========================================================================== */
.snl-news { background: var(--snl-black); color: #fff; border-top: 1px solid rgba(255,255,255,.05); }
.snl-news__inner { padding-block: 3.5rem; text-align: center; }
.snl-news__title { font-weight: 700; color: #fff; font-size: clamp(15px, 2vw, 20px); margin: 0 0 1.5rem; }
.snl-news__form { display: flex; gap: 0.75rem; max-width: 32rem; margin-inline: auto; }
.snl-news__form input { flex: 1; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2); color: #fff; padding: 0.875rem 1.25rem; font-size: 14px; }
.snl-news__form input::placeholder { color: rgba(255,255,255,.35); }
.snl-news__form input:focus { outline: 0; border-color: var(--snl-red); }
.snl-news__form button { background: var(--snl-red); color: #fff; font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: 0.18em; padding: 0.875rem 1.75rem; border: 0; cursor: pointer; transition: all .2s; flex-shrink: 0; }
.snl-news__form button:hover { background: #fff; color: var(--snl-red); }
.snl-news__social { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: 1.25rem; }
.snl-news__social a { color: rgba(255,255,255,.3); font-size: 14px; font-weight: 700; width: 32px; height: 32px; border: 1px solid rgba(255,255,255,.15); display: flex; align-items: center; justify-content: center; transition: all .2s; }
.snl-news__social a:hover { color: #fff; border-color: rgba(255,255,255,.4); }
@media (max-width: 560px) { .snl-news__form { flex-direction: column; } }
