/*
 * PFO Énergies – styles du thème qui n'ont pas de réglage dans Astra ni dans Elementor.
 * Exception validée : en-tête fixe avec ombre, trait sous les titres et icônes de contact du pied de page.
 */

/* En-tête fixe au défilement, avec ombre portée vers le bas */
#masthead {
	position: sticky;
	top: 0;
	z-index: 100;
	background: #ffffff;
	box-shadow: 0 8px 22px rgba(20, 30, 70, 0.10);
}
.admin-bar #masthead {
	top: 32px;
}
@media (max-width: 782px) {
	.admin-bar #masthead {
		top: 46px;
	}
}

/* Pied de page : trait sous les titres de colonnes */
.site-footer .widget-title::after {
	content: "";
	display: block;
	width: 30px;
	height: 2px;
	margin-top: 8px;
	background: #ffffff;
}

/* Pied de page : icônes des coordonnées */
.site-footer .pfo-pied-ligne {
	margin: 0 0 12px;
	padding-left: 32px;
	min-height: 20px;
	background-repeat: no-repeat;
	background-position: 0 2px;
	background-size: 20px 20px;
}
.site-footer .pfo-pied-adresse {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7z'%3E%3C/path%3E%3Ccircle cx='12' cy='9' r='3'%3E%3C/circle%3E%3C/svg%3E");
}
.site-footer .pfo-pied-telephone {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 .81.7A2 2 0 0 1 22 16.92z'%3E%3C/path%3E%3Cpath d='M14 6.5a5 5 0 0 1 3.5 3.5'%3E%3C/path%3E%3Cpath d='M17.5 3.5a8 8 0 0 1 5.5 5.5'%3E%3C/path%3E%3C/svg%3E");
}
.site-footer .pfo-pied-email {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'%3E%3C/rect%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'%3E%3C/path%3E%3C/svg%3E");
}

/* Menu principal : soulignement sous le libellé (actif, survol, focus), comme sur la maquette */
#masthead .ast-builder-menu-1 .main-header-menu {
	align-items: center;
}
#masthead .ast-builder-menu-1 .main-header-menu > .menu-item {
	line-height: 1.6;
}
#masthead .ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link {
	height: auto;
	line-height: 1.6;
	margin: 0 12px;
	padding: 0 0 4px;
	border-bottom: 2px solid transparent;
	background: transparent;
	transition: color 0.25s, border-color 0.25s;
}
#masthead .ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link:hover,
#masthead .ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link:focus-visible {
	color: #1f2e5c;
	border-bottom-color: #1f2e5c;
	outline: none;
}
#masthead .ast-builder-menu-1 .main-header-menu > .current-menu-item > .menu-link,
#masthead .ast-builder-menu-1 .main-header-menu > .current-menu-ancestor > .menu-link,
#masthead .ast-builder-menu-1 .main-header-menu > .current_page_parent > .menu-link {
	border-bottom-color: #2a3d76;
}

/* Langues : petits boutons FR / EN */
#masthead .ast-builder-menu-2 .main-header-menu {
	align-items: center;
	gap: 8px;
}
#masthead .ast-builder-menu-2 .main-header-menu > .menu-item {
	line-height: 1.6;
}
#masthead .ast-builder-menu-2 .main-header-menu > .menu-item > .menu-link {
	height: auto;
	line-height: 1.6;
	padding: 0 8px;
	transition: background 0.25s, color 0.25s;
}
#masthead .ast-builder-menu-2 .main-header-menu > .menu-item:not(.current-menu-item) > .menu-link:hover,
#masthead .ast-builder-menu-2 .main-header-menu > .menu-item:not(.current-menu-item) > .menu-link:focus-visible {
	background: #f4f5f7;
	color: #1f2e5c;
	outline: none;
}

/* Pied de page : mention du développeur */
.site-footer .ast-footer-html-1,
.site-footer .ast-footer-html-1 p {
	color: #ffffff;
	font-size: 11px;
}
.site-footer .ast-footer-html-1 a {
	color: #ffffff;
	text-decoration: underline;
	transition: color 0.25s;
}
.site-footer .ast-footer-html-1 a:hover,
.site-footer .ast-footer-html-1 a:focus-visible {
	color: rgba(255, 255, 255, 0.7);
}

