/*
Theme Name:   Vireo Montferrat
Template:     vireo
Description:  Thème enfant de Vireo pour la mairie de Montferrat : charte du bulletin « Le Petit Montferratois » et corrections d'accessibilité (RGAA).
Version:      0.9.5
Text Domain:  vireo-montferrat
*/

/* ---- Charte ------------------------------------------------------------------------------
   Jaune  : fonds et bandeaux uniquement (1,35:1 sur blanc : jamais en texte).
   Anthracite : texte (14,3:1 sur blanc, 10,6:1 sur jaune).
   Vert profond : liens et boutons (7,8:1 sur blanc, 5,8:1 sur jaune).
-------------------------------------------------------------------------------------------- */
:root {
	--mf-jaune: #E6E368;
	--mf-anthracite: #2B2A29;
	--mf-vert: #3F5A1E;
}

html.vireo-theme body { color: var(--mf-anthracite); }

/* ---- Éléments de démonstration du thème ----------------------------------------------------
   Barre du haut (adresse, téléphone, e-mail et icônes factices) masquée tant que les vraies
   coordonnées de la mairie ne sont pas saisies. */
html.vireo-theme .wp-block-kubio-navigation-top-bar { display: none !important; }

/* ---- Liens ------------------------------------------------------------------------------- */
html.vireo-theme #content a:not(.wp-block-button__link):not(.h-button),
html.vireo-theme #footer a {
	color: var(--mf-vert) !important;
	text-decoration: underline;
	text-underline-offset: .15em;
}
html.vireo-theme #content a:not(.wp-block-button__link):not(.h-button):hover,
html.vireo-theme #footer a:hover {
	color: var(--mf-anthracite) !important;
	text-decoration-thickness: 2px;
}

/* ---- Focus clavier visible (RGAA 10.7) ------------------------------------------------------ */
html.vireo-theme a:focus-visible,
html.vireo-theme button:focus-visible,
html.vireo-theme input:focus-visible,
html.vireo-theme select:focus-visible,
html.vireo-theme textarea:focus-visible,
html.vireo-theme [tabindex]:focus-visible {
	outline: 3px solid var(--mf-anthracite) !important;
	outline-offset: 3px;
	box-shadow: 0 0 0 6px var(--mf-jaune);
}

/* ---- En-tête : bandeau jaune, texte anthracite ---------------------------------------------- */
html.vireo-theme #hero {
	background-color: var(--mf-jaune) !important;
	background-image: none !important;
}
html.vireo-theme #hero .background-wrapper,
html.vireo-theme #hero .background-layer,
html.vireo-theme #hero .h-separator { display: none !important; }
html.vireo-theme #hero :is(h1, h2, h3, p, span) { color: var(--mf-anthracite) !important; }
html.vireo-theme #navigation :is(a, span, svg) { color: var(--mf-anthracite) !important; }
html.vireo-theme #navigation svg { fill: currentColor; }

/* ---- Titres : surlignage jaune façon bulletin ------------------------------------------------ */
html.vireo-theme .kubio-post-content :is(h2, h3) {
	background: linear-gradient(transparent 55%, var(--mf-jaune) 55%);
	width: fit-content;
	max-width: 100%;
	padding: 0 .25em;
	margin-left: -.25em;
}

/* ---- Boutons ----------------------------------------------------------------------------- */
html.vireo-theme .wp-block-button__link,
html.vireo-theme .h-button {
	background-color: var(--mf-vert) !important;
	border-color: var(--mf-vert) !important;
	color: #fff !important;
}

/* ---- Pied de page ------------------------------------------------------------------------ */
html.vireo-theme #footer { border-top: 8px solid var(--mf-jaune); }
html.vireo-theme .vm-footer { text-align: center; }
html.vireo-theme .vm-footer p { margin: 0 0 .5em; }
html.vireo-theme .vm-footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: .5em 1.5em; }

/* ---- Boutons de l'en-tête (page d'accueil) : anthracite sur le bandeau jaune ------------------ */
html.vireo-theme #hero .wp-block-kubio-button__link {
	background-color: var(--mf-anthracite) !important;
	border-color: var(--mf-anthracite) !important;
}
html.vireo-theme #hero .wp-block-kubio-button__link,
html.vireo-theme #hero .wp-block-kubio-button__link span { color: #fff !important; }
html.vireo-theme #hero .wp-block-kubio-button__link:hover { background-color: var(--mf-vert) !important; border-color: var(--mf-vert) !important; }

