/* ==========================================================================
   rf2.css : système de design de la refonte (axe C, variante blanche, V2).
   Fidèle à refonte/maquettes-v2/project/Charte-v2.dc.html et Main-v2.dc.html.
   Fichier du SOCLE : seul le socle le modifie. Un lot ajoute ses composants
   dans include/rf2-<lot>.css (voir refonte/INTEGRATION.md). 2026-10-23
   Inséré dans la page par header.php (CSS critique en ligne, commentaires
   retirés) : aucune requête bloquante.
   ========================================================================== */

/* --- Polices auto-hébergées (woff2, sous-ensemble latin, OFL) --- */
@font-face{font-family:"Big Shoulders Display";font-style:normal;font-weight:800 900;font-display:swap;src:url(fonts/big-shoulders-display-800-900.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/public-sans-400-700.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Public Sans";font-style:italic;font-weight:400;font-display:swap;src:url(fonts/public-sans-italic-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* --- Jetons : jour (défaut) --- */
:root{
	--page:#FFFFFF;--mod:#FAF6EF;--creux:#F2ECE2;--joint:#D9CFC2;
	--fort:#2B1A14;--txt:#3A2A20;--disc:#5A4A3F;
	--lien:#9C4413;--lienh:#7A3410;--vis:#6D3628;
	--champ:#8A7866;--niv:#787020;--focus:#2B1A14;
	--ent:#F4EBDA;--bann:#E9DCC2;--cadre:#2B1A14;
	--btn:#9C4413;--btnt:#FFFFFF;
	/* constantes des deux thèmes (aplats de l'axe A, barre d'archive, lecteur) */
	--encre:#2B1A14;--creme:#F4EBDA;--sable:#E9DCC2;--jaune:#F5A800;--orange:#EE7623;--olive:#A8AD00;--brun:#6D3628;--brun-joint:#4A2318;
	--rub-actus:#A8AD00;--rub-reports:#F5A800;--rub-artistes:#EE7623;--rub-sons:#6D3628;
	--rub:var(--jaune);
	--titre:"Big Shoulders Display",Impact,"Arial Narrow",sans-serif;
	--texte:"Public Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
	--ease:cubic-bezier(.2,.7,.2,1);--t1:120ms;--t2:200ms;--t3:320ms;
	color-scheme:light;
}
/* --- Jetons : nuit forcée par l'interrupteur --- */
:root[data-theme=dark]{
	--page:#0F0D0B;--mod:#1C1815;--creux:#080706;--joint:#2A2420;
	--fort:#FFF6E5;--txt:#EDE6D6;--disc:#A79E8C;
	--lien:#F5A800;--lienh:#EE7623;--vis:#C9CC3F;
	--champ:#7A6F60;--niv:#C9CC3F;--focus:#F5A800;
	--ent:#1C1815;--bann:#080706;--cadre:#7A6F60;
	--btn:#F5A800;--btnt:#0F0D0B;
	color-scheme:dark;
}
/* --- Jetons : nuit selon le système, sauf jour forcé --- */
@media (prefers-color-scheme:dark){
	:root:not([data-theme=light]){
		--page:#0F0D0B;--mod:#1C1815;--creux:#080706;--joint:#2A2420;
		--fort:#FFF6E5;--txt:#EDE6D6;--disc:#A79E8C;
		--lien:#F5A800;--lienh:#EE7623;--vis:#C9CC3F;
		--champ:#7A6F60;--niv:#C9CC3F;--focus:#F5A800;
		--ent:#1C1815;--bann:#080706;--cadre:#7A6F60;
		--btn:#F5A800;--btnt:#0F0D0B;
		color-scheme:dark;
	}
	:root:not([data-theme=light]) .rf2-logo-j{display:none}
	:root:not([data-theme=light]) .rf2-logo-n{display:block}
}
:root[data-theme=dark] .rf2-logo-j{display:none}
:root[data-theme=dark] .rf2-logo-n{display:block}

/* repère de rubrique de la page (filet des titres, bord du pied) */
.rf2-rub-actus{--rub:var(--rub-actus)}
.rf2-rub-reports{--rub:var(--rub-reports)}
.rf2-rub-artistes{--rub:var(--rub-artistes)}
.rf2-rub-sons{--rub:var(--rub-sons)}

/* --- Base --- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body.rf2{margin:0;background:var(--page);color:var(--txt);font-family:var(--texte);font-size:17px;line-height:1.65;letter-spacing:.01em;overflow-wrap:break-word}
@media (min-width:1024px){body.rf2{font-size:18px;line-height:1.7}}
.rf2 img,.rf2 video,.rf2 svg{max-width:100%;height:auto}
.rf2 img{border:0}
.rf2 a{color:var(--lien);text-decoration-thickness:1px;text-underline-offset:.15em}
.rf2 a:hover{color:var(--lienh);text-decoration-thickness:2px}
.rf2 h1,.rf2 h2,.rf2 h3,.rf2 h4{color:var(--fort);margin:0}
:where(.rf2) h1,:where(.rf2) h2,:where(.rf2) h3,:where(.rf2) h4{line-height:1.2}   /* :where() (2026-10-24) : interlignage sans poids, celui propre à chaque titre (.rf2a-nom .85, .rf2-h1 .95…) s'applique */
.rf2 p{margin:0 0 1em}
.rf2 :focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.rf2 .rf2-sombre :focus-visible{outline-color:var(--jaune)}
.rf2 .rf2-clair :focus-visible{outline-color:var(--encre)}
.rf2 button{font:inherit}
.rf2 table{border-collapse:collapse}
.rf2 [hidden]{display:none!important}
/* index.css (toujours émis par f_head pour les classes du contenu ancien) : ses règles d'éléments
   (table 12 px, select 10 px, blockquote) ne s'appliquent pas au gabarit refonte */
.rf2 table,.rf2 select,.rf2 textarea,.rf2 input{font-size:inherit}
.rf2 select,.rf2 textarea{background-color:var(--page);color:var(--fort)}
.rf2 blockquote{margin:0 0 1em;border:0;border-left:4px solid var(--rub);padding-left:16px}
.rf2-vh,.rf-vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.rf2-evitement{position:absolute;left:16px;top:-200px;z-index:100;padding:12px 16px;background:var(--jaune);color:var(--encre)!important;font-weight:700;text-decoration:none}
.rf2-evitement:focus{top:8px}
.rf2-wrap{max-width:1240px;margin:0 auto;padding-left:16px;padding-right:16px}
@media (min-width:600px){.rf2-wrap{padding-left:32px;padding-right:32px}}
@media (min-width:1024px){.rf2-wrap{padding-left:40px;padding-right:40px}}
.rf2-display{font-family:var(--titre);font-weight:900;text-transform:uppercase;line-height:.96;letter-spacing:0}
.rf2-num{font-variant-numeric:tabular-nums}
.rf2-mesure{max-width:66ch}
.rf2 main{display:block}
.rf2 main:focus{outline:none}

/* --- Barre d'archive (brun encre, constante) --- */
.rf2-barre{background:var(--encre);color:var(--creme);font-size:14px;line-height:1.4}
.rf2-barre .rf2-wrap{display:flex;gap:8px 16px;align-items:center;flex-wrap:wrap;padding-top:4px;padding-bottom:4px}
.rf2-barre-marque{color:var(--jaune);font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.rf2-barre-phrase{display:none}
@media (min-width:600px){.rf2-barre-phrase{display:inline}}
.rf2-langues{margin-left:auto;display:flex;align-items:center;gap:2px}
.rf2 .rf2-langues a{display:inline-flex;align-items:center;min-height:44px;padding:0 6px;color:var(--creme);text-decoration:none}
.rf2 .rf2-langues a[aria-current]{color:var(--jaune);font-weight:700}
.rf2 .rf2-langues a:hover{color:var(--jaune);text-decoration:underline}
/* interrupteur jour/nuit : un bouton, aria-pressed = nuit active */
.rf2-theme{display:inline-flex;align-items:center;gap:2px;padding:2px;min-height:44px;border:2px solid var(--creme);border-radius:24px;background:transparent;cursor:pointer;color:var(--creme)}
.rf2-theme span{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;color:var(--creme)}
.rf2-theme[aria-pressed=false] .rf2-theme-jour,.rf2-theme[aria-pressed=true] .rf2-theme-nuit{background:var(--jaune);color:var(--encre)}
html:not(.js) .rf2-theme{display:none}

/* --- En-tête --- */
.rf2-entete{background:var(--ent);border-bottom:2px solid var(--cadre)}
.rf2-entete>.rf2-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;padding-top:12px;padding-bottom:12px}
.rf2-logo{display:block;line-height:0;margin-right:auto}
.rf2-logo img{height:44px;width:auto}
.rf2-logo-n{display:none}
@media (min-width:1024px){.rf2-entete>.rf2-wrap{padding-top:16px;padding-bottom:16px}.rf2-logo{margin-right:0}.rf2-logo img{height:64px}}
.rf2-carre{display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:48px;padding:0;background:var(--page);border:2px solid var(--cadre);color:var(--fort);cursor:pointer}
.rf2-carre--plein{background:var(--fort);color:var(--page)}
.rf2-carre[aria-expanded=true]{background:var(--jaune);color:var(--encre);border-color:var(--encre)}
html:not(.js) .rf2-carre{display:none}
@media (min-width:1024px){.rf2-carre{display:none}}
/* menu principal : couleurs de rubrique de l'axe A */
.rf2-menu{flex:1 1 100%;order:3}
.rf2-menu ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;font-family:var(--titre);font-weight:800;font-size:22px;letter-spacing:.04em;text-transform:uppercase;line-height:1.2}
.rf2-menu a{display:flex;align-items:center;min-height:48px;padding:10px 12px;color:var(--fort);text-decoration:none;border-bottom:4px solid transparent}
.rf2-menu a:hover{color:var(--fort);border-bottom-color:var(--rubm,var(--fort))}
.rf2-menu a[aria-current]{color:var(--encre);background:var(--rubm,var(--jaune));border-bottom-color:var(--encre)}
.rf2-menu .rf2-menu-sons a[aria-current]{color:var(--creme)}
.rf2-menu .rf2-menu-sons a[aria-current]:focus-visible{outline-color:var(--jaune)}
.rf2-menu a[aria-current]:focus-visible{outline-color:var(--encre)}
.rf2-menu-actus{--rubm:var(--rub-actus)}.rf2-menu-reports{--rubm:var(--rub-reports)}.rf2-menu-artistes{--rubm:var(--rub-artistes)}.rf2-menu-sons{--rubm:var(--rub-sons)}
.rf2-menu-forum{border-top:2px solid var(--cadre)}
.rf2-menu-forum a{color:var(--disc)}
html.js .rf2-menu:not(.rf2-ouvert){display:none}
@media (min-width:1024px){
	.rf2-menu,html.js .rf2-menu:not(.rf2-ouvert){display:block;flex:1 1 auto;order:0}
	.rf2-menu ul{flex-direction:row;flex-wrap:wrap;gap:4px}
	.rf2-menu a{min-height:44px}
	.rf2-menu-forum{border-top:0;border-left:2px solid var(--cadre);margin-left:8px;padding-left:8px}
}
/* recherche de l'en-tête */
.rf2-recherche{display:flex;gap:4px;flex:1 1 100%;order:4}
.rf2-recherche .rf2-fld{flex:1;min-width:0;border-color:var(--cadre)}
html.js .rf2-recherche:not(.rf2-ouvert){display:none}
@media (min-width:1024px){.rf2-recherche,html.js .rf2-recherche:not(.rf2-ouvert){display:flex;flex:0 1 auto;order:0}.rf2-recherche .rf2-fld{width:220px}}
/* bandeau d'archive fermable (mémorisé) */
.rf2-avis{background:var(--bann);border-bottom:2px solid var(--cadre);color:var(--fort);font-size:15px;line-height:1.5}
.rf2-avis .rf2-wrap{display:flex;gap:16px;align-items:center;padding-top:10px;padding-bottom:10px}
.rf2-avis p{margin:0;flex:1}
.rf2-avis a{color:var(--fort)}
.rf2-avis button{min-width:44px;min-height:44px;background:var(--page);border:2px solid var(--cadre);color:var(--fort);cursor:pointer;font-size:22px;line-height:1}
html:not(.js) .rf2-avis button,html.rf2-avis-ferme .rf2-avis{display:none}

/* --- Bandeau de rubrique (aplat constant, texte encre) --- */
.rf2-bandeau{background:var(--rub);border-bottom:2px solid var(--encre);color:var(--encre)}
.rf2-bandeau.rf2-rub-sons{color:var(--creme)}
.rf2-bandeau>.rf2-wrap{padding-top:24px;padding-bottom:32px}
.rf2-bandeau a{color:var(--encre)}
.rf2-bandeau.rf2-rub-sons a{color:var(--creme)}
.rf2-bandeau-corps{margin-top:16px;display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:24px}
.rf2-h1{margin:0;font-family:var(--titre);font-weight:900;font-size:clamp(48px,8vw,96px);line-height:.95;text-transform:uppercase;color:inherit}
.rf2 .rf2-bandeau .rf2-h1{color:inherit}
.rf2-bandeau-sous{margin:8px 0 0;font-variant-numeric:tabular-nums;font-weight:600}
.rf2-ariane{font-size:15px}
.rf2-ariane ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 6px;align-items:baseline}
.rf2-ariane li+li::before{content:"›";margin-right:6px}
.rf2-ariane a{display:inline-block;padding:10px 0}
/* onglets de sous-rubrique (vraies URL) */
.rf2-onglets{max-width:100%;overflow-x:auto}
.rf2-onglets ul{list-style:none;margin:0;padding:0;display:flex;gap:2px;background:var(--encre);border:2px solid var(--encre)}
.rf2-onglets a{display:flex;align-items:center;min-height:48px;padding:0 18px;background:var(--page);color:var(--fort)!important;text-decoration:none;white-space:nowrap}
.rf2-onglets a:hover{text-decoration:underline}
.rf2-onglets a[aria-current]{background:var(--encre);color:var(--creme)!important;font-weight:700}
/* 2026-10-24 : sous 600 px la rangée défilante se fond au bord droit (« Titres et dublates » était hors écran
   sans indice) ; pas de passage à la ligne : son nombre de lignes changeait au chargement de la police (CLS 0,14) */
