/*
 * Thème PREMOPEF – styles du site.
 * Valeurs relevées sur l'ancien site pour un rendu identique.
 * Couleurs réglables : Apparence > Personnaliser > PREMOPEF > Couleurs (variables --pm-*).
 */

/* ---------- Base ---------- */
:root {
	--pm-accent: #ff5e14;
	--pm-dark: #001659;
	--pm-text: #565969;
	--pm-footer: #0a1229;
	--pm-footer-text: #9ca5af;
	--pm-border: #e8e8e9;
	--pm-heading-font: "Yantramanav", sans-serif;
	--pm-body-font: "Raleway", sans-serif;
	--pm-header-bottom: 75px;
}

*, *::before, *::after { box-sizing: border-box; }

/*
 * Comme l'ancien thème : pas de bordure par défaut. Ce sélecteur est volontairement faible,
 * les bordures réglées dans Elementor (par classe) restent prioritaires.
 */
a, article, aside, blockquote, details, div, dl, dt, dd, fieldset, figure, figcaption, footer, form,
h1, h2, h3, h4, h5, h6, header, iframe, img, label, legend, li, nav, ol, p, section, span, summary,
table, tbody, td, tfoot, th, thead, tr, ul {
	border: 0;
}

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	font-family: var(--pm-body-font);
	font-size: 18px;
	line-height: 26px;
	font-weight: 400;
	color: var(--pm-text);
	background-color: #fff;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

p {
	margin: 0;
	font-family: var(--pm-heading-font);
	font-size: 18px;
	line-height: 26px;
	font-weight: 400;
	color: var(--pm-text);
}