/* Menu mobile : liens alignés à droite, contenu de la page légèrement flouté quand le menu est ouvert */
#ast-mobile-header .ast-builder-menu-mobile .menu-item > .menu-link {
	justify-content: flex-end;
	text-align: right;
}
#content,
.site-footer {
	transition: filter 0.25s;
}
body.pfo-menu-ouvert #content,
body.pfo-menu-ouvert .site-footer {
	filter: blur(3px);
}

/* Recherche : calque plein écran */
.pfo-recherche {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: none;
	flex-direction: column;
	padding: 24px 32px;
	background: rgba(18, 26, 58, 0.55);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.pfo-recherche.est-ouverte {
	display: flex;
}
.pfo-recherche__fermer {
	align-self: flex-end;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
	color: #ffffff;
	font-size: 34px;
	line-height: 1.2;
	cursor: pointer;
}
.pfo-recherche__fermer:hover,
.pfo-recherche__fermer:focus {
	background: none;
	color: rgba(255, 255, 255, 0.7);
}
.pfo-recherche__corps {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 24px;
	width: 100%;
	max-width: 940px;
	margin: 0 auto;
	padding: 0 48px;
	box-sizing: border-box;
}
.pfo-recherche__titre {
	margin: 0;
	color: #ffffff;
	font-size: 38px;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.2;
	text-transform: uppercase;
}
.pfo-recherche__ligne {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}
.pfo-recherche .pfo-recherche__champ {
	flex: 1 1 320px;
	min-width: 0;
	height: auto;
	padding: 16px 24px;
	border: 2px solid #ffffff;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: #ffffff;
	font-size: 15px;
	font-style: italic;
	outline: none;
}
.pfo-recherche .pfo-recherche__champ::placeholder {
	color: rgba(255, 255, 255, 0.92);
}
.pfo-recherche .pfo-recherche__bouton {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	padding: 12px 24px;
	border: 2px solid #ffffff;
	border-radius: 4px;
	background: #ffffff;
	color: #2a3d76;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.6;
	cursor: pointer;
	transition: background 0.25s, color 0.25s;
}
.pfo-recherche .pfo-recherche__bouton:hover,
.pfo-recherche .pfo-recherche__bouton:focus {
	background: transparent;
	color: #ffffff;
}
.pfo-recherche__chevron {
	width: 8px;
	height: 8px;
	border-top: 2px solid currentColor;
	border-right: 2px solid currentColor;
	transform: rotate(45deg);
}
@media (max-width: 767px) {
	.pfo-recherche {
		padding: 16px;
	}
	.pfo-recherche__corps {
		padding: 0 24px;
	}
	.pfo-recherche__titre {
		font-size: 24px;
	}
}

/* Menu mobile : onglet actif souligné sous son libellé, langues en petits carrés */
#ast-mobile-header .ast-builder-menu-mobile .main-header-menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 0 8px;
	padding-bottom: 12px;
}
#ast-mobile-header .ast-builder-menu-mobile .main-header-menu > .menu-item {
	flex: 0 0 100%;
}
#ast-mobile-header .ast-builder-menu-mobile .main-header-menu > .menu-item > .menu-link,
#ast-mobile-header .ast-builder-menu-mobile .main-header-menu > .menu-item > .menu-link:hover {
	background: transparent;
}
#ast-mobile-header .ast-builder-menu-mobile .main-header-menu > .current-menu-item:not(.lang-item) > .menu-link,
#ast-mobile-header .ast-builder-menu-mobile .main-header-menu > .current-menu-ancestor > .menu-link {
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
}
#ast-mobile-header .ast-builder-menu-mobile .main-header-menu > .lang-item {
	flex: 0 0 auto;
	width: auto;
	margin-top: 8px;
}
#ast-mobile-header .ast-builder-menu-mobile .main-header-menu > .lang-item:last-child {
	margin-right: 20px;
}
#ast-mobile-header .ast-builder-menu-mobile .main-header-menu > .lang-item > .menu-link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 2px solid transparent;
	line-height: 1;
}
#ast-mobile-header .ast-builder-menu-mobile .main-header-menu > .lang-item.current-menu-item > .menu-link {
	border-color: #ffffff;
	background: #ffffff;
	color: #2a3d76;
}
#ast-mobile-header .ast-builder-menu-mobile .main-header-menu > .lang-item:not(.current-menu-item) > .menu-link:hover {
	border-color: #ffffff;
}

