/*
Theme Name: Divi Child – Planete Management
Template: Divi
Version: 1.0
Description: Thème enfant Divi pour Planete Management (refonte 2026).
*/

:root {
	--pm-primary: #007b91;
	--pm-primary-light: #5fc4d6;
	--pm-dark: #0b0c1e;
	--pm-light: #f7f7f7;
	--pm-tint: #e8f4f6;
	--pm-text: #3d4852;
	--pm-radius: 18px;
	--pm-shadow: 0 18px 45px -18px rgba(11, 12, 30, .28);
	--pm-shadow-soft: 0 10px 30px -14px rgba(11, 12, 30, .18);
	--pm-font-h: 'Work Sans', 'Helvetica Neue', Arial, sans-serif;
	--pm-font-b: 'Poppins', 'Helvetica Neue', Arial, sans-serif;
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
body {
	font-family: var(--pm-font-b);
	font-weight: 300;
	color: var(--pm-text);
	-webkit-font-smoothing: antialiased;
	background: #fff;
}
#page-container { overflow-x: clip; }
h1, h2, h3, h4, h5, h6 { font-family: var(--pm-font-h); color: var(--pm-dark); line-height: 1.2; padding-bottom: .4em; }
a { color: var(--pm-primary); transition: color .2s ease; }
a:hover { color: var(--pm-dark); }
strong, b { font-weight: 600; }
.et_pb_section[id] { scroll-margin-top: 110px; }
::selection { background: var(--pm-primary); color: #fff; }

/* Divi : pas de barre latérale ni de séparateur sur les pages construites */
.et_no_sidebar #main-content .container:before, .et_full_width_page #main-content .container:before { display: none; }

/* ---------- Sur-titres / titres de section ---------- */
.pm-eyebrow {
	font-family: var(--pm-font-b);
	font-size: 13px !important;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--pm-primary);
	padding-bottom: 14px !important;
	display: flex;
	align-items: center;
	gap: 12px;
}
.pm-eyebrow:before { content: ""; width: 34px; height: 2px; background: currentColor; display: inline-block; }
.pm-center .pm-eyebrow { justify-content: center; }
.pm-heading .pm-title, .pm-title {
	font-size: clamp(28px, 3.2vw, 42px);
	font-weight: 300;
	letter-spacing: -.01em;
	color: var(--pm-dark);
	padding-bottom: 0;
}
.pm-heading .pm-title strong { font-weight: 600; }
.pm-lead { font-size: 18px; margin-top: 14px; color: var(--pm-text); }
.pm-light .pm-title, .pm-light .pm-lead { color: #fff; }
.pm-light .pm-eyebrow { color: var(--pm-primary-light); }
.pm-num { font-family: var(--pm-font-h); font-size: 15px !important; font-weight: 600; color: var(--pm-primary); letter-spacing: .1em; padding-bottom: 6px !important; }
.pm-num:after { content: " /12"; color: #9aa7b0; font-weight: 400; }

/* ---------- Texte courant ---------- */
.pm-prose p { padding-bottom: 1.05em; }
.pm-prose h3 { font-size: 21px; font-weight: 600; color: var(--pm-dark); margin-top: .4em; }
.pm-prose h3.pm-q { font-size: 19px; color: var(--pm-primary); border-left: 3px solid var(--pm-primary); padding: 2px 0 2px 16px; margin: 1.4em 0 .8em; }
.pm-prose h3.pm-q:first-child { margin-top: 0; }
.pm-prose ul, .pm-list { list-style: none !important; padding: 0 0 1.1em 0 !important; }
.pm-prose ul li, .pm-list li { position: relative; padding: 0 0 .55em 30px; }
.pm-prose ul li:before, .pm-list li:before {
	content: ""; position: absolute; left: 4px; top: .62em; width: 9px; height: 9px; border-radius: 50%;
	background: var(--pm-primary); box-shadow: 0 0 0 4px var(--pm-tint);
}
.pm-checks li { padding-left: 38px !important; }
.pm-checks li:before {
	content: "\4e" !important; font-family: ETmodules !important; font-size: 13px; line-height: 22px; text-align: center; color: #fff;
	width: 22px !important; height: 22px !important; top: .2em !important; left: 0 !important; box-shadow: none !important;
}

/* ---------- Boutons ---------- */
.pm-btn.et_pb_button { transition: all .3s ease !important; }
.pm-btn.et_pb_button:hover { transform: translateY(-2px); box-shadow: 0 12px 24px -10px rgba(0, 123, 145, .55); }
.pm-btn.et_pb_button:after { font-size: 1.3em !important; line-height: 1.1em !important; }

/* ---------- Images ---------- */
.pm-img-rounded img, .pm-img-main img, .pm-img-inset img { border-radius: var(--pm-radius); box-shadow: var(--pm-shadow); }
.pm-img-col .et_pb_image + .et_pb_image { margin-top: 24px; }
.pm-img-col .et_pb_image:nth-child(even) { margin-left: 12%; }
.pm-img-portrait img { aspect-ratio: 3/4; object-fit: cover; width: 100%; }

/* ---------- En-tête ---------- */
.pm-topbar .et_pb_text { margin-bottom: 0 !important; }
.pm-topbar-info p { display: flex; flex-wrap: wrap; gap: 6px 28px; }
.pm-topbar-info a, .pm-topbar-info .pm-hours { color: #fff; display: inline-flex; align-items: center; gap: 8px; }
.pm-topbar-info a:hover { color: var(--pm-dark); }
.pm-ico { font-family: ETmodules; font-size: 13px; opacity: .85; }
.pm-header { box-shadow: 0 8px 30px -12px rgba(0, 0, 0, .45); }
.pm-menu .et_pb_menu__logo img { max-height: 48px; width: auto; }
.pm-menu .et-menu > li { padding-left: 13px; padding-right: 13px; }
.pm-menu .et-menu > li > a {
	background-image: linear-gradient(var(--pm-primary-light), var(--pm-primary-light));
	background-size: 0% 2px; background-repeat: no-repeat; background-position: left calc(50% + 14px);
	transition: background-size .3s ease, color .2s ease;
}
.pm-menu .et-menu > li:hover > a, .pm-menu .et-menu > li.current-menu-item > a { background-size: 100% 2px; }
.pm-menu .et-menu > li.menu-item-has-children > a { padding-right: 18px; }
.pm-menu .nav li ul {
	border-top: 0 !important; border-radius: 14px; box-shadow: var(--pm-shadow); padding: 12px 0 !important; width: 340px;
}
.pm-menu .nav li ul li { padding: 0 12px; width: 100%; }
.pm-menu .nav li ul li a { width: 100% !important; padding: 9px 14px !important; border-radius: 8px; font-size: 13.5px; line-height: 1.4; }
.pm-menu .nav li ul li a:hover { background: var(--pm-tint); color: var(--pm-primary) !important; opacity: 1; }
.pm-menu .et_mobile_menu { border-top: 3px solid var(--pm-primary) !important; border-radius: 0 0 14px 14px; max-height: 75vh; overflow-y: auto; }
.pm-menu .et_mobile_menu li a { font-size: 15px; }

/* ---------- Héros ---------- */
.pm-hero-text h1 {
	color: #fff; font-size: clamp(36px, 5vw, 64px); font-weight: 300; line-height: 1.08; letter-spacing: -.015em; padding-bottom: 0;
}
.pm-hero-text .pm-eyebrow { color: var(--pm-primary-light); }
.pm-hero-text .pm-lead { color: rgba(255, 255, 255, .85); font-size: 19px; }
.pm-hero:after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 60px; pointer-events: none;
	background: linear-gradient(to bottom right, transparent 49.5%, #fff 50%);
}
.pm-hero-home:after { height: 90px; }
.pm-hero-home-text h1 { font-size: clamp(34px, 5.4vw, 72px); }
.pm-rotator { display: block; position: relative; height: 1.15em; margin-top: .1em; color: var(--pm-primary-light); font-weight: 600; overflow: hidden; }
.pm-rotator span { position: absolute; left: 0; top: 0; white-space: nowrap; opacity: 0; transform: translateY(100%); animation: pmRotate 12s infinite both; animation-delay: calc(var(--i) * 3s); }
@keyframes pmRotate {
	0% { opacity: 0; transform: translateY(100%); }
	4%, 21% { opacity: 1; transform: translateY(0); }
	25%, 100% { opacity: 0; transform: translateY(-100%); }
}
@media (prefers-reduced-motion: reduce) {
	.pm-rotator { height: auto; }
	.pm-rotator span { position: static; opacity: 1; transform: none; animation: none; display: block; font-size: .5em; }
}
.pm-btn-hero { margin-top: 18px; }

/* ---------- Accueil : domaines ---------- */
.pm-domain .et_pb_main_blurb_image { margin-bottom: 0 !important; width: 100%; }
.pm-domain .et_pb_main_blurb_image .et_pb_image_wrap { display: block; width: 100%; }
.pm-domain .et_pb_main_blurb_image img { width: 100%; aspect-ratio: 3/4; object-fit: cover; transition: transform .7s ease; }
.pm-domain { position: relative; overflow: hidden; border-radius: var(--pm-radius); box-shadow: var(--pm-shadow-soft); }
.pm-domain:after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11, 12, 30, 0) 40%, rgba(11, 12, 30, .88) 100%); pointer-events: none; }
.pm-domain .et_pb_blurb_content { max-width: none; }
.pm-domain .et_pb_blurb_container { position: absolute; left: 0; right: 0; bottom: 0; padding: 26px; z-index: 2; }
.pm-domain .et_pb_module_header, .pm-domain .et_pb_module_header a { color: #fff !important; padding-bottom: 0; }
.pm-domain .et_pb_module_header a:after { content: "\24"; font-family: ETmodules; font-size: 22px; margin-left: 8px; vertical-align: middle; display: inline-block; transition: transform .3s; }
.pm-domain:hover img { transform: scale(1.06); }
.pm-domain:hover .et_pb_module_header a:after { transform: translateX(6px); }

/* ---------- Accueil : présentation ---------- */
.pm-media-stack { position: relative; padding-bottom: 60px; }
.pm-media-stack .pm-img-main { width: 82% !important; }
.pm-media-stack .pm-img-inset { position: absolute !important; right: 0; bottom: 0; width: 46% !important; z-index: 2; }
.pm-media-stack .pm-img-inset img { border: 6px solid #fff; aspect-ratio: 3/4; object-fit: cover; }

/* ---------- Accueil : projets ---------- */
.pm-proj { position: relative; }
.pm-proj .pm-proj-img { overflow: hidden; border-radius: var(--pm-radius); margin-bottom: 0 !important; }
.pm-proj .pm-proj-img img { width: 100%; aspect-ratio: 4/3; object-fit: cover; transition: transform .7s ease; }
.pm-proj-grid .pm-proj:first-child .pm-proj-img img { aspect-ratio: auto; height: 100%; min-height: 360px; }
.pm-proj:hover .pm-proj-img img { transform: scale(1.05); }
.pm-proj-caption { margin-top: 18px; }
.pm-proj-caption h3 { color: #fff; font-size: 19px; font-weight: 500; line-height: 1.35; }
.pm-proj-caption small { display: block; font-family: var(--pm-font-b); font-size: 14px; font-weight: 300; color: rgba(255, 255, 255, .7); margin-top: 6px; }
.pm-proj-intro p { font-size: 17px; }

/* ---------- Blog ---------- */
.pm-blog-latest .et_pb_post { margin-bottom: 0; }
.pm-blog-latest .entry-title { font-size: 26px !important; font-weight: 500; }
.pm-blog-latest .post-meta, .pm-blog-grid .post-meta { color: var(--pm-primary); font-size: 13px; text-transform: uppercase; letter-spacing: .08em; }
.pm-blog-latest .more-link, .pm-blog-grid .more-link { display: inline-block; margin-top: 14px; font-weight: 600; color: var(--pm-primary); }
.pm-blog-grid .et_pb_post { background: #fff; border: 0 !important; border-radius: var(--pm-radius); box-shadow: var(--pm-shadow-soft); padding: 28px; overflow: hidden; }

/* ---------- Contact ---------- */
.pm-contact-row .et_pb_column { box-shadow: var(--pm-shadow-soft); }
.pm-coord-col { position: relative; overflow: hidden; }
.pm-coord .et_pb_main_blurb_image { margin-right: 18px !important; }
.pm-coord .et-pb-icon { padding: 16px !important; }
.pm-coord a { color: #fff; border-bottom: 1px solid rgba(255, 255, 255, .35); }
.pm-coord a:hover { border-color: #fff; }
.pm-coord .et_pb_blurb_description p { padding-bottom: 0; }
.pm-form .et_pb_contact_field_options_title, .pm-form label { font-weight: 500; }
.pm-form .et_contact_bottom_container { float: none; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 8px; }
.pm-form .et_pb_contact_captcha_question { color: var(--pm-dark); }
.pm-form input.et_pb_contact_captcha { border-radius: 10px; background: #f4f7f8; border: 1px solid #dde5e8; }
.pm-form .et_pb_contact_submit { margin-left: 0 !important; }

/* ---------- Cartes génériques ---------- */
.pm-ref-card, .pm-card-static { transition: transform .35s ease, box-shadow .35s ease; box-shadow: var(--pm-shadow-soft); overflow: hidden; display: flex; flex-direction: column; }
.pm-ref-card:hover { transform: translateY(-6px); box-shadow: var(--pm-shadow); }
.pm-card-static:hover { transform: none; }
.pm-ref-img { margin-bottom: 0 !important; overflow: hidden; }
.pm-ref-img img { width: 100%; aspect-ratio: 16/10; object-fit: cover; transition: transform .7s ease; }
.pm-ref-card:hover .pm-ref-img img { transform: scale(1.05); }
.pm-ref-text { padding: 26px 26px 10px; margin-bottom: 0 !important; }
.pm-ref-text h3 { font-size: 18px; font-weight: 600; line-height: 1.35; padding-bottom: 14px; }
.pm-ref-details { font-size: 14px; line-height: 1.75; color: var(--pm-text); border-top: 1px solid #e7eef0; padding-top: 14px; }
.pm-ref-details strong { color: var(--pm-dark); }
.pm-ref-btn { margin: 4px 26px 26px !important; align-self: flex-start; }
.pm-empty { visibility: hidden; }

/* ---------- Pastilles d'ancres ---------- */
.pm-pills { list-style: none !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.pm-pills li { padding: 0 !important; }
.pm-pills a {
	display: inline-block; padding: 9px 18px; border-radius: 50px; background: var(--pm-tint); color: var(--pm-primary);
	font-size: 13.5px; font-weight: 500; transition: all .25s ease;
}
.pm-pills a:hover { background: var(--pm-primary); color: #fff; transform: translateY(-2px); }

/* ---------- Domaines ---------- */
.pm-dom-card { min-height: 420px; display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; box-shadow: var(--pm-shadow); transition: transform .35s ease; }
.pm-dom-card:hover { transform: translateY(-6px); }
.pm-dom-text h2 { color: #fff; font-size: 34px; font-weight: 500; }
.pm-dom-text p { font-size: 16px; color: rgba(255, 255, 255, .85); }

/* ---------- Logos ---------- */
.pm-logo-cell { background: #fff; border-radius: 14px; box-shadow: var(--pm-shadow-soft); display: flex; align-items: center; justify-content: center; padding: 18px; min-height: 130px; transition: transform .3s ease, box-shadow .3s ease; }
.pm-logo-cell.pm-empty { box-shadow: none; background: transparent; }
.pm-logo-cell:hover { transform: translateY(-4px); box-shadow: var(--pm-shadow); }
.pm-logo { margin: 0 !important; width: 100%; text-align: center; }
.pm-logo img { max-height: 92px; width: auto; object-fit: contain; filter: grayscale(100%); opacity: .8; transition: all .3s ease; }
.pm-logo-cell:hover img { filter: none; opacity: 1; }

/* ---------- Fiches ---------- */
.pm-fiche-facts h3 { font-size: 19px; font-weight: 600; }
.pm-fiche-side { position: sticky; top: 120px; align-self: flex-start; }
.pm-fiche-facts { box-shadow: var(--pm-shadow-soft); }

/* ---------- Plan du site ---------- */
.pm-sitemap-list ul { padding: 6px 0 4px 6px !important; }
.pm-sitemap-list ul li { font-size: 15px; }

/* ---------- Pied de page ---------- */
.pm-footer { position: relative; }
.pm-footer:before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: linear-gradient(90deg, var(--pm-primary), var(--pm-primary-light)); }
.pm-footer-menu { list-style: none !important; padding: 0 !important; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px 28px; }
.pm-footer-menu li { padding: 0 !important; }
.pm-footer-menu a { color: rgba(255, 255, 255, .7); font-size: 15px; }
.pm-footer-menu a:hover { color: var(--pm-primary-light); }
.pm-footer-cols { border-top: 1px solid rgba(255, 255, 255, .1); border-bottom: 1px solid rgba(255, 255, 255, .1); }
.pm-fcol h4 { color: rgba(255, 255, 255, .55); font-family: var(--pm-font-b); font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .14em; padding-bottom: 10px; }
.pm-fcol p, .pm-fcol a { color: #fff; font-size: 15px; line-height: 1.7; }
.pm-fcol a:hover { color: var(--pm-primary-light); }
.pm-footer-logo img { max-width: 220px; }

/* ---------- Responsive ---------- */
@media (max-width: 980px) {
	.pm-footer-menu { justify-content: flex-start; }
	.pm-media-stack .pm-img-main { width: 100% !important; }
	.pm-media-stack { padding-bottom: 0; }
	.pm-media-stack .pm-img-inset { position: relative !important; width: 60% !important; margin: -80px 0 0 auto !important; }
	.pm-img-col .et_pb_image:nth-child(even) { margin-left: 0; }
	.pm-img-col { display: grid !important; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-top: 10px; }
	.pm-img-col .et_pb_image { margin: 0 !important; }
	.pm-img-col .et_pb_image img { aspect-ratio: 4/3; object-fit: cover; width: 100%; }
	.pm-coord-logo { margin-bottom: 24px !important; }
	.pm-fiche-side { position: static; }
	.pm-logo-cell { min-height: 110px; margin-bottom: 16px !important; }
	.pm-empty { display: none !important; }
	.pm-dom-card { min-height: 360px; margin-bottom: 24px !important; }
	.pm-ref-card { margin-bottom: 26px !important; }
	.pm-proj-grid .pm-proj:first-child .pm-proj-img img { min-height: 0; aspect-ratio: 4/3; }
	.pm-proj { margin-bottom: 30px !important; }
}
@media (max-width: 767px) {
	.pm-topbar-info p { justify-content: center; gap: 2px 16px; font-size: 12px; }
	.pm-topbar-info .pm-hours { display: none; }
	.pm-hero:after { height: 34px; }
	.pm-domain .et_pb_main_blurb_image img { aspect-ratio: 4/3; }
	.pm-domain-card { margin-bottom: 20px !important; }
	.pm-pills { justify-content: flex-start; }
	.pm-pills a { font-size: 12.5px; padding: 8px 14px; }
	.pm-logo-row .et_pb_column { width: 47% !important; margin-right: 6% !important; float: left; }
	.pm-logo-row .et_pb_column:nth-child(2n) { margin-right: 0 !important; }
	.pm-logo-row { display: flex; flex-wrap: wrap; }
}

/* Fiches : photo unique limitée en hauteur */
.pm-fiche .et_pb_column_4_4 .pm-img-rounded img { max-height: 560px; width: 100%; object-fit: cover; }
@media (max-width: 767px) {
	.pm-rotator { height: 2.3em; }
	.pm-rotator span { white-space: normal; right: 0; }
	.pm-hero-home-text h1 { font-size: 34px; }
}
@media (max-width: 767px) {
	.pm-form .et_pb_contact_field { width: 100% !important; margin-right: 0 !important; float: none !important; }
	.pm-topbar .et_pb_column { margin-bottom: 0 !important; }
	.pm-topbar .et_pb_column:last-child { display: none !important; }
}

/* Articles : pleine largeur, sans barre latérale */
.single-post #sidebar { display: none; }
.single-post #left-area { width: 100% !important; padding: 0 !important; float: none; }
.single-post #main-content .container { max-width: 820px; padding-top: 70px; }
.single-post #main-content .container:before { display: none; }
.single-post .et_post_meta_wrapper h1 { font-size: clamp(32px, 4vw, 48px); font-weight: 300; }
.single-post .pm-post .et_pb_row { width: 100% !important; }
.single-post .pm-post { padding-top: 10px !important; }