/* ---- Cartes des rubriques (page d'accueil) : pictogramme + libellé, cadre anthracite, ombre jaune ---- */
html.vireo-theme .vm-cards {
	list-style: none;
	margin: 0 0 3rem;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 2rem;
	position: relative;
	z-index: 2;
}
html.vireo-theme .vm-cards li { margin: 0; padding: 0; }
html.vireo-theme #content a.vm-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .6rem;
	height: 100%;
	box-sizing: border-box;
	padding: 1.75rem 1rem 1.5rem;
	background: #fff;
	border: 3px solid var(--mf-anthracite);
	box-shadow: 8px 8px 0 var(--mf-jaune);
	text-align: center;
	text-decoration: none !important;
	color: var(--mf-anthracite) !important;
}
html.vireo-theme .vm-card svg {
	width: 72px; height: 72px;
	stroke: currentColor; fill: none;
	stroke-width: 3; stroke-linecap: round; stroke-linejoin: round;
}
html.vireo-theme .vm-card__label { font-weight: 800; text-transform: uppercase; letter-spacing: .03em; font-size: 1.05rem; }
html.vireo-theme .vm-card__desc { font-size: .9rem; line-height: 1.4; }
html.vireo-theme #content a.vm-card:hover,
html.vireo-theme #content a.vm-card:focus-visible {
	background: var(--mf-jaune);
	box-shadow: 4px 4px 0 var(--mf-anthracite);
	transform: translate(4px, 4px);
}
@media (prefers-reduced-motion: no-preference) {
	html.vireo-theme #content a.vm-card { transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease; }
}
@media (max-width: 1024px) { html.vireo-theme .vm-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px)  { html.vireo-theme .vm-cards { grid-template-columns: 1fr; } }

/* ---- Actualités : cartes ----------------------------------------------------------------------- */
html.vireo-theme .wp-block-latest-posts { list-style: none; padding: 0; }
html.vireo-theme .wp-block-latest-posts.is-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 2rem;
}
html.vireo-theme .wp-block-latest-posts.is-grid li {
	box-sizing: border-box;
	width: auto !important;
	margin: 0;
	padding: 1.25rem;
	background: #fff;
	border: 3px solid var(--mf-anthracite);
	box-shadow: 6px 6px 0 var(--mf-jaune);
}
html.vireo-theme .wp-block-latest-posts__post-title { display: block; font-weight: 800; font-size: 1.15rem; line-height: 1.3; }
html.vireo-theme .wp-block-latest-posts__post-date { display: block; font-size: .85rem; margin: .35rem 0 .6rem; }
html.vireo-theme .wp-block-latest-posts__post-excerpt { font-size: .95rem; line-height: 1.5; }
@media (max-width: 1024px) { html.vireo-theme .wp-block-latest-posts.is-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px)  { html.vireo-theme .wp-block-latest-posts.is-grid { grid-template-columns: 1fr; } }

/* Respiration entre les sections de la page d'accueil. */
/* (le thème impose ses marges avec une forte spécificité : on la dépasse) */
html.vireo-theme .wp-block-kubio-section .entry-content > h2 { margin-top: 3rem !important; }
html.vireo-theme .wp-block-kubio-section .entry-content > .wp-block-buttons { margin-top: 1.5rem !important; }
html.vireo-theme .wp-block-kubio-section .entry-content > ul.vm-cards { margin-top: -5.5rem !important; }
@media (max-width: 600px) { html.vireo-theme .wp-block-kubio-section .entry-content > ul.vm-cards { margin-top: -3rem !important; } }

/* Page d'accueil : le contenu remonte sous le bandeau, les cartes le chevauchent légèrement. */
html.vireo-theme body.home [id^="post-"].wp-block-kubio-section__outer { padding-top: 0 !important; }