/* Formulaires : bouton d'envoi aux couleurs de la charte */
div.wpforms-container-full .wpforms-form button[type="submit"].wpforms-submit {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	height: auto;
	padding: 12px 24px;
	border: 2px solid #2a3d76 !important;
	border-radius: 4px !important;
	background: #2a3d76 !important;
	box-shadow: none !important;
	color: #ffffff !important;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.6;
	transition: background 0.25s, color 0.25s;
}
div.wpforms-container-full .wpforms-form button[type="submit"].wpforms-submit::after {
	content: "";
	position: static;
	display: block;
	width: 8px;
	height: 8px;
	margin-right: 4px;
	border: 0;
	border-top: 2px solid currentColor;
	border-right: 2px solid currentColor;
	border-radius: 0;
	background: none;
	opacity: 1;
	transform: rotate(45deg);
}
div.wpforms-container-full .wpforms-form button[type="submit"].wpforms-submit:hover,
div.wpforms-container-full .wpforms-form button[type="submit"].wpforms-submit:focus-visible {
	background: transparent !important;
	color: #2a3d76 !important;
}

/* Résultats de recherche et page introuvable */
.search .site-content > .ast-container,
.error404 .site-content > .ast-container {
	display: block;
	max-width: 100%;
	padding: 0;
}
.pfo-page {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 15px;
	line-height: 1.6;
	color: #2b2d31;
	background: #ffffff;
}
.pfo-conteneur {
	display: flex;
	flex-direction: column;
	gap: 24px;
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 32px;
	box-sizing: border-box;
}
.pfo-bandeau {
	padding: 64px 0;
	background: #2a3d76;
}
.pfo-bandeau .pfo-conteneur {
	gap: 8px;
}
.pfo-bandeau__titre {
	margin: 0;
	color: #ffffff;
	font-size: 38px;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.2;
	text-transform: uppercase;
}
.pfo-bandeau__requete {
	margin: 0;
	color: #ffffff;
	font-size: 15px;
}
.pfo-section {
	padding: 48px 0;
}
.pfo-compte,
.pfo-vide {
	margin: 0;
	color: #6d7178;
}
.pfo-vide {
	font-style: italic;
	text-align: center;
}
.pfo-grille {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
}
.pfo-carte {
	flex: 0 1 calc((100% - 48px) / 3);
	min-width: 0;
	display: flex;
	flex-direction: column;
	background: #ffffff;
	box-shadow: 0 12px 24px rgba(20, 30, 70, 0.18);
	transition: transform 0.25s;
}
.pfo-carte:hover {
	transform: translateY(-6px);
}
.pfo-carte__media {
	display: block;
}
.pfo-carte__img {
	display: block;
	width: 100%;
	height: 200px;
	object-fit: cover;
}
.pfo-carte__corps {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 24px;
}
.pfo-carte__type {
	color: #2a3d76;
	font-size: 13px;
	text-transform: uppercase;
}
.pfo-carte__titre {
	margin: 0;
	font-size: 17px;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.2;
}
.pfo-carte__titre a,
.pfo-lien-voir {
	color: #2a3d76;
	text-decoration: none;
}
.pfo-carte__titre a:hover,
.pfo-lien-voir:hover {
	color: #1f2e5c;
}
.pfo-carte__extrait {
	margin: 0;
	font-size: 13px;
}
.pfo-lien-voir {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 15px;
}
.pfo-chevron {
	display: block;
	width: 8px;
	height: 8px;
	border-top: 2px solid currentColor;
	border-right: 2px solid currentColor;
	transform: rotate(45deg);
}
.pfo-page .pfo-pagination {
	margin-top: 32px;
	text-align: center;
}
.pfo-page .pfo-pagination .page-numbers {
	display: inline-block;
	min-width: 34px;
	padding: 4px 8px;
	color: #2a3d76;
	text-decoration: none;
}
.pfo-page .pfo-pagination .page-numbers.current {
	background: #2a3d76;
	color: #ffffff;
}
.pfo-erreur {
	align-items: flex-start;
}
.pfo-erreur__texte {
	margin: 0;
}
.pfo-bouton {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	padding: 12px 24px;
	border: 2px solid #2a3d76;
	border-radius: 4px;
	background: #2a3d76;
	color: #ffffff;
	font-size: 15px;
	text-decoration: none;
	transition: background 0.25s, color 0.25s;
}
.pfo-bouton:hover,
.pfo-bouton:focus-visible {
	background: transparent;
	color: #2a3d76;
}
@media (max-width: 1024px) {
	.pfo-conteneur {
		padding: 0 24px;
	}
	.pfo-bandeau__titre {
		font-size: 30px;
	}
	.pfo-carte {
		flex-basis: calc((100% - 24px) / 2);
	}
}
@media (max-width: 767px) {
	.pfo-conteneur {
		padding: 0 16px;
		gap: 16px;
	}
	.pfo-bandeau {
		padding: 48px 0;
	}
	.pfo-bandeau__titre {
		font-size: 24px;
	}
	.pfo-section {
		padding: 32px 0;
	}
	.pfo-carte {
		flex-basis: 100%;
	}
}

