/* =========================================================================
   On merite, refonte v2 (30/09/2026) : accueil et pages de liste (rubriques,
   recherche, auteur) batis sur les blocs d'On a offert, habilles « La voix
   franche ». Chargee apres media-factory.css par onmerite-base.php, seulement
   quand <body> porte la classe om-v2 (apercu ?om_v2=1 ou option onmerite_v2).
   Classes propres om2-* : aucune regle d'OAO heritee (ni ombre, ni soulevement,
   ni zoom), aucune capitale, photos 4:3 (ADR-035), le citron est un fond.
   Les pages articles ne sont pas touchees : rien ici ne vise leurs classes.
   Mobile d'abord (390 px), min-width pour enrichir.
   ========================================================================= */

/* ---- Socle des blocs ---- */
body.om-v2 .om2-home{display:grid;gap:40px;padding:8px 0 40px}
body.om-v2 .om2-home a,body.om-v2 .om2-arch-head a,body.om-v2 .om2-grille a{text-decoration:none}
body.om-v2 .om2-repere{justify-self:start;display:inline-block;margin:0;background:var(--om-citron);color:var(--om-encre);font:700 13px/1 var(--om-texte);padding:7px 10px;border-radius:4px}

/* ---- Hero : typographique, aligne a gauche ; mosaique des rubriques sur bureau ---- */
body.om-v2 .om2-hero{display:grid;gap:28px;padding:18px 0 4px}
body.om-v2 .om2-hero-txt{display:grid;gap:16px;align-content:center}
body.om-v2 .om2-hero-titre{margin:0;font-family:var(--om-titre);font-weight:800;font-size:36px;line-height:1.06;letter-spacing:-.02em;color:var(--om-encre);text-wrap:balance}
body.om-v2 .om2-chapo{margin:0;font-size:18px;line-height:1.55;color:var(--om-gris)}
body.om-v2 .om2-hero-actions{display:grid;gap:14px;margin-top:4px}
body.om-v2 .om2-hero .om-cta{width:100%}
body.om-v2 .om2-lien{justify-self:center;font-weight:700;font-size:16px;color:var(--om-violet)!important;text-decoration:underline!important;text-underline-offset:3px}
body.om-v2 .om2-lien:hover{color:var(--om-violet-fonce)!important}
body.om-v2 .om2-mosaique{display:none}

/* ---- Bandeau de chiffres (bloc d'OAO) : encre, chiffres citron ---- */
body.om-v2 .om2-chiffres{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px;background:var(--om-encre);border-radius:14px;padding:18px 10px;text-align:center}
body.om-v2 .om2-chiffres b{display:block;font-family:var(--om-titre);font-weight:800;font-size:28px;line-height:1;color:var(--om-citron)}
body.om-v2 .om2-chiffres span{display:block;margin-top:7px;font-size:13px;line-height:1.3;color:var(--om-filet)}

/* ---- Encart Magnifaik (place de la banniere du quiz d'OAO) : lilas, encre, bouton violet ---- */
body.om-v2 .om2-mag{background:var(--om-lilas);border-radius:16px;padding:22px 20px 20px;display:grid;gap:16px}
body.om-v2 .om2-mag-grille{display:grid;gap:16px}
body.om-v2 .om2-mag-quiz{display:grid;gap:10px}
body.om-v2 .om2-mag-kick{display:block;margin:0;font-size:14px;font-weight:700;color:var(--om-encre)}
body.om-v2 .om2-mag-titre{margin:0;font-family:var(--om-titre);font-weight:800;font-size:28px;line-height:1.1;color:var(--om-encre)}
body.om-v2 .om2-mag-titre::before{content:none!important;display:none!important}
body.om-v2 .om2-mag-quiz p{margin:0;font-size:17px;line-height:1.55;color:var(--om-encre)}
body.om-v2 .om2-mag-quiz .om2-mag-precision{font-size:14px;line-height:1.45;color:var(--om-gris)}
body.om-v2 .om2-mag-cta{margin-top:6px;width:100%}
body.om-v2 .om2-mag-avis{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;align-items:start;background:var(--om-blanc);border:1.5px solid var(--om-filet);border-radius:12px;padding:12px;color:var(--om-encre)!important;transition:border-color .2s}
body.om-v2 .om2-mag-avis:hover{border-color:var(--om-violet)}
body.om-v2 .om2-mag-media{display:block;aspect-ratio:3/4;border-radius:8px;overflow:hidden;background:var(--om-lilas)}
body.om-v2 .om2-mag-media img{width:100%;height:100%;object-fit:cover;display:block}
body.om-v2 .om2-mag-avis-txt{display:grid;gap:6px;align-content:start}
body.om-v2 .om2-mag-avis .om2-mag-kick{font-size:13px;color:var(--om-violet)}
body.om-v2 .om2-mag-avis-titre{font-family:var(--om-titre);font-weight:700;font-size:18px;line-height:1.22}
body.om-v2 .om2-mag-avis-p{font-size:15px;line-height:1.45;color:var(--om-gris)}
body.om-v2 .om2-mag-avis-lien{font-weight:700;font-size:15px;color:var(--om-violet)}
body.om-v2 .om2-mag-mention{margin:0;font-size:13px;line-height:1.45;color:var(--om-gris)}
body.om-v2 .om2-mag-mention a{color:var(--om-violet)!important;font-weight:700;text-decoration:underline!important;text-underline-offset:2px}

