/* ============================================================================
   SENEGO ADS — Feuille de style UNIQUE de toutes les publicités.
   (Fichier inclus dans le plugin senego-ads, chargé en BLOQUANT pour l'anti-CLS.)

   Principe d'harmonie avec le thème :
     - chaque emplacement pub est une CARTE : fond blanc, radius 8, ombre douce ;
     - .senego-ad EST la carte ; les wrappers sidebar ne font que positionner ;
     - espacement par marge basse uniforme (--card-gap), jamais haut+bas (anti-cumul) ;
     - en liste d'articles, c'est le gap de .posts-container qui gère l'espace.

   Variables reprises du thème (avec repli si absentes) :
     --soft-surface #fff | --soft-radius 8px | --card-gap 16px
     --soft-shadow 0 1px 2px rgba(16,24,40,.06), 0 6px 16px rgba(16,24,40,.06)
   ============================================================================ */

/* ── Carte publicitaire (base) ── */
.senego-ad,
.senego-banner {
  position: relative;
  display: block;
  overflow: hidden;
  text-align: center;
  clear: both;
  width: 100%;
  box-sizing: border-box;
  margin: 0 auto var(--card-gap, 16px);   /* marge basse uniforme — anti-cumul */
  padding: 34px 10px 14px;                /* haut = place pour le label PUBLICITÉ */
  background: var(--soft-surface, #fff);
  border: 0;
  border-radius: var(--soft-radius, 8px);
  box-shadow: var(--soft-shadow, 0 1px 2px rgba(16,24,40,.06), 0 6px 16px rgba(16,24,40,.06));
  min-height: 50px;
}

/* Label « PUBLICITÉ » — pilule au-dessus de la pub */
.senego-ad::before,
.senego-banner::before {
  content: 'PUBLICITÉ';
  position: absolute;
  top: 10px;
  left: 50%;
  transform: translateX(-50%);
  font-family: 'Source Sans 3', system-ui, -apple-system, sans-serif;
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: #999;
  white-space: nowrap;
  z-index: 2;
}

/* Unité AdSense / contenu centré */
.senego-ad ins { display: block; margin: 0 auto; }
.senego-banner img { max-width: 100%; height: auto; display: inline-block; }
.senego-banner a { display: inline-block; line-height: 0; }

/* ── Anti-CLS : hauteur réservée avant chargement de la pub ──
   (déplacé de l'ancien <style> anti-FOUC ; ce fichier est bloquant, donc
   appliqué avant le premier rendu → aucun saut de mise en page.) */
/* top_banner — décision produit 2026-05-30 :
   • MOBILE (≤767px) : verrouillé à 300×250 strict (anti-CLS + format uniforme).
     AdSense (Auto Ads actif sur le compte) injecte `max-height: none !important`
     en inline sur le wrapper ET sur l'<ins> pour étendre la pub — ces inline
     !important battent toute règle CSS. Solution : on ajoute (côté PHP) un div
     intermédiaire `.senego-ad-frame` qu'AdSense N'ATTAQUE PAS → c'est ce div
     qui porte la contrainte 300×250 + overflow:hidden, intouchable par Google.
   • DESKTOP (>767px) : aucune contrainte → la pub reste responsive (format
     leaderboard / large rectangle servi par AdSense). */
/* top_banner — décision produit 2026-05-30 :
   • MOBILE (≤767px) : 300×250 STRICT (slot AdSense "Fixed 300×250").
     Le wrapper-carte fait 320×298 (300 contenu ad + 10+10 padding lat. +
     34+14 padding vert. pour le label PUBLICITÉ) avec box-sizing:border-box
     hérité de la base .senego-ad. Marge 16px haut/bas pour ne pas coller
     au menu ni à l'article vedette. overflow:hidden contre l'extension Google.
   • DESKTOP (>767px) : responsive standard (slot AdSense "Responsive").
     Aucune contrainte → AdSense sert un leaderboard adapté à la largeur. */
.senego-ad--top_banner { min-height: 250px; }
@media (max-width: 767px) {
  .senego-ad--top_banner {
    width: 320px !important;
    height: 298px !important;
    max-width: 320px !important;
    max-height: 298px !important;
    margin: 16px auto !important;
    overflow: hidden !important;
  }
  .senego-ad--top_banner ins.adsbygoogle {
    width: 300px !important;
    height: 250px !important;
    max-width: 300px !important;
    max-height: 250px !important;
  }
}
.senego-ad--above_featured { min-height: 250px; }
@media (min-width: 768px) {
  .senego-ad--above_featured { min-height: 100px; }
}
.senego-ad--sidebar_top,
.senego-ad--in_feed { min-height: 250px; }
.senego-ad--article_paragraph,
.senego-ad--placement { min-height: 280px; }

/* ── Pub in-feed : le gap de .posts-container gère l'espace → aucune marge propre (anti-cumul) ── */
.posts-container > .senego-ad { margin: 0; }

/* ── Variantes sidebar collantes (carte autonome, sans wrapper) ── */
.senego-ad--sidebar_sticky_left,
.senego-ad--sidebar_sticky_right { position: sticky; top: 90px; }

/* ── Wrappers sidebar = simples conteneurs de positionnement (transparents).
   La carte visible reste le .senego-ad interne → pas de carte dans une carte. ── */
.sidebar-top-ad-wrapper {
  width: 100%;
  text-align: center;
  margin: 0;
}
.sidebar-sticky-ad-wrapper {
  position: sticky;
  top: 80px;
  text-align: center;
  z-index: 10;
}
/* La pub interne au wrapper sticky ne doit pas être collante elle aussi. */
.sidebar-sticky-ad-wrapper .senego-ad { position: static; }

/* ── Bannière image personnalisée (insertion manuelle) ── */
.custom-banner-container {
  display: block;
  width: 100%;
  max-width: 100%;
  text-align: center;
  margin: 0 auto var(--card-gap, 16px);
  line-height: 0;
}
.custom-banner-container a { display: inline-block; transition: opacity 0.3s ease; }
.custom-banner-container a:hover { opacity: 0.9; }
.custom-banner-container img {
  max-width: 100%;
  height: auto;
  display: inline-block;
  border-radius: var(--soft-radius, 8px);
  box-shadow: var(--soft-shadow, 0 1px 2px rgba(16,24,40,.06), 0 6px 16px rgba(16,24,40,.06));
}

/* ── Responsive (≤767px) ── */
@media (max-width: 767px) {
  .senego-ad,
  .senego-banner { padding-top: 30px; }
}

/* ── Impression / accessibilité ── */
@media print {
  .senego-ad,
  .senego-banner,
  .custom-banner-container { display: none !important; }
}
@media (prefers-reduced-motion: reduce) {
  .custom-banner-container a { transition: none; }
}