@media (max-width:599px){.rf2-onglets{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 40px),transparent)}.rf2-onglets li:last-child{margin-right:40px}}
.rf2 .rf2-bandeau :focus-visible{outline-color:var(--encre)}
.rf2 .rf2-bandeau.rf2-rub-sons :focus-visible{outline-color:var(--creme)}

/* --- Sections et titres --- */
.rf2-section{padding-top:48px}
@media (min-width:1024px){.rf2-section{padding-top:64px}}
.rf2-sec{display:flex;justify-content:space-between;align-items:baseline;gap:8px 16px;flex-wrap:wrap;margin-bottom:24px}
.rf2-h2{margin:0;padding-left:16px;border-left:10px solid var(--filet,var(--rub));font-family:var(--titre);font-weight:900;font-size:clamp(30px,4vw,44px);line-height:1;text-transform:uppercase;color:var(--fort)}
.rf2-h3{font-family:var(--titre);font-weight:900;font-size:clamp(24px,2.6vw,30px);line-height:1;text-transform:uppercase}
.rf2-filet-actus{--filet:var(--rub-actus)}.rf2-filet-reports{--filet:var(--rub-reports)}.rf2-filet-artistes{--filet:var(--rub-artistes)}.rf2-filet-sons{--filet:var(--rub-sons)}.rf2-filet-encre{--filet:var(--fort)}
.rf2-tout{font-weight:700;font-size:16px;white-space:nowrap;display:inline-block;padding:10px 0}
.rf2-meta{margin:0;font-size:14px;line-height:1.5;color:var(--disc)}
.rf2-surtitre{margin:0 0 8px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--disc)}
.rf2 a.rf2-t{color:var(--fort);text-decoration:none}
.rf2 a.rf2-t:hover{text-decoration:underline}
.rf2 a.rf2-t--souligne{text-decoration:underline}