/* ---- Icones des rubriques (bloc mf-clusters d'OAO) ---- */
body.om-v2 .om2-rubs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
body.om-v2 .om2-rub{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;color:var(--om-encre)!important;padding:4px 2px}
body.om-v2 .om2-rub-ico{width:64px;height:64px;border-radius:50%;background:var(--om-lilas);color:var(--om-violet);display:grid;place-items:center;transition:background .2s,color .2s}
body.om-v2 .om2-rub-ico svg{width:28px;height:28px}
body.om-v2 .om2-rub:hover .om2-rub-ico,body.om-v2 .om2-rub:focus-visible .om2-rub-ico{background:var(--om-violet);color:var(--om-blanc)}
body.om-v2 .om2-rub-nom{font-weight:700;font-size:14px;line-height:1.2}
body.om-v2 .om2-rub-nb{font-size:13px;line-height:1.2;color:var(--om-gris)}

/* ---- Sections de cartes ---- */
body.om-v2 .om2-sec{display:grid;gap:18px;scroll-margin-top:16px}
body.om-v2 .om2-sec-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:8px 16px}
body.om-v2 .om2-sec-head h2{margin:0;font-family:var(--om-titre);font-weight:800;font-size:26px;line-height:1.15;color:var(--om-encre)}
body.om-v2 .om2-sec-head h2::before{content:"";display:block;width:46px;height:5px;border-radius:99px;background:var(--om-violet);margin-bottom:12px}
body.om-v2 .om2-sec-all{font-weight:700;font-size:15px;color:var(--om-violet)!important;white-space:nowrap;padding-bottom:3px}
body.om-v2 .om2-sec-all:hover{color:var(--om-violet-fonce)!important}