/* ---- Page d'accueil : photo de la chapelle en fond pleine largeur, titre dans un encadré jaune ---- */
html.vireo-theme body.home #hero {
	background-image: url("/wp-content/uploads/2026/10/chapelle-notre-dame-de-beauvoir.jpg") !important;
	background-size: cover !important;
	background-position: center 60% !important;
	background-repeat: no-repeat !important;
	min-height: 560px;
}
/* Encadré du titre : lisible sur n'importe quelle partie de la photo. */
html.vireo-theme body.home #hero .wp-block-kubio-column__inner {
	background: var(--mf-jaune);
	border: 3px solid var(--mf-anthracite);
	box-shadow: 8px 8px 0 var(--mf-anthracite);
	padding: 2rem 2.5rem;
	max-width: 560px;
	margin-left: auto;
	margin-right: 0;
}
@media (max-width: 600px) {
	html.vireo-theme body.home #hero .wp-block-kubio-column__inner { padding: 1.25rem; margin-inline: auto; }
}

/* ---- En-tête : barre blanche (la couronne du blason est jaune) avec filet jaune ------------------- */
html.vireo-theme #navigation { background-color: #fff !important; border-bottom: 6px solid var(--mf-jaune); }
html.vireo-theme a[data-kubio="kubio/logo"] { display: inline-flex !important; align-items: center; gap: .75rem; }
html.vireo-theme a[data-kubio="kubio/logo"] img.vm-blason { height: 60px !important; width: auto !important; max-width: none; flex: none; }
@media (max-width: 600px) { html.vireo-theme a[data-kubio="kubio/logo"] img.vm-blason { height: 46px !important; } }

/* ---- Une photo par rubrique : bandeau en haut des quatre pages d'accueil de rubrique ------------- */
html.vireo-theme body.page-id-474 #hero { background-image: url("/wp-content/uploads/2026/10/banniere-ma-municipalite.jpg") !important; }
html.vireo-theme body.page-id-475 #hero { background-image: url("/wp-content/uploads/2026/10/banniere-ma-ville.jpg") !important; }
html.vireo-theme body.page-id-476 #hero { background-image: url("/wp-content/uploads/2026/10/banniere-mes-demarches.jpg") !important; }
html.vireo-theme body.page-id-477 #hero { background-image: url("/wp-content/uploads/2026/10/banniere-mes-loisirs.jpg") !important; }
html.vireo-theme body:is(.page-id-474, .page-id-475, .page-id-476, .page-id-477) #hero {
	background-size: cover !important;
	background-position: center !important;
	background-repeat: no-repeat !important;
	min-height: 380px;
}
html.vireo-theme body:is(.page-id-474, .page-id-475, .page-id-476, .page-id-477) #hero h1 {
	display: inline-block;
	background: var(--mf-jaune);
	border: 3px solid var(--mf-anthracite);
	box-shadow: 8px 8px 0 var(--mf-anthracite);
	padding: .35em 1.1em;
}

