/* =====================================================================
   CNPTLM – Styles du site (thème enfant)
   Les couleurs viennent des « Couleurs globales » d'Avada :
     Avada > Options > Général > Couleurs globales
     1 Blanc #ffffff · 2 Fond doux #f1f5f6 · 3 Fond teinté #e3ecef
     4 Bordures #dbe3e6 · 5 Accent orange #b5470f · 6 Bleu-vert #0b5e6b
     7 Texte #2e4650 · 8 Encre #0f2a33
   Changez une couleur là-bas : ce fichier et les éléments Avada suivent.
   ===================================================================== */

body {
	--cnp-blanc: var(--awb-color1, #ffffff);
	--cnp-doux: var(--awb-color2, #f1f5f6);
	--cnp-teinte: var(--awb-color3, #e3ecef);
	--cnp-line: var(--awb-color4, #dbe3e6);
	--cnp-accent: var(--awb-color5, #b5470f);
	--cnp-teal: var(--awb-color6, #0b5e6b);
	--cnp-text: var(--awb-color7, #2e4650);
	--cnp-ink: var(--awb-color8, #0f2a33);
	/* Nuances calculées automatiquement */
	--cnp-teal-700: color-mix(in srgb, var(--cnp-teal) 80%, #000);
	--cnp-muted: color-mix(in srgb, var(--cnp-text) 85%, var(--cnp-blanc));
	--cnp-sur-fonce: color-mix(in srgb, var(--cnp-blanc) 80%, var(--cnp-teal));
}

/* --- Accessibilité ------------------------------------------------------ */
.cnp-sr {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}
.cnp-admin-hint { padding: 2px 6px; font-size: 13px; color: #6b3b00; background: #fff4d6; border: 1px dashed #d79b00; }


/* --- Textes ------------------------------------------------------------ */
.cnp-eyebrow p {
	margin: 0 0 16px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--cnp-teal);
}
.cnp-eyebrow-sm p { font-size: 12px; margin-bottom: 8px; }
.cnp-lead p { margin: 0 0 8px; max-width: 34rem; font-size: 18px; line-height: 1.65; color: var(--cnp-text); }
.cnp-card-text p { margin: 0; font-size: 15px; line-height: 1.55; color: var(--cnp-muted); }
.cnp-small p { margin: 14px 0 0; font-size: 13px; color: var(--cnp-muted); }
.cnp-small a { color: var(--cnp-teal); text-decoration: underline; }
.cnp-h1 .fusion-title-heading { text-wrap: balance; }

/* --- Liens soulignés ---------------------------------------------------- */
.cnp-link p { margin: 0; }
.cnp-link a {
	font-weight: 600;
	color: var(--cnp-teal);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-decoration-color: color-mix(in srgb, currentColor 40%, transparent);
	text-underline-offset: 4px;
}
.cnp-link-light a { color: var(--cnp-blanc); }
.cnp-head-link .fusion-text { text-align: right; }

/* --- Boutons ------------------------------------------------------------ */
.fusion-button.cnp-btn {
	padding: 13px 20px !important;
	border-radius: 6px !important;
	font-weight: 600 !important;
	font-size: 16px !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	line-height: 1.2 !important;
}

.cnp-hero-text .fusion-button-wrapper,
.cnp-nl-intro .fusion-button-wrapper { display: inline-block; }
.cnp-hero-text .fusion-button { margin: 16px 12px 0 0; }
.cnp-nl-intro .fusion-button { margin-top: 20px; }

/* --- Image du haut de page ---------------------------------------------- */
.cnp-hero-img,
.cnp-hero-img img { display: block; width: 100%; border-radius: 16px; }
.cnp-hero-img img { aspect-ratio: 4 / 3; object-fit: cover; }

/* --- Cartes cliquables --------------------------------------------------- */
.cnp-mission-icon { margin: 0 !important; }
.fusion-column-anchor:focus-visible,
.cnp-link a:focus-visible,
.fusion-button.cnp-btn:focus-visible { outline: 3px solid var(--cnp-teal); outline-offset: 3px; }
.cnp-missions .fusion-column-anchor:focus-visible,
.cnp-missions .cnp-link a:focus-visible { outline-color: var(--cnp-blanc); }

/* --- Podcast ------------------------------------------------------------- */
.cnp-podcast-tile > .fusion-column-wrapper { aspect-ratio: 1; justify-content: flex-end !important; }
.cnp-podcast-label p {
	margin: 0;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--cnp-sur-fonce);
}
.cnp-podcast-name p { margin: 6px 0 0; font-size: 22px; font-weight: 700; line-height: 1.15; color: var(--cnp-blanc); }
.cnp-player > .fusion-column-wrapper { flex-direction: row !important; align-items: center !important; gap: 16px; }
.cnp-player .fontawesome-icon.circle-yes { margin: 0 !important; }
.cnp-player-text p { margin: 0; line-height: 1.4; color: var(--cnp-ink); }
.cnp-player-text span { font-size: 13px; color: var(--cnp-muted); }
.cnp-player + .cnp-link,
.cnp-podcast-body .cnp-link { margin-top: 20px; }

/* --- Actualités (élément Blog) ------------------------------------------ */
.cnp-news .fusion-post-wrapper {
	overflow: hidden;
	background: var(--cnp-blanc) !important;
	border: 1px solid var(--cnp-line) !important;
	border-radius: 12px;
	transition: border-color .15s ease;
}
.cnp-news .fusion-image-wrapper img { width: 100%; aspect-ratio: 20 / 9; object-fit: cover; }
.cnp-news .fusion-post-content-wrapper { padding: 20px 20px 24px !important; }
.cnp-news .fusion-post-content { display: flex; flex-direction: column; }
.cnp-news .fusion-single-line-meta {
	order: -1;
	margin: 0 0 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--cnp-teal);
}
.cnp-news .fusion-single-line-meta a { color: inherit; }
.cnp-news .blog-shortcode-post-title { margin: 0 0 10px !important; font-size: 18px !important; line-height: 1.3 !important; }
.cnp-news .blog-shortcode-post-title a { color: var(--cnp-ink); }
.cnp-news .fusion-post-content-container p { margin: 0; font-size: 15px; line-height: 1.55; color: var(--cnp-muted); }
.cnp-news .fusion-content-sep,
.cnp-news .fusion-meta-info { display: none; }

/* --- Newsletter ---------------------------------------------------------- */
.cnp-issue-list ul { margin: 0; padding-left: 18px; }
.cnp-issue-list li { margin: 7px 0; font-size: 15px; color: var(--cnp-text); }
.cnp-issue-list li::marker { color: var(--cnp-teal); }
.cnp-issue-links { margin-top: 18px; }
.cnp-issue-links a + a { margin-left: 20px; }

/* --- Organisations ------------------------------------------------------- */
.cnp-org > .fusion-column-wrapper { min-height: 88px; justify-content: center !important; align-items: center !important; }
.cnp-org-name p { margin: 0; font-size: 17px; font-weight: 700; text-align: center; color: var(--cnp-ink); }
.cnp-org-logo img { max-height: 52px; width: auto; }

/* --- En-tête ------------------------------------------------------------- */
.cnp-topbar-text p { margin: 0; font-size: 14px; color: var(--cnp-sur-fonce); }
.cnp-topbar-right .fusion-text { text-align: right; }
.cnp-topbar-text a { font-weight: 600; color: var(--cnp-blanc); text-decoration: underline; text-underline-offset: 3px; }
.cnp-logo img { width: auto; max-height: 48px; }

/* --- Pied de page -------------------------------------------------------- */
.cnp-footer-brand p { margin: 0 0 10px; font-size: 22px; font-weight: 700; color: var(--cnp-blanc); }
.cnp-footer-title p { margin: 0 0 14px; font-size: 16px; font-weight: 700; color: var(--cnp-blanc); }
.cnp-footer-text p,
.cnp-footer-text li { font-size: 15px; color: var(--cnp-sur-fonce); }
.cnp-footer-list ul { margin: 0; padding: 0; list-style: none; }
.cnp-footer-list li + li { margin-top: 12px; }
.cnp-footer a { color: var(--cnp-blanc); text-decoration: underline; text-underline-offset: 3px; }
.cnp-footer-bottom > .fusion-column-wrapper { padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, .14); }
.cnp-footer-bottom p { margin: 0; font-size: 14px; }
.cnp-footer-bottom-right .fusion-text { text-align: right; }

/* =====================================================================
   États de survol et de focus
   Règle commune : au survol, le soulignement devient plein et épais,
   les cartes se soulèvent avec un contour bleu-vert, les boutons foncent.
   Le focus clavier (Tab) reçoit le même retour visuel que le survol.
   ===================================================================== */

/* Liens dans le texte : soulignement léger au repos, plein au survol */
.cnp-link a,
.cnp-small a,
.cnp-footer a,
.cnp-topbar-text a {
	text-decoration-line: underline;
	text-decoration-color: color-mix(in srgb, currentColor 40%, transparent);
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
	transition: color .15s ease, text-decoration-color .15s ease, text-underline-offset .15s ease;
}
.cnp-link a:hover, .cnp-link a:focus-visible,
.cnp-small a:hover, .cnp-small a:focus-visible,
.cnp-footer a:hover, .cnp-footer a:focus-visible,
.cnp-topbar-text a:hover, .cnp-topbar-text a:focus-visible {
	text-decoration-color: currentColor;
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
}
.cnp-link a:hover, .cnp-link a:focus-visible,
.cnp-small a:hover, .cnp-small a:focus-visible { color: var(--cnp-ink); }
.cnp-link-light a:hover, .cnp-link-light a:focus-visible,
.cnp-footer a:hover, .cnp-footer a:focus-visible,
.cnp-topbar-text a:hover, .cnp-topbar-text a:focus-visible { color: var(--cnp-blanc); }

/* Boutons : le bleu-vert et l'orange passent à l'encre, le contour se remplit */
.fusion-button.cnp-btn { transition: background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease; }
.fusion-button.cnp-btn:not(.cnp-btn-outline):hover,
.fusion-button.cnp-btn:not(.cnp-btn-outline):focus-visible {
	background: var(--cnp-ink) !important;
	border-color: var(--cnp-ink) !important;
	color: var(--cnp-blanc) !important;
}
.fusion-button.cnp-btn-outline:hover,
.fusion-button.cnp-btn-outline:focus-visible {
	background: var(--cnp-teal) !important;
	border-color: var(--cnp-teal) !important;
	color: var(--cnp-blanc) !important;
}
.fusion-button.cnp-btn:hover .fusion-button-text,
.fusion-button.cnp-btn:focus-visible .fusion-button-text { color: inherit !important; }
.fusion-button.cnp-btn:active { transform: translateY(1px); }

/* Cartes (Vous cherchez, organisations, lecteur du podcast) */
.cnp-card > .fusion-column-wrapper,
.cnp-org > .fusion-column-wrapper,
.cnp-player > .fusion-column-wrapper {
	border-radius: 12px;
	transition: box-shadow .2s ease, transform .2s ease;
}
.cnp-card:hover > .fusion-column-wrapper,
.cnp-card:focus-within > .fusion-column-wrapper,
.cnp-org:hover > .fusion-column-wrapper,
.cnp-org:focus-within > .fusion-column-wrapper,
.cnp-player:hover > .fusion-column-wrapper,
.cnp-player:focus-within > .fusion-column-wrapper {
	box-shadow: 0 0 0 2px var(--cnp-teal), 0 12px 24px -14px rgba(15, 42, 51, .45);
	transform: translateY(-2px);
}
.cnp-card .fusion-title-heading { transition: color .15s ease; }
.cnp-card:hover .fusion-title-heading,
.cnp-card:focus-within .fusion-title-heading {
	color: var(--cnp-teal) !important;
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 5px;
}
.cnp-player:hover .cnp-player-text strong { color: var(--cnp-teal); }
.cnp-player:hover .fontawesome-icon.circle-yes { filter: brightness(.85); }

/* Actualités (élément Blog) */
.cnp-news .fusion-post-wrapper { transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease; }
.cnp-news .fusion-post-wrapper:hover,
.cnp-news .fusion-post-wrapper:focus-within {
	border-color: var(--cnp-teal) !important;
	box-shadow: 0 0 0 1px var(--cnp-teal), 0 12px 24px -14px rgba(15, 42, 51, .45);
	transform: translateY(-2px);
}
.cnp-news .fusion-post-wrapper:hover .blog-shortcode-post-title a,
.cnp-news .blog-shortcode-post-title a:focus-visible {
	color: var(--cnp-teal);
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 5px;
}
.cnp-news .fusion-image-wrapper img { transition: transform .4s ease; }
.cnp-news .fusion-post-wrapper:hover .fusion-image-wrapper img { transform: scale(1.03); }

/* Focus clavier visible partout */
.cnp-card .fusion-column-anchor:focus-visible,
.cnp-org .fusion-column-anchor:focus-visible,
.cnp-player .fusion-column-anchor:focus-visible { outline: none; }

/* =====================================================================
   Menu principal : survol et page active bien visibles
   Couvre l'ancien en-tête Avada (.fusion-main-menu) et l'élément Menu
   d'Avada Builder (.awb-menu). Bleu-vert sur blanc : contraste 7,3:1.
   ===================================================================== */

/* Ancien en-tête Avada */
.fusion-main-menu > ul > li > a:hover,
.fusion-main-menu > ul > li:hover > a,
.fusion-main-menu > ul > li > a:focus-visible,
.fusion-main-menu > ul > li.current-menu-item > a,
.fusion-main-menu > ul > li.current-menu-ancestor > a {
	color: var(--cnp-teal) !important;
	border-color: var(--cnp-teal) !important;
}

/* Élément Menu (Avada Builder / Layouts) */
.awb-menu .awb-menu__main-a:hover,
.awb-menu .awb-menu__main-li:hover > .awb-menu__main-a,
.awb-menu .awb-menu__main-a:focus-visible,
.awb-menu .current-menu-item > .awb-menu__main-a,
.awb-menu .current-menu-ancestor > .awb-menu__main-a,
.awb-menu .awb-menu__main-a:hover .menu-text,
.awb-menu .awb-menu__main-li:hover > .awb-menu__main-a .menu-text,
.awb-menu .current-menu-item > .awb-menu__main-a .menu-text,
.awb-menu .current-menu-ancestor > .awb-menu__main-a .menu-text {
	color: var(--cnp-teal) !important;
}
.awb-menu .awb-menu__main-li:hover > .awb-menu__main-a .menu-text,
.awb-menu .awb-menu__main-a:focus-visible .menu-text,
.awb-menu .current-menu-item > .awb-menu__main-a .menu-text,
.awb-menu .current-menu-ancestor > .awb-menu__main-a .menu-text {
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 8px;
}

/* Sous-menus (les deux types d'en-tête) */
.fusion-main-menu .sub-menu li > a:hover,
.fusion-main-menu .sub-menu li:hover > a,
.fusion-main-menu .sub-menu li > a:focus-visible,
.fusion-main-menu .sub-menu .current-menu-item > a,
.awb-menu .awb-menu__sub-li:hover > .awb-menu__sub-a,
.awb-menu .awb-menu__sub-a:hover,
.awb-menu .awb-menu__sub-a:focus-visible,
.awb-menu .awb-menu__sub-li.current-menu-item > .awb-menu__sub-a {
	background-color: var(--cnp-doux) !important;
	color: var(--cnp-teal) !important;
	box-shadow: inset 3px 0 0 var(--cnp-teal);
}

/* =====================================================================
   Page Actualités
   ===================================================================== */

/* Filtres par thème : [cnptlm_categories] */
.cnp-chips ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 0; padding: 0; list-style: none; }
.cnp-chips a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 40px;
	padding: 8px 16px;
	font-size: 15px;
	font-weight: 600;
	color: var(--cnp-ink);
	text-decoration: none;
	background: var(--cnp-blanc);
	border: 1px solid var(--cnp-line);
	border-radius: 999px;
	transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}
.cnp-chips a:hover, .cnp-chips a:focus-visible { border-color: var(--cnp-teal); color: var(--cnp-teal); }
.cnp-chips a[aria-current] { background: var(--cnp-teal); border-color: var(--cnp-teal); color: var(--cnp-blanc); }
.cnp-chips__count {
	min-width: 22px;
	padding: 0 6px;
	font-size: 12px;
	line-height: 20px;
	text-align: center;
	color: var(--cnp-muted);
	background: var(--cnp-doux);
	border-radius: 999px;
}
.cnp-chips a[aria-current] .cnp-chips__count { color: var(--cnp-teal); background: var(--cnp-blanc); }

/* Article à la une (élément Blog, mise en page « Medium ») */
.cnp-featured .fusion-post-medium {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	align-items: center;
	gap: 40px;
	margin: 0 !important;
	padding: 0 40px 0 0 !important;
	overflow: hidden;
	background: var(--cnp-blanc);
	border: 1px solid var(--cnp-line);
	border-radius: 16px;
	transition: box-shadow .2s ease, border-color .2s ease;
}
.cnp-featured .fusion-post-medium:hover,
.cnp-featured .fusion-post-medium:focus-within {
	border-color: var(--cnp-teal);
	box-shadow: 0 0 0 1px var(--cnp-teal), 0 16px 32px -18px rgba(15, 42, 51, .45);
}
.cnp-featured .fusion-post-medium > .fusion-clearfix,
.cnp-featured .fusion-content-sep,
.cnp-featured .fusion-meta-info { display: none; }
.cnp-featured .fusion-post-medium .fusion-flexslider,
.cnp-featured .fusion-post-medium .fusion-image-wrapper,
.cnp-featured .fusion-post-medium .post-slideshow {
	float: none !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}
.cnp-featured .fusion-post-medium img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.cnp-featured .fusion-post-content { display: flex; flex-direction: column; padding: 32px 0; }
.cnp-featured .fusion-single-line-meta {
	order: -1;
	margin: 0 0 12px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--cnp-teal);
}
.cnp-featured .fusion-single-line-meta a { color: inherit; }
.cnp-featured .blog-shortcode-post-title { margin: 0 0 14px !important; font-size: clamp(22px, 1.4rem + .8vw, 30px) !important; line-height: 1.2 !important; }
.cnp-featured .blog-shortcode-post-title a { color: var(--cnp-ink); }
.cnp-featured .fusion-post-medium:hover .blog-shortcode-post-title a {
	color: var(--cnp-teal);
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
}
.cnp-featured .fusion-post-content-container p { margin: 0; font-size: 17px; line-height: 1.6; color: var(--cnp-muted); }

/* Pagination des listes d'articles */
.fusion-blog-shortcode .pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-top: 48px;
}
.fusion-blog-shortcode .pagination > a,
.fusion-blog-shortcode .pagination > span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	margin: 0 !important;
	padding: 0 14px;
	font-weight: 600;
	color: var(--cnp-ink);
	background: var(--cnp-blanc);
	border: 1px solid var(--cnp-line) !important;
	border-radius: 8px;
}
.fusion-blog-shortcode .pagination > a:hover,
.fusion-blog-shortcode .pagination > a:focus-visible { border-color: var(--cnp-teal) !important; color: var(--cnp-teal); }
.fusion-blog-shortcode .pagination > .current { background: var(--cnp-teal); border-color: var(--cnp-teal) !important; color: var(--cnp-blanc); }

@media (max-width: 800px) {
	.cnp-featured .fusion-post-medium { grid-template-columns: 1fr; gap: 0; padding: 0 !important; }
	.cnp-featured .fusion-post-content { padding: 24px; }
}

/* --- Mobile -------------------------------------------------------------- */
@media (max-width: 800px) {
	.cnp-head-link .fusion-text,
	.cnp-footer-bottom-right .fusion-text,
	.cnp-topbar-right .fusion-text { text-align: left; }
	.cnp-podcast-tile > .fusion-column-wrapper { aspect-ratio: auto; min-height: 140px; }
}

@media (prefers-reduced-motion: reduce) {
	.cnp-card > .fusion-column-wrapper,
	.cnp-org > .fusion-column-wrapper,
	.cnp-player > .fusion-column-wrapper,
	.cnp-news .fusion-post-wrapper,
	.cnp-news .fusion-image-wrapper img,
	.fusion-button.cnp-btn,
	.cnp-featured .fusion-post-medium,
	.cnp-chips a { transition: none !important; transform: none !important; }
}
