/* Le Conseil Malin : composants du thème. Les couleurs, polices et tailles viennent de theme.json. */

:root {
	--cm-rayon: 12px;
	--cm-rayon-grand: 16px;
	--cm-trait: var(--wp--preset--color--trait);
}

/* Focus visible partout, même sur les éléments stylés. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--wp--preset--color--orange);
	outline-offset: 2px;
}

/* Lien d'évitement (ajouté par WordPress aux thèmes de blocs) : lisible quand il prend le focus. */
.skip-link.screen-reader-text:focus {
	background: var(--wp--preset--color--vert);
	color: var(--wp--preset--color--blanc);
	padding: 0.75rem 1rem;
	border-radius: var(--cm-rayon);
	top: 8px;
	left: 8px;
	z-index: 1000;
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

img { height: auto; max-width: 100%; }

/* ---------- En-tête ---------- */
.cm-entete { border-bottom: 1px solid var(--cm-trait); }
.cm-entete__barre { min-height: 76px; gap: 1rem 1.5rem; }
.cm-marque { gap: 0.6rem; }
.cm-marque__titre { font-family: var(--wp--preset--font-family--titres); font-weight: 800; font-size: 1.5rem; line-height: 1; letter-spacing: -0.01em; }
.cm-marque__titre a { text-decoration: none; color: var(--wp--preset--color--encre); }
.cm-nav { flex: 1 1 420px; }
.cm-nav .wp-block-navigation-item__content { padding: 0.6rem 0.75rem; border-radius: 8px; }
.cm-nav .current-menu-item > .wp-block-navigation-item__content,
.cm-nav .current-menu-ancestor > .wp-block-navigation-item__content { background: var(--wp--preset--color--vert-pale); color: var(--wp--preset--color--vert); }
.cm-entete__actions { gap: 0.5rem; }
.cm-recherche .wp-block-search__input { border: 1px solid var(--cm-trait); border-radius: 10px; min-height: 44px; padding: 0 0.8rem; font-family: inherit; }
.cm-recherche .wp-block-search__button { min-height: 44px; min-width: 44px; border-radius: 10px; border: 1px solid var(--cm-trait); background: var(--wp--preset--color--blanc); color: var(--wp--preset--color--encre); cursor: pointer; }
.cm-recherche--page .wp-block-search__input { min-height: 48px; }
.cm-bouton-lettre .wp-block-button__link { min-height: 44px; display: inline-flex; align-items: center; }

/* ---------- Titres de section, grilles, cartes ---------- */
.cm-section-titre { border-bottom: 3px solid var(--wp--preset--color--encre); padding-bottom: 0.6rem; margin-top: 2.5rem; margin-bottom: 1.25rem; gap: 0.5rem 1rem; }
.cm-section-titre h1, .cm-section-titre h2, .cm-section-titre p { margin: 0; }
.cm-section-titre p { font-weight: 700; }
.cm-section-titre p a { text-decoration: none; }
.cm-une__titre { margin-top: 1.5rem; }

.cm-grille { display: grid; gap: 1.5rem; grid-template-columns: repeat(1, minmax(0, 1fr)); }
@media (min-width: 640px) { .cm-grille--3, .cm-grille--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 960px) { .cm-grille--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .cm-grille--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.cm-grille > li, .cm-liste-cote > li { list-style: none; }
.wp-block-post-template.cm-grille, .wp-block-post-template.cm-liste-cote { padding-left: 0; margin: 0; }

.cm-carte { display: flex; flex-direction: column; gap: 0.6rem; min-width: 0; }
.cm-carte__image img { border-radius: var(--cm-rayon); aspect-ratio: 3 / 2; object-fit: cover; width: 100%; background: var(--wp--preset--color--papier); }
.cm-carte__rubrique, .cm-carte__rubrique a { color: var(--wp--preset--color--vert); }
.cm-carte__titre { margin: 0; line-height: 1.25; }
.cm-carte__titre a { color: var(--wp--preset--color--encre); text-decoration: none; }
.cm-carte__titre a:hover, .cm-carte__titre a:focus-visible { color: var(--wp--preset--color--vert); }
.cm-carte__extrait { color: var(--wp--preset--color--texte); }
.cm-carte__extrait .wp-block-post-excerpt__more-text { display: none; }
.cm-carte__meta { gap: 0.25rem 1rem; font-size: var(--wp--preset--font-size--petit); color: var(--wp--preset--color--gris); }
.cm-carte__meta a { color: var(--wp--preset--color--encre); text-decoration: none; }
.cm-carte__verif { color: var(--wp--preset--color--gris); font-size: var(--wp--preset--font-size--petit); }
.cm-carte--guide { border: 1px solid var(--cm-trait); border-radius: var(--cm-rayon-grand); padding: 1rem; }
.cm-carte--guide .cm-carte__image img { aspect-ratio: 1; }
.cm-carte--guide .cm-carte__rubrique, .cm-carte--guide .cm-carte__rubrique a { color: var(--wp--preset--color--vert); }
.cm-carte--ligne { flex-direction: row; gap: 0.75rem; align-items: flex-start; }
.cm-carte--ligne .cm-carte__titre { flex: 1 1 0; min-width: 0; }
.cm-carte__vignette { flex: 0 0 88px; }
.cm-carte__vignette img { border-radius: 10px; aspect-ratio: 1; object-fit: cover; }

/* À la une : une grande carte et deux petites. */
.cm-une__liste { display: grid; gap: 1.5rem; grid-template-columns: repeat(1, minmax(0, 1fr)); padding-left: 0; margin: 0; }
.cm-une__liste > li { list-style: none; }
@media (min-width: 960px) {
	.cm-une__liste { grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-rows: auto; }
	.cm-une__liste > li:first-child { grid-column: span 7; grid-row: span 2; }
	.cm-une__liste > li:not(:first-child) { grid-column: span 5; }
	.cm-une__liste > li:not(:first-child) .cm-carte { display: grid; grid-template-columns: 132px minmax(0, 1fr); column-gap: 1rem; row-gap: 0.35rem; align-content: start; }
	.cm-une__liste > li:not(:first-child) .cm-carte__image { grid-row: 1 / span 3; }
	.cm-une__liste > li:not(:first-child) .cm-carte__image img { aspect-ratio: 1; }
	.cm-une__liste > li:not(:first-child) .cm-carte__extrait { display: none; }
	.cm-une__liste > li:not(:first-child) .cm-carte__titre { font-size: var(--wp--preset--font-size--moyen); }
}
.cm-carte--une .cm-carte__image img { aspect-ratio: 16 / 9; }
.cm-carte--une .cm-carte__titre { font-size: var(--wp--preset--font-size--tres-grand); line-height: 1.12; }
.cm-carte--une .cm-carte__titre, .cm-carte--une .cm-carte__extrait { margin: 0; }

/* Bandeau rappels de produits */
.cm-rappels { margin-top: 2rem; padding: 1rem 1.25rem; border-radius: var(--cm-rayon-grand); border: 1px solid #f3d9cb; gap: 0.5rem 1.5rem; }
.cm-rappels__titre { margin: 0; font-weight: 800; }
.cm-rappels__liste .wp-block-post-template { gap: 0.4rem 1.25rem; margin: 0; padding: 0; }
.cm-rappels__liste li { list-style: none; }
.cm-rappels__item { margin: 0; font-family: var(--wp--preset--font-family--texte); font-weight: 400; }
.cm-rappels__item a { color: var(--wp--preset--color--encre); }
.cm-rappels__lien { margin: 0 0 0 auto; font-weight: 700; }
.cm-rappels__lien a { text-decoration: none; }

/* Newsletter */
.cm-newsletter { margin-top: 2.5rem; padding: 2rem 2.25rem; border-radius: 18px; gap: 1.25rem 3rem; }
.cm-newsletter__texte { flex: 1 1 360px; }
.cm-newsletter__texte h2, .cm-newsletter__texte p { margin: 0; }
.cm-newsletter__texte p { margin-top: 0.5rem; color: #d9efe9; }
.cm-newsletter--cote { margin-top: 1.5rem; padding: 1.25rem; border-radius: var(--cm-rayon-grand); }
.cm-newsletter--cote h2 { margin: 0 0 0.5rem; }
.cm-newsletter--cote p { color: #d9efe9; margin: 0 0 0.75rem; }

/* ---------- Article ---------- */
.cm-article { padding-top: 1.5rem; padding-bottom: 3rem; }
.cm-article__colonnes { gap: 2rem; }
.cm-article__principal article { display: flex; flex-direction: column; gap: 1.1rem; }
.cm-ariane__nav { font-size: var(--wp--preset--font-size--petit); color: var(--wp--preset--color--gris); }
.cm-ariane__nav a { color: var(--wp--preset--color--vert); }
.cm-surtitre, .cm-surtitre a, .is-style-surtitre { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--wp--preset--color--vert); text-decoration: none; }
.cm-produit__surtitre { color: var(--wp--preset--color--orange); margin: 0; }
.cm-chapo, .is-style-chapo { font-size: var(--wp--preset--font-size--moyen); line-height: 1.45; font-weight: 700; color: var(--wp--preset--color--texte); }
.cm-article__image img { border-radius: 14px; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.cm-article .wp-block-post-content { font-size: 1.125rem; }
.cm-article .wp-block-post-content > * + * { margin-top: 1.1rem; }
.cm-article .wp-block-post-content h2 { margin-top: 2rem; }
.cm-article .wp-block-post-content h3 { margin-top: 1.5rem; }
.cm-article .wp-block-post-content figcaption { font-size: var(--wp--preset--font-size--petit); color: var(--wp--preset--color--gris); }
.cm-article .wp-block-post-content .wp-block-table { overflow-x: auto; }
.cm-etiquettes { font-size: var(--wp--preset--font-size--petit); color: var(--wp--preset--color--gris); }
.cm-etiquettes a { color: var(--wp--preset--color--encre); }
.cm-mention-affiliation { font-size: var(--wp--preset--font-size--petit); color: var(--wp--preset--color--gris); background: var(--wp--preset--color--papier); border-radius: 10px; padding: 0.6rem 0.9rem; }

/* Méta d'article */
.cm-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.25rem; padding: 0.9rem 0; border-top: 1px solid var(--cm-trait); border-bottom: 1px solid var(--cm-trait); font-size: var(--wp--preset--font-size--petit); }
.cm-meta__auteur { display: flex; align-items: center; gap: 0.6rem; }
.cm-meta__auteur > div { display: flex; flex-direction: column; }
.cm-meta__avatar { border-radius: 50%; width: 44px; height: 44px; }
.cm-meta__nom { font-weight: 700; color: var(--wp--preset--color--encre); text-decoration: none; }
.cm-meta__fonction { color: var(--wp--preset--color--gris); }
.cm-meta__dates { display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; color: var(--wp--preset--color--gris); }

/* Colonne latérale */
.cm-cote { position: sticky; top: 1rem; display: flex; flex-direction: column; gap: 1rem; }
.cm-cote__titre { border-bottom: 3px solid var(--wp--preset--color--encre); padding-bottom: 0.5rem; margin: 0; font-weight: 800; }
.cm-liste-cote { display: flex; flex-direction: column; gap: 1rem; }

/* ---------- Composants signature ---------- */
.is-style-a-retenir { background: var(--wp--preset--color--papier); border-left: 6px solid var(--wp--preset--color--vert); border-radius: 0 14px 14px 0; padding: 1.1rem 1.4rem; }
.is-style-a-retenir h2, .cm-a-retenir__titre { font-size: 1.0625rem; margin: 0 0 0.5rem; padding-left: 1.5rem; position: relative; }
.is-style-a-retenir h2::before { content: ""; position: absolute; left: 0; top: 0.2em; width: 0.9em; height: 0.5em; border-left: 3px solid var(--wp--preset--color--vert); border-bottom: 3px solid var(--wp--preset--color--vert); transform: rotate(-45deg); }
.is-style-a-retenir ul { margin: 0; padding-left: 1.1rem; color: var(--wp--preset--color--texte); }
.is-style-a-retenir li + li { margin-top: 0.35rem; }

.is-style-sources { background: var(--wp--preset--color--papier); border-radius: 14px; padding: 1.1rem 1.4rem; }
.is-style-sources h2 { font-size: 1.0625rem; margin: 0 0 0.5rem; }
.is-style-sources ul { margin: 0; padding-left: 1.1rem; font-size: var(--wp--preset--font-size--petit); }
.cm-sources__relecture { color: var(--wp--preset--color--gris); margin: 0.6rem 0 0; }

.is-style-encart { background: var(--wp--preset--color--papier); border-radius: 14px; padding: 1.1rem 1.4rem; }

.is-style-produit { border: 1px solid var(--cm-trait); border-radius: var(--cm-rayon-grand); padding: 1.1rem 1.25rem; }
.is-style-produit h3 { margin: 0.25rem 0 0.5rem; }
.is-style-produit h4 { margin: 0.75rem 0 0.25rem; font-size: 1rem; }
.is-style-produit ul { margin: 0; padding-left: 1.1rem; }
.cm-produit__image img { border-radius: 10px; }

.cm-faq .cm-faq__item { border: 1px solid var(--cm-trait); border-radius: 12px; padding: 0.8rem 1.1rem; margin-top: 0.6rem; }
.cm-faq .cm-faq__item summary { font-weight: 700; cursor: pointer; }
.cm-faq .cm-faq__item[open] summary { margin-bottom: 0.5rem; }

.wp-block-button.is-style-secondaire .wp-block-button__link { background: var(--wp--preset--color--blanc); color: var(--wp--preset--color--vert); border: 2px solid var(--wp--preset--color--vert); }

/* ---------- Listes, rubriques, auteur ---------- */
.cm-liste { padding-top: 1.5rem; padding-bottom: 3rem; }
.cm-rubrique__intro { color: var(--wp--preset--color--texte); max-width: 60ch; }
.cm-pagination { margin-top: 2rem; gap: 1rem; font-weight: 700; }
.cm-auteur__fiche { gap: 1.5rem; margin-bottom: 2rem; }
.cm-auteur__avatar img { border-radius: 50%; }
.cm-auteur__texte { flex: 1 1 400px; }
.cm-auteur__bio { max-width: 60ch; color: var(--wp--preset--color--texte); }
.cm-404 { padding-bottom: 3rem; }

/* ---------- Pied de page ---------- */
.cm-pied { margin-top: 3rem; padding-top: 2.5rem; padding-bottom: 2.5rem; }
.cm-pied__colonnes { gap: 2rem; }
.cm-pied__marque { font-family: var(--wp--preset--font-family--titres); font-weight: 800; font-size: 1.375rem; }
.cm-pied__marque a { color: var(--wp--preset--color--blanc); text-decoration: none; }
.cm-pied p { color: #d6d3cb; }
.cm-pied__transparence { color: #a8a49a; }
.cm-pied__titre { color: var(--wp--preset--color--blanc); letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 0.75rem; }
.cm-pied__liens { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.4rem; }
.cm-pied a, .cm-pied__nav a { color: var(--wp--preset--color--blanc); text-decoration: none; }
.cm-pied a:hover, .cm-pied a:focus-visible { text-decoration: underline; color: var(--wp--preset--color--blanc); }

/* ---------- Mobile ---------- */
@media (max-width: 781px) {
	.cm-article__colonnes, .cm-pied__colonnes { flex-wrap: wrap; }
	.cm-cote { position: static; }
	.cm-newsletter { padding: 1.5rem; }
	.cm-entete__actions .cm-recherche { display: none; }
}

/* ---------- Finitions (1.0.2) ---------- */
/* Liseré signature en haut de page et marque avec le nouveau logo */
body { border-top: 4px solid var(--wp--preset--color--vert); }
.cm-marque .wp-block-site-logo img { width: 44px; height: 44px; }
.cm-marque__titre { font-size: 1.6rem; }
.cm-marque__titre a span, .cm-marque__titre .malin { color: var(--wp--preset--color--vert); }

/* Titres de section : un filet fin et un trait signature court */
.cm-section-titre { border-bottom: 1px solid var(--cm-trait); position: relative; }
.cm-section-titre::after { content: ""; position: absolute; left: 0; bottom: -1px; width: 56px; height: 3px; background: var(--wp--preset--color--vert); }
.cm-section-titre p a { color: var(--wp--preset--color--vert); }

/* Cartes : image qui respire au survol, titre souligné au survol */
.cm-carte__image { overflow: hidden; border-radius: var(--cm-rayon); }
.cm-carte__image img { transition: transform 0.35s ease; }
.cm-carte:hover .cm-carte__image img, .cm-carte:focus-within .cm-carte__image img { transform: scale(1.03); }
.cm-carte__titre a { text-decoration: underline transparent; text-decoration-thickness: 2px; text-underline-offset: 3px; transition: text-decoration-color 0.2s ease, color 0.2s ease; }
.cm-carte:hover .cm-carte__titre a, .cm-carte__titre a:focus-visible { text-decoration-color: var(--wp--preset--color--vert); }
.cm-carte__rubrique a { background: var(--wp--preset--color--vert-pale); padding: 0.15rem 0.5rem; border-radius: 999px; display: inline-block; margin-right: 0.25rem; }
.cm-carte--guide .cm-carte__rubrique a { background: var(--wp--preset--color--papier); color: var(--wp--preset--color--orange); }

/* À la une : la grande carte est posée sur un fond papier */
.cm-une { background: var(--wp--preset--color--papier); border-radius: 18px; padding: 1.5rem; }
.cm-carte--une .cm-carte__titre a:hover { color: var(--wp--preset--color--vert); }

/* Boutons */
.wp-block-button__link { box-shadow: 0 1px 0 rgba(27, 27, 31, 0.08), 0 6px 16px -10px rgba(15, 111, 97, 0.6); transition: transform 0.15s ease, box-shadow 0.15s ease; }
.wp-block-button__link:hover { transform: translateY(-1px); box-shadow: 0 2px 0 rgba(27, 27, 31, 0.08), 0 10px 20px -10px rgba(15, 111, 97, 0.7); }

/* Rubriques : bandeau papier avec l'introduction */
.cm-liste > .wp-block-query-title { margin-bottom: 0.25rem; }
.cm-rubrique__intro { background: var(--wp--preset--color--papier); border-left: 6px solid var(--wp--preset--color--vert); border-radius: 0 14px 14px 0; padding: 0.9rem 1.2rem; max-width: none; margin-bottom: 1.5rem; }

/* Article : chapô avec un trait, titres de section avec le trait court */
.cm-chapo { border-left: 4px solid var(--wp--preset--color--vert); padding-left: 1rem; }
.cm-article .wp-block-post-content h2 { padding-bottom: 0.4rem; border-bottom: 1px solid var(--cm-trait); position: relative; }
.cm-article .wp-block-post-content h2::after { content: ""; position: absolute; left: 0; bottom: -1px; width: 40px; height: 3px; background: var(--wp--preset--color--vert); }

/* Pied de page : liseré */
.cm-pied { border-top: 6px solid var(--wp--preset--color--vert); }

/* Mobile : en-tête sur une ligne, bouton lettre en pleine largeur */
@media (max-width: 781px) {
	.cm-entete__barre { gap: 0.6rem 1rem; padding-top: 0.5rem; padding-bottom: 0.5rem; }
	.cm-nav { flex: 0 0 auto; order: 2; margin-left: auto; }
	.cm-entete__actions { flex-basis: 100%; order: 3; }
	.cm-entete__actions .wp-block-buttons, .cm-bouton-lettre, .cm-bouton-lettre .wp-block-button__link { width: 100%; justify-content: center; }
	.cm-une { padding: 1rem; }
}

/* Bloc de maillage interne en fin d'article */
.cm-lies { margin-top: 2rem; background: var(--wp--preset--color--vert-pale); border-radius: 14px; padding: 1.1rem 1.4rem; }
.cm-lies__titre { font-size: 1.0625rem; margin: 0 0 0.5rem; }
.cm-lies__liste { margin: 0; padding-left: 1.1rem; display: flex; flex-direction: column; gap: 0.35rem; }
.cm-lies__liste a { color: var(--wp--preset--color--encre); font-weight: 700; }
.cm-lies__liste a:hover { color: var(--wp--preset--color--vert); }

/* ---------- En-tête sur deux lignes (1.0.4) : marque et actions en haut, rubriques en dessous ---------- */
.cm-entete__barre { display: grid !important; grid-template-columns: auto 1fr auto; grid-template-areas: "marque . actions" "nav nav nav"; align-items: center; column-gap: 1.5rem; row-gap: 0; min-height: 0; padding-top: 0.75rem; }
.cm-marque { grid-area: marque; }
.cm-entete__actions { grid-area: actions; }
.cm-nav { grid-area: nav; flex: 0 0 auto; border-top: 1px solid var(--cm-trait); margin-top: 0.75rem; padding: 0.15rem 0; }
.cm-nav .wp-block-navigation__container { flex-wrap: wrap; gap: 0.25rem; }
.cm-nav .wp-block-navigation-item__content { padding: 0.7rem 0.9rem; font-size: 1.0625rem; }
.cm-nav .wp-block-navigation-item:first-child .wp-block-navigation-item__content { padding-left: 0; }
@media (max-width: 781px) {
	.cm-entete__barre { grid-template-columns: 1fr auto; grid-template-areas: "marque nav" "actions actions"; padding-bottom: 0.75rem; }
	.cm-nav { border-top: 0; margin-top: 0; margin-left: 0; order: 0; }
	.cm-entete__actions { margin-top: 0.75rem; }
	.cm-nav .wp-block-navigation__responsive-container-open { padding: 0.6rem; border: 1px solid var(--cm-trait); border-radius: 10px; }
}
/* Menu mobile ouvert : plein écran, grands liens, bouton de fermeture visible */
.wp-block-navigation__responsive-container.is-menu-open { background: var(--wp--preset--color--blanc); padding: 1.5rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.375rem; padding: 0.75rem 0; font-family: var(--wp--preset--font-family--titres); font-weight: 800; }
.wp-block-navigation__responsive-container-close { top: 1rem; right: 1rem; }

/* ---------- 1.0.9 : cartes bien séparées sur mobile, avatar ---------- */
@media (max-width: 639px) {
	.cm-grille > li + li, .cm-une__liste > li + li, .cm-liste-cote > li + li { border-top: 1px solid var(--cm-trait); padding-top: 1.25rem; }
	.cm-carte__image { order: -1; }
	.cm-carte__titre { margin-top: 0; }
}
.cm-meta__avatar { background: var(--wp--preset--color--vert); object-fit: cover; }

/* ---------- 1.1.0 : bloc « Où l'acheter » (Affilizz) ---------- */
.cm-affiliation__titre { margin-top: 2rem; }
.affilizz-rendering-container { margin: 1rem 0 2rem; }