/* --- Étiquettes de type (aplats constants, texte écrit) --- */
.rf2-tag{display:inline-block;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 8px;line-height:1.5;background:var(--encre);color:var(--creme);vertical-align:baseline}
.rf2-tag--report,.rf2-tag--salle,.rf2-tag--photos{background:var(--jaune);color:var(--encre)}
.rf2-tag--chronique,.rf2-tag--concert,.rf2-tag--news,.rf2-tag--sortie{background:var(--olive);color:var(--encre)}
.rf2-tag--interview,.rf2-tag--festival,.rf2-tag--artiste{background:var(--orange);color:var(--encre)}
.rf2-tag--dossier,.rf2-tag--video,.rf2-tag--son,.rf2-tag--riddim,.rf2-tag--mix,.rf2-tag--sound{background:var(--brun);color:var(--creme)}
.rf2-tag--forum{background:var(--creux);color:var(--fort);border:1px solid var(--cadre)}
.rf2-tag--passe{background:var(--creux);color:var(--disc);border:1px solid var(--joint)}

/* --- Boutons et champs --- */
.rf2-btn,.rf2-btn2{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border:2px solid var(--cadre);font:inherit;font-size:16px;line-height:1.2;cursor:pointer;text-decoration:none}
.rf2 .rf2-btn{background:var(--btn);color:var(--btnt);font-weight:700}
.rf2 .rf2-btn:hover{color:var(--btnt);filter:brightness(.92)}
.rf2 .rf2-btn2{background:var(--page);color:var(--fort)}
.rf2 .rf2-btn2:hover{color:var(--fort);background:var(--creux)}
.rf2 .rf2-btn[aria-pressed=true],.rf2 .rf2-btn2[aria-pressed=true],.rf2 .rf2-btn2[aria-current]{background:var(--fort);color:var(--page);font-weight:700}
.rf2 .rf2-btn-affiche{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;background:var(--orange);color:var(--encre);border:2px solid var(--encre);text-decoration:none;font-family:var(--titre);font-weight:900;font-size:22px;text-transform:uppercase;letter-spacing:.02em;cursor:pointer}
.rf2 .rf2-btn-affiche:hover{color:var(--encre);background:var(--jaune)}
.rf2 .rf2-btn-affiche:focus-visible{outline-color:var(--fort)}
.rf2 [disabled],.rf2 [aria-disabled=true]{opacity:.55;cursor:not-allowed}
.rf2-fld{min-height:44px;background:var(--page);color:var(--fort);border:2px solid var(--champ);font:inherit;font-size:16px;padding:0 10px;border-radius:0;max-width:100%}
textarea.rf2-fld{padding:10px;min-height:120px}
.rf2-fld::placeholder{color:var(--disc);opacity:1}
.rf2-label{display:block;font-size:15px;font-weight:600;color:var(--fort);margin-bottom:4px}
.rf2-facet{display:flex;align-items:center;gap:10px;min-height:44px;font-size:16px;color:var(--fort);cursor:pointer}
.rf2-facet input{width:20px;height:20px;accent-color:var(--lien);margin:0}
.rf2-cadre{background:var(--mod);border:2px solid var(--cadre);padding:16px}
.rf2-filtres{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end;background:var(--mod);border:2px solid var(--cadre);padding:16px}
.rf2-filtres>div{display:flex;flex-direction:column}

