/* ══════════════════════════════════════════════════════════════════
   ECG Prépa — habillage commun des pages internes (refonte)
   Chargé APRÈS le <style> de chaque page : il reprend les mêmes noms
   de classes et les restyle (aucun changement de comportement).
   Largeur du contenu : variable --rf-w posée sur <body> (1100px par défaut).
   ══════════════════════════════════════════════════════════════════ */
:root{ --text-dim:#a9a79f; --text-faint:#8a8880; --rf-w:1100px; }

/* ─── Barre du haut et en-tête de page ─── */
nav{ padding:20px 48px; background:rgba(13,13,15,.92); }
.nav-logo{ font-size:1.4rem; }
.breadcrumb{ font-size:.88rem; }
.page-header{ padding:72px max(48px,calc((100% - var(--rf-w,1100px))/2)) 40px; }
.page-header::after{ display:none; }
.page-eyebrow{ font-size:.75rem; letter-spacing:.2em; margin-bottom:14px; }
.page-title{ font-size:clamp(2.4rem,5vw,3.75rem); line-height:1.05; }
.page-intro{ font-size:1.05rem; line-height:1.65; color:var(--text-dim); max-width:640px; }
main{ max-width:none; padding:56px max(48px,calc((100% - var(--rf-w,1100px))/2)) 110px; }

/* ─── Boutons et champs ─── */
.btn{ font-family:'DM Sans',sans-serif; font-size:1rem; font-weight:500; letter-spacing:0; text-transform:none;
  padding:15px 28px; min-height:44px; border-radius:999px; }
.btn.ghost{ background:none; }
input,textarea,select{ border-radius:12px; }

/* ─── Pied de page centré ─── */
footer{ justify-content:center; text-align:center; gap:12px 28px; padding:28px 48px; font-size:.8rem; color:var(--text-faint); }
footer a{ color:var(--text-faint); }

/* ─── Listes d'articles : filtres en pastilles, cartes arrondies ─── */
.actu-sidebar{ width:260px; min-width:260px; background:transparent; border-right:0; padding:28px 18px 28px 0; }
.actu-sidebar{ margin-left:max(48px,calc((100vw - var(--rf-w,1100px))/2)); }
.cg-sidebar-label{ border-bottom:0; padding-bottom:0; font-size:.7rem; letter-spacing:.18em; color:var(--text-faint); }
.cg-sidebar-section{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:28px; }
.cg-sidebar-section .cg-sidebar-label{ flex:0 0 100%; margin-bottom:2px; }
.cg-filter-btn{ margin:0; padding:8px 14px; min-height:36px; border-radius:999px; border:1px solid var(--border);
  background:var(--surface); color:var(--text); font-size:.82rem; }
.cg-filter-btn:hover{ border-color:rgba(200,169,110,.5); background:var(--surface); }
.cg-filter-btn.active{ border-color:var(--accent); background:rgba(200,169,110,.12); color:var(--accent); }
.cg-filter-dot{ display:none; }
.actu-main{ padding:40px max(48px,calc((100vw - var(--rf-w,1100px))/2)) 96px 24px; }
.search-input{ border-radius:999px; padding:13px 44px 13px 42px; }
.actu-grid{ grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:20px; }
.actu-card{ border-radius:16px; }
.actu-card.title-only{ padding:20px 22px 24px; }
.actu-card-img-wrap{ border-radius:15px 15px 0 0; }
.actu-badge{ font-family:'DM Sans',sans-serif; font-size:.75rem; letter-spacing:0; padding:4px 10px;
  border:1px solid var(--border); background:var(--surface2); }
.actu-card-title{ font-size:1.12rem; }
.actu-card.title-only .actu-card-title{ font-size:1.12rem; }
.month-label{ font-size:.75rem; color:var(--text-faint); }
.month-line{ background:var(--border); }
.fade-up{ animation:none; }

/* ─── Page des actualités : les quatre éditions ─── */
.choices-container{ padding:56px max(48px,calc((100% - var(--rf-w,1100px))/2)) 96px; }
.choices-grid{ max-width:none; grid-template-columns:repeat(auto-fit,minmax(min(100%,480px),1fr)); gap:20px; }
.choice-card{ border-radius:18px; padding:32px; border-left:6px solid #b5131f; }
.choice-card .card-icon{ display:none; }
.choice-card .card-title{ font-size:1.9rem; margin-bottom:10px; }
.choice-card .card-desc{ font-size:.95rem; color:var(--text-dim); }

/* ─── Mon abonnement ─── */
.carte{ border-radius:20px; padding:36px; }
.carte.prem{ background:var(--surface); border-color:var(--accent); }
.statut{ font-family:'DM Sans',sans-serif; font-size:.78rem; letter-spacing:.08em; padding:6px 12px; }
.carte h2{ font-size:1.9rem; }
.carte p{ color:var(--text-dim); font-size:.95rem; }
.lignes div{ font-size:.92rem; }
.actions{ gap:14px; }
.champ-code input{ border-radius:12px; padding:14px 16px; }

/* ─── Mes favoris ─── */
.fav-section-title{ font-family:'DM Sans',sans-serif; font-size:.82rem; letter-spacing:.1em; }
.fav-grid{ grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:20px; }
.fav-remove{ border-radius:50%; width:44px; height:44px; top:8px; right:8px; }
.empty{ border:1px dashed #3a3a46; border-radius:20px; padding:64px 32px; background:var(--surface); }
.empty-links a{ border-radius:999px; font-family:'DM Sans',sans-serif; font-size:.95rem; letter-spacing:0;
  text-transform:none; padding:13px 24px; min-height:44px; }

/* ─── Ma newsletter ─── */
.grille{ grid-template-columns:1fr; gap:12px; }
.rub{ border-radius:16px; padding:20px 24px; min-height:44px; align-items:center; }
.rub.on{ background:rgba(200,169,110,.08); }
.rub b{ font-size:1.1rem; }
.rub span{ font-size:.9rem; color:var(--text-dim); margin-top:2px; }
.rub .sw{ width:48px; height:28px; margin-top:0; }
.rub .sw::after{ width:22px; height:22px; top:2px; }
.rub.on .sw::after{ left:23px; }
.mini{ font-family:'DM Sans',sans-serif; font-size:.82rem; padding:8px 16px; min-height:36px; }
.note{ border-radius:16px; font-size:.9rem; }
.barre{ border-top:1px solid var(--border); }

@media (max-width:900px){
  nav{ padding:14px 20px; }
  .page-header{ padding:48px 20px 28px; }
  main{ padding:36px 20px 72px; }
  .choices-container{ padding:36px 20px 64px; }
  .actu-sidebar{ display:none; }
  .actu-main{ padding:24px 20px 72px; }
  .carte{ padding:26px 22px; }
  footer{ padding:24px 20px; }
}