/* Bandeau cookies aux couleurs de la charte */
#cookie-notice .cn-button:not(.cn-button-custom) {
	border: 2px solid #ffffff;
	border-radius: 4px;
	background: #ffffff !important;
	color: #2a3d76 !important;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 13px;
	transition: background 0.25s, color 0.25s;
}
#cookie-notice .cn-button:not(.cn-button-custom):hover,
#cookie-notice .cn-button:not(.cn-button-custom):focus-visible {
	background: transparent !important;
	color: #ffffff !important;
}
#cookie-notice .cookie-notice-container {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 13px;
}

/* Pied de page : icônes des réseaux sociaux sous le logo (pictogrammes de la maquette) */
.site-footer .pfo-pied-reseaux {
	display: flex;
	gap: 16px;
	margin-top: 24px;
}
.site-footer .pfo-pied-reseau {
	display: block;
	width: 20px;
	height: 20px;
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	transition: opacity 0.25s;
}
.site-footer .pfo-pied-reseau:hover,
.site-footer .pfo-pied-reseau:focus-visible {
	opacity: 0.7;
}
.site-footer .pfo-pied-reseau--facebook {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'%3E%3Cpath d='M22 12c0-5.52-4.48-10-10-10S2 6.48 2 12c0 4.84 3.44 8.87 8 9.8V15H8v-3h2V9.5C10 7.57 11.57 6 13.5 6H16v3h-2c-.55 0-1 .45-1 1v2h3v3h-3v6.95c4.56-.93 8-4.96 8-9.75z'%3E%3C/path%3E%3C/svg%3E");
}
.site-footer .pfo-pied-reseau--instagram {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='2' width='20' height='20' rx='5' ry='5'%3E%3C/rect%3E%3Cpath d='M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z'%3E%3C/path%3E%3Cline x1='17.5' y1='6.5' x2='17.51' y2='6.5'%3E%3C/line%3E%3C/svg%3E");
}
.site-footer .pfo-pied-reseau--youtube {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'%3E%3Cpath d='M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z'%3E%3C/path%3E%3C/svg%3E");
}

/* Partenaires : logos en niveaux de gris, en couleur au survol (ordinateur uniquement ; en couleur sur mobile et tablette) */
@media (hover: hover) and (min-width: 1025px) {
	.partenaire-logo {
		filter: grayscale(1);
		opacity: 0.7;
		transition: filter 0.25s, opacity 0.25s;
	}
	.partenaire-bloc:hover .partenaire-logo {
		filter: none;
		opacity: 1;
	}
}
.site-footer .pfo-pied-reseau--linkedin {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'%3E%3Cpath d='M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14m-.5 15.5v-5.3a3.26 3.26 0 0 0-3.26-3.26c-.85 0-1.84.52-2.32 1.3v-1.11h-2.79v8.37h2.79v-4.93c0-.77.62-1.4 1.39-1.4a1.4 1.4 0 0 1 1.4 1.4v4.93h2.79M6.88 8.56a1.68 1.68 0 0 0 1.68-1.68c0-.93-.75-1.69-1.68-1.69a1.69 1.69 0 0 0-1.69 1.69c0 .93.76 1.68 1.69 1.68m1.39 9.94v-8.37H5.5v8.37h2.77z'%3E%3C/path%3E%3C/svg%3E");
}

/* Pied de page : titres de colonnes en majuscules, comme sur la maquette */
.site-footer .widget-title {
	font-size: 13px;
	font-weight: 500;
	text-transform: uppercase;
}