/* --- Grilles --- */
.rf2-grille{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}
.rf2-grille--large{gap:24px}
@media (min-width:600px){.rf2-grille--2,.rf2-grille--3,.rf2-grille--4,.rf2-grille--5{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){
	.rf2-grille--3{grid-template-columns:repeat(3,minmax(0,1fr))}
	.rf2-grille--4{grid-template-columns:repeat(4,minmax(0,1fr))}
	.rf2-grille--5{grid-template-columns:repeat(5,minmax(0,1fr))}
	.rf2-grille--12{grid-template-columns:repeat(12,minmax(0,1fr))}
	.rf2-col-3{grid-column:span 3}.rf2-col-4{grid-column:span 4}.rf2-col-5{grid-column:span 5}.rf2-col-6{grid-column:span 6}.rf2-col-7{grid-column:span 7}.rf2-col-8{grid-column:span 8}.rf2-col-12{grid-column:span 12}
}
.rf2-defile{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;list-style:none;margin:0;padding:0 0 8px}
.rf2-defile>*{flex:0 0 auto;scroll-snap-align:start}

/* --- Cartes --- */
.rf2-carte{position:relative;background:var(--mod);border-top:4px solid var(--filet,var(--rub));display:flex;flex-direction:column;min-width:0}
/* photo jamais agrandie au-delà de sa taille d'origine (charte V2) : une vignette étroite reste
   à sa taille, centrée sur le creux ; rf2_img() pose largeur et hauteur réelles */
.rf2-carte>img,.rf2-carte>picture img,.rf2-carte-media img{display:block;width:auto;max-width:100%;height:auto;margin:0 auto}
.rf2-carte-media{background:var(--creux)}
.rf2-carte-corps{padding:16px 20px 20px}
.rf2-carte-titre{margin:0 0 6px;font-size:20px;line-height:1.25;font-weight:700}
.rf2-carte-titre--affiche{font-family:var(--titre);font-weight:900;font-size:clamp(26px,2.4vw,30px);line-height:1;text-transform:uppercase}
.rf2-carte-texte{margin:0;font-size:16px;line-height:1.6}
.rf2-carte .rf2-meta+.rf2-carte-titre{margin-top:4px}
.rf2-carte-ligne{display:flex;gap:16px;align-items:center;padding:12px;background:var(--mod)}
.rf2-carte-ligne img{flex:none;object-fit:cover}
/* carte cliquable entière par son seul lien de titre (un seul lien) */
.rf2-carte--bloc .rf2-carte-titre a::after{content:"";position:absolute;inset:0}
.rf2-carte--bloc:hover .rf2-carte-titre a{text-decoration:underline}
.rf2-carte--bloc .rf2-carte-titre a:focus-visible{outline:none}
.rf2-carte--bloc:focus-within{outline:3px solid var(--focus);outline-offset:3px}
/* visuel de remplacement : grille de haut-parleur + initiales */
.rf2-remplacement{display:flex;align-items:center;justify-content:center;aspect-ratio:16/9;background:radial-gradient(circle,var(--joint) 2px,transparent 3px) 0 0/14px 14px,var(--creux);font-family:var(--titre);font-weight:900;font-size:56px;color:var(--disc);text-transform:uppercase}
.rf2-remplacement--carre{aspect-ratio:1/1;font-size:32px}
/* image en ton d'archive (couleur d'origine au survol et au focus) */
.rf2-duo{filter:grayscale(1) sepia(.6) hue-rotate(10deg);transition:filter var(--t2) var(--ease)}
.rf2-carte:hover .rf2-duo,.rf2-carte:focus-within .rf2-duo,a:hover .rf2-duo,a:focus-visible .rf2-duo{filter:none}

/* --- Figures, légendes, crédits --- */
.rf2-figure{margin:0;display:flex;flex-direction:column;align-items:flex-start}
.rf2-figure img{display:block;max-width:100%;height:auto}
.rf2-figure figcaption,.rf2-legende{margin-top:8px;font-size:14px;line-height:1.5;color:var(--disc)}
.rf2-credit{font-size:14px;color:var(--disc)}
.rf2-credit--inconnu{font-style:italic}

/* --- Listes de registre, tableaux de données --- */
.rf2-liste{list-style:none;margin:0;padding:0;border-top:2px solid var(--cadre);font-variant-numeric:tabular-nums}
.rf2-liste>li{display:flex;gap:20px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--joint)}
.rf2-annee{font-family:var(--titre);font-weight:900;font-size:32px;line-height:1;color:var(--lien);flex:none}
.rf2-tableau-cadre{overflow-x:auto;border:2px solid var(--cadre);background:var(--page)}
.rf2-tableau{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:16px}
.rf2-tableau caption{text-align:left;padding:12px 16px;font-size:14px;color:var(--disc)}
.rf2-tableau th{text-align:left;padding:8px 16px;background:var(--creux);color:var(--fort);font-size:13px;text-transform:uppercase;letter-spacing:.06em}
.rf2-tableau td{padding:10px 16px;border-top:1px solid var(--joint);vertical-align:top}

