/*
 * Blocs Elementor du thème PREMOPEF.
 * Valeurs relevées sur l'ancien site pour un rendu identique.
 */

.pm-empty { padding: 20px; text-align: center; border: 1px dashed #c9ccd3; }

/* ---------- Liste de réalisations ---------- */
/* Proportions de l'ancien site selon le nombre de colonnes. */
.pm-pl {
	--pm-pl-w: 32%;
	--pm-pl-mb: 2.4%;
	--pm-pl-gap: calc((100% - var(--pm-pl-cols) * var(--pm-pl-w)) / (var(--pm-pl-cols) - 1));
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	width: 100%;
	margin: 0 auto;
}
.pm-pl--c1 { --pm-pl-w: 100%; --pm-pl-gap: 0%; }
.pm-pl--c2 { --pm-pl-w: 49%; }
.pm-pl--c4 { --pm-pl-w: 23.5%; --pm-pl-mb: 2.5%; width: 95%; }
.pm-pl--c5 { --pm-pl-w: 18%; --pm-pl-mb: 2.9%; width: 95%; }
.pm-pl--c6 { --pm-pl-w: 15.7%; --pm-pl-mb: 1.2%; width: 95%; }
.pm-pl--empty { display: block; }
.pm-pl-item {
	position: relative;
	width: var(--pm-pl-w);
	margin: 0 var(--pm-pl-gap) var(--pm-pl-mb) 0;
}
.pm-pl--c2 .pm-pl-item:nth-child(2n),
.pm-pl--c3 .pm-pl-item:nth-child(3n),
.pm-pl--c4 .pm-pl-item:nth-child(4n),
.pm-pl--c5 .pm-pl-item:nth-child(5n),
.pm-pl--c6 .pm-pl-item:nth-child(6n) { margin-right: 0; }

.pm-pl-image { position: relative; display: block; overflow: hidden; }
.pm-pl-image img {
	display: block;
	width: 100%;
	height: auto;
	transition: transform .3s ease-in-out;
}
.pm-pl-overlay {
	position: absolute;
	inset: 0;
	background-color: rgba(21, 21, 21, .78);
	opacity: 0;
	transition: opacity .4s ease-in-out;
	z-index: 2;
}
@media (hover: hover) {
	.pm-pl-image:hover img { transform: scale(1.1); }
	.pm-pl-image:hover .pm-pl-overlay { opacity: 1; }
}

.pm-pl-text {
	position: relative;
	padding: 20px 0 22px;
	text-align: center;
	background-color: #e2e2e2;
	overflow: hidden;
}
.pm-pl-title {
	display: block;
	margin: 0 0 7px;
	font-family: "Yantramanav", sans-serif;
	font-size: 26px;
	line-height: 30px;
	font-weight: 600;
	color: #001659;
}
.pm-pl-title--h6 { line-height: 28px; font-weight: 500; color: #565969; }
.pm-pl-title a { color: inherit; }
.pm-pl-title a:hover { color: #ff5e14; }
.pm-pl-cats {
	display: block;
	margin: 10px 0 0;
	font-family: "Raleway", sans-serif;
	font-size: 13px;
	line-height: 22px;
	font-weight: 500;
	color: #565969;
}

@media (max-width: 768px) {
	.pm-pl .pm-pl-item { width: 47.9%; margin-bottom: 4.7%; }
	.pm-pl .pm-pl-item:nth-child(n) { margin-right: 4.2%; }
	.pm-pl .pm-pl-item:nth-child(2n) { margin-right: 0; }
}
@media (max-width: 480px) {
	.pm-pl .pm-pl-item, .pm-pl .pm-pl-item:nth-child(n) { width: 100%; margin: 0 0 7.4%; }
}

/* ---------- Bouton ---------- */
.pm-btn {
	display: inline-block;
	padding: 11px 38px;
	font-family: "Yantramanav", sans-serif;
	font-size: 16px;
	line-height: 27.2px;
	font-weight: 400;
	text-transform: capitalize;
	color: #fff;
	background-color: #ff5e14;
	border: 0;
	border-radius: 0;
	transition: background-color .2s ease-out, color .2s ease-out;
}
.pm-btn:hover { color: #fff; background-color: #001659; }
.pm-btn[style*="background-color"]:hover { filter: brightness(.95); }

/* ---------- Galerie d'images ---------- */
.pm-gallery {
	display: grid;
	grid-template-columns: repeat(var(--pm-gallery-cols, 1), 1fr);
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}
.pm-gallery li { margin: 0; }
.pm-gallery img { display: block; width: 100%; height: auto; }

/* ---------- Image avec texte ---------- */
.pm-image-text { position: relative; }
.pm-image-text img { display: block; }
.pm-image-text-title { margin: 22px 0 13px; }
.pm-image-text-link { position: absolute; inset: 0; z-index: 2; }

/* ---------- Logos partenaires ---------- */
.pm-clients { display: flex; flex-wrap: wrap; }
.pm-client { width: calc(100% / var(--pm-clients-cols, 4)); margin: 0 0 35px; }
.pm-client-inner { position: relative; margin: 0 20px; text-align: center; }
.pm-clients--separators .pm-client-inner::before {
	content: "";
	position: absolute;
	top: 0; right: -20px;
	height: 100%;
	border-right: 1px solid #eaeaea;
}
.pm-client-inner a, .pm-client-inner > span { position: relative; display: block; overflow: hidden; }
.pm-client img { display: block; margin: 0 auto; max-width: 100%; height: auto; }
.pm-client-hover { position: absolute; top: 0; left: 50%; transform: translate(-50%, -100%); }
.pm-client-main, .pm-client-hover { transition: transform .4s ease-in-out, opacity .6s ease-in-out; }
.pm-clients--roll .pm-client-inner a:hover .pm-client-main { transform: translateY(100%); }
.pm-clients--roll .pm-client-inner a:hover .pm-client-hover { transform: translate(-50%, 0); }
.pm-clients--fade .pm-client-hover { transform: translate(-50%, 0); opacity: 0; }
.pm-clients--fade .pm-client-inner a:hover .pm-client-main { opacity: 0; }
.pm-clients--fade .pm-client-inner a:hover .pm-client-hover { opacity: 1; }
.pm-clients:not(.pm-clients--roll):not(.pm-clients--fade) .pm-client-hover { display: none; }
@media (min-width: 481px) and (max-width: 1000px) {
	.pm-client { width: 25%; }
}
@media (min-width: 481px) and (max-width: 768px) {
	.pm-client { width: 50%; }
}
@media (max-width: 480px) {
	.pm-client { width: 100%; }
}

/* ---------- Graphique circulaire ---------- */
.pm-pie { display: block; margin: 0 0 30px; text-align: center; }
.pm-pie-chart { position: relative; width: 174px; height: 174px; margin: 0; }
.pm-pie-chart svg { display: block; width: 100%; height: 100%; }
.pm-pie-arc { transition: stroke-dashoffset 1.5s ease-out; }
.pm-pie.is-waiting .pm-pie-arc { stroke-dashoffset: var(--pm-pie-circ); }
.pm-pie-value {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: "Yantramanav", sans-serif;
	line-height: 1;
	letter-spacing: -.02em;
}
.pm-pie-unit { position: relative; top: -15px; font-size: 36px; }
/* Même décalage que le CSS personnalisé de l'ancien site. */
.pm-pie-number { position: relative; left: 12px; top: 2px; }
.pm-pie-title { margin: 20px 0 0; }
.pm-pie-text { margin: 8px 0 0; }

/* ---------- Tableaux de prix ---------- */
.pm-pricing { display: flex; flex-wrap: wrap; align-items: center; gap: 0 32.5px; }
.pm-price-table {
	flex: 1 1 0;
	min-width: 0;
	color: #001659;
	font-family: "Yantramanav", sans-serif;
}
.pm-price-inner {
	padding: 40px 80px 60px;
	background-color: #fff;
	border: 1px solid #e8e8e9;
	border-bottom: 4px solid #ff5e14;
}
.pm-price-table.is-active .pm-price-inner {
	padding-top: 60px;
	padding-bottom: 80px;
	color: #fff;
	background-color: #00235a;
	border-color: #00235a;
}
.pm-price-title { margin: 0; font-size: 26px; line-height: 30px; color: inherit; }
.pm-price { position: relative; display: inline-block; padding: 12px 0 12px; text-align: left; }
.pm-price-currency { position: relative; top: -1px; font-size: 48px; line-height: 1em; font-weight: 600; vertical-align: top; }
.pm-price-amount { font-size: 80px; line-height: 1em; font-weight: 800; letter-spacing: -.01em; }
.pm-price-period { position: relative; top: -6px; font-size: 12px; line-height: 2.33em; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.pm-price-content ul { list-style: none; }
.pm-price-content li { min-height: 36px; font-size: 18px; line-height: 34px; color: #565969; }
.pm-price-table.is-active .pm-price-content li { color: #fff; }
.pm-price-content li::before { content: "✓"; display: inline-block; width: 16px; margin: 0 15px 0 0; font-size: 16px; line-height: 34px; vertical-align: top; }
.pm-price-button { padding: 36px 0 0; }
.pm-price-button .pm-btn { height: 48px; padding: 0 39px; line-height: 48px; font-weight: 500; letter-spacing: .32px; text-transform: none; border-radius: 2px; }
@media (max-width: 1024px) {
	.pm-price-inner { padding-left: 25px; padding-right: 25px; }
}
@media (max-width: 768px) {
	.pm-pricing { display: block; }
	.pm-price-table { margin: 0 0 20px; }
}
@media (max-width: 480px) {
	.pm-price-inner { padding-left: 40px; padding-right: 40px; }
}

/* ---------- Carrousel de réalisations ---------- */
.pm-carousel { position: relative; margin: 0 -15px; overflow: hidden; }
.pm-carousel-track { display: flex; transition: transform .6s ease-in-out; }
.pm-carousel-item { flex: 0 0 33.333%; max-width: 33.333%; padding: 0 15px; }
.pm-carousel-image { position: relative; display: block; overflow: hidden; }
.pm-carousel-image img { display: block; width: 100%; height: auto; }
.pm-carousel-overlay { position: absolute; inset: 0; background-color: rgba(0, 22, 89, 0); transition: background-color .3s; }
.pm-carousel-item:hover .pm-carousel-overlay { background-color: rgba(0, 22, 89, .4); }
.pm-carousel-text { display: flex; flex-direction: column; align-items: flex-start; padding: 21px 0 0; }
.pm-touch .pm-carousel-text { display: none; }
.pm-carousel-cats {
	margin: 0 0 4px;
	font-family: "Yantramanav", sans-serif;
	font-size: 12px;
	line-height: 26px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #fff;
}
.pm-carousel-title { align-self: stretch; margin: 0; font-size: 26px; line-height: 30px; font-weight: 600; text-align: center; text-transform: none; color: #fff; }
.pm-carousel-title a, .pm-carousel-title a:hover { color: #fff; }
.pm-carousel-more {
	margin: 27px 0 0;
	font-family: "Yantramanav", sans-serif;
	font-size: 16px;
	line-height: 30px;
	font-weight: 500;
	letter-spacing: .02em;
	text-transform: capitalize;
	color: #fff;
}
.pm-carousel-more:hover { color: #fff; }
.pm-carousel-nav { display: flex; gap: 20px; padding: 0 15px; margin: 73px 0 0; }
.pm-carousel-nav button { width: 140px; height: 48px; border: 0; color: #fff; background: #09316f; cursor: pointer; font-size: 22px; }
.pm-carousel-nav .pm-carousel-next { background: #ff5e14; }
@media (max-width: 1000px) {
	.pm-carousel-item { flex-basis: 50%; max-width: 50%; }
}
@media (max-width: 600px) {
	.pm-carousel-item { flex-basis: 100%; max-width: 100%; }
}

/* ---------- Diaporama d'accueil ---------- */
.pm-hero { position: relative; height: var(--pm-hero-h, 100vh); overflow: hidden; background: #001659; }
.pm-hero-slides, .pm-hero-slide { position: absolute; inset: 0; }
.pm-hero-slide { opacity: 0; visibility: hidden; transition: opacity 1s ease-in-out, visibility 1s; }
.pm-hero-slide.is-active { opacity: 1; visibility: visible; }
.pm-hero-slide a { display: block; height: 100%; }
.pm-hero .pm-hero-img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center; }
.pm-hero-arrows { position: absolute; left: 0; bottom: 0; display: flex; z-index: 3; }
.pm-hero-arrows button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 70px;
	height: 70px;
	padding: 0;
	border: 0;
	cursor: pointer;
	transition: background-color .2s, color .2s;
}
.pm-hero-prev { color: #001659; background: #fff; }
.pm-hero-next { color: #fff; background: #ff5e14; }
.pm-hero-prev:hover { color: #fff; background: #ff5e14; }
.pm-hero-next:hover { color: #001659; background: #fff; }
.pm-hero-dots { position: absolute; left: 50%; bottom: 28px; display: flex; gap: 9px; transform: translateX(-50%); z-index: 3; }
/* Comme l'ancien diaporama : petits points pleins, le point actif plus gros. */
.pm-hero-dot {
	width: 11px;
	height: 11px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #00235a;
	cursor: pointer;
	transform: scale(.64);
	transition: transform .3s;
}
.pm-hero-dot.is-active, .pm-hero-dot:hover { transform: none; }
@media (max-width: 1000px) {
	.pm-hero-arrows { display: none; }
}

/* ---------- Formulaire de contact (rendu de l'ancien site) ---------- */
.pm-cf7 form > div { margin: 0; }
.pm-cf7 h6 { margin: 0; }
.pm-cf7 .qode-form-required-label { font-size: 14px; line-height: 28px; font-weight: 500; color: #ff5e14; }
.pm-cf7 .wpcf7-form-control-wrap { display: block; }
.pm-cf7 input.wpcf7-text, .pm-cf7 input.wpcf7-email, .pm-cf7 input.wpcf7-tel, .pm-cf7 textarea.wpcf7-textarea, .pm-cf7 select.wpcf7-select {
	display: block;
	width: 100%;
	margin: 5px 0 0;
	padding: 15px;
	font-family: "Raleway", sans-serif;
	font-size: 13px;
	line-height: 17px;
	font-weight: 400;
	color: #818181;
	background-color: #fff;
	border: 0;
	border-radius: 0;
	outline: 0;
	box-shadow: none;
}
.pm-cf7 textarea.wpcf7-textarea { height: 200px; resize: none; }
.pm-cf7 input:focus, .pm-cf7 textarea:focus { box-shadow: inset 0 -1px 0 #ff5e14; }
.pm-cf7 .wpcf7-submit {
	height: 43px;
	padding: 0 23px;
	font-family: "Raleway", sans-serif;
	font-size: 13px;
	line-height: 39px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #ff5e14;
	background: transparent;
	border: 2px solid #303030;
	border-radius: 0;
	cursor: pointer;
	transition: color .2s, background-color .2s, border-color .2s;
}
.pm-cf7 .wpcf7-submit:hover { color: #fff; background-color: #ff5e14; border-color: #ff5e14; }

/* ---------- Liste de documents ---------- */
.pm-docs--grid { display: grid; grid-template-columns: repeat(var(--pm-docs-cols, 5), minmax(0, 1fr)); gap: 30px 20px; }
.pm-docs--grid .pm-doc { display: flex; flex-direction: column; }
.pm-doc-cover { display: block; position: relative; aspect-ratio: 259 / 300; overflow: hidden; background: #f2f3f5; border: 1px solid #e8e8e9; }
.pm-doc-cover img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: transform .4s ease; }
.pm-doc-cover:hover img { transform: scale(1.03); }
.pm-doc-cover .pm-doc-type { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); }
.pm-doc-type { display: inline-flex; align-items: center; justify-content: center; min-width: 56px; height: 56px; padding: 0 8px; font-family: "Yantramanav", sans-serif; font-size: 15px; font-weight: 700; letter-spacing: .5px; color: #fff; background: #ff5e14; }
.pm-doc-body { flex: 1; }
.pm-doc-title { margin: 14px 0 4px; font-family: "Yantramanav", sans-serif; font-size: 18px; line-height: 24px; font-weight: 600; letter-spacing: 0; text-transform: none; color: #001659; }
.pm-doc-title a { color: inherit; }
.pm-doc-title a:hover { color: #ff5e14; }
.pm-doc-meta { margin: 0; font-family: "Raleway", sans-serif; font-size: 13px; line-height: 22px; color: #565969; }
.pm-doc-excerpt { margin: 0 0 4px; font-size: 16px; line-height: 24px; }
.pm-btn.pm-doc-btn { align-self: flex-start; margin: 12px 0 0; padding: 7px 22px; font-size: 15px; line-height: 24px; text-transform: none; }
.pm-docs--list .pm-doc { display: flex; align-items: center; gap: 20px; padding: 18px 0; border-bottom: 1px solid #e8e8e9; }
.pm-docs--list .pm-doc-title { margin-top: 0; }
.pm-docs--list .pm-btn.pm-doc-btn { margin: 0; align-self: center; }
@media (max-width: 1024px) { .pm-docs--grid { grid-template-columns: repeat(min(var(--pm-docs-cols, 5), 3), minmax(0, 1fr)); } }
@media (max-width: 768px) { .pm-docs--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) {
	.pm-docs--grid { gap: 24px 14px; }
	.pm-doc-title { font-size: 15px; line-height: 20px; }
	.pm-btn.pm-doc-btn { padding: 6px 14px; font-size: 14px; }
	.pm-docs--list .pm-doc { flex-wrap: wrap; }
}