/* ---- Vignettes d'accès rapide (page d'accueil) : jaune plein, pictogramme + libellé ------------------ */
html.vireo-theme .vm-tiles { list-style: none; margin: 1.5rem 0 3rem; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1rem; }
html.vireo-theme .wp-block-kubio-section .entry-content > ul.vm-tiles { margin: 1.5rem 0 3rem !important; }
html.vireo-theme .vm-tiles li { margin: 0; padding: 0; }
html.vireo-theme #content a.vm-tile {
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .6rem;
	height: 100%; box-sizing: border-box; padding: 1.25rem .5rem;
	background: var(--mf-jaune); border: 3px solid var(--mf-anthracite);
	color: var(--mf-anthracite) !important; text-align: center; text-decoration: none !important;
}
html.vireo-theme .vm-tile svg { width: 44px; height: 44px; stroke: currentColor; fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
html.vireo-theme .vm-tile span { font-weight: 800; font-size: .95rem; line-height: 1.25; }
html.vireo-theme #content a.vm-tile:hover,
html.vireo-theme #content a.vm-tile:focus-visible {
	background: #fff;
	color: var(--mf-anthracite) !important;
	box-shadow: 5px 5px 0 var(--mf-anthracite);
	transform: translate(-2px, -2px);
}
html.vireo-theme #content a.vm-tile:hover span,
html.vireo-theme #content a.vm-tile:focus-visible span { color: var(--mf-anthracite) !important; }
@media (prefers-reduced-motion: no-preference) { html.vireo-theme #content a.vm-tile { transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease; } }
@media (max-width: 1024px) { html.vireo-theme .vm-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px)  { html.vireo-theme .vm-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---- Cartes des associations ----------------------------------------------------------------------- */
html.vireo-theme .vm-assos { list-style: none; margin: 1rem 0 2rem; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
html.vireo-theme .wp-block-kubio-section .entry-content > ul.vm-assos { margin: 1rem 0 2rem !important; }
html.vireo-theme .vm-assos li { margin: 0; padding: 0; }
html.vireo-theme .vm-asso { height: 100%; box-sizing: border-box; padding: 1.1rem 1.25rem 1.25rem; background: #fff; border: 3px solid var(--mf-anthracite); box-shadow: 6px 6px 0 var(--mf-jaune); }
html.vireo-theme .vm-asso h3 { margin: 0 0 .45rem !important; padding: 0 !important; background: none !important; width: auto !important; font-size: 1.15rem; line-height: 1.3; }
html.vireo-theme .vm-asso p { margin: 0; font-size: .95rem; line-height: 1.5; }
@media (max-width: 1024px) { html.vireo-theme .vm-assos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px)  { html.vireo-theme .vm-assos { grid-template-columns: 1fr; } }

/* ======================================================================================================
   HARMONISATION (v0.8)
   Règle commune : une carte blanche passe au jaune au survol (appui), une vignette jaune passe au blanc.
   Le texte reste toujours anthracite : il ne disparaît jamais.
   ====================================================================================================== */

/* ---- Cartes cliquables en entier (lien étiré) : associations et actualités ------------------------- */
html.vireo-theme .vm-asso,
html.vireo-theme .wp-block-latest-posts.is-grid li { position: relative; }
html.vireo-theme .vm-asso h3 a::after,
html.vireo-theme .wp-block-latest-posts__post-title::after { content: ""; position: absolute; inset: 0; }
html.vireo-theme .wp-block-latest-posts__post-excerpt a { position: relative; z-index: 2; }
@media (prefers-reduced-motion: no-preference) {
	html.vireo-theme .vm-asso,
	html.vireo-theme .wp-block-latest-posts.is-grid li { transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease; }
}
html.vireo-theme .vm-asso:hover,
html.vireo-theme .wp-block-latest-posts.is-grid li:hover {
	background: var(--mf-jaune);
	box-shadow: 4px 4px 0 var(--mf-anthracite);
	transform: translate(4px, 4px);
}
html.vireo-theme .vm-asso:focus-within,
html.vireo-theme .wp-block-latest-posts.is-grid li:focus-within { outline: 3px solid var(--mf-anthracite); outline-offset: 3px; }

/* ---- Boutons du thème : anthracite, texte blanc, survol vert (jamais de bleu) ----------------------- */
html.vireo-theme .wp-block-kubio-button__link { background-color: var(--mf-anthracite) !important; border-color: var(--mf-anthracite) !important; }
html.vireo-theme .wp-block-kubio-button__link,
html.vireo-theme .wp-block-kubio-button__link span,
html.vireo-theme .wp-block-kubio-button__link svg { color: #fff !important; }
html.vireo-theme .wp-block-kubio-button__link:hover { background-color: var(--mf-vert) !important; border-color: var(--mf-vert) !important; }
html.vireo-theme .wp-block-button__link:hover { background-color: var(--mf-anthracite) !important; border-color: var(--mf-anthracite) !important; color: #fff !important; }

/* ---- Liste d'articles, résultats de recherche, article : sans bloc bleu de substitution ----------- */
html.vireo-theme .kubio-post-featured-image--image-missing { display: none !important; }
html.vireo-theme .wp-block-kubio-post-meta, html.vireo-theme .wp-block-kubio-post-meta a { color: var(--mf-anthracite) !important; }

/* ---- Contenu des pages : lecture confortable et titres alignés à gauche partout ------------------- */
html.vireo-theme .kubio-post-content :is(h2, h3, h4) { margin-right: auto !important; text-align: left !important; }
html.vireo-theme .kubio-post-content :is(h2, h3) { margin-left: -.25em !important; }
html.vireo-theme body:not(.home) .kubio-post-content > :is(p, ul:not(.vm-assos), ol, blockquote) { max-width: 75ch; }
/* Même colonne pour tout le contenu : blocs sans classe, figures et tableaux alignés sur le texte (le parent impose margin auto en !important) ; images isolées centrées dans la colonne */
html.vireo-theme body:not(.home) .wp-block-kubio-section .kubio-post-content.entry-content > :is(div:not([class]), figure, table:not([role="presentation"])) { max-width: 75ch; }
html.vireo-theme body:not(.home) .wp-block-kubio-section .kubio-post-content.entry-content > :is(div:not([class]), figure, table) { margin-left: 0 !important; margin-right: auto !important; }
html.vireo-theme .kubio-post-content table { margin-left: 0 !important; margin-right: auto !important; }
html.vireo-theme .kubio-post-content :is(p, div:not([class])) > img:only-child { display: block; margin-left: auto !important; margin-right: auto !important; }
html.vireo-theme .kubio-post-content table { border-collapse: collapse; max-width: 100%; }
html.vireo-theme .kubio-post-content table[border]:not([border="0"]) :is(td, th) { border: 1px solid #b9b9b9; padding: .5rem .75rem; vertical-align: top; }
html.vireo-theme .kubio-post-content table[border]:not([border="0"]) th { background: var(--mf-jaune); text-align: left; }
html.vireo-theme .kubio-post-content img { max-width: 100%; height: auto; }
/* Tableaux de mise en page (role=presentation) : cellules empilées sur petit écran ; tableaux de données : légende discrète */
@media (max-width: 640px) {
	html.vireo-theme .kubio-post-content table[role="presentation"],
	html.vireo-theme .kubio-post-content table[role="presentation"] :is(tbody, tr, td) { display: block; width: 100% !important; height: auto !important; box-sizing: border-box; }
}
html.vireo-theme .kubio-post-content table:not([role="presentation"]) caption { caption-side: top; text-align: left; font-weight: 700; padding: 0 0 .5rem; }
html.vireo-theme .kubio-post-content table:not([role="presentation"]) th[scope="row"] { font-weight: 700; background: #faf9dc; }

/* ---- Barre de recherche au-dessus de l'en-tête ---------------------------------------------------- */
html.vireo-theme .vm-topbar { background: var(--mf-anthracite); }
html.vireo-theme .vm-topbar__inner { box-sizing: border-box; max-width: 1100px; margin: 0 auto; padding: .45rem 15px; display: flex; justify-content: flex-end; }
html.vireo-theme .vm-search { display: flex; margin: 0; max-width: 100%; }
html.vireo-theme .vm-search input[type="search"] {
	box-sizing: border-box; height: 38px; width: 280px; max-width: 100%; padding: 0 .75rem; margin: 0;
	border: 2px solid #fff; border-right: 0; border-radius: 0;
	background: #fff; color: var(--mf-anthracite); font: inherit; font-size: .9rem; -webkit-appearance: none; appearance: none;
}
html.vireo-theme .vm-search input[type="search"]::placeholder { color: #5a5957; opacity: 1; }
html.vireo-theme .vm-search button {
	display: flex; align-items: center; justify-content: center; box-sizing: border-box; flex: none;
	width: 42px !important; height: 38px !important; padding: 0 !important; margin: 0; border: 2px solid var(--mf-jaune) !important; border-radius: 0 !important;
	background: var(--mf-jaune) !important; cursor: pointer;
}
html.vireo-theme .vm-search svg { width: 20px !important; min-width: 20px; height: 20px !important; flex: none; fill: none !important; stroke: var(--mf-anthracite) !important; stroke-width: 2.5; stroke-linecap: round; }
html.vireo-theme .vm-search button:hover { background: #fff !important; border-color: #fff !important; }
html.vireo-theme .vm-topbar input:focus-visible, html.vireo-theme .vm-topbar button:focus-visible { outline: 3px solid var(--mf-jaune) !important; outline-offset: 2px; box-shadow: none; }
@media (max-width: 600px) { html.vireo-theme .vm-search { width: 100%; } html.vireo-theme .vm-search input[type="search"] { flex: 1; width: auto; } }

/* ---- Liste d'articles / résultats de recherche : la carte est le bloc intérieur du thème ------------- */
html.vireo-theme .post-list-item .wp-block-kubio-query-loop-item__inner {
	position: relative; box-sizing: border-box; background: #fff !important;
	border: 3px solid var(--mf-anthracite) !important; box-shadow: 6px 6px 0 var(--mf-jaune) !important;
}
html.vireo-theme .post-list-item .wp-block-kubio-post-title__link::after { content: ""; position: absolute; inset: 0; }
html.vireo-theme .post-list-item .wp-block-kubio-read-more-button__link { position: relative; z-index: 2; }
html.vireo-theme .post-list-item :is(h2, h3) { background: none !important; padding: 0 !important; margin-left: 0 !important; width: auto !important; }
@media (prefers-reduced-motion: no-preference) { html.vireo-theme .post-list-item .wp-block-kubio-query-loop-item__inner { transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease; } }
html.vireo-theme .post-list-item:hover .wp-block-kubio-query-loop-item__inner { background: var(--mf-jaune) !important; box-shadow: 4px 4px 0 var(--mf-anthracite) !important; transform: translate(4px, 4px); }
html.vireo-theme .post-list-item:focus-within .wp-block-kubio-query-loop-item__inner { outline: 3px solid var(--mf-anthracite); outline-offset: 3px; }

/* ---- Contenu : alignement à gauche partout (le thème centre avec une forte spécificité) --------------- */
html.vireo-theme .wp-block-kubio-section .kubio-post-content.entry-content > :is(h2, h3, h4) { margin-right: auto !important; text-align: left !important; }
html.vireo-theme .wp-block-kubio-section .kubio-post-content.entry-content > :is(h2, h3) { margin-left: -.25em !important; }
html.vireo-theme .wp-block-kubio-section .kubio-post-content.entry-content > :is(p, ul, ol, blockquote, h4) { margin-left: 0 !important; margin-right: auto !important; }

/* ---- Article : cadres du bas de page aux couleurs de la charte, sans cadre « étiquettes » vide ------ */
html.vireo-theme .wp-block-kubio-column__inner:has(> .wp-block-kubio-column__align > [data-kubio="kubio/post-categories"]) {
	background-color: rgba(230, 227, 104, .25) !important; border-left: 6px solid var(--mf-jaune);
}
html.vireo-theme .wp-block-kubio-column__inner:has(> .wp-block-kubio-column__align > [data-kubio="kubio/post-categories"]) p { color: var(--mf-anthracite) !important; }
html.vireo-theme .wp-block-kubio-column:has(> .wp-block-kubio-column__inner > .wp-block-kubio-column__align > [data-kubio="kubio/post-tags"]) { display: none !important; }

/* ---- Tous les boutons du thème (accueil, page introuvable…) : anthracite, texte blanc, survol vert ---- */
html.vireo-theme a[class*="wp-block-kubio-"][class*="-button__link"]:not(.wp-block-kubio-read-more-button__link) { background-color: var(--mf-anthracite) !important; border-color: var(--mf-anthracite) !important; }
html.vireo-theme a[class*="wp-block-kubio-"][class*="-button__link"]:not(.wp-block-kubio-read-more-button__link),
html.vireo-theme a[class*="wp-block-kubio-"][class*="-button__link"]:not(.wp-block-kubio-read-more-button__link) :is(span, svg, i) { color: #fff !important; fill: currentColor; }
html.vireo-theme a[class*="wp-block-kubio-"][class*="-button__link"]:not(.wp-block-kubio-read-more-button__link):hover { background-color: var(--mf-vert) !important; border-color: var(--mf-vert) !important; }

/* ---- Titres de section : taille mesurée (le thème les fait très grands) ---------------------------- */
html.vireo-theme .wp-block-kubio-section .kubio-post-content.entry-content > h2 { font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.1rem); line-height: 1.2; }
html.vireo-theme .wp-block-kubio-section .kubio-post-content.entry-content > h3 { font-size: clamp(1.3rem, 1.1rem + .6vw, 1.6rem); line-height: 1.25; }

/* Titre des cartes d'associations : aligné avec le texte (la règle générale des titres le décalait de .25em). */
html.vireo-theme .vm-assos .vm-asso h3 { margin-left: 0 !important; }

/* ---- Sommaire « Dans cette page » et ancres (pages longues) --------------------------------------- */
html.vireo-theme .kubio-post-content [id] { scroll-margin-top: 120px; }
html.vireo-theme .wp-block-kubio-section .kubio-post-content.entry-content > nav[aria-label="Dans cette page"] {
	box-sizing: border-box; max-width: 75ch; margin: 1.5rem 0 !important; padding: 1rem 1.25rem;
	background: rgba(230, 227, 104, .25); border-left: 6px solid var(--mf-jaune);
}
html.vireo-theme nav[aria-label="Dans cette page"] p { margin: 0 0 .5rem; }
html.vireo-theme nav[aria-label="Dans cette page"] ul { margin: 0; padding-left: 1.25rem; }