/* --- Pagination et A-Z --- */
.rf2-pagination{margin-top:24px;display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-variant-numeric:tabular-nums}
.rf2-pagination .rf2-btn,.rf2-pagination .rf2-btn2{min-width:44px;min-height:44px;padding:0 12px}
.rf2-pagination [aria-current]{background:var(--btn);color:var(--btnt);font-weight:700}
.rf2-az ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:2px;font-family:var(--titre);font-weight:900;font-size:22px}
.rf2-az a,.rf2-az span{display:flex;align-items:center;justify-content:center;height:44px;background:var(--mod);color:var(--fort);text-decoration:none}
.rf2-az a:hover{background:var(--jaune);color:var(--encre)}
.rf2-az a:visited{color:var(--vis)}
.rf2-az a[aria-current]{background:var(--fort);color:var(--page)}
.rf2-az span{background:transparent;color:var(--disc)}

/* --- Contextes sombres constants (barre, pied, lecteur, une) --- */
.rf2-sombre{background:var(--encre);color:var(--creme)}
.rf2 .rf2-sombre a{color:var(--jaune)}
.rf2 .rf2-sombre a:hover{color:var(--creme)}
.rf2 .rf2-sombre h1,.rf2 .rf2-sombre h2,.rf2 .rf2-sombre h3{color:var(--creme)}