/* ---- La carte d'article (mf-post-card d'OAO adaptee) ---- */
body.om-v2 .om2-grille{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
body.om-v2 .om2-card{display:flex;flex-direction:column;background:var(--om-blanc);border:1.5px solid var(--om-filet);border-radius:12px;overflow:hidden;transition:border-color .2s}
body.om-v2 .om2-card:hover,body.om-v2 .om2-card:focus-within{border-color:var(--om-violet)}
/* format de la miniature « facon YouTube » (1280 x 720, ADR-059) : 16:9, pour que son texte ne soit jamais coupe */
body.om-v2 .om2-card-media{display:block;aspect-ratio:16/9;background:var(--om-lilas);overflow:hidden}
body.om-v2 .om2-card-media img{width:100%;height:100%;object-fit:cover;display:block}
/* vignette dessinee (article sans photo ou avec l'image de partage du site) : icone de la rubrique et format */
body.om-v2 .om2-card-noimg{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:var(--om-lilas);color:var(--om-violet)}
body.om-v2 .om2-card-noimg--tests{background:#F7FCD9;color:var(--om-encre)}
body.om-v2 .om2-card-noimg svg{width:52px;height:52px}
body.om-v2 .om2-card-noimg-lab{font-weight:700;font-size:15px;line-height:1.2}
body.om-v2 .om2-card-body{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:16px 18px 18px;flex:1}
body.om-v2 .om2-card-title{margin:0;font-family:var(--om-titre);font-weight:700;font-size:20px;line-height:1.22;letter-spacing:-.01em}
body.om-v2 .om2-card-title a{color:var(--om-encre)!important}
body.om-v2 .om2-card:hover .om2-card-title a{color:var(--om-violet)!important}
body.om-v2 .om2-card-meta{margin:0;font-size:14px;line-height:1.35;color:var(--om-gris)}
body.om-v2 .om2-card-exc{margin:0;font-size:16px;line-height:1.5;color:var(--om-gris);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
body.om-v2 .om2-card-link{margin-top:auto;padding-top:4px;font-weight:700;font-size:15px;color:var(--om-violet)!important}
/* dans une section ou une page de rubrique, la pastille repeterait le titre */
body.om-v2 .om2-sec--rubrique .om2-card-pill,body.om-v2 .om2-grille--rubrique .om2-card-pill{display:none}

/* ---- Methode (a la place de « Qui vous conseille » d'OAO) ---- */
body.om-v2 .om2-methode-grille{display:grid;gap:14px}
body.om-v2 .om2-methode-carte{display:grid;gap:8px;justify-items:start;align-content:start;background:var(--om-blanc);border:1.5px solid var(--om-filet);border-radius:12px;padding:20px 18px}
body.om-v2 .om2-methode-ico{width:46px;height:46px;border-radius:10px;background:var(--om-citron);color:var(--om-encre);display:grid;place-items:center}
body.om-v2 .om2-methode-ico svg{width:24px;height:24px}
body.om-v2 .om2-methode-carte h3{margin:6px 0 0;font-family:var(--om-titre);font-weight:700;font-size:19px;line-height:1.25;color:var(--om-encre)}
body.om-v2 .om2-methode-carte p{margin:0;font-size:16px;line-height:1.5;color:var(--om-gris)}
body.om-v2 .om2-methode-pied{display:grid;gap:14px;justify-items:center;margin-top:4px}
body.om-v2 .om2-methode-pied .om-cta{width:100%}
body.om-v2 .om2-methode-liens{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;margin:0}
body.om-v2 .om2-methode-liens a{font-weight:700;font-size:15px;color:var(--om-violet)!important;text-decoration:underline!important;text-underline-offset:3px}

/* ---- Pages de liste : en-tete de rubrique, grille, pagination ---- */
body.om-v2 .om2-arch-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:start;padding:22px 0 22px;margin:0 0 24px;border-bottom:1px solid var(--om-filet)}
body.om-v2 .om2-arch-head:not(:has(> .om2-rub-ico)){grid-template-columns:minmax(0,1fr)}
body.om-v2 .om2-arch-head .om2-rub-ico{width:56px;height:56px}
body.om-v2 .om2-arch-head .om2-rub-ico svg{width:26px;height:26px}
body.om-v2 .om2-arch-txt{display:grid;gap:8px;justify-items:start}
body.om-v2 .om2-arch-head h1{margin:0;font-family:var(--om-titre);font-weight:800;font-size:32px;line-height:1.08;letter-spacing:-.015em;color:var(--om-encre)}
body.om-v2 .om2-arch-desc{margin:0;font-size:17px;line-height:1.5;color:var(--om-gris);max-width:44em}
body.om-v2 .om2-arch-nb{margin:0;font-size:14px;font-weight:700;color:var(--om-violet)}
body.om-v2 .om2-vide{font-size:17px;color:var(--om-gris);border:1.5px solid var(--om-filet);border-radius:12px;padding:18px}
body.om-v2 .om2-liste{padding-bottom:40px}
body.om-v2 .om2-liste .paging-navigation{margin:32px 0 8px;padding:0;background:transparent}
body.om-v2 .paging-navigation .nav-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
body.om-v2 .paging-navigation .page-numbers{display:grid;place-items:center;min-width:44px;height:44px;padding:0 12px;border:1.5px solid var(--om-filet);border-radius:8px;font-weight:700;font-size:16px;color:var(--om-encre);text-decoration:none;background:var(--om-blanc)}
body.om-v2 .paging-navigation .page-numbers:hover{border-color:var(--om-violet);color:var(--om-violet)}
body.om-v2 .paging-navigation .page-numbers.current{background:var(--om-violet);border-color:var(--om-violet);color:var(--om-blanc)}
body.om-v2 .paging-navigation .page-numbers.dots{border-color:transparent;background:transparent}

/* ---- Mobile : les sections de rubrique de l'accueil passent en rangees compactes (vignette a gauche),
   pour que la page ne s'etire pas en douze grandes cartes ; l'en-tete de rubrique laisse la place au titre ---- */
@media (max-width:639px){
	body.om-v2 .om2-sec--rubrique .om2-grille{gap:12px}
	/* rangee facon liste YouTube : la miniature entiere en 16:9 a gauche (jamais recadree en carre, son texte serait
	   coupe), le titre a droite */
	body.om-v2 .om2-sec--rubrique .om2-card{display:grid;grid-template-columns:148px minmax(0,1fr);align-items:center;padding:10px}
	body.om-v2 .om2-sec--rubrique .om2-card-media{aspect-ratio:16/9;border-radius:8px}
	body.om-v2 .om2-sec--rubrique .om2-card-body{padding:0 2px 0 12px;gap:6px;justify-content:center}
	body.om-v2 .om2-sec--rubrique .om2-card-title{font-size:17px;line-height:1.25}
	body.om-v2 .om2-sec--rubrique .om2-card-exc,body.om-v2 .om2-sec--rubrique .om2-card-link{display:none}
	body.om-v2 .om2-sec--rubrique .om2-card-noimg svg{width:34px;height:34px}
	body.om-v2 .om2-sec--rubrique .om2-card-noimg-lab{display:none}
	body.om-v2 .om2-arch-head{grid-template-columns:minmax(0,1fr)}
	body.om-v2 .om2-arch-head > .om2-rub-ico{display:none}
	/* a 390 px, sur l'accueil, le titre suffit : l'extrait allongeait chaque grande carte de trois lignes */
	body.om-v2 .om2-home .om2-card-exc{display:none}
}

/* ================= Tablette ================= */
@media (min-width:640px){
	body.om-v2 .om2-grille{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
	body.om-v2 .om2-chiffres{padding:22px 24px}
	body.om-v2 .om2-chiffres b{font-size:34px}
	body.om-v2 .om2-chiffres span{font-size:15px}
	body.om-v2 .om2-mag-avis{grid-template-columns:120px minmax(0,1fr);padding:14px}
	body.om-v2 .om2-methode-grille{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
	body.om-v2 .om2-methode-pied{grid-auto-flow:column;justify-content:start;align-items:center;gap:28px}
	body.om-v2 .om2-methode-pied .om-cta{width:auto;min-width:260px}
	body.om-v2 .om2-methode-liens{justify-content:flex-start}
}

/* ---- Au-dela de 768 px, le conteneur du theme est pleine largeur (max 1 340 px, moteur) : les articles
   tiennent leur marge de 40 px par .inside-article, les blocs de la refonte la portent eux-memes ---- */
@media (min-width:769px){
	body.om-v2 .om2-home,body.om-v2 .om2-liste{padding-left:40px;padding-right:40px}
}

/* ================= Bureau ================= */
@media (min-width:900px){
	body.om-v2 .om2-home{gap:56px;padding-top:18px;padding-bottom:56px}
	body.om-v2 .om2-hero{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:48px;align-items:center;padding:28px 0 8px}
	body.om-v2 .om2-hero-titre{font-size:58px;line-height:1.02}
	body.om-v2 .om2-chapo{font-size:20px;max-width:32em}
	body.om-v2 .om2-hero-actions{grid-auto-flow:column;justify-content:start;align-items:center;gap:28px}
	body.om-v2 .om2-hero .om-cta{width:auto;min-width:240px}
	body.om-v2 .om2-mosaique{display:grid;grid-template-columns:1.2fr 1fr;grid-template-rows:1fr 1fr;gap:12px;height:430px}
	body.om-v2 .om2-tuile{position:relative;display:block;border-radius:12px;overflow:hidden;background:var(--om-lilas)}
	body.om-v2 .om2-tuile:first-child{grid-row:1 / span 2}
	body.om-v2 .om2-tuile img{width:100%;height:100%;object-fit:cover;display:block}
	body.om-v2 .om2-tuile-txt{position:absolute;left:12px;bottom:12px;right:12px;display:grid;gap:2px;justify-items:start}
	body.om-v2 .om2-tuile-txt b,body.om-v2 .om2-tuile-txt span{background:var(--om-blanc);color:var(--om-encre);border-radius:6px;padding:6px 9px;line-height:1.15}
	body.om-v2 .om2-tuile-txt b{font-family:var(--om-titre);font-weight:700;font-size:16px}
	body.om-v2 .om2-tuile-txt span{font-size:13px;font-weight:600;color:var(--om-violet);padding-top:4px;padding-bottom:5px}
	body.om-v2 .om2-tuile:hover .om2-tuile-txt b{color:var(--om-violet)}
	body.om-v2 .om2-tuile:focus-visible{outline:2px solid var(--om-violet);outline-offset:3px}
	/* la mosaique donne deja l'entree par rubrique : la rangee d'icones ne sert plus que sur mobile */
	body.om-v2 .om2-home:has(.om2-mosaique) > .om2-rubs{display:none}
	body.om-v2 .om2-mag{padding:30px 34px 26px;gap:18px}
	body.om-v2 .om2-mag-grille{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:34px;align-items:center}
	body.om-v2 .om2-mag-titre{font-size:36px}
	body.om-v2 .om2-mag-cta{width:auto;justify-self:start;min-width:240px}
	body.om-v2 .om2-mag-avis{grid-template-columns:150px minmax(0,1fr);gap:18px;padding:16px}
	body.om-v2 .om2-mag-avis-titre{font-size:21px}
	body.om-v2 .om2-rubs{max-width:760px;width:100%;justify-self:center;gap:24px}
	body.om-v2 .om2-rub-ico{width:84px;height:84px}
	body.om-v2 .om2-rub-ico svg{width:36px;height:36px}
	body.om-v2 .om2-rub-nom{font-size:16px}
	body.om-v2 .om2-rub-nb{font-size:14px}
	body.om-v2 .om2-sec-head h2{font-size:32px}
	body.om-v2 .om2-arch-head{padding:40px 0 30px;margin-bottom:32px;gap:22px}
	body.om-v2 .om2-arch-head .om2-rub-ico{width:84px;height:84px}
	body.om-v2 .om2-arch-head .om2-rub-ico svg{width:36px;height:36px}
	body.om-v2 .om2-arch-head h1{font-size:48px}
}
@media (min-width:1024px){
	body.om-v2 .om2-grille{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
}
@media (prefers-reduced-motion:reduce){
	body.om-v2 .om2-card,body.om-v2 .om2-rub-ico,body.om-v2 .om2-mag-avis{transition:none}
}

/* ---- Offres sans code du composant [mf_code] (lien « Voir l'offre ») : dans un article, la couleur des liens
   (violet) l'emportait sur le texte blanc du bouton, devenu illisible sur son fond violet (constat du 30/09,
   page code promo Magnifaik). Le bouton a code (element button) n'etait pas touche. ---- */
body.om .entry-content a.mf-code-btn,body.om .entry-content a.mf-code-btn:hover,body.om .entry-content a.mf-code-btn:focus{color:var(--om-blanc)!important;text-decoration:none!important}

/* ---- Encart « code promo Magnifaik » pose dans les articles (onmerite_mag_encart_pose) : court, lilas a filet
   pointille violet (repere d'offre, sans ombre), un seul lien interne vers la page codes datee ---- */
body.om .om2-promo{margin:26px 0;padding:16px 18px 18px;border:1.5px dashed var(--om-violet);border-radius:12px;background:var(--om-lilas);display:grid;gap:6px}
body.om .om2-promo p{margin:0}
body.om .om2-promo-mention{font-size:13px;line-height:1.4;font-weight:700;color:var(--om-violet)}
body.om .om2-promo-titre{font-family:var(--om-titre);font-weight:800;font-size:20px;line-height:1.2;color:var(--om-encre)}
body.om .om2-promo-txt{font-size:16px;line-height:1.5;color:var(--om-encre)}
body.om .entry-content a.om2-promo-lien{justify-self:start;margin-top:4px;font-weight:700;font-size:16px;color:var(--om-violet)!important;text-decoration:underline!important;text-underline-offset:3px}