a { color: #303030; text-decoration: none; transition: color .15s ease-out; }
a:hover { color: var(--pm-accent); }
p a { color: inherit; }
p a:hover { color: var(--pm-accent); }

img { max-width: 100%; height: auto; vertical-align: middle; border: 0; }
figure { margin: 0; }

h1, h2, h3, h4, h5, h6 { margin: 0; font-family: var(--pm-heading-font); color: var(--pm-dark); text-transform: none; }
/*
 * Titres : mêmes styles que l'ancien site, y compris pour les titres des blocs Elementor
 * (l'ancien thème imposait ses polices à Elementor ; on garde ce rendu).
 */
h1, body .elementor-widget-heading h1.elementor-heading-title { font-family: var(--pm-heading-font); font-size: 80px; line-height: 80px; font-weight: 800; letter-spacing: -1px; text-transform: uppercase; color: var(--pm-dark); }
h2, body .elementor-widget-heading h2.elementor-heading-title { font-family: var(--pm-heading-font); font-size: 60px; line-height: 58px; font-weight: 600; letter-spacing: -1px; text-transform: none; color: var(--pm-dark); }
h3, body .elementor-widget-heading h3.elementor-heading-title { font-family: var(--pm-heading-font); font-size: 40px; line-height: 30px; font-weight: 600; letter-spacing: -1px; text-transform: uppercase; color: var(--pm-dark); }
h4, body .elementor-widget-heading h4.elementor-heading-title { font-family: var(--pm-heading-font); font-size: 26px; line-height: 30px; font-weight: 600; letter-spacing: normal; text-transform: none; color: var(--pm-dark); }
h5, body .elementor-widget-heading h5.elementor-heading-title { font-family: var(--pm-heading-font); font-size: 20px; line-height: 30px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: var(--pm-dark); }
h6, body .elementor-widget-heading h6.elementor-heading-title { font-family: var(--pm-heading-font); font-size: 14px; line-height: 28px; font-weight: 500; letter-spacing: 1px; text-transform: uppercase; color: var(--pm-text); }
body .elementor-widget-heading p.elementor-heading-title { font-family: var(--pm-heading-font); font-size: 18px; line-height: 26px; font-weight: 400; color: var(--pm-text); }
@media (max-width: 1000px) {
	h1, body .elementor-widget-heading h1.elementor-heading-title { font-size: 63px; line-height: 63px; }
	h2, body .elementor-widget-heading h2.elementor-heading-title { font-size: 50px; line-height: 48px; }
}
@media (max-width: 768px) {
	h1, body .elementor-widget-heading h1.elementor-heading-title { font-size: 45px; line-height: 45px; }
	h2, body .elementor-widget-heading h2.elementor-heading-title { font-size: 40px; line-height: 38px; }
	h3, body .elementor-widget-heading h3.elementor-heading-title { font-size: 35px; line-height: 26px; }
}
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { color: inherit; }
h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover { color: var(--pm-accent); }

ul, ol { margin: 0; padding: 0; list-style-position: inside; }
strong, b { font-weight: 700; }
blockquote {
	margin: 0 0 20px;
	padding: 57px 40px 60px;
	font-family: var(--pm-heading-font);
	font-size: 18px;
	line-height: 30px;
	color: var(--pm-dark);
	border: 1px solid var(--pm-border);
	border-bottom: 4px solid var(--pm-accent);
}

::selection { background: var(--pm-accent); color: #fff; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}
.pm-skip:focus {
	position: fixed !important;
	top: 10px; left: 10px;
	width: auto; height: auto;
	clip: auto;
	z-index: 100000;
	padding: 10px 16px;
	background: #fff;
	color: var(--pm-dark);
}

/* Grille : mêmes largeurs que l'ancien site selon la taille de l'écran. */
.pm-container { width: 1300px; max-width: 100%; margin-left: auto; margin-right: auto; }
@media (max-width: 1399px) { .pm-container { width: 1100px; } }
@media (max-width: 1199px) { .pm-container { width: 950px; } }
@media (max-width: 999px) { .pm-container { width: 768px; } }
@media (max-width: 768px) { .pm-container { width: 600px; } }
@media (max-width: 600px) { .pm-container { width: 420px; } }
@media (max-width: 480px) { .pm-container { width: 300px; } }

/* Comme l'ancien thème : rien ne dépasse sur les côtés (pas de défilement horizontal sur mobile). */
.pm-wrapper { position: relative; overflow-x: clip; }
.pm-content { position: relative; display: block; background-color: #fff; z-index: 100; }

/* ---------- En-tête ---------- */
.pm-header { position: relative; z-index: 110; background: #fff; }

.pm-topbar {
	position: relative;
	z-index: 111;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	height: 60px;
	margin-top: 5px;
	padding: 0 30px;
	font-size: 13px;
	line-height: 40px;
	background: #fff;
	border-bottom: 1px solid var(--pm-border);
}
.pm-topbar-left, .pm-topbar-right { display: flex; align-items: flex-start; }
.pm-topbar .header-widget * { line-height: 40px; }
.pm-topbar .wp-block-gallery { display: flex; flex-wrap: nowrap; gap: 0; margin: 0; }
.pm-topbar .wp-block-gallery:empty { display: none; }
.pm-topbar .wp-block-image,
.pm-topbar .wp-block-gallery .wp-block-image { margin: 0; width: auto !important; }
.pm-topbar .wp-block-image img,
.pm-header-right .wp-block-image img { height: 50px !important; width: auto; }
.pm-topbar-right .header-widget { display: flex; align-items: center; }

.pm-header-bottom { position: relative; height: var(--pm-header-bottom); background: #fff; }
.pm-header-bottom::before {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 1px;
	background-color: var(--pm-border);
	opacity: 0;
}
.pm-header-bottom-inner { position: relative; height: 100%; }

.pm-logo { position: absolute; left: 40px; top: 7px; display: block; height: 60px; z-index: 2; }
.pm-logo img { display: block; height: 60px; width: auto; max-width: none; }

/* Menu principal (ordinateur) */
.pm-nav { position: absolute; left: 15%; top: 0; height: 70px; z-index: 100; }
.pm-menu {
	position: relative;
	left: -10%;
	display: flex;
	margin: 0;
	padding: 0;
	list-style: none;
	white-space: nowrap;
}
.pm-menu > li { position: relative; display: block; height: 70px; }
.pm-menu > li > a {
	display: inline-block;
	height: 70px;
	padding: 0 22px;
	font-family: var(--pm-heading-font);
	font-size: 18px;
	line-height: 70px;
	font-weight: 500;
	letter-spacing: -.1px;
	color: var(--pm-dark);
}
.pm-menu > li > a:hover { color: var(--pm-dark); }
.pm-menu > li.is-active > a, .pm-menu > li.is-active > a:hover { color: var(--pm-accent); }
.pm-menu .pm-sub-toggle { display: none; }

.pm-menu .sub-menu {
	position: absolute;
	top: 70px;
	left: 0;
	width: 225px;
	margin: 0;
	padding: 7px 0;
	list-style: none;
	background-color: #262626;
	visibility: hidden;
	opacity: 0;
	transition: opacity .2s ease-out, visibility .2s ease-out;
	z-index: 10;
	white-space: normal;
}
.pm-menu .sub-menu .sub-menu { top: -7px; left: 100%; }
.pm-menu li:hover > .sub-menu,
.pm-menu li:focus-within > .sub-menu { visibility: visible; opacity: 1; }
.pm-menu .sub-menu li { position: relative; display: block; }
.pm-menu .sub-menu a {
	position: relative;
	display: block;
	padding: 9px 20px;
	font-family: var(--pm-body-font);
	font-size: 11px;
	line-height: 16px;
	font-weight: 600;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #9d9d9d;
}
.pm-menu .sub-menu a:hover,
.pm-menu .sub-menu li.is-active > a { color: #fff; }
.pm-menu .sub-menu .menu-item-has-children > a::after {
	content: "";
	position: absolute;
	right: 18px;
	top: 50%;
	width: 5px; height: 5px;
	margin-top: -3px;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	transform: rotate(45deg);
}

/* Partie droite (image + bouton du panneau latéral), désactivée par défaut */
.pm-header-right { position: absolute; right: 0; top: 0; height: 70px; display: flex; align-items: center; }
.pm-header-right-widgets { padding: 0 17px; }

.pm-burger { display: block; padding: 0; margin: 0; border: 0; background: none; cursor: pointer; line-height: 0; }
.pm-burger-bg { fill: #f55c00; }
.pm-mobile-toggle { display: none; }

/* Menu mobile */
.pm-mobile-nav { position: relative; background: #fff; }
.pm-mobile-nav[hidden] { display: none; }
.pm-mobile-menu { width: 300px; max-width: 100%; margin: 0 auto -1px; padding: 2px 0 5px; list-style: none; }
.pm-mobile-menu li { position: relative; border-bottom: 1px solid var(--pm-border); }
.pm-mobile-menu a {
	display: block;
	padding: 10px 0;
	font-family: var(--pm-heading-font);
	font-size: 14px;
	line-height: 23px;
	font-weight: 500;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--pm-text);
}
.pm-mobile-menu a:hover, .pm-mobile-menu li.is-active > a { color: var(--pm-accent); }
.pm-mobile-menu .sub-menu { display: none; list-style: none; padding: 0 0 0 15px; }
.pm-mobile-menu li.is-open > .sub-menu { display: block; }
.pm-mobile-menu .sub-menu li:last-child { border-bottom: 0; }
.pm-mobile-menu .pm-sub-toggle { position: absolute; right: 0; top: 0; width: 40px; height: 43px; }
.pm-mobile-menu .pm-sub-toggle::after {
	content: "";
	position: absolute;
	right: 6px; top: 17px;
	width: 7px; height: 7px;
	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	transform: rotate(-45deg);
	transition: transform .2s;
}
.pm-mobile-menu li.is-open > a .pm-sub-toggle::after { transform: rotate(45deg); }

/* Menu fixe en haut après défilement */
.pm-header.is-sticky { padding-bottom: var(--pm-header-bottom); }
.pm-header.is-sticky .pm-header-bottom {
	position: fixed;
	top: 0; left: 0; right: 0;
	height: 70px;
	z-index: 110;
	box-shadow: -1px 1px 10px 0 rgba(38, 59, 98, .1);
	animation: pm-slide-down .3s ease-out;
}
.admin-bar .pm-header.is-sticky .pm-header-bottom { top: 32px; }
.pm-header.is-sticky .pm-header-bottom::before { opacity: 1; }
.pm-header.is-sticky .pm-logo { top: 5px; }
@keyframes pm-slide-down { from { transform: translateY(-100%); } to { transform: none; } }

@media (max-width: 1024px) {
	.pm-menu > li > a { padding: 0 12px; }
}
@media (max-width: 1000px) {
	.pm-topbar, .pm-nav, .pm-header-right { display: none; }
	.pm-header-bottom-inner { height: 70px; }
	.pm-logo { height: 70px; }
	.pm-logo img { height: 70px; }
	.pm-mobile-toggle { display: block; position: absolute; right: 0; top: 0; }
	.pm-header.is-sticky { padding-bottom: 0; }
	.pm-header.is-sticky .pm-header-bottom { position: relative; height: var(--pm-header-bottom); box-shadow: none; animation: none; }
}

/* ---------- Bandeau de titre ---------- */
.pm-title {
	position: relative;
	display: flex;
	align-items: center;
	height: calc(var(--pm-title-h, 473px) - 104px);
	background-color: #f4f4f4;
	background-repeat: no-repeat;
	background-size: 1920px auto;
	background-position: center -104px;
	overflow: hidden;
}
.pm-title-inner { position: relative; }
.pm-title-h1 {
	margin: 0;
	font-family: var(--pm-heading-font);
	font-size: 80px;
	line-height: 76px;
	font-weight: 700;
	letter-spacing: -1px;
	text-transform: uppercase;
	color: var(--pm-dark);
}
.pm-title-above {
	display: block;
	margin: 0 0 4px;
	font-family: var(--pm-heading-font);
	font-size: 14px;
	line-height: 28px;
	font-weight: 500;
	letter-spacing: 1.3px;
	text-transform: uppercase;
	color: var(--pm-text);
}
.pm-title-subtitle {
	display: block;
	margin: 15px 0 0;
	font-family: var(--pm-heading-font);
	font-size: 20px;
	line-height: 25px;
	color: var(--pm-text);
}
.pm-title-img { display: none; }

/* Tablette et mobile : l'image du bandeau s'affiche entière, le titre centré par-dessus. */
@media (max-width: 1000px) {
	.pm-title { display: block; height: auto; padding: 30px 0; background-image: none !important; overflow: visible; }
	.pm-title--image { padding: 0; }
	.pm-title-img { display: block; width: 100%; height: auto; }
	/* Titre centré sur l'image ; s'il est plus haut qu'elle, il part du haut (comme l'ancien site). */
	.pm-title--image .pm-title-inner {
		position: absolute;
		top: 0; left: 0; right: 0;
		min-height: 100%;
		display: flex;
		align-items: center;
	}
	.pm-title-h1 { font-size: 63px; line-height: 60px; }
}
@media (max-width: 768px) {
	.pm-title-h1 { font-size: 40px; line-height: 45px; }
	.pm-title-subtitle { display: none; }
}

/* ---------- Contenus ---------- */
/* Conteneurs Elementor réglés « dans la grille du site » : même largeur que le reste du site. */
div[data-element_type="container"].qode_elementor_container_inner,
.elementor-section.qode_elementor_container_inner { width: 1300px; max-width: 100%; margin-left: auto !important; margin-right: auto !important; }
@media (max-width: 1399px) { div[data-element_type="container"].qode_elementor_container_inner, .elementor-section.qode_elementor_container_inner { width: 1100px; } }
@media (max-width: 1199px) { div[data-element_type="container"].qode_elementor_container_inner, .elementor-section.qode_elementor_container_inner { width: 950px; } }
@media (max-width: 999px) { div[data-element_type="container"].qode_elementor_container_inner, .elementor-section.qode_elementor_container_inner { width: 768px; } }
@media (max-width: 768px) { div[data-element_type="container"].qode_elementor_container_inner, .elementor-section.qode_elementor_container_inner { width: 600px; } }
@media (max-width: 600px) { div[data-element_type="container"].qode_elementor_container_inner, .elementor-section.qode_elementor_container_inner { width: 420px; } }
@media (max-width: 480px) { div[data-element_type="container"].qode_elementor_container_inner, .elementor-section.qode_elementor_container_inner { width: 300px; } }

/* Le diaporama d'accueil occupe toute la largeur de son conteneur. */
.elementor-widget-premopef_hero_slider { width: 100%; }

/* Page sans bandeau de titre (accueil) : comme sur l'ancien site, le haut du contenu passe sous l'en-tête. */
@media (min-width: 1001px) {
	.pm-title-hidden .pm-content { margin-top: -110px; }
}
.pm-full-width { position: relative; z-index: 100; background-color: #fff; }
.pm-full-width--text { padding: 130px 0 50px; }
.pm-page-content { padding: 130px 0 80px; }

.pm-entry p { margin: 0; }
.pm-entry ul, .pm-entry ol { font-family: var(--pm-body-font); }
.pm-entry .wp-block-image { margin: 0 0 20px; }
.pm-entry .alignleft { float: left; margin: 0 25px 20px 0; }
.pm-entry .alignright { float: right; margin: 0 0 20px 25px; }
.pm-entry .aligncenter { display: block; margin-left: auto; margin-right: auto; }
.pm-entry iframe { max-width: 100%; }

/* Réalisation seule */
.pm-portfolio-single { padding: 130px 0 7px; }
.pm-portfolio-gallery { display: flex; flex-wrap: wrap; margin: 0 0 10px; }
.pm-portfolio-gallery .pm-lightbox { display: block; width: calc((100% - 78px) / 4); margin: 0 26px 26px 0; }
.pm-portfolio-gallery .pm-lightbox:nth-child(4n) { margin-right: 0; }
.pm-portfolio-gallery img { display: block; width: 100%; height: auto; }
.pm-portfolio-gallery--single img { width: auto; max-width: 100%; }
.pm-portfolio-columns { display: flex; align-items: flex-start; }
.pm-portfolio-text { width: 75%; padding-right: 20px; margin-bottom: 40px; }
.pm-portfolio-detail { width: 25%; padding-left: 20px; display: flex; flex-direction: column; }
.pm-portfolio-info { display: flex; gap: 7px; margin: 0 0 15px; }
.pm-portfolio-info h6, .pm-portfolio-info span {
	font-family: var(--pm-heading-font);
	font-size: 14px;
	line-height: 14px;
	font-weight: 500;
	letter-spacing: 1.4px;
	text-transform: uppercase;
	color: var(--pm-text);
}
.pm-portfolio-info h6::after { content: ":"; }
.pm-portfolio-nav { display: flex; padding: 28px 0 2px; }
.pm-portfolio-nav a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0 11px 0 0;
	border-radius: 2px;
	background-color: #00235a;
	border: 2px solid #00235a;
	color: #fff;
	box-sizing: content-box;
}
.pm-portfolio-nav a:hover { background-color: var(--pm-accent); border-color: var(--pm-accent); color: #fff; }
@media (max-width: 1000px) {
	.pm-portfolio-gallery .pm-lightbox { width: calc((100% - 26px) / 2); }
	.pm-portfolio-gallery .pm-lightbox:nth-child(4n) { margin-right: 26px; }
	.pm-portfolio-gallery .pm-lightbox:nth-child(2n) { margin-right: 0; }
}
@media (max-width: 768px) {
	.pm-portfolio-columns { flex-direction: column; }
	.pm-portfolio-text, .pm-portfolio-detail { width: 100%; padding: 0; }
}
@media (max-width: 480px) {
	.pm-portfolio-gallery .pm-lightbox { width: 100%; margin: 0 0 12px !important; }
}

/* Articles */
.pm-with-sidebar { display: flex; align-items: flex-start; padding: 130px 0 0; }
.pm-main { width: 75%; padding-right: 20px; }
.pm-sidebar { width: 25%; padding-left: 20px; }
.pm-with-sidebar .pm-main:only-child { width: 100%; padding-right: 0; }
.pm-post { margin: 0 0 95px; }
.pm-post-image { display: block; margin: 0 0 23px; }
.pm-post-image img { display: block; width: 100%; height: auto; }
.pm-post-info {
	font-family: var(--pm-heading-font);
	font-size: 14px;
	line-height: 26px;
	font-weight: 500;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--pm-text);
}
.pm-post-info a { color: var(--pm-text); }
.pm-post-info a:hover { color: var(--pm-accent); }
.pm-post-info span { margin-right: 4px; }
/* Petit carré séparateur, comme sur l'ancien site. */
.pm-post-info .pm-post-info-sep { display: inline-block; width: 3px; height: 3px; margin: 0 7px 0 4px; background: currentColor; vertical-align: middle; }
.pm-post-title { margin: 0 0 20px; font-size: 40px; line-height: 32px; font-weight: 700; letter-spacing: 0; color: var(--pm-dark); }
.pm-post-title a { color: var(--pm-dark); }
.pm-post-title a:hover { color: var(--pm-accent); }
.pm-post-date { color: var(--pm-accent); }
p.pm-post-excerpt, .pm-post-excerpt p { margin: 0 0 32px; }
.pm-read-more { font-family: var(--pm-heading-font); font-size: 16px; font-weight: 500; letter-spacing: .02em; color: var(--pm-dark); }
.pm-single { padding: 130px 0 0; }
.pm-post--single { margin: 0; }
.pm-post--single .pm-post-image { margin: 0; }
.pm-post--single .pm-post-text { padding-top: 50px; }
.pm-post--single .pm-post-title { margin: 0 0 15px; }
.pm-post--single .pm-entry p { margin: 0 0 22px; }
.pm-tags a {
	display: inline-block;
	margin: 0 10px 14px 0;
	padding: 11px 24px;
	font-family: var(--pm-heading-font);
	font-size: 14px;
	font-weight: 500;
	text-transform: uppercase;
	color: var(--pm-text);
	background-color: #f2f3f5;
}
.pm-tags a:hover { color: #fff; background-color: var(--pm-accent); }
.pm-author { display: flex; gap: 25px; margin-top: 60px; min-height: 100px; }
.pm-author-image img { display: block; width: 75px; height: 75px; }
.pm-author-name { margin: 0 0 4px; font-size: 26px; line-height: 1.15em; font-weight: 600; letter-spacing: 0; text-transform: none; }
.pm-comments { margin: 0 0 130px; }
.pm-comments-holder { padding: 93px 0 106px; }
.pm-comments-title, .pm-comments .comment-reply-title { margin: 0; font-size: 40px; line-height: 1.15em; font-weight: 600; text-transform: none; letter-spacing: 0; }
.pm-comments-title { margin-bottom: 20px; }
.pm-comments .comment-reply-title { margin: 0 0 -7px; }
.pm-comments .comment-form p { margin: 0; }
.pm-comments textarea { display: block; height: 271px; resize: vertical; }
.pm-comment-fields { display: flex; }
.pm-comment-fields > div { width: 33.333%; }
.pm-comment-fields > div:nth-child(1) { padding-right: 15px; }
.pm-comment-fields > div:nth-child(2) { padding: 0 5px 0 10px; }
.pm-comment-fields > div:nth-child(3) { padding-left: 15px; }
.pm-comments ::placeholder {
	color: #2b3651;
	font-size: 14px;
	letter-spacing: .1em;
	text-transform: uppercase;
	font-weight: 400;
	opacity: 1;
}
.pm-comments p.comment-form-cookies-consent { margin: 4px 0 32px; font-family: var(--pm-heading-font); }
.pm-comments .comment-form-cookies-consent input { margin: 0 8px 3px 4px; }
.pm-comments .form-submit { margin: 0; }
@media (max-width: 768px) {
	.pm-comment-fields { display: block; }
	.pm-comment-fields > div { width: 100%; padding: 0 !important; }
}
/* L'ancien site n'écrasait pas les marges des paragraphes vides des articles. */
.pm-post--single .pm-entry { display: flex; flex-direction: column; }
.pm-post--single .pm-entry > p:last-child { margin-bottom: 0; }
.pm-comment-list { list-style: none; margin: 0 0 40px; }
.pm-comment-list .comment-body { display: flex; flex-wrap: wrap; gap: 0 30px; margin: 0 0 30px; }
.pm-comments input[type="text"], .pm-comments input[type="email"], .pm-comments input[type="url"], .pm-comments textarea {
	width: 100%;
	margin: 0 0 25px;
	padding: 19px 16px 12px 0;
	font-family: var(--pm-heading-font);
	font-size: 26px;
	line-height: 1.15em;
	font-weight: 600;
	color: var(--pm-dark);
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--pm-border);
	border-radius: 0;
	outline: 0;
}
.pm-comments input:focus, .pm-comments textarea:focus { border-color: var(--pm-accent); }
.pm-comments .submit {
	height: 48px;
	padding: 0 50px;
	font-family: var(--pm-heading-font);
	font-size: 16px;
	color: #fff;
	background-color: var(--pm-accent);
	border: 0;
	border-radius: 2px;
	cursor: pointer;
}

.pm-sidebar .widget { margin: 0 0 42px; }
.pm-sidebar h5 { margin: 0 0 12px; font-size: 20px; line-height: 30px; letter-spacing: 0; text-transform: none; }
/* Textes et titres h4 de la barre latérale : tailles normales du site, comme avant. */
.pm-sidebar ul { list-style: none; }
.pm-sidebar a { font-family: var(--pm-heading-font); font-size: 14px; font-weight: 500; letter-spacing: 1.5px; text-transform: uppercase; color: var(--pm-text); }
.pm-sidebar a:hover { color: var(--pm-accent); }
.pm-latest-posts li { display: flex; gap: 22px; margin: 0 0 16px; }
.pm-latest-posts img { width: 60px; height: 60px; object-fit: cover; }
/* Bloc vide : même hauteur que sur l'ancien site. */
.pm-latest-posts--empty { height: 27.33px; }
.pm-latest-title { display: block; font-size: 20px; line-height: 20px; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--pm-dark); }
.pm-latest-date { display: block; font-size: 14px; line-height: 2em; letter-spacing: .1em; text-transform: uppercase; }
@media (max-width: 1024px) {
	.pm-with-sidebar { flex-direction: column; }
	.pm-main, .pm-sidebar { width: 100%; padding-right: 0; padding-left: 0; }
	.pm-sidebar { margin: 0 0 126px; }
}
@media (max-width: 480px) {
	.pm-author { flex-direction: column; gap: 0; }
	.pm-author-text { padding-top: 30px; }
}

/* Pagination */
.nav-links, ul.page-numbers { display: flex; justify-content: center; list-style: none; margin: 0 0 143px; }
.page-numbers {
	display: inline-block;
	margin: 0 7px;
	font-family: var(--pm-heading-font);
	font-size: 16px;
	line-height: 48px;
	font-weight: 500;
	letter-spacing: .1em;
	color: var(--pm-dark);
}
.page-numbers.current, a.page-numbers:hover { color: var(--pm-accent); }

/* Formulaires */
.search-form { display: flex; gap: 10px; margin-top: 20px; }
.search-form .search-field { flex: 1; padding: 10px 12px; font: inherit; border: 1px solid var(--pm-border); }
.search-form .search-submit { padding: 0 24px; font-family: var(--pm-heading-font); color: #fff; background: var(--pm-accent); border: 0; cursor: pointer; }
.pm-404 h2 { margin: 0 0 20px; font-size: 40px; line-height: 44px; }

/* ---------- Pied de page ---------- */
.pm-footer { position: relative; z-index: 100; color: var(--pm-footer-text); }
.pm-footer-top { padding: 120px 0 130px; background-color: var(--pm-footer); }
.pm-footer-columns { display: flex; }
.pm-footer-col { width: 25%; }
.pm-footer-col-1 { padding: 0 15px 0 0; }
.pm-footer-col-2, .pm-footer-col-3 { padding: 0 5px 0 20px; }
.pm-footer-col-4 { padding: 0 0 0 15px; }
.pm-footer-col .widget { margin: 0; }
.pm-footer h4, .pm-footer h5, .pm-footer .wp-block-heading {
	margin: 0;
	font-family: var(--pm-heading-font);
	font-size: 26px;
	line-height: 30px;
	font-weight: 600;
	color: #fff;
}
.pm-footer p { font-family: var(--pm-heading-font); font-size: 18px; line-height: 26px; color: var(--pm-footer-text); }
.pm-footer-top .wp-block-group p { max-width: 280px; margin: 0 30px 0 0; }
.pm-footer a { color: var(--pm-footer-text); }
.pm-footer a:hover { color: var(--pm-accent); }
.pm-footer svg path { fill: currentColor !important; }
.pm-footer .wp-block-columns { display: flex; gap: 2em; margin: 0; }

.pm-footer-bottom { background-color: var(--pm-footer); border-top: 1px solid #1d263f; }
.pm-footer-bottom-columns { display: flex; align-items: flex-start; min-height: 80px; }
.pm-footer-bottom-col { width: 33.333%; padding-top: 1px; }
.pm-footer-bottom-left { padding-top: 3px; }
.pm-footer-bottom-center { padding: 1px 5px 0 10px; text-align: center; }
.pm-footer-bottom-right { display: flex; justify-content: flex-end; align-self: stretch; padding-top: 0; }
.pm-footer-bottom p { font-size: 14px; line-height: 26px; }
/* L'ancien site forçait 50px de haut aux images de ces zones : rendu conservé. */
.pm-footer-bottom .wp-block-image img { height: 50px !important; }

@media (max-width: 1000px) {
	.pm-footer-columns { flex-wrap: wrap; }
	.pm-footer-col { width: 50%; padding: 0 !important; }
	.pm-footer-col-3, .pm-footer-col-4 { margin-top: 60px; }
	.pm-footer-bottom-columns { flex-direction: column; align-items: stretch; }
	.pm-footer-bottom-col { width: 100%; padding: 0; text-align: center; }
	.pm-footer-bottom-left { padding-top: 1px; }
	.pm-footer-bottom-right { justify-content: center; min-height: 80px; }
	.pm-footer-bottom p { margin: 0 0 22px; }
	.pm-footer-bottom .wp-block-image img { margin: 0 auto; }
}
@media (max-width: 600px) {
	.pm-footer-col { width: 100%; }
	.pm-footer-col-1 { margin-bottom: 25px; }
	.pm-footer-col-2 { margin: 24px 0 25px; }
	.pm-footer-col-3 { margin-top: 24px; }
	.pm-footer-col-4 { margin-top: 60px; }
}

/* ---------- Icônes de réseaux sociaux ---------- */
.pm-social { display: inline-block; position: relative; vertical-align: middle; }
/* Espace autour des icônes de la barre latérale, comme sur l'ancien site. */
.pm-sidebar .pm-social--normal { margin: 0 6px; }
.pm-sidebar .pm-social--normal:first-of-type { margin-left: 0; }
.pm-social a { display: inline-flex; align-items: center; justify-content: center; color: var(--pm-si-color); }
.pm-social-svg { width: var(--pm-si-size); height: var(--pm-si-size); fill: currentColor; display: block; }
.pm-social a:hover { color: var(--pm-si-hover); }
.pm-social--square a {
	width: 70px;
	height: 79px;
	background-color: var(--pm-si-bg);
	border: var(--pm-si-border-width, 1px) solid var(--pm-si-border);
	border-top: 0;
	border-bottom: 0;
	transition: background-color .15s ease-out, border-color .15s ease-out;
}
.pm-social--square a:hover { background-color: var(--pm-si-bg-hover); border-color: var(--pm-si-border-hover); }
.pm-footer-bottom-right .pm-social--square { align-self: stretch; }
.pm-footer-bottom-right .pm-social--square a { height: 100%; min-height: 80px; }
@media (min-width: 1441px) { .pm-footer-bottom .pm-social--square a { width: 79px; } }

/* ---------- Panneau latéral ---------- */
.pm-side {
	position: fixed;
	top: 0; right: 0;
	width: 420px;
	max-width: 100%;
	height: 100%;
	overflow-y: auto;
	padding: 150px 65px 36px;
	background-color: var(--pm-footer);
	color: var(--pm-footer-text);
	z-index: 1000;
	transform: translateX(100%);
	transition: transform .9s cubic-bezier(.77, 0, .175, 1);
}
.pm-side[hidden] { display: block; visibility: hidden; }
body.pm-side-open .pm-side { transform: none; visibility: visible; }
.pm-side h4, .pm-side h5 { color: #fff; }
.pm-side a { color: var(--pm-footer-text); }
.pm-side a:hover { color: var(--pm-accent); }
.pm-side-close { position: absolute; top: 40px; right: 40px; padding: 0; border: 0; background: none; color: #fff; cursor: pointer; }
.pm-side-overlay {
	position: fixed;
	inset: 0;
	background-color: rgba(0, 22, 89, .3);
	opacity: 0;
	visibility: hidden;
	transition: opacity .4s;
	z-index: 999;
}
body.pm-side-open .pm-side-overlay { opacity: 1; visibility: visible; }

/* ---------- Retour en haut ---------- */
.pm-back-to-top {
	position: fixed;
	right: 30px;
	bottom: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	color: #fff;
	background-color: var(--pm-accent);
	border-radius: 2px;
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s, visibility .3s;
	z-index: 10000;
}
.pm-back-to-top.is-visible { opacity: 1; visibility: visible; }
.pm-back-to-top:hover { color: #fff; }

/* Visionneuse d'images (galeries des réalisations) */
.pm-lightbox-view {
	position: fixed;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(0, 0, 0, .85);
	z-index: 100001;
}
.pm-lightbox-view img { max-width: 92vw; max-height: 88vh; width: auto; height: auto; }
.pm-lightbox-view button {
	position: absolute;
	padding: 10px 16px;
	font-size: 34px;
	line-height: 1;
	color: #fff;
	background: none;
	border: 0;
	cursor: pointer;
}
.pm-lightbox-view .pm-lb-close { top: 16px; right: 16px; }
.pm-lightbox-view .pm-lb-prev { left: 10px; top: 50%; transform: translateY(-50%); }
.pm-lightbox-view .pm-lb-next { right: 10px; top: 50%; transform: translateY(-50%); }

/*
 * Comme l'ancien thème : sous 1000 px, une marge négative en haut du premier bloc de la page
 * est ignorée (le diaporama de l'accueil ne passe plus sous l'en-tête), une marge positive reste.
 */
@media (max-width: 1000px) {
	.pm-content > .pm-full-width > .elementor > .e-con:first-child,
	.pm-content > .pm-full-width > .elementor > .elementor-section:first-child {
		margin-top: max(0px, var(--margin-top, 0px));
	}
}

/* Barre latérale : le premier titre ne descend pas (les titres ont une marge haute réglée en ligne). */
.pm-sidebar > .widget:first-child h4 { margin-top: 0 !important; }