/* --- Pied de page --- */
.rf2-pied{margin-top:96px;border-top:8px solid var(--rub);font-size:15px;line-height:1.6}
.rf2-pied>.rf2-wrap{display:grid;gap:24px;grid-template-columns:minmax(0,1fr);padding-top:48px;padding-bottom:48px}
@media (min-width:600px){.rf2-pied>.rf2-wrap{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.rf2-pied>.rf2-wrap{grid-template-columns:repeat(4,minmax(0,1fr))}}
.rf2-pied h2{font-family:var(--titre);font-weight:900;font-size:22px;text-transform:uppercase;margin:0 0 8px;letter-spacing:.02em}
.rf2-pied ul{list-style:none;margin:0;padding:0}
.rf2-pied li a{display:inline-block;padding:6px 0}
.rf2-pied-sous{display:block;font-size:14px;color:var(--sable)}
.rf2-pied-sous a{padding:6px 0;display:inline-block}
.rf2-pied-logo img{height:40px;width:auto}
.rf2-pied-chiffres{color:#D9CFC2;font-variant-numeric:tabular-nums}
.rf2-pied-bas{border-top:1px solid var(--brun-joint);padding:16px 0;font-size:14px;color:#D9CFC2}
.rf2-pied-bas .rf2-wrap{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center}

/* --- Bouton « Écouter » : lien vers la page du son (son.php, piste B) ---
   Pas de lecteur persistant ni de navigation interne (pistes A et C écartées). */
.rf2 a.rf2-ecouter,.rf2-ecouter{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:44px;min-height:44px;border-radius:24px;border:2px solid var(--encre);background:var(--jaune);color:var(--encre);font-weight:700;font-size:16px;line-height:1.2;padding:0 16px;text-decoration:none;cursor:pointer}
.rf2 a.rf2-ecouter:hover{background:var(--fort);color:var(--page);border-color:var(--fort)}
.rf2-ecouter--rond{border-radius:50%;padding:0;width:48px;height:48px}
.rf2 .rf2-ecouter:focus-visible{outline-color:var(--fort)}
.rf2 .rf2-sombre .rf2-ecouter:focus-visible{outline-color:var(--jaune)}

/* --- Mouvement réduit --- */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media print{.rf2-barre,.rf2-entete .rf2-menu,.rf2-recherche,.rf2-carre,.rf2-avis,.rf2-pied{display:none!important}}
/* 2026-10-24 (retour Benoit) : plus de cadre autour des blocs et aplats, le fond teinté suffit ;
   restent les bordures utiles (champs, boutons, onglets, filets de liste) */
.rf2 .rf2-cadre,.rf2 .rf2-filtres,.rf2 .rf2a-cadre,.rf2 .rfa-module,.rf2 .rfa-err-hasard,.rf2 .rfa-res-vide,.rf2 .rf2h-histoire,.rf2 .rf2h-chiffres>div,.rf2 .rf2h-frise,.rf2 .rf2m-art,.rf2 .rf2m-cadre,.rf2 .rf2r-concerts,.rf2 .rf2r-credit,.rf2 .rf2-tableau-cadre,.rf2 .rfa-fiche-fig img,.rf2 .rfa-affiche img,.rf2 .rf2a-rid-gauche>img,.rf2 .rf2a-rid-gauche>.rf2a-vide{border:0}
.rf2 .rf2a-cadre{background:var(--mod)}
@media (max-width:1023px){.rf2 .rf2-entete{border-bottom:0}}
/* 2026-10-24 (retour Benoit) : pas de filet sombre autour des photos, fiches et bandeaux de rubrique non plus */
.rf2 .rf2a-hero,.rf2 .rf2r-tete,.rf2 .rf2-bandeau{border-bottom:0}
.rf2 .rf2a-hero-fig{border:0;padding:0;background:none}
.rf2 .rf2a-faits,.rf2 .rf2r-tete figure img,.rf2 .rf2a-chro-tete img,.rf2 .rf2a-chro-tete .rf2a-vide{border:0}
/* 2026-10-24 (retour Benoit) : réactions des lecteurs plus compactes, auteur en tête et en couleur */
.rf2 .rf2r-reac-liste>li,.rf2 .rf2a-rea-liste li{display:flex;flex-direction:column}
.rf2 .rf2r-reac-liste .rf2-meta,.rf2 .rf2a-rea-liste .rf2-meta{order:-1;margin:0 0 4px}
.rf2 .rf2r-reac-texte,.rf2 .rf2a-rea-texte,.rf2 .rf2a-reactions li>div{font-size:15px;line-height:1.45;margin:0}
.rf2 .rf2r-reac-liste .rf2-meta strong,.rf2 .rf2a-rea-liste .rf2-meta strong,.rf2 .rf2a-reactions .rf2-meta strong{color:var(--lien);font-size:15px}
.rf2 .rf2r-reac-liste>li,.rf2 .rf2a-reactions li{padding:12px 0}
/* 2026-10-24 (retour Benoit) : un bouton plein n'a pas besoin de bordure, ni un bouton clair posé sur un aplat coloré ;
   le bouton secondaire sur fond blanc la garde (sans elle il disparaît) */
.rf2 .rf2-btn,.rf2 .rf2a-act,.rf2 .rf2a-hero .rf2-btn2,.rf2 .rf2r-tete .rf2-btn2,.rf2 .rf2-bandeau .rf2-btn2{border-color:transparent}
/* 2026-10-24 (retour Benoit) : interlignage. Le 1,65 du corps s'appliquait à tous les titres de liste
   (news, vidéos, sons…) : sur deux lignes, la date semblait appartenir au titre d'au-dessus.
   Listes et titres serrés, textes de lecture un peu moins aérés en mobile. */
.rf2 li{line-height:1.35}
.rf2 .rf2a-corps li,.rf2 .rf2a-pres li,.rf2 .rf2m-texte li,.rf2 .rf2r-corps li,.rf2 .rfa-texte li{line-height:inherit}
.rf2 li .rf2-meta{margin-bottom:2px}
@media (max-width:599px){
 body.rf2{line-height:1.55}
 .rf2 .rf2a-corps,.rf2 .rf2r-corps,.rf2 .rf2a-pres,.rf2 .rf2m-texte,.rf2 .rfa-texte{line-height:1.6}
 .rf2 .rf2-carte-texte,.rf2 .rf2a-chro-texte,.rf2 .rf2a-semaine-texte,.rf2 .rf2a-definition,.rf2 .rf2a-itw-chapo,.rf2 .rf2h-edito{line-height:1.5}
}
/* 2026-10-24 (retour Benoit, « rechallenge tous les bords ») : passe unique, spécificité haute pour primer sur les CSS de lot.
   Gardés : filets de couleur des rubriques (cartes, h2, citations, bandeaux, pied) et filets fins de 1 px entre lignes. */
/* 1. filets épais en tête de liste ou de section : retirés (le titre de section suffit) */
html body.rf2 .rf2-liste,html body.rf2 .rf2a-minis,html body.rf2 .rf2a-fil,html body.rf2 .rf2a-breves,html body.rf2 .rf2a-outils,html body.rf2 .rf2a-meme,html body.rf2 .rf2a-reactions ol,html body.rf2 .rf2a-tl,html body.rf2 .rfa-vote,html body.rf2 .rfa-annees,html body.rf2 .rf2a-az,html body.rf2 .rf2a-noms,html body.rf2 .rf2a-itw-lignes,html body.rf2 .rf2a-disco-liste,html body.rf2 .rf2a-pile,html body.rf2 .rf2m-reac,html body.rf2 .rf2m-pistes,html body.rf2 .rf2m-top,html body.rf2 .rf2m-tl,html body.rf2 .rf2r-suite,html body.rf2 .rf2r-mini-liste,html body.rf2 .rf2r-top,html body.rf2 .rf2r-reac-liste,html body.rf2 .rf2h-az,html body.rf2 .rf2-menu-forum,html body.rf2 .rf2a-pli-btn,html body.rf2 .rf2a-rea{border-top:0;border-left:0}
html body.rf2 .rf2a-az,html body.rf2 .rf2r-exerg,html body.rf2 .rf2-avis,html body.rf2 .rfa-rech-tete,html body.rf2 .rf2-entete,html body.rf2 .rf2-menu a,html body.rf2 .rf2-menu a[aria-current],html body.rf2 .rf2-menu a:hover{border-bottom:0}
html body.rf2 .rf2-menu a:hover{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:6px}
/* 2. cadres de blocs, d'images et de décors : retirés */
html body.rf2 .rfa-rub,html body.rf2 .rf2-onglets ul,html body.rf2 .rf2r-vis,html body.rf2 .rf2-tag--forum,html body.rf2 .rf2-tag--passe,html body.rf2 .rf2h-chiffres,html body.rf2 .rf2m-visuel,html body.rf2 .rf2h-yt-btn,html body.rf2 .rf2m-disque,html body.rf2 .rf2a-vid-rond,html body.rf2 .rf2a-frise-pt{border:0}
/* 3. boutons, onglets, pastilles : un fond plutôt qu'un contour */
html body.rf2 .rf2-btn2,html body.rf2 .rf2-carre,html body.rf2 .rfa-pill,html body.rf2 .rfa-onglet,html body.rf2 .rfa-groupe details>summary,html body.rf2 .rf2h-login input[type=submit],html body.rf2 .rf2-avis button,html body.rf2 .rf2-btn-affiche,html body.rf2 a.rf2-ecouter,html body.rf2 .rf2-ecouter,html body.rf2 .rf2-theme,html body.rf2 .rf2-sombre a.rf2r-cta2,html body.rf2 .rf2h-rech button,html body.rf2 .rf2h-rech input{border-color:transparent}
html body.rf2 .rf2-btn2,html body.rf2 .rfa-pill,html body.rf2 .rfa-onglet,html body.rf2 .rfa-groupe details>summary{background:var(--creux)}
html body.rf2 .rf2-btn2:hover,html body.rf2 .rfa-pill:hover,html body.rf2 .rfa-onglet:hover{background:var(--joint)}
html body.rf2 .rf2-carre:not(.rf2-carre--plein):not([aria-expanded=true]){background:var(--page)}
html body.rf2 .rf2-theme{background:rgba(242,236,226,.14)}
html body.rf2 .rf2-sombre a.rf2r-cta2{background:rgba(242,236,226,.14)}
html body.rf2 .rf2m-reac>summary::before{border:0;background:var(--creux)}
/* 4. champs de saisie : 1 px, et au focus un anneau collé au champ au lieu du contour décalé (double cadre) */
html body.rf2 .rf2-fld,html body.rf2 .rfa-rech-form input,html body.rf2 .rf2h-login input[type=text],html body.rf2 .rf2h-login input[type=password],html body.rf2 .rf2a-cadre select{border-width:1px;border-color:var(--champ)}
html body.rf2 input[type=search]:focus-visible,html body.rf2 input[type=text]:focus-visible,html body.rf2 input[type=password]:focus-visible,html body.rf2 select:focus-visible{outline:0;box-shadow:0 0 0 3px var(--focus)}
/* 2026-10-24 (retour Benoit) : fil d'Ariane sur deux lignes trop espacé (marge de 10 px des liens) ; onglets d'années sans filets sombres */
html body.rf2 .rf2-ariane a{padding:3px 0}
html body.rf2 .rf2-ariane ol{line-height:1.4;gap:2px 6px}
html body.rf2 .rf2-onglets ul{background:none;gap:4px}
/* 2026-10-24 : note des lecteurs (rf2_note, rf2_etoiles, rf2_note_courte), étoiles par masque SVG sur les jetons */
.rf2-etoiles{--t:20px;display:inline-block;flex:none;width:calc(var(--t)*5);height:var(--t);vertical-align:-.2em;background:linear-gradient(90deg,var(--jaune) var(--p,0%),var(--joint) 0);-webkit-mask:url(data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20viewBox=%270%200%2024%2024%27%3E%3Cpath%20d=%27M12,2l3.09,6.26L22,9.27l-5,4.87,1.18,6.88L12,17.77l-6.18,3.25L7,14.14,2,9.27l6.91-1.01z%27/%3E%3C/svg%3E) 0 0/var(--t) var(--t) repeat-x;mask:url(data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20viewBox=%270%200%2024%2024%27%3E%3Cpath%20d=%27M12,2l3.09,6.26L22,9.27l-5,4.87,1.18,6.88L12,17.77l-6.18,3.25L7,14.14,2,9.27l6.91-1.01z%27/%3E%3C/svg%3E) 0 0/var(--t) var(--t) repeat-x}
.rf2-note-courte .rf2-etoiles{--t:15px}
.rf2-note{font-size:15px}
.rf2 .rf2-note p{margin:0}
.rf2-note-moy{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.rf2-note-moy .rf2-etoiles{--t:26px}
.rf2-note-val{font-family:var(--titre);font-weight:900;font-size:36px;line-height:1;color:var(--fort)}
.rf2-note-nb,.rf2-note-vide{color:var(--disc);font-size:14px}
.rf2-note-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 12px;margin-top:14px}
.rf2-note-form fieldset{border:0;margin:0;padding:0;min-width:0}
.rf2-note-form legend{padding:0;margin-bottom:2px;font-weight:700;color:var(--fort)}
.rf2-note-choix{position:relative;display:flex}
/* vides en --champ et non --joint : une étoile cliquable doit se voir sur le fond (contraste 3:1) */
.rf2-note-choix label{display:flex;align-items:center;justify-content:center;width:44px;height:44px;cursor:pointer;color:var(--champ)}
.rf2-note-choix label::before{content:"";width:34px;height:34px;background:currentColor;-webkit-mask:url(data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20viewBox=%270%200%2024%2024%27%3E%3Cpath%20d=%27M12,2l3.09,6.26L22,9.27l-5,4.87,1.18,6.88L12,17.77l-6.18,3.25L7,14.14,2,9.27l6.91-1.01z%27/%3E%3C/svg%3E) center/contain no-repeat;mask:url(data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20viewBox=%270%200%2024%2024%27%3E%3Cpath%20d=%27M12,2l3.09,6.26L22,9.27l-5,4.87,1.18,6.88L12,17.77l-6.18,3.25L7,14.14,2,9.27l6.91-1.01z%27/%3E%3C/svg%3E) center/contain no-repeat}
/* remplissage jusqu'à l'étoile cochée, puis jusqu'à l'étoile survolée */
.rf2-note-choix :checked+label,.rf2-note-choix:has(:checked) label{color:var(--jaune)}
.rf2-note-choix :checked+label~label{color:var(--champ)}
.rf2-note-choix:has(label:hover) label{color:var(--jaune)}
.rf2-note-choix label:hover~label{color:var(--champ)}
.rf2-note-choix :focus-visible+label{outline:3px solid var(--focus);outline-offset:-2px}
.rf2 .rf2-note-form button:disabled{opacity:.45;cursor:not-allowed;filter:none}
.rf2 .rf2-note .rf2-note-fin{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}
@media (forced-colors:active){.rf2-etoiles,.rf2-note-choix label::before{forced-color-adjust:none;background:CanvasText}.rf2-note-choix :checked+label::before{background:Highlight}}
/* 2026-10-24 (retour Benoit) : images flottantes des anciens textes (align, float en ligne) limitées en largeur
   pour que le texte reste lisible à côté : 40 % de la colonne en mobile, 45 % au-delà */
html body.rf2 :is(.rf2r-corps,.rf2a-corps,.rf2a-pres,.rf2m-texte,.rfa-texte) img{max-width:100%;height:auto}
html body.rf2 :is(.rf2r-corps,.rf2a-corps,.rf2a-pres,.rf2m-texte,.rfa-texte) :is(img[align],img[style*="float"]){max-width:40%;margin-bottom:8px}
@media (min-width:600px){html body.rf2 :is(.rf2r-corps,.rf2a-corps,.rf2a-pres,.rf2m-texte,.rfa-texte) :is(img[align],img[style*="float"]){max-width:45%}}
/* 2026-10-24 (retour Benoit) : plus de cadre autour d'une carte touchée ou cliquée ; le cadre de focus reste pour
   la navigation au clavier (:focus-visible), et la carte s'assombrit légèrement au survol et à l'appui */
html body.rf2 .rf2-carte--bloc:focus-within{outline:0}
html body.rf2 .rf2-carte--bloc:has(:focus-visible){outline:3px solid var(--focus);outline-offset:3px}
html body.rf2 .rf2-carte--bloc:is(:hover,:active){background:var(--creux)}
/* 2026-10-24 (retour Benoit) : en mobile, filtre (un champ) et bouton sur la même ligne, sans aplat autour */
@media (max-width:599px){
 html body.rf2 .rf2-filtres{flex-wrap:nowrap;align-items:flex-end;gap:8px;padding:0;background:none}
 html body.rf2 .rf2-filtres>div{flex:1 1 auto;min-width:0}
 html body.rf2 .rf2-filtres .rf2-fld{min-width:0;width:100%}
 html body.rf2 .rf2-filtres .rf2-btn{flex:none;padding:0 16px}
}
/* 2026-10-24 (retour Benoit) : bouton « Afficher les réactions » ouvert, texte clair sur fond sombre (le fond teinté général le rendait illisible) */
html body.rf2 .rf2a-rea-pli[open]>summary,html body.rf2 .rf2-btn2[aria-pressed=true],html body.rf2 .rf2-btn2[aria-current]{background:var(--fort);color:var(--page)}
/* 2026-10-24 : bandeau de consentement à la mesure d'audience (include/rf2.js), site et forum */
.rf2-mesure-bandeau{position:fixed;z-index:90;left:16px;right:16px;bottom:16px;max-width:560px;margin:0 auto;padding:16px 18px;background:var(--page);color:var(--txt);font-family:var(--texte);border-top:4px solid var(--fort);box-shadow:0 8px 32px rgba(0,0,0,.28);font-size:15px;line-height:1.45}
.rf2-mesure-bandeau[hidden]{display:none}
.rf2-mesure-bandeau p{margin:0 0 12px}
.rf2-mesure-bandeau a{color:var(--lien)}
.rf2-mesure-bandeau div{display:flex;flex-wrap:wrap;gap:10px}
.rf2-mesure-bandeau button{flex:1 1 140px;min-height:44px;border:0;font:inherit;font-weight:700;cursor:pointer;background:var(--btn);color:var(--btnt)}
.rf2-mesure-bandeau button+button{background:var(--creux);color:var(--fort)}
.rf2-mesure-bandeau button:focus-visible{outline:3px solid var(--fort);outline-offset:2px}
