/* =====================================================================
   CÉZAME — ESSAI DESIGN PREMIUM
   Chargé par wp-content/mu-plugins/cezame-premium.php
   Désactiver : renommer cezame-premium.php en cezame-premium.php.off
   Comparer sans le style : ajouter ?classic à l'URL
   ===================================================================== */

:root {
	--cz-navy: #0a2b77;
	--cz-navy-deep: #0b1b45;
	--cz-ink: #121a2f;
	--cz-text: #3a4256;
	--cz-muted: #6b7489;
	--cz-line: rgba(10, 43, 119, 0.10);
	--cz-paper: #faf8f4;
	--cz-white: #ffffff;
	--cz-serif: "Instrument Serif", "Times New Roman", serif;
	--cz-sans: "Manrope", "Helvetica Neue", Arial, sans-serif;
	--cz-radius: 18px;
	--cz-radius-sm: 12px;
	--cz-shadow: 0 1px 2px rgba(11, 27, 69, 0.04), 0 18px 40px -22px rgba(11, 27, 69, 0.28);
	--cz-shadow-hover: 0 2px 4px rgba(11, 27, 69, 0.05), 0 30px 60px -28px rgba(11, 27, 69, 0.38);
	--cz-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ---------- 1. Fond, grain, rendu ---------- */
html body.cz-premium,
html body.cz-premium #page-container { background-color: var(--cz-paper) !important; }
html body.cz-premium #et-main-area .et_pb_section:not([class*="_tb_footer"]):not([class*="_tb_header"]) { background-color: transparent !important; }
html body.cz-premium { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
html { scroll-behavior: smooth; }
body.cz-premium::after {
	content: ""; position: fixed; inset: 0; z-index: 9998; pointer-events: none; opacity: 0.035;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
::selection { background: var(--cz-navy); color: #fff; }

/* Effets génériques retirés : taches floues, rayures, dégradés */
body.cz-premium [class^="blob"], body.cz-premium [class*=" blob"] { display: none !important; }
body.cz-premium .vertical-stripes::before { display: none !important; }

/* ---------- 2. Typographie ---------- */
html body.cz-premium #page-container :is(p, li, td, label, input, textarea, select, blockquote, .et_pb_text_inner, .post-content, .et_pb_blurb_description, .dtq-card-desc, .et_pb_toggle_content, .post-meta, .et_pb_contact_field, .et_pb_newsletter_description) {
	font-family: var(--cz-sans) !important;
}
html body.cz-premium #page-container :is(p, li, .post-content, .et_pb_blurb_description, .dtq-card-desc, .et_pb_toggle_content) {
	letter-spacing: 0 !important;
}

/* Titres d'affichage : serif éditorial */
html body.cz-premium #page-container :is(h1, h2, .et_pb_slide_title, .entry-title, .et_pb_module_heading) {
	font-family: var(--cz-serif) !important;
	font-weight: 400 !important;
	letter-spacing: -0.012em !important;
	line-height: 1.06 !important;
	text-wrap: balance;
	font-style: normal;
}
html body.cz-premium #page-container :is(h1, h2) span[style*="color"] { font-style: italic; }

/* Sous-titres et petits titres : sans-serif */
html body.cz-premium #page-container :is(h3, h4, h5, h6, .et_pb_module_header, .dtq-card-title, .et_pb_toggle_title, .et_pb_blurb .et_pb_module_header) {
	font-family: var(--cz-sans) !important;
	font-weight: 600 !important;
	letter-spacing: -0.01em !important;
	line-height: 1.25 !important;
	text-wrap: balance;
}
html body.cz-premium #page-container .et_pb_blog_grid .entry-title,
html body.cz-premium #page-container .et_pb_post .entry-title {
	font-size: 24px !important; line-height: 1.15 !important; letter-spacing: -0.005em !important;
}

/* Échelle desktop */
@media (min-width: 981px) {
	html body.cz-premium #page-container .et_pb_text h1 { font-size: clamp(48px, 4.6vw, 72px) !important; }
	html body.cz-premium #page-container .et_pb_text h2 { font-size: clamp(38px, 3.4vw, 54px) !important; }
	html body.cz-premium #page-container .et_pb_slider .et_pb_slide_title { font-size: clamp(56px, 5.4vw, 84px) !important; line-height: 1.02 !important; }
	html body.cz-premium #page-container .et_pb_text :is(p, li) { font-size: 17px !important; line-height: 1.75 !important; }
}
html body.cz-premium #page-container .et_pb_text p { color: inherit; }
html body.cz-premium #page-container .et_pb_text_align_center p { margin-left: auto; margin-right: auto; }
html body.cz-premium #page-container .et_pb_text :is(p, li) { max-width: 68ch; text-wrap: pretty; }
html body.cz-premium #page-container .et_pb_text.et_pb_text_align_center :is(p) { max-width: 62ch; }

/* ---------- 3. En-tête ---------- */
html body.cz-premium .et-l--header {
	position: sticky; top: 0; z-index: 9990;
	transition: box-shadow .4s var(--cz-ease), background-color .4s var(--cz-ease);
}
html body.cz-premium #page-container .et-l--header .et_pb_section_0_tb_header {
	background-color: rgba(250, 248, 244, 0.86) !important;
	-webkit-backdrop-filter: saturate(160%) blur(14px); backdrop-filter: saturate(160%) blur(14px);
}
html body.cz-premium.cz-scrolled .et-l--header { box-shadow: 0 1px 0 var(--cz-line), 0 12px 30px -24px rgba(11, 27, 69, 0.35); }
html body.cz-premium .et-l--header .et_pb_image_0_tb_header img { max-height: 64px !important; width: auto !important; transition: max-height .4s var(--cz-ease); }
html body.cz-premium.cz-scrolled .et-l--header .et_pb_image_0_tb_header img { max-height: 50px !important; }
html body.cz-premium #page-container .et-l--header .et-menu > li > a {
	font-family: var(--cz-sans) !important; font-size: 15px !important; font-weight: 500 !important;
	letter-spacing: 0 !important; color: var(--cz-ink) !important; position: relative;
}
html body.cz-premium #page-container .et-l--header .et-menu > li > a::before {
	content: ""; position: absolute; left: 0; right: 0; bottom: 18px; height: 1px; background: var(--cz-navy);
	transform: scaleX(0); transform-origin: left; transition: transform .45s var(--cz-ease);
}
html body.cz-premium #page-container .et-l--header .et-menu > li > a:hover::before,
html body.cz-premium #page-container .et-l--header .et-menu > li.current-menu-item > a::before { transform: scaleX(1); }
html body.cz-premium #page-container .et-l--header .sub-menu { border-radius: var(--cz-radius-sm) !important; box-shadow: var(--cz-shadow) !important; border-top: 0 !important; padding: 10px 0 !important; }
html body.cz-premium #page-container .et-l--header .sub-menu a { font-family: var(--cz-sans) !important; font-size: 14px !important; }

/* ---------- 4. Boutons ---------- */
html body.cz-premium #page-container .et_pb_section .et_pb_button.et_pb_button,
html body.cz-premium #page-container .et_pb_contact_submit,
html body.cz-premium #page-container .et_pb_newsletter_button {
	font-family: var(--cz-sans) !important; font-weight: 600 !important;
	transition: transform .35s var(--cz-ease), box-shadow .35s var(--cz-ease), background-color .3s ease, color .3s ease !important;
}
html body.cz-premium #page-container .et_pb_section .et_pb_button.et_pb_button:hover,
html body.cz-premium #page-container .et_pb_contact_submit:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 30px -14px rgba(10, 43, 119, 0.55);
}
html body.cz-premium #page-container .et_pb_section .et_pb_button.et_pb_button:active { transform: translateY(0) scale(0.98); }
html body.cz-premium #page-container .et_pb_button:focus-visible,
html body.cz-premium #page-container a:focus-visible { outline: 2px solid var(--cz-navy); outline-offset: 3px; }

/* Étiquettes décoratives (ancien style pilule) -> « eyebrow » éditorial */
html body.cz-premium.page-id-3512 #page-container .et_pb_section .et_pb_button_1,
html body.cz-premium.page-id-3528 #page-container .et_pb_section .et_pb_button_1,
html body.cz-premium.page-id-3523 #page-container .et_pb_section .et_pb_button_1,
html body.cz-premium.page-id-3525 #page-container .et_pb_section .et_pb_button_1,
html body.cz-premium.page-id-5870 #page-container .et_pb_section .et_pb_button_1,
html body.cz-premium.page-id-3521 #page-container .et_pb_section .et_pb_button_1 {
	background: transparent !important; border: 0 !important; border-radius: 0 !important;
	padding: 0 0 0 44px !important; box-shadow: none !important; transform: none !important;
	font-size: 12px !important; letter-spacing: 0.22em !important; text-transform: uppercase !important;
	color: var(--cz-navy) !important; position: relative; pointer-events: none;
}
html body.cz-premium.page-id-3512 #page-container .et_pb_section .et_pb_button_1::before,
html body.cz-premium.page-id-3528 #page-container .et_pb_section .et_pb_button_1::before,
html body.cz-premium.page-id-3523 #page-container .et_pb_section .et_pb_button_1::before,
html body.cz-premium.page-id-3525 #page-container .et_pb_section .et_pb_button_1::before,
html body.cz-premium.page-id-5870 #page-container .et_pb_section .et_pb_button_1::before,
html body.cz-premium.page-id-3521 #page-container .et_pb_section .et_pb_button_1::before {
	content: "" !important; position: absolute; left: 0; top: 50%; width: 32px; height: 1px;
	background: currentColor; opacity: 1 !important; display: block !important; font-family: inherit !important; margin: 0 !important;
}

/* ---------- 5. Images, cartes, survols ---------- */
html body.cz-premium #page-container #et-main-area .et_pb_image .et_pb_image_wrap {
	border-radius: var(--cz-radius) !important; overflow: hidden; box-shadow: var(--cz-shadow) !important;
}
html body.cz-premium #page-container #et-main-area .et_pb_image .et_pb_image_wrap img {
	transition: transform 1.1s var(--cz-ease); border-radius: 0 !important;
}
html body.cz-premium #page-container #et-main-area .et_pb_image:hover .et_pb_image_wrap img { transform: scale(1.035); }
/* Les petits pictos ne doivent pas avoir d'ombre ni de zoom */
html body.cz-premium #page-container #et-main-area .et_pb_image .et_pb_image_wrap:has(img[src$=".png"]) { box-shadow: none !important; border-radius: 0 !important; overflow: visible; }
html body.cz-premium #page-container #et-main-area .et_pb_image:hover .et_pb_image_wrap:has(img[src$=".png"]) img { transform: none; }

/* Cartes d'actualités */
html body.cz-premium #page-container .et_pb_blog_grid .et_pb_post {
	border: 1px solid var(--cz-line) !important; border-radius: var(--cz-radius) !important; overflow: hidden;
	box-shadow: var(--cz-shadow) !important; background: var(--cz-white) !important;
	transition: transform .5s var(--cz-ease), box-shadow .5s var(--cz-ease);
}
html body.cz-premium #page-container .et_pb_blog_grid .et_pb_post:hover { transform: translateY(-6px); box-shadow: var(--cz-shadow-hover) !important; }
html body.cz-premium #page-container .et_pb_blog_grid .et_pb_post .et_pb_image_container img { transition: transform 1.1s var(--cz-ease); }
html body.cz-premium #page-container .et_pb_blog_grid .et_pb_post:hover .et_pb_image_container img { transform: scale(1.04); }
html body.cz-premium #page-container .et_pb_blog_grid .post-meta a { font-family: var(--cz-sans) !important; font-size: 12px !important; letter-spacing: .16em !important; text-transform: uppercase; color: var(--cz-navy) !important; }

/* Accordéons : liste éditoriale numérotée (module Accordéon Divi, aucun réglage à faire) */
html body.cz-premium #page-container .et_pb_accordion { counter-reset: cz-acc; border-top: 1px solid rgba(10, 43, 119, .14); border-radius: 0 !important; border-width: 1px 0 0 !important; overflow: visible !important; }
html body.cz-premium #page-container .et_pb_accordion .et_pb_toggle {
	counter-increment: cz-acc; position: relative; margin: 0 !important; padding: 0 !important;
	background: transparent !important; border: 0 !important; border-bottom: 1px solid rgba(10, 43, 119, .14) !important; border-radius: 0 !important; box-shadow: none !important;
}
html body.cz-premium #page-container .et_pb_accordion .et_pb_toggle::before {
	content: counter(cz-acc, decimal-leading-zero); position: absolute; left: 0; top: 30px;
	font-family: var(--cz-serif); font-style: italic; font-size: 20px; line-height: 1; color: var(--cz-navy); pointer-events: none;
}
html body.cz-premium #page-container .et_pb_accordion .et_pb_toggle_title {
	position: relative; cursor: pointer; padding: 26px 64px 26px 56px !important; margin: 0 !important;
	font-family: var(--cz-serif) !important; font-weight: 400 !important; font-size: clamp(22px, 1.8vw, 28px) !important; line-height: 1.2 !important; letter-spacing: -0.005em !important;
	color: var(--cz-ink) !important; transition: color .3s ease;
}
html body.cz-premium #page-container .et_pb_accordion .et_pb_toggle:hover .et_pb_toggle_title,
html body.cz-premium #page-container .et_pb_accordion .et_pb_toggle_open .et_pb_toggle_title { color: var(--cz-navy) !important; }
/* Icône + / − dessinée (remplace le + FontAwesome) */
html body.cz-premium #page-container .et_pb_accordion .et_pb_toggle_title::before {
	content: "" !important; font-family: inherit !important; position: absolute; right: 0 !important; left: auto !important; top: 50% !important; margin-top: -20px !important;
	width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(10, 43, 119, .2); box-sizing: border-box;
	background:
		linear-gradient(var(--cz-navy), var(--cz-navy)) center / 14px 1.5px no-repeat,
		linear-gradient(var(--cz-navy), var(--cz-navy)) center / 1.5px 14px no-repeat;
	transition: background-size .35s var(--cz-ease), background-color .3s ease, border-color .3s ease, transform .45s var(--cz-ease);
}
html body.cz-premium #page-container .et_pb_accordion .et_pb_toggle:hover .et_pb_toggle_title::before { border-color: var(--cz-navy); }
html body.cz-premium #page-container .et_pb_accordion .et_pb_toggle_open .et_pb_toggle_title::before {
	background:
		linear-gradient(#fff, #fff) center / 14px 1.5px no-repeat,
		linear-gradient(#fff, #fff) center / 1.5px 0 no-repeat,
		var(--cz-navy);
	border-color: var(--cz-navy); transform: rotate(180deg); display: block !important;
}
html body.cz-premium #page-container .et_pb_accordion .et_pb_toggle_content { padding: 0 64px 30px 56px !important; margin: 0 !important; }
html body.cz-premium #page-container .et_pb_accordion .et_pb_toggle_content :is(p, li) { font-size: 16px !important; line-height: 1.75 !important; color: var(--cz-text) !important; max-width: 62ch; }
html body.cz-premium #page-container .et_pb_accordion .et_pb_toggle_content p:last-child { padding-bottom: 0 !important; margin-bottom: 0 !important; }
html body.cz-premium #page-container .et_pb_accordion .et_pb_toggle_title:focus-visible { outline: 2px solid var(--cz-navy); outline-offset: 4px; }
@media (max-width: 767px) {
	html body.cz-premium #page-container .et_pb_accordion .et_pb_toggle::before { top: 25px; font-size: 17px; }
	html body.cz-premium #page-container .et_pb_accordion .et_pb_toggle_title { padding: 22px 52px 22px 40px !important; font-size: 21px !important; }
	html body.cz-premium #page-container .et_pb_accordion .et_pb_toggle_title::before { width: 34px; height: 34px; margin-top: -17px !important; }
	html body.cz-premium #page-container .et_pb_accordion .et_pb_toggle_content { padding: 0 0 24px 40px !important; }
	html body.cz-premium #page-container .et_pb_accordion .et_pb_toggle_content :is(p, li) { font-size: 15px !important; }
}
html body.cz-premium #page-container .ba_card {
	border: 1px solid var(--cz-line) !important; border-radius: var(--cz-radius) !important;
	box-shadow: none !important; background: var(--cz-white) !important;
	transition: transform .5s var(--cz-ease), box-shadow .5s var(--cz-ease);
}
html body.cz-premium #page-container .ba_card:hover { transform: translateY(-4px); box-shadow: var(--cz-shadow-hover) !important; }

/* Séparateurs plus fins */
html body.cz-premium #page-container .et_pb_divider:before { border-top-color: var(--cz-line) !important; }

/* Tuiles « Nos services » : titre condensé -> serif */
html body.cz-premium #page-container :is(.et_pb_cta_title, .et_pb_promo_description h2) { font-family: var(--cz-serif) !important; font-weight: 400 !important; text-transform: none !important; letter-spacing: 0 !important; }


/* Rangées « image + blocs de texte » : image au format portrait 4:5, centrée verticalement face au texte */
@media (min-width: 981px) {
	html body.cz-premium #et-main-area .et_pb_row:has(> .et_pb_column > .et_pb_image:only-child):not(:has(.et_pb_toggle)) { display: flex !important; align-items: center; }
	html body.cz-premium #et-main-area .et_pb_row:not(:has(.et_pb_toggle)) > .et_pb_column:has(> .et_pb_image:only-child) { margin-bottom: 0 !important; }
	html body.cz-premium #et-main-area .et_pb_row:not(:has(.et_pb_toggle)) > .et_pb_column > .et_pb_image:only-child { width: 100% !important; max-width: none !important; margin: 0 !important; }
	html body.cz-premium #et-main-area .et_pb_row:not(:has(.et_pb_toggle)) > .et_pb_column > .et_pb_image:only-child .et_pb_image_wrap { display: block; width: 100%; aspect-ratio: 4 / 5; max-height: 640px; }
	html body.cz-premium #et-main-area .et_pb_row:not(:has(.et_pb_toggle)) > .et_pb_column > .et_pb_image:only-child img { width: 100% !important; height: 100% !important; object-fit: cover; object-position: center; }
	/* Accueil, « Pourquoi choisir Cézame » : image carrée, alignée sur la hauteur du texte */
	html body.cz-premium.home #et-main-area .et_pb_row:has(> .et_pb_column > .et_pb_code:first-child + .et_pb_image:last-child) { display: flex !important; align-items: center; }
	html body.cz-premium.home #et-main-area .et_pb_row > .et_pb_column:has(> .et_pb_code:first-child + .et_pb_image:last-child) { margin-bottom: 0 !important; }
	html body.cz-premium.home #et-main-area .et_pb_row > .et_pb_column > .et_pb_code:first-child + .et_pb_image:last-child { width: 100% !important; max-width: none !important; margin: 0 !important; }
	html body.cz-premium.home #et-main-area .et_pb_row > .et_pb_column > .et_pb_code:first-child + .et_pb_image:last-child .et_pb_image_wrap { display: block; width: 100%; aspect-ratio: 1 / 1; max-height: 520px; }
	html body.cz-premium.home #et-main-area .et_pb_row > .et_pb_column > .et_pb_code:first-child + .et_pb_image:last-child img { width: 100% !important; height: 100% !important; object-fit: cover; object-position: center; }
}

/* ---------- 6. Hero d'accueil (texte centré) ---------- */
html body.cz-premium #page-container .et_pb_slider .et_pb_slide { background-position: center !important; }
html body.cz-premium #page-container .et_pb_slider .et_pb_slide_overlay_container {
	background: radial-gradient(70% 70% at 50% 50%, rgba(8, 18, 45, 0.55) 0%, rgba(8, 18, 45, 0.30) 100%) !important;
}
html body.cz-premium.home #page-container .et_pb_slider .et_pb_slide_description { text-align: center !important; margin-left: auto !important; margin-right: auto !important; }
html body.cz-premium.home #page-container .et_pb_slider .et_pb_slide_title { text-align: center !important; }
html body.cz-premium.home #page-container .et_pb_slider .et_pb_slide_content { margin-left: auto !important; margin-right: auto !important; text-align: center !important; }
html body.cz-premium.home #page-container .et_pb_slider .et_pb_button_wrapper { text-align: center !important; }
@media (min-width: 981px) {
	html body.cz-premium.home #page-container .et_pb_slider .et_pb_slide > .et_pb_container { max-width: 980px !important; width: 80% !important; }
	html body.cz-premium.home #page-container .et_pb_slider .et_pb_slide_description { max-width: 900px; padding-top: 220px !important; padding-bottom: 200px !important; }
	html body.cz-premium.home #page-container .et_pb_slider .et_pb_slide_content { font-size: 18px !important; line-height: 1.65 !important; max-width: 600px; }
}
html body.cz-premium.home #page-container .et_pb_slider .et_pb_slide_content p { font-family: var(--cz-sans) !important; }

/* Accueil : texte d'introduction sous le hero, plus mesuré */
html body.cz-premium.home #page-container .et_pb_text_0 h1 {
	font-size: clamp(28px, 2.5vw, 38px) !important; line-height: 1.3 !important; max-width: 860px; margin-left: auto !important; margin-right: auto !important;
}
@media (max-width: 767px) { html body.cz-premium.home #page-container .et_pb_text_0 h1 { font-size: 24px !important; } }

/* En-tête : le module menu ne doit pas avoir son propre fond blanc */
html body.cz-premium #page-container .et-l--header .et_pb_column_1_tb_header,
html body.cz-premium #page-container .et-l--header .et_pb_menu,
html body.cz-premium #page-container .et-l--header .et_pb_menu .et_pb_menu_inner_container { background: transparent !important; }

/* Boutons du hero (stylés ici pour ne pas dépendre du CSS généré par Divi) */
html body.cz-premium.home #page-container .et_pb_slider .et_pb_slide .et_pb_more_button.et_pb_button {
	background-color: #fff !important; color: var(--cz-navy-deep) !important; border: 0 !important;
	border-radius: 100px !important; padding: 16px 30px !important; font-size: 15px !important;
	letter-spacing: 0 !important; text-transform: none !important; font-weight: 600 !important; font-family: var(--cz-sans) !important;
}
html body.cz-premium.home #page-container .et_pb_slider .et_pb_slide .et_pb_more_button.et_pb_button::after { display: none !important; }
html body.cz-premium.home #page-container .et_pb_slider .et_pb_slide .et_pb_more_button.et_pb_button:hover { background-color: var(--cz-paper) !important; }
html body.cz-premium.home #page-container .et_pb_slider .et_pb_slide_title,
html body.cz-premium.home #page-container .et_pb_slider .et_pb_slide_title a { color: #fff !important; }
html body.cz-premium.home #page-container .et_pb_slider .et_pb_slide_content { color: rgba(255,255,255,.88) !important; }

/* ---------- 7. Section « Chiffres clés & agréments » ---------- */
html body.cz-premium #page-container .cz-proof { padding: calc(var(--cz-sec) / 2) 0 !important; }
.cz-proof-text .cz-eyebrow {
	font-family: var(--cz-sans) !important; font-size: 12px !important; font-weight: 600; letter-spacing: .22em; text-transform: uppercase;
	color: var(--cz-navy); padding-left: 44px; position: relative; margin-bottom: 40px !important;
}
.cz-proof-text .cz-eyebrow::before { content: ""; position: absolute; left: 0; top: 50%; width: 32px; height: 1px; background: currentColor; }
.cz-proof-text .cz-stats { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--cz-line); }
.cz-proof-text .cz-stat { padding: 36px 28px 8px 0; border-right: 1px solid var(--cz-line); margin-right: 28px; display: flex; flex-direction: column; gap: 14px; }
.cz-proof-text .cz-stat:last-child { border-right: 0; margin-right: 0; }
.cz-proof-text .cz-num { font-family: var(--cz-serif); font-size: clamp(64px, 6.4vw, 104px); line-height: .9; color: var(--cz-ink); letter-spacing: -0.02em; font-variant-numeric: lining-nums tabular-nums; }
.cz-proof-text .cz-num em { font-size: .38em; font-style: italic; color: var(--cz-navy); margin-left: .12em; letter-spacing: 0; }
.cz-proof-text .cz-label { font-family: var(--cz-sans); font-size: 15px; line-height: 1.55; color: var(--cz-text); max-width: 22ch; }
.cz-proof-text .cz-accreds { margin-top: 72px; display: flex; align-items: center; gap: 48px; flex-wrap: wrap; padding: 28px 32px; background: var(--cz-white); border: 1px solid var(--cz-line); border-radius: var(--cz-radius); }
.cz-proof-text .cz-accreds-title { font-family: var(--cz-serif); font-size: 26px; color: var(--cz-ink); line-height: 1.1; flex: 0 0 auto; }
.cz-proof-text .cz-accreds ul { list-style: none !important; display: flex; flex-wrap: wrap; gap: 20px 44px; margin: 0 !important; padding: 0 !important; flex: 1; align-items: center; }
.cz-proof-text .cz-accreds li { display: flex; align-items: center; gap: 12px; font-size: 14px !important; color: var(--cz-text); padding: 0 !important; max-width: none !important; }
.cz-proof-text .cz-accreds li::before { display: none !important; }
.cz-proof-text .cz-accreds img { height: 30px; width: auto; filter: grayscale(1) contrast(1.1); opacity: .8; transition: filter .4s ease, opacity .4s ease; }
.cz-proof-text .cz-accreds li:hover img { filter: none; opacity: 1; }
.cz-proof-text .cz-atout { font-family: var(--cz-serif); font-size: 20px; color: var(--cz-ink); }
@media (max-width: 980px) {
	.cz-proof-text .cz-stats { grid-template-columns: repeat(2, 1fr); }
	.cz-proof-text .cz-stat:nth-child(2) { border-right: 0; margin-right: 0; }
	.cz-proof-text .cz-stat:nth-child(n+3) { border-top: 1px solid var(--cz-line); }
}
@media (max-width: 600px) {
	html body.cz-premium #page-container .cz-proof { padding: calc(var(--cz-sec) / 2) 0 !important; }
	.cz-proof-text .cz-stat { padding: 24px 12px 4px 0; margin-right: 12px; }
	.cz-proof-text .cz-num { font-size: 54px; }
	.cz-proof-text .cz-label { font-size: 13.5px; }
	.cz-proof-text .cz-accreds { flex-direction: column; align-items: flex-start; gap: 20px; padding: 24px; margin-top: 48px; }
	.cz-proof-text .cz-accreds ul { flex-direction: column; align-items: flex-start; gap: 16px; }
}

/* ---------- 8. Section actualités de l'accueil : éditoriale ---------- */
html body.cz-premium.home #et-main-area .et_pb_section:has(.et_pb_blog_grid) { background: transparent !important; padding-top: calc(var(--cz-sec) / 2) !important; padding-bottom: calc(var(--cz-sec) / 2) !important; }
html body.cz-premium.home #et-main-area .et_pb_section:has(.et_pb_blog_grid)::before, html body.cz-premium.home #et-main-area .et_pb_section:has(.et_pb_blog_grid)::after { display: none !important; }
/* En-tête de section : sur-titre, titre à gauche, lien à droite */
html body.cz-premium.home #et-main-area .et_pb_section:has(.et_pb_blog_grid) .et_pb_text .et_pb_text_inner { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 12px 40px; padding-bottom: 36px; border-bottom: 1px solid var(--cz-line); margin-bottom: 48px; }
html body.cz-premium.home #et-main-area .et_pb_section:has(.et_pb_blog_grid) .et_pb_text .cz-eyebrow { grid-column: 1 / -1; font-family: var(--cz-sans) !important; font-size: 12px !important; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--cz-navy) !important; padding: 0 0 0 44px !important; margin: 0 !important; position: relative; text-align: left; }
html body.cz-premium.home #et-main-area .et_pb_section:has(.et_pb_blog_grid) .et_pb_text .cz-eyebrow::before { content: ""; position: absolute; left: 0; top: 50%; width: 32px; height: 1px; background: currentColor; }
html body.cz-premium.home #page-container .et_pb_section:has(.et_pb_blog_grid) .et_pb_text h2 { color: var(--cz-ink) !important; text-align: left !important; margin: 0 !important; padding: 0 !important; max-width: 16em; }
html body.cz-premium.home #page-container .et_pb_section:has(.et_pb_blog_grid) .et_pb_text h2 em { font-style: italic; color: var(--cz-navy); }
html body.cz-premium.home #et-main-area .et_pb_section:has(.et_pb_blog_grid) .cz-news-link { margin: 0 !important; padding: 0 !important; }
html body.cz-premium.home #et-main-area .et_pb_section:has(.et_pb_blog_grid) .cz-news-link a { display: inline-flex; align-items: center; gap: 10px; font-family: var(--cz-sans); font-weight: 600; font-size: 15px; color: var(--cz-ink) !important; text-decoration: none !important; padding: 14px 24px; border: 1px solid rgba(10, 43, 119, .22); border-radius: 100px; transition: background-color .3s ease, color .3s ease, border-color .3s ease; white-space: nowrap; }
html body.cz-premium.home #et-main-area .et_pb_section:has(.et_pb_blog_grid) .cz-news-link a::after { content: "→"; transition: transform .35s var(--cz-ease); }
html body.cz-premium.home #et-main-area .et_pb_section:has(.et_pb_blog_grid) .cz-news-link a:hover { background: var(--cz-navy); border-color: var(--cz-navy); color: #fff !important; }
html body.cz-premium.home #et-main-area .et_pb_section:has(.et_pb_blog_grid) .cz-news-link a:hover::after { transform: translateX(4px); }
/* Cartes : plus de boîte, image + sur-titre + titre */
html body.cz-premium.home #page-container .et_pb_section:has(.et_pb_blog_grid) .et_pb_blog_grid .et_pb_post {
	background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; border-radius: 0 !important;
	display: flex !important; flex-direction: column; transform: none !important; margin-bottom: 40px !important; overflow: visible;
}
html body.cz-premium.home #page-container .et_pb_section:has(.et_pb_blog_grid) .et_pb_blog_grid .et_pb_post:hover { box-shadow: none !important; }
html body.cz-premium.home #et-main-area .et_pb_section:has(.et_pb_blog_grid) .et_pb_post .et_pb_image_container { order: 0; margin: 0 0 22px !important; border-radius: 18px; overflow: hidden; aspect-ratio: 4 / 3; }
html body.cz-premium.home #et-main-area .et_pb_section:has(.et_pb_blog_grid) .et_pb_post .et_pb_image_container a, html body.cz-premium.home #et-main-area .et_pb_section:has(.et_pb_blog_grid) .et_pb_post .et_pb_image_container img { display: block; width: 100%; height: 100% !important; object-fit: cover; }
html body.cz-premium.home #et-main-area .et_pb_section:has(.et_pb_blog_grid) .et_pb_post .post-meta { order: 1; margin: 0 0 10px !important; padding: 0 !important; }
html body.cz-premium.home #et-main-area .et_pb_section:has(.et_pb_blog_grid) .et_pb_post .entry-title { order: 2; margin: 0 0 12px !important; padding: 0 !important; }
html body.cz-premium.home #page-container .et_pb_section:has(.et_pb_blog_grid) .et_pb_post .entry-title, 
html body.cz-premium.home #page-container .et_pb_section:has(.et_pb_blog_grid) .et_pb_post .entry-title a { font-size: 26px !important; line-height: 1.15 !important; color: var(--cz-ink) !important; }
html body.cz-premium.home #et-main-area .et_pb_section:has(.et_pb_blog_grid) .et_pb_post .entry-title a { background-image: linear-gradient(currentColor, currentColor); background-size: 0 1px; background-repeat: no-repeat; background-position: 0 92%; transition: background-size .5s var(--cz-ease); }
html body.cz-premium.home #et-main-area .et_pb_section:has(.et_pb_blog_grid) .et_pb_post:hover .entry-title a { background-size: 100% 1px; }
html body.cz-premium.home #et-main-area .et_pb_section:has(.et_pb_blog_grid) .et_pb_post .post-content { order: 3; }
html body.cz-premium.home #page-container .et_pb_section:has(.et_pb_blog_grid) .et_pb_post .post-content p {
	font-size: 15px !important; line-height: 1.65 !important; color: var(--cz-text) !important;
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
@media (max-width: 767px) {
	html body.cz-premium.home #et-main-area .et_pb_section:has(.et_pb_blog_grid) { padding-top: calc(var(--cz-sec) / 2) !important; padding-bottom: calc(var(--cz-sec) / 2) !important; }
	html body.cz-premium.home #et-main-area .et_pb_section:has(.et_pb_blog_grid) .et_pb_text .et_pb_text_inner { grid-template-columns: 1fr; padding-bottom: 28px; margin-bottom: 36px; }
	html body.cz-premium.home #page-container .et_pb_section:has(.et_pb_blog_grid) .et_pb_post .entry-title,
	html body.cz-premium.home #page-container .et_pb_section:has(.et_pb_blog_grid) .et_pb_post .entry-title a { font-size: 23px !important; }
}

/* ---------- 9. Formulaires ---------- */
html body.cz-premium #page-container .et_pb_contact_form .input,
html body.cz-premium #page-container .et_pb_contact_form select {
	background: var(--cz-white) !important; border: 1px solid rgba(10, 43, 119, 0.16) !important;
	transition: border-color .3s ease, box-shadow .3s ease;
}
html body.cz-premium #page-container .et_pb_contact_form .input:focus {
	border-color: var(--cz-navy) !important; box-shadow: 0 0 0 4px rgba(10, 43, 119, 0.08) !important;
}

/* ---------- 10. Pied de page : voir la section PIED DE PAGE en fin de fichier ---------- */

/* ---------- 11. Entrées animées plus douces ---------- */
html body.cz-premium .et_animated { animation-duration: 900ms !important; animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1) !important; }

/* ---------- 12. Mobile ---------- */
@media (max-width: 767px) {
	html body.cz-premium.home #page-container .et_pb_slider .et_pb_slide .et_pb_slide_description .et_pb_slide_title { font-size: 40px !important; line-height: 1.04 !important; }
	html body.cz-premium #page-container .et_pb_text h1 { font-size: 38px !important; }
	html body.cz-premium #page-container .et_pb_text h2 { font-size: 32px !important; }
	html body.cz-premium #page-container .et_pb_blog_grid .entry-title { font-size: 22px !important; }
	html body.cz-premium .et-l--header .et_pb_image_0_tb_header img { max-height: 54px !important; }
}

@media (prefers-reduced-motion: reduce) {
	html body.cz-premium * { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* =====================================================================
   PAGES DE SERVICES — CHIFFRES CLÉS SOUS LE HERO
   ===================================================================== */
html body.cz-premium #et-main-area .et_pb_row.cz-kpi {
	border-top: 1px solid var(--cz-line); border-bottom: 1px solid var(--cz-line);
	padding: 0 !important; margin-top: 56px !important; margin-bottom: 40px !important;
}
@media (min-width: 981px) {
	html body.cz-premium #et-main-area .et_pb_row.cz-kpi { display: flex !important; }
	html body.cz-premium #et-main-area .et_pb_row.cz-kpi > .et_pb_column { margin-right: 0 !important; width: 33.333% !important; padding: 40px 40px 36px !important; border-right: 1px solid var(--cz-line); }
	html body.cz-premium #et-main-area .et_pb_row.cz-kpi > .et_pb_column:first-child { padding-left: 0 !important; }
	html body.cz-premium #et-main-area .et_pb_row.cz-kpi > .et_pb_column:last-child { border-right: 0; padding-right: 0 !important; }
}
html body.cz-premium #et-main-area .et_pb_row.cz-kpi .et_pb_text { margin-bottom: 0 !important; }
html body.cz-premium #page-container .et_pb_row.cz-kpi p.cz-k { display: flex; flex-direction: column; gap: 14px; margin: 0 0 14px !important; padding: 0 !important; max-width: none !important; }
html body.cz-premium #page-container .et_pb_row.cz-kpi .cz-k__num {
	font-family: var(--cz-serif) !important; font-weight: 400; font-size: clamp(60px, 5.6vw, 92px); line-height: .9; letter-spacing: -0.02em;
	color: var(--cz-ink); font-variant-numeric: lining-nums tabular-nums;
}
html body.cz-premium #page-container .et_pb_row.cz-kpi .cz-k__num em { font-size: .42em; font-style: italic; color: var(--cz-navy); margin-left: .08em; letter-spacing: 0; }
html body.cz-premium #page-container .et_pb_row.cz-kpi .cz-k__label {
	font-family: var(--cz-sans) !important; font-size: 17px; font-weight: 600; line-height: 1.35; color: var(--cz-ink); letter-spacing: -0.005em; text-transform: none;
}
html body.cz-premium #page-container .et_pb_row.cz-kpi .et_pb_text:not(:first-child) p {
	font-size: 15px !important; line-height: 1.65 !important; color: var(--cz-muted) !important; max-width: 34ch !important;
}
@media (max-width: 980px) {
	html body.cz-premium #et-main-area .et_pb_row.cz-kpi { margin-top: 40px !important; }
	html body.cz-premium #et-main-area .et_pb_row.cz-kpi > .et_pb_column { padding: 28px 0 24px !important; margin-bottom: 0 !important; border-bottom: 1px solid var(--cz-line); }
	html body.cz-premium #et-main-area .et_pb_row.cz-kpi > .et_pb_column:last-child { border-bottom: 0; }
	html body.cz-premium #page-container .et_pb_row.cz-kpi .cz-k__num { font-size: 60px; }
}

/* =====================================================================
   TRANSITIONS ENTRE LES SECTIONS
   ===================================================================== */
:root { --cz-sec: clamp(72px, 8.5vw, 128px); }

/* 1. Rythme vertical : même respiration entre toutes les sections
      (les sections avec leur propre réglage — chiffres, expertises, actualités, contact — gardent le leur) */
html body.cz-premium #et-main-area :where(.et_pb_section:not(.et_pb_fullwidth_section):not(.cz-proof):not(.cz-svc-sec):not(.cz-c-sec):not([class*="_tb_"])) {
	padding-top: calc(var(--cz-sec) / 2) !important; padding-bottom: calc(var(--cz-sec) / 2) !important;
}
html body.cz-premium #et-main-area #main-content :where(.et_pb_section:first-child:not(.et_pb_fullwidth_section)) { padding-top: clamp(40px, 5vw, 72px) !important; }
html body.cz-premium #et-main-area #main-content :where(.et_pb_section:last-child) { padding-bottom: var(--cz-sec) !important; }
/* Sections vides (sans aucun module) : masquées */
html body.cz-premium #et-main-area .et_pb_section:not(:has(.et_pb_module)) { display: none !important; }

/* 2. Raccord avec le pied de page : bord arrondi qui « recouvre » la page */

/* 3. Apparitions au défilement (classes ajoutées par premium.js, uniquement sous la ligne de flottaison) */
.cz-rv {
	opacity: 0; transform: translate3d(0, 34px, 0);
	transition: opacity .9s cubic-bezier(0.22, 1, 0.36, 1), transform 1.1s cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: var(--cz-d, 0ms); will-change: opacity, transform;
}
.cz-rv.cz-in { opacity: 1; transform: none; }
/* Images : dévoilement par masque + léger dézoom */
.cz-rv--img { transform: none; opacity: 1; }
.cz-rv--img .et_pb_image_wrap { clip-path: inset(14% 0 0 0 round 18px); transition: clip-path 1.3s cubic-bezier(0.22, 1, 0.36, 1); transition-delay: var(--cz-d, 0ms); }
.cz-rv--img .et_pb_image_wrap img { transform: scale(1.12); transition: transform 1.6s cubic-bezier(0.22, 1, 0.36, 1) !important; transition-delay: var(--cz-d, 0ms) !important; }
.cz-rv--img.cz-in .et_pb_image_wrap { clip-path: inset(0 0 0 0 round 18px); }
.cz-rv--img.cz-in .et_pb_image_wrap img { transform: scale(1); }
/* Les pictos (PNG) ne sont pas masqués */
.cz-rv--img .et_pb_image_wrap:has(img[src$=".png"]) { clip-path: none; }
/* Une fois apparus, les survols reprennent la main */
.cz-rv.cz-in.cz-svc__card, .cz-rv.cz-in.cz-c-card, .cz-rv.cz-in.cz-c-office, .cz-rv.cz-in.et_pb_post { transition-delay: 0ms; }
/* Les anciennes animations d'entrée Divi sont remplacées par ce système */
html body.cz-premium .et_animated { opacity: 1 !important; animation: none !important; }

/* 4. Transition douce entre les pages (navigateurs compatibles) */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: cz-fade-out .28s ease both; }
::view-transition-new(root) { animation: cz-fade-in .45s cubic-bezier(0.22, 1, 0.36, 1) both; }
@keyframes cz-fade-out { to { opacity: 0; } }
@keyframes cz-fade-in { from { opacity: 0; transform: translateY(10px); } }

@media (prefers-reduced-motion: reduce) {
	.cz-rv, .cz-rv--img .et_pb_image_wrap, .cz-rv--img .et_pb_image_wrap img { opacity: 1 !important; transform: none !important; clip-path: none !important; }
	@view-transition { navigation: none; }
}


/* =====================================================================
   BLOCS DIVI NATIFS (Qui sommes-nous, Contact, cartes de l'accueil)
   Tout est fait de modules Divi standard : Texte, Image, Bouton, Blurb, Formulaire.
   Les classes ci-dessous se posent dans Divi > Avancé > ID et classes CSS.
   ===================================================================== */
html body.cz-premium #et-main-area :is(.cz-sec, .cz-svc-sec) > .et_pb_row { width: 88% !important; max-width: 1240px !important; padding: 0 !important; }
html body.cz-premium #et-main-area :is(.cz-sec, .cz-svc-sec) > .et_pb_row + .et_pb_row { margin-top: 56px !important; }

/* Textes */
html body.cz-premium #page-container .et_pb_text .cz-eyebrow { font-family: var(--cz-sans) !important; font-size: 12px !important; font-weight: 600 !important; letter-spacing: .22em !important; text-transform: uppercase; color: var(--cz-navy) !important; padding: 0 0 0 44px !important; margin: 0 0 22px !important; position: relative; line-height: 1.4 !important; max-width: none !important; }
html body.cz-premium #page-container .et_pb_text .cz-eyebrow::before { content: ""; position: absolute; left: 0; top: 50%; width: 32px; height: 1px; background: currentColor; }
html body.cz-premium #page-container :is(.cz-sec, .cz-svc-sec) .et_pb_text :is(h1, h2) { color: var(--cz-ink) !important; margin: 0 0 24px !important; padding: 0 !important; }
html body.cz-premium #page-container :is(.cz-sec, .cz-svc-sec) .et_pb_text h2 { font-size: clamp(36px, 3.4vw, 54px) !important; }
html body.cz-premium #page-container .et_pb_text :is(h1, h2) em { font-style: italic; color: var(--cz-navy); }
html body.cz-premium #page-container .cz-sec .et_pb_text p { color: var(--cz-text); padding-bottom: 0 !important; margin-bottom: 18px; }
html body.cz-premium #page-container .cz-sec .et_pb_text p:last-child { margin-bottom: 0; }
html body.cz-premium #page-container .et_pb_text p.cz-lead { font-family: var(--cz-serif) !important; font-style: italic; font-size: clamp(24px, 2vw, 30px) !important; line-height: 1.25 !important; color: var(--cz-muted) !important; margin-bottom: 26px !important; }
html body.cz-premium #page-container .et_pb_text p.cz-lead-sans { font-size: 19px !important; line-height: 1.7 !important; color: var(--cz-text) !important; max-width: 34em !important; }
html body.cz-premium #page-container .et_pb_text h1.cz-display { font-size: clamp(52px, 6.2vw, 96px) !important; line-height: .98 !important; letter-spacing: -0.02em !important; }

/* Boutons (module Bouton + classe cz-btn / cz-btn-ghost / cz-btn-link) */
html body.cz-premium #page-container .et_pb_button_module_wrapper:has(> :is(.cz-btn, .cz-btn-ghost, .cz-btn-link)) { display: inline-block; vertical-align: middle; margin: 32px 22px 0 0 !important; }
html body.cz-premium #page-container .et_pb_button_module_wrapper:has(> :is(.cz-btn, .cz-btn-ghost, .cz-btn-link)) + .et_pb_button_module_wrapper { margin-top: 32px !important; }
html body.cz-premium #page-container .et_pb_button:is(.cz-btn, .cz-btn-ghost) {
	display: inline-flex !important; align-items: center; gap: 12px; padding: 17px 28px !important; border-radius: 100px !important;
	font-family: var(--cz-sans) !important; font-weight: 600 !important; font-size: 15px !important; letter-spacing: 0 !important; text-transform: none !important; line-height: 1.2 !important;
	transition: background-color .3s ease, color .3s ease, border-color .3s ease, transform .35s var(--cz-ease) !important;
}
html body.cz-premium #page-container .et_pb_button.cz-btn { background: var(--cz-navy) !important; color: #fff !important; border: 0 !important; box-shadow: 0 14px 30px -16px rgba(10, 43, 119, .7) !important; }
html body.cz-premium #page-container .et_pb_button.cz-btn:hover { background: var(--cz-navy-deep) !important; transform: translateY(-2px); }
html body.cz-premium #page-container .et_pb_button.cz-btn-ghost { background: rgba(255, 255, 255, .6) !important; color: var(--cz-ink) !important; border: 1px solid rgba(10, 43, 119, .22) !important; box-shadow: none !important; }
html body.cz-premium #page-container .et_pb_button.cz-btn-ghost:hover { background: var(--cz-navy) !important; border-color: var(--cz-navy) !important; color: #fff !important; }
html body.cz-premium #page-container .et_pb_button:is(.cz-btn, .cz-btn-ghost, .cz-btn-link)::before { display: none !important; }
html body.cz-premium #page-container .et_pb_button:is(.cz-btn, .cz-btn-ghost, .cz-btn-link)::after {
	content: "→" !important; font-family: var(--cz-sans) !important; font-size: 15px !important; line-height: 1 !important; opacity: 1 !important;
	position: static !important; margin: 0 !important; display: inline-block !important; transform: none; transition: transform .35s var(--cz-ease) !important;
}
html body.cz-premium #page-container .et_pb_button:is(.cz-btn, .cz-btn-ghost):hover::after { transform: translateX(4px); }
html body.cz-premium #page-container .et_pb_button.cz-btn-link { background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1px no-repeat !important; border: 0 !important; border-radius: 0 !important; padding: 0 0 4px !important; color: var(--cz-ink) !important; font-family: var(--cz-sans) !important; font-weight: 600 !important; font-size: 15px !important; letter-spacing: 0 !important; text-transform: none !important; box-shadow: none !important; display: inline-flex !important; gap: 8px; transition: background-size .4s var(--cz-ease) !important; }
html body.cz-premium #page-container .et_pb_button.cz-btn-link:hover { background-size: 0 1px !important; background-position: 100% 100% !important; padding: 0 0 4px !important; }
html body.cz-premium #page-container .et_pb_button.cz-btn-link:not(.cz-btn-link--ext)::after { content: none !important; }
html body.cz-premium #page-container .et_pb_button.cz-btn-link--ext::after { content: "↗" !important; }
html body.cz-premium #page-container .et_pb_button:is(.cz-btn, .cz-btn-ghost):hover { padding: 17px 28px !important; }
html body.cz-premium #page-container .et_pb_button:is(.cz-btn, .cz-btn-ghost, .cz-btn-link):focus-visible { outline: 2px solid var(--cz-navy); outline-offset: 4px; }

/* Rangées image + texte */
@media (min-width: 981px) {
	html body.cz-premium #et-main-area .et_pb_row.cz-row-split { display: flex !important; align-items: center; }
	html body.cz-premium #et-main-area .et_pb_row.cz-row-split.cz-row-top { align-items: flex-start; }
	html body.cz-premium #et-main-area .et_pb_row.cz-row-split > .et_pb_column { margin-bottom: 0 !important; }
	html body.cz-premium #et-main-area .et_pb_column.cz-sticky { position: sticky; top: 140px; }
}
html body.cz-premium #et-main-area .et_pb_image.cz-img-portrait { width: 100% !important; max-width: none !important; margin: 0 !important; }
html body.cz-premium #et-main-area .et_pb_image.cz-img-portrait .et_pb_image_wrap { display: block; width: 100%; aspect-ratio: 4 / 5; max-height: 640px; }
html body.cz-premium #et-main-area .et_pb_image:is(.cz-img-portrait, .cz-collage-a, .cz-collage-b) img { width: 100% !important; height: 100% !important; object-fit: cover; }

/* Pastille « Depuis 2003 » posée sur l'image */
html body.cz-premium #et-main-area .et_pb_column.cz-col-media { position: relative; }
html body.cz-premium #page-container .et_pb_text.cz-badge { position: absolute !important; left: -36px; bottom: 44px; margin: 0 !important; background: #fff; border-radius: 18px; padding: 18px 24px 16px; box-shadow: var(--cz-shadow-hover); z-index: 2; }
html body.cz-premium #page-container .cz-badge p { margin: 0 !important; padding: 0 !important; }
html body.cz-premium #page-container .cz-badge p.cz-badge__k { font-size: 11px !important; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--cz-muted) !important; line-height: 1.4 !important; }
html body.cz-premium #page-container .cz-badge p.cz-badge__v { font-family: var(--cz-serif) !important; font-size: 44px !important; line-height: 1 !important; color: var(--cz-navy) !important; }

/* Étiquettes (agréments) */
html body.cz-premium #page-container .et_pb_text ul.cz-tags { list-style: none !important; display: flex; flex-wrap: wrap; gap: 10px; margin: 30px 0 0 !important; padding: 0 !important; }
html body.cz-premium #page-container .et_pb_text ul.cz-tags li { list-style: none !important; font-size: 13px !important; font-weight: 600; color: var(--cz-navy); padding: 9px 16px !important; border: 1px solid rgba(10, 43, 119, .18); border-radius: 10px; line-height: 1.2 !important; background: rgba(255, 255, 255, .6); margin: 0 !important; }

/* Duo de photos */
html body.cz-premium #et-main-area .et_pb_column.cz-collage { position: relative; }
html body.cz-premium #et-main-area .et_pb_image.cz-collage-a { width: 86% !important; max-width: none !important; margin: 0 0 0 auto !important; }
html body.cz-premium #et-main-area .et_pb_image.cz-collage-a .et_pb_image_wrap { display: block; aspect-ratio: 4 / 3; }
html body.cz-premium #et-main-area .et_pb_image.cz-collage-b { position: relative; width: 46% !important; max-width: none !important; margin: -20% 0 0 !important; z-index: 2; }
html body.cz-premium #et-main-area .et_pb_image.cz-collage-b .et_pb_image_wrap { display: block; aspect-ratio: 4 / 3; border: 6px solid var(--cz-paper); box-shadow: var(--cz-shadow-hover) !important; }

/* Liste numérotée (Blurbs avec la classe cz-num, dans une colonne cz-numlist) */
html body.cz-premium #et-main-area .et_pb_column.cz-numlist { counter-reset: cz-num; }
html body.cz-premium #page-container .et_pb_blurb.cz-num { counter-increment: cz-num; margin: 0 !important; padding: 34px 0 !important; border-bottom: 1px solid var(--cz-line); }
html body.cz-premium #page-container .et_pb_column.cz-numlist > .et_pb_blurb.cz-num:first-child,
html body.cz-premium #page-container .et_pb_column.cz-numlist > .et_pb_text + .et_pb_blurb.cz-num { border-top: 1px solid var(--cz-line); }
html body.cz-premium #page-container .et_pb_blurb.cz-num .et_pb_blurb_content { max-width: none !important; display: grid; grid-template-columns: 64px 1fr; gap: 20px; text-align: left; }
html body.cz-premium #page-container .et_pb_blurb.cz-num .et_pb_blurb_content::before { content: counter(cz-num, decimal-leading-zero); font-family: var(--cz-serif); font-style: italic; font-size: 24px; color: var(--cz-navy); line-height: 1.2; }
html body.cz-premium #page-container .et_pb_blurb.cz-num .et_pb_main_blurb_image { display: none; }
html body.cz-premium #page-container .et_pb_blurb.cz-num h3.et_pb_module_header { font-family: var(--cz-serif) !important; font-weight: 400 !important; font-size: clamp(26px, 2.2vw, 34px) !important; line-height: 1.1 !important; letter-spacing: -0.01em !important; color: var(--cz-ink) !important; margin: 0 0 12px !important; padding: 0 !important; }
html body.cz-premium #page-container .et_pb_blurb.cz-num .et_pb_blurb_description p { color: var(--cz-text) !important; margin: 0 !important; padding: 0 !important; font-size: 17px !important; line-height: 1.7 !important; }
/* Variante compacte (étapes du formulaire de contact) */
html body.cz-premium #page-container .et_pb_blurb.cz-num--sm { padding: 24px 0 !important; }
html body.cz-premium #page-container .et_pb_blurb.cz-num--sm .et_pb_blurb_content { grid-template-columns: 44px 1fr; gap: 14px; }
html body.cz-premium #page-container .et_pb_blurb.cz-num--sm .et_pb_blurb_content::before { font-size: 20px; }
html body.cz-premium #page-container .et_pb_blurb.cz-num--sm h3.et_pb_module_header { font-family: var(--cz-sans) !important; font-weight: 600 !important; font-size: 17px !important; line-height: 1.3 !important; margin-bottom: 6px !important; }
html body.cz-premium #page-container .et_pb_blurb.cz-num--sm .et_pb_blurb_description p { font-size: 15px !important; line-height: 1.6 !important; }

/* Frise chronologique (rangée cz-tl-row, un module Texte cz-tl-item par colonne) */
html body.cz-premium #et-main-area .et_pb_row.cz-tl-row { position: relative; }
html body.cz-premium #et-main-area .et_pb_row.cz-tl-row::before { content: ""; position: absolute; left: 0; right: 0; top: 71px; height: 1px; background: rgba(10, 43, 119, .22); transform-origin: left; z-index: 0; }
html body.cz-premium #page-container .et_pb_text.cz-tl-item { margin: 0 !important; position: relative; z-index: 1; }
html body.cz-premium #page-container .cz-tl-item p.cz-tl__y { position: relative; display: block; font-family: var(--cz-serif) !important; font-size: clamp(44px, 4vw, 60px) !important; line-height: 72px !important; height: 72px; color: var(--cz-navy) !important; margin: 0 0 44px !important; padding: 0 !important; }
html body.cz-premium #page-container .cz-tl-item p.cz-tl__y::after { content: ""; position: absolute; left: 0; top: 71.5px; width: 11px; height: 11px; margin-top: -5.5px; border-radius: 50%; background: var(--cz-navy); box-shadow: 0 0 0 6px var(--cz-paper); }
html body.cz-premium #page-container .cz-tl-item h3 { font-family: var(--cz-sans) !important; font-size: 18px !important; font-weight: 600 !important; color: var(--cz-ink) !important; margin: 0 0 10px !important; padding: 0 !important; line-height: 1.3 !important; }
html body.cz-premium #page-container .cz-tl-item p:not(.cz-tl__y) { font-size: 15px !important; line-height: 1.65 !important; margin: 0 !important; }
html body.cz-premium #et-main-area .et_pb_row.cz-tl-row.cz-tl--anim::before { transform: scaleX(0); transition: transform 1.6s var(--cz-ease); }
html body.cz-premium #et-main-area .et_pb_row.cz-tl-row.cz-tl--anim.cz-in::before { transform: scaleX(1); }

/* Contact : garanties sous les boutons */
html body.cz-premium #page-container .et_pb_text ul.cz-trust { list-style: none !important; display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 34px 0 0 !important; padding: 0 !important; }
html body.cz-premium #page-container .et_pb_text ul.cz-trust li { list-style: none !important; font-size: 14px !important; color: var(--cz-muted); padding: 0 !important; margin: 0 !important; position: relative; }
html body.cz-premium #page-container .et_pb_text ul.cz-trust li + li::before { content: ""; position: absolute; left: -12px; top: 50%; width: 3px; height: 3px; border-radius: 50%; background: currentColor; }
html body.cz-premium #page-container .et_pb_text ul.cz-trust strong { color: var(--cz-ink); font-weight: 600; }

/* Contact : cartes de contact rapide (Blurbs cz-qcard avec lien) */
@media (min-width: 981px) { html body.cz-premium #et-main-area .et_pb_row:is(.cz-qcards, .cz-cards, .cz-offices) { display: flex !important; align-items: stretch; } }
html body.cz-premium #page-container .et_pb_blurb.cz-qcard { height: 100%; margin: 0 !important; padding: 28px 28px 26px !important; background: #fff; border: 1px solid var(--cz-line); border-radius: var(--cz-radius); position: relative; transition: transform .5s var(--cz-ease), box-shadow .5s var(--cz-ease), border-color .3s ease; }
html body.cz-premium #page-container .et_pb_blurb.cz-qcard:hover { transform: translateY(-4px); box-shadow: var(--cz-shadow-hover); border-color: rgba(10, 43, 119, .2); }
html body.cz-premium #page-container .et_pb_blurb.cz-qcard::after { content: "→"; position: absolute; top: 24px; right: 26px; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--cz-line); color: var(--cz-navy); font-size: 16px; transition: background-color .3s ease, color .3s ease, transform .4s var(--cz-ease); }
html body.cz-premium #page-container .et_pb_blurb.cz-qcard--ext::after { content: "↗"; }
html body.cz-premium #page-container .et_pb_blurb.cz-qcard:hover::after { background: var(--cz-navy); color: #fff; transform: rotate(-12deg); }
html body.cz-premium #page-container .et_pb_blurb.cz-qcard .et_pb_blurb_content { max-width: none !important; text-align: left; }
html body.cz-premium #page-container .et_pb_blurb.cz-qcard h3.et_pb_module_header { font-family: var(--cz-sans) !important; font-size: 12px !important; font-weight: 600 !important; letter-spacing: .18em !important; text-transform: uppercase; color: var(--cz-navy) !important; margin: 0 0 14px !important; padding: 0 !important; }
html body.cz-premium #page-container .et_pb_blurb.cz-qcard h3.et_pb_module_header a { color: inherit !important; }
html body.cz-premium #page-container .et_pb_blurb.cz-qcard p { margin: 0 !important; padding: 0 !important; font-size: 14px !important; color: var(--cz-muted) !important; }
html body.cz-premium #page-container .et_pb_blurb.cz-qcard p.cz-card__v { font-family: var(--cz-serif) !important; font-size: clamp(26px, 2.2vw, 32px) !important; line-height: 1.15 !important; color: var(--cz-ink) !important; margin-bottom: 6px !important; overflow-wrap: anywhere; }

/* Contact : formulaire */
html body.cz-premium #et-main-area .et_pb_column.cz-formcol { background: #fff; border: 1px solid var(--cz-line); border-radius: 28px; padding: clamp(28px, 4vw, 56px) !important; box-shadow: var(--cz-shadow); }
html body.cz-premium #et-main-area .et_pb_column.cz-formcol .et_pb_text p:not(.cz-eyebrow) { font-size: 16px !important; margin-bottom: 32px !important; }
@media (min-width: 981px) { html body.cz-premium #et-main-area .et_pb_column.cz-stepscol { padding-left: clamp(8px, 2vw, 32px) !important; } }
html body.cz-premium #page-container .cz-form { margin: 0 !important; }
html body.cz-premium #page-container .cz-form .et_pb_contact_main_title { display: none !important; }
html body.cz-premium #page-container .cz-form .et_pb_contact_field { margin-bottom: 14px !important; }
html body.cz-premium #page-container .cz-form :is(.input, select, textarea) {
	width: 100% !important; background: var(--cz-paper) !important; border: 1px solid rgba(10, 43, 119, .14) !important; border-radius: 14px !important;
	padding: 18px 18px !important; font-size: 16px !important; color: var(--cz-ink) !important; box-shadow: none !important;
	transition: border-color .3s ease, background-color .3s ease, box-shadow .3s ease;
}
html body.cz-premium #page-container .cz-form :is(.input, select, textarea):hover { border-color: rgba(10, 43, 119, .3) !important; }
html body.cz-premium #page-container .cz-form :is(.input, select, textarea):focus { background: #fff !important; border-color: var(--cz-navy) !important; box-shadow: 0 0 0 4px rgba(10, 43, 119, .08) !important; }
html body.cz-premium #page-container .cz-form .input::placeholder { color: var(--cz-muted) !important; opacity: 1; }
html body.cz-premium #page-container .cz-form textarea.input { min-height: 180px !important; }
html body.cz-premium #page-container .cz-form .et_contact_bottom_container { float: none !important; display: flex; justify-content: flex-start; margin-top: 10px !important; }
html body.cz-premium #page-container .cz-form .et_pb_contact_submit {
	background: var(--cz-navy) !important; color: #fff !important; border: 0 !important; border-radius: 100px !important;
	padding: 18px 34px !important; font-size: 15px !important; letter-spacing: .02em !important; text-transform: none !important; font-weight: 600 !important; margin: 0 !important;
	box-shadow: 0 14px 30px -16px rgba(10, 43, 119, .7) !important;
}
html body.cz-premium #page-container .cz-form .et_pb_contact_submit::after { content: "→" !important; font-family: var(--cz-sans) !important; opacity: 1 !important; margin-left: 10px !important; position: static !important; display: inline !important; font-size: 15px !important; line-height: 1 !important; }
html body.cz-premium #page-container .cz-form .et_pb_contact_submit:hover { background: var(--cz-navy-deep) !important; transform: translateY(-2px); }
html body.cz-premium #page-container .cz-form .et-pb-contact-message { font-family: var(--cz-serif); font-size: 26px; color: var(--cz-ink); }

html body.cz-premium #page-container .et_pb_text.cz-quote { margin-top: 40px !important; padding: 30px 30px 26px; border-radius: var(--cz-radius); background: var(--cz-navy-deep); position: relative; overflow: hidden; }
html body.cz-premium #page-container .et_pb_text.cz-quote::before { content: "“"; position: absolute; right: 18px; top: -26px; font-family: var(--cz-serif); font-size: 160px; color: rgba(255, 255, 255, .08); line-height: 1; }
html body.cz-premium #page-container .et_pb_text.cz-quote p { font-family: var(--cz-serif) !important; font-size: 24px !important; line-height: 1.3 !important; color: #fff !important; margin: 0 0 14px !important; padding: 0 !important; }
html body.cz-premium #page-container .et_pb_text.cz-quote p.cz-quote__by { font-family: var(--cz-sans) !important; font-size: 12px !important; letter-spacing: .18em; text-transform: uppercase; color: rgba(255, 255, 255, .6) !important; margin: 0 !important; }

/* Contact : agences (colonne cz-office-col = carte ; Texte cz-map = plan, Texte cz-office = coordonnées) */
html body.cz-premium #et-main-area .et_pb_column.cz-office-col { background: #fff; border: 1px solid var(--cz-line); border-radius: 24px; overflow: hidden; padding: 0 0 34px !important; transition: box-shadow .5s var(--cz-ease), transform .5s var(--cz-ease); }
html body.cz-premium #et-main-area .et_pb_column.cz-office-col:hover { box-shadow: var(--cz-shadow-hover); transform: translateY(-4px); }
html body.cz-premium #page-container .et_pb_text.cz-map { height: 260px; margin: 0 !important; overflow: hidden; background: #e9e6df; }
html body.cz-premium #page-container .et_pb_text.cz-map :is(.et_pb_text_inner, p) { height: 100%; margin: 0 !important; padding: 0 !important; max-width: none !important; }
html body.cz-premium #page-container .et_pb_text.cz-map iframe { width: 100%; height: 100%; border: 0; display: block; filter: grayscale(1) contrast(1.05) brightness(1.02); transition: filter .6s ease; }
html body.cz-premium #et-main-area .et_pb_column.cz-office-col:hover .cz-map iframe { filter: none; }
html body.cz-premium #page-container .et_pb_text.cz-office { padding: 32px 34px 0; margin: 0 !important; }
html body.cz-premium #page-container .cz-office p.cz-office__city { font-size: 12px !important; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--cz-navy) !important; margin: 0 0 8px !important; padding: 0 !important; }
html body.cz-premium #page-container .et_pb_text.cz-office .et_pb_text_inner h3 { font-family: var(--cz-serif) !important; font-weight: 400 !important; font-size: 38px !important; margin: 0 0 22px !important; padding: 0 !important; color: var(--cz-ink) !important; }
html body.cz-premium #page-container .cz-office ul.cz-office__list { list-style: none !important; margin: 0 !important; padding: 0 !important; }
html body.cz-premium #page-container .cz-office ul.cz-office__list li { list-style: none !important; display: grid; grid-template-columns: 110px 1fr; padding: 13px 0 !important; border-top: 1px solid var(--cz-line); font-size: 15px !important; color: var(--cz-ink); }
html body.cz-premium #page-container .cz-office li span { font-size: 13px; color: var(--cz-muted); }
html body.cz-premium #page-container .cz-office li a { color: var(--cz-ink) !important; text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .4s var(--cz-ease); }
html body.cz-premium #page-container .cz-office li a:hover { background-size: 100% 1px; }
html body.cz-premium #page-container .cz-office-col .et_pb_button_module_wrapper { margin: 24px 34px 0 !important; }

/* Accueil : cartes « Nos expertises » (Blurbs cz-card avec lien) */
@media (min-width: 981px) {
	html body.cz-premium #et-main-area .et_pb_row.cz-row-head--split { display: flex !important; align-items: flex-end; }
	html body.cz-premium #et-main-area .et_pb_row.cz-row-head--split > .et_pb_column { margin-bottom: 0 !important; }
	html body.cz-premium #et-main-area .et_pb_column.cz-col-end { text-align: right; }
}
html body.cz-premium #et-main-area .cz-svc-sec .et_pb_row.cz-row-head--split + .et_pb_row { margin-top: 44px !important; }
html body.cz-premium #et-main-area .et_pb_column.cz-col-end .et_pb_button_module_wrapper { margin: 0 0 24px !important; }
html body.cz-premium #et-main-area .et_pb_row.cz-cards { counter-reset: cz-card; }
html body.cz-premium #page-container .et_pb_blurb.cz-card {
	counter-increment: cz-card; height: 100%; min-height: 380px; margin: 0 !important; padding: 34px 34px 32px !important; display: flex; flex-direction: column;
	background: #fff; border: 1px solid var(--cz-line); border-radius: 22px; overflow: hidden; isolation: isolate; position: relative;
	transition: transform .55s var(--cz-ease), box-shadow .55s var(--cz-ease), border-color .4s ease;
}
html body.cz-premium #page-container .et_pb_blurb.cz-card::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(120% 90% at 100% 0%, #1b3c8f 0%, var(--cz-navy-deep) 60%); transform: translateY(101%); transition: transform .6s var(--cz-ease); }
html body.cz-premium #page-container .et_pb_blurb.cz-card:hover { transform: translateY(-6px); box-shadow: var(--cz-shadow-hover); border-color: transparent; }
html body.cz-premium #page-container .et_pb_blurb.cz-card:hover::before { transform: none; }
html body.cz-premium #page-container .et_pb_blurb.cz-card :is(.et_pb_blurb_content, .et_pb_blurb_container, .et_pb_blurb_description) { max-width: none !important; display: flex; flex-direction: column; flex: 1 1 auto; text-align: left; }
html body.cz-premium #page-container .et_pb_blurb.cz-card .et_pb_blurb_content::before { content: counter(cz-card, decimal-leading-zero); font-family: var(--cz-serif); font-style: italic; font-size: 22px; color: var(--cz-navy); line-height: 1; padding-bottom: 96px; transition: color .4s ease; }
html body.cz-premium #page-container .et_pb_blurb.cz-card h3.et_pb_module_header { font-family: var(--cz-serif) !important; font-weight: 400 !important; font-size: clamp(30px, 2.4vw, 38px) !important; line-height: 1.05 !important; letter-spacing: -0.01em !important; color: var(--cz-ink) !important; margin: 0 0 16px !important; padding: 0 !important; transition: color .4s ease; }
html body.cz-premium #page-container .et_pb_blurb.cz-card h3.et_pb_module_header a { color: inherit !important; }
html body.cz-premium #page-container .et_pb_blurb.cz-card p { font-size: 15px !important; line-height: 1.65 !important; color: var(--cz-text) !important; margin: 0 0 28px !important; padding: 0 !important; transition: color .4s ease; }
html body.cz-premium #page-container .et_pb_blurb.cz-card .et_pb_blurb_description::after { content: "Découvrir  →"; margin-top: auto; font-family: var(--cz-sans); font-size: 14px; font-weight: 600; color: var(--cz-ink); white-space: pre; transition: color .4s ease; }
html body.cz-premium #page-container .et_pb_blurb.cz-card:hover :is(h3.et_pb_module_header, .et_pb_blurb_description::after) { color: #fff !important; }
html body.cz-premium #page-container .et_pb_blurb.cz-card:hover .et_pb_blurb_description::after { color: #fff; }
html body.cz-premium #page-container .et_pb_blurb.cz-card:hover p { color: rgba(255, 255, 255, .78) !important; }
html body.cz-premium #page-container .et_pb_blurb.cz-card:hover .et_pb_blurb_content::before { color: rgba(255, 255, 255, .6); }
html body.cz-premium #page-container .cz-rv.cz-in:is(.cz-card, .cz-qcard) { transition-delay: 0ms; }
@media (hover: none) { html body.cz-premium #page-container .et_pb_blurb.cz-card:hover { transform: none; } }

/* Tablette / mobile */
@media (max-width: 980px) {
	html body.cz-premium #et-main-area :is(.cz-sec, .cz-svc-sec) > .et_pb_row + .et_pb_row { margin-top: 40px !important; }
	html body.cz-premium #et-main-area .et_pb_image.cz-img-portrait .et_pb_image_wrap { aspect-ratio: 4 / 3; max-height: none; }
	html body.cz-premium #page-container .et_pb_text.cz-badge { left: 16px; bottom: -22px; padding: 14px 18px 12px; }
	html body.cz-premium #page-container .cz-badge p.cz-badge__v { font-size: 34px !important; }
	html body.cz-premium #et-main-area .cz-row-split > .et_pb_column:has(> .et_pb_image.cz-img-portrait:only-child) { order: 2; }
	html body.cz-premium #et-main-area .et_pb_row.cz-row-split { display: flex !important; flex-direction: column; gap: 40px; }
	html body.cz-premium #et-main-area .et_pb_row.cz-row-split > .et_pb_column { margin-bottom: 0 !important; }
	html body.cz-premium #page-container .et_pb_text ul.cz-trust li + li::before { display: none; }
	html body.cz-premium #page-container .et_pb_text ul.cz-trust { flex-direction: column; gap: 6px; }
	html body.cz-premium #et-main-area .et_pb_row.cz-row-split > .et_pb_column { width: 100% !important; }
	html body.cz-premium #et-main-area .et_pb_row.cz-tl-row { padding-left: 28px !important; }
	html body.cz-premium #et-main-area .et_pb_row.cz-tl-row::before { left: 5px; right: auto; top: 8px; bottom: 8px; width: 1px; height: auto; transform-origin: top; }
	html body.cz-premium #et-main-area .et_pb_row.cz-tl-row.cz-tl--anim::before { transform: scaleY(0); }
	html body.cz-premium #et-main-area .et_pb_row.cz-tl-row.cz-tl--anim.cz-in::before { transform: scaleY(1); }
	html body.cz-premium #et-main-area .et_pb_row.cz-tl-row > .et_pb_column { margin-bottom: 34px !important; }
	html body.cz-premium #et-main-area .et_pb_row.cz-tl-row > .et_pb_column:last-child { margin-bottom: 0 !important; }
	html body.cz-premium #page-container .cz-tl-item p.cz-tl__y { height: auto; line-height: 1.1 !important; font-size: 40px !important; margin-bottom: 10px !important; }
	html body.cz-premium #page-container .cz-tl-item p.cz-tl__y::after { left: -28px; top: 50%; }
	html body.cz-premium #et-main-area .et_pb_column.cz-sticky { position: static; }
	html body.cz-premium #page-container .et_pb_blurb.cz-card { min-height: 0; }
	html body.cz-premium #page-container .et_pb_blurb.cz-card .et_pb_blurb_content::before { padding-bottom: 36px; }
	html body.cz-premium #et-main-area .et_pb_column.cz-col-end .et_pb_button_module_wrapper { margin: 0 !important; }
}
@media (max-width: 767px) {
	html body.cz-premium #et-main-area :is(.cz-sec, .cz-svc-sec) > .et_pb_row { width: 90% !important; }
	html body.cz-premium #page-container .cz-sec .et_pb_text h1 { font-size: 40px !important; }
	html body.cz-premium #page-container .cz-sec .et_pb_text h1.cz-display { font-size: 48px !important; }
	html body.cz-premium #page-container :is(.cz-sec, .cz-svc-sec) .et_pb_text h2 { font-size: 34px !important; }
	html body.cz-premium #page-container .et_pb_blurb.cz-num .et_pb_blurb_content { grid-template-columns: 44px 1fr; gap: 12px; }
	html body.cz-premium #page-container .et_pb_blurb.cz-num { padding: 26px 0 !important; }
	html body.cz-premium #et-main-area .et_pb_image.cz-collage-b { width: 52% !important; }
	html body.cz-premium #et-main-area .et_pb_image.cz-collage-b .et_pb_image_wrap { border-width: 4px; }
	html body.cz-premium #et-main-area .et_pb_column.cz-formcol { border-radius: 22px; padding: 26px 20px !important; }
	html body.cz-premium #page-container .cz-form .et_pb_contact_field { width: 100% !important; margin-left: 0 !important; }
	html body.cz-premium #page-container .cz-form .et_pb_contact_submit { width: 100%; }
	html body.cz-premium #page-container .et_pb_text.cz-office { padding: 26px 22px 0; }
	html body.cz-premium #page-container .cz-office-col .et_pb_button_module_wrapper { margin: 20px 22px 0 !important; }
	html body.cz-premium #page-container .cz-office ul.cz-office__list li { grid-template-columns: 1fr; gap: 2px; }
	html body.cz-premium #page-container .et_pb_text.cz-map { height: 220px; }
	html body.cz-premium #page-container .et_pb_button_module_wrapper:has(> :is(.cz-btn, .cz-btn-ghost)) { display: block; }
	html body.cz-premium #page-container .et_pb_button:is(.cz-btn, .cz-btn-ghost) { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
	html body.cz-premium #et-main-area .et_pb_row.cz-tl-row.cz-tl--anim::before { transform: none !important; }
}

/* =====================================================================
   FORMULAIRES DE CONTACT (module Formulaire Divi avec la classe cz-form)
   Grille propre : champs « demi-largeur » côte à côte, bouton aligné sur les champs
   ===================================================================== */
html body.cz-premium #page-container .cz-form form.et_pb_contact_form { display: grid !important; grid-template-columns: 1fr 1fr; gap: 14px; margin: 0 !important; }
html body.cz-premium #page-container .cz-form form.et_pb_contact_form > :is(.et_pb_contact_field, .et_contact_bottom_container) { width: auto !important; float: none !important; margin: 0 !important; padding: 0 !important; clear: none !important; }
html body.cz-premium #page-container .cz-form form.et_pb_contact_form > .et_pb_contact_field:not(.et_pb_contact_field_half) { grid-column: 1 / -1; }
html body.cz-premium #page-container .cz-form form.et_pb_contact_form > :is(.et_contact_bottom_container, .clear, .clearfix, br) { grid-column: 1 / -1; }
html body.cz-premium #page-container .cz-form form.et_pb_contact_form > :is(.clear, br) { display: none; }
html body.cz-premium #page-container .cz-form .et_contact_bottom_container { margin-top: 10px !important; }
html body.cz-premium #page-container .cz-form .et-pb-contact-message:empty { display: none; }
@media (max-width: 767px) {
	html body.cz-premium #page-container .cz-form form.et_pb_contact_form { grid-template-columns: 1fr; }
}

/* Section « Discutons ensemble de votre projet » (accueil, actualités) */
html body.cz-premium #et-main-area .cz-sec--cta .et_pb_column.cz-cta-text { padding-top: 12px !important; }
@media (min-width: 981px) {
	html body.cz-premium #et-main-area .cz-sec--cta .et_pb_row.cz-row-split { align-items: flex-start; }
	html body.cz-premium #et-main-area .cz-sec--cta .et_pb_column.cz-cta-text { position: sticky; top: 140px; }
}
html body.cz-premium #page-container .et_pb_text ul.cz-direct { list-style: none !important; margin: 10px 0 0 !important; padding: 0 !important; border-top: 1px solid var(--cz-line); }
html body.cz-premium #page-container .et_pb_text ul.cz-direct li { list-style: none !important; display: grid; grid-template-columns: 110px 1fr; gap: 12px; padding: 16px 0 !important; margin: 0 !important; border-bottom: 1px solid var(--cz-line); font-size: 16px !important; color: var(--cz-ink); }
html body.cz-premium #page-container .et_pb_text ul.cz-direct li span { font-size: 13px; color: var(--cz-muted); padding-top: 2px; }
html body.cz-premium #page-container .et_pb_text ul.cz-direct a { color: var(--cz-ink) !important; font-weight: 600; text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .4s var(--cz-ease); }
html body.cz-premium #page-container .et_pb_text ul.cz-direct a:hover { background-size: 100% 1px; }

/* =====================================================================
   PAGE ACTUALITÉS (modules Slider d'articles « cz-featured » et Blog « cz-news »)
   ===================================================================== */
@media (min-width: 981px) {
	html body.cz-premium #et-main-area .et_pb_row.cz-row-split.cz-row-bottom { align-items: flex-end; }
	html body.cz-premium #et-main-area .et_pb_row.cz-row-bottom .et_pb_text p.cz-lead-sans { margin-bottom: 30px !important; }
}
html body.cz-premium #et-main-area .cz-sec--news { padding-top: 0 !important; }

/* Article à la une */
html body.cz-premium #page-container .et_pb_post_slider.cz-featured { border-radius: 28px !important; overflow: hidden; box-shadow: var(--cz-shadow-hover); }
html body.cz-premium #page-container .cz-featured .et_pb_slide { min-height: clamp(460px, 48vw, 640px); padding: 0 !important; background-size: cover !important; background-position: center !important; transition: background-size 1.2s var(--cz-ease); }
html body.cz-premium #page-container .cz-featured .et_pb_slide_overlay_container { background: linear-gradient(to top, rgba(11, 27, 69, .92) 0%, rgba(11, 27, 69, .55) 38%, rgba(11, 27, 69, .08) 75%, rgba(11, 27, 69, 0) 100%) !important; }
html body.cz-premium #page-container .cz-featured .et_pb_container { width: 100% !important; max-width: none !important; height: clamp(460px, 48vw, 640px) !important; display: flex !important; align-items: flex-end; }
html body.cz-premium #page-container .cz-featured .et_pb_slider_container_inner { display: block !important; width: 100%; }
html body.cz-premium #page-container .cz-featured .et_pb_slide_description { text-align: left !important; padding: clamp(28px, 5vw, 64px) !important; max-width: 880px; margin: 0 !important; float: none !important; width: auto !important; text-shadow: none !important; }
html body.cz-premium #page-container .cz-featured :is(.et_pb_container, .et_pb_slider_container_inner) { margin: 0 !important; padding: 0 !important; }
html body.cz-premium #page-container .cz-featured .et_pb_slide { background-position: center 65% !important; }
html body.cz-premium #page-container .cz-featured .et_pb_slide_description::before { content: "À la une"; display: inline-block; margin-bottom: 18px; padding: 8px 14px; border-radius: 100px; background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .28); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); font-family: var(--cz-sans); font-size: 11px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: #fff; }
html body.cz-premium #page-container .cz-featured .et_pb_slide_title { font-size: clamp(34px, 4vw, 60px) !important; line-height: 1.02 !important; margin: 0 0 18px !important; padding: 0 !important; text-align: left !important; }
html body.cz-premium #page-container .cz-featured .et_pb_slide_title a { font-family: var(--cz-serif) !important; font-weight: 400 !important; color: #fff !important; text-shadow: none !important; }
html body.cz-premium #page-container .cz-featured .et_pb_slide_content { font-family: var(--cz-sans) !important; font-size: 17px !important; line-height: 1.65 !important; color: rgba(255, 255, 255, .82) !important; max-width: 60ch; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-shadow: none !important; }
html body.cz-premium #page-container .cz-featured .et_pb_button_wrapper { text-align: left !important; margin-top: 28px; }
html body.cz-premium #page-container .cz-featured .et_pb_more_button { display: inline-flex !important; align-items: center; gap: 12px; padding: 16px 26px !important; border-radius: 100px !important; border: 0 !important; background: #fff !important; color: var(--cz-navy-deep) !important; font-family: var(--cz-sans) !important; font-weight: 600 !important; font-size: 15px !important; letter-spacing: 0 !important; text-transform: none !important; transition: transform .35s var(--cz-ease), background-color .3s ease !important; }
html body.cz-premium #page-container .cz-featured .et_pb_more_button::after { content: "→" !important; font-family: var(--cz-sans) !important; position: static !important; opacity: 1 !important; margin: 0 !important; font-size: 15px !important; line-height: 1 !important; display: inline-block !important; transition: transform .35s var(--cz-ease) !important; }
html body.cz-premium #page-container .cz-featured .et_pb_more_button:hover { padding: 16px 26px !important; transform: translateY(-2px); }
html body.cz-premium #page-container .cz-featured .et_pb_more_button:hover::after { transform: translateX(4px); }

/* Grille d'articles : cartes sans boîte, images 4:3, hauteurs régulières */
html body.cz-premium #et-main-area .cz-sec--news .et_pb_row.cz-row-news { margin-top: clamp(56px, 6vw, 88px) !important; }
html body.cz-premium #page-container .cz-news .et_pb_post {
	background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; border-radius: 0 !important;
	display: flex !important; flex-direction: column; transform: none !important; margin-bottom: 56px !important; overflow: visible;
}
html body.cz-premium #page-container .cz-news .et_pb_post:hover { box-shadow: none !important; transform: none !important; }
html body.cz-premium #page-container .cz-news .et_pb_post .et_pb_image_container { order: 0; margin: 0 0 22px !important; border-radius: 18px; overflow: hidden; aspect-ratio: 4 / 3; }
html body.cz-premium #page-container .cz-news .et_pb_post .et_pb_image_container :is(a, img) { display: block; width: 100% !important; height: 100% !important; object-fit: cover; }
html body.cz-premium #page-container .cz-news .et_pb_post .post-meta { order: 1; margin: 0 0 10px !important; padding: 0 !important; }
html body.cz-premium #page-container .cz-news .et_pb_post .entry-title { order: 2; margin: 0 0 12px !important; padding: 0 !important; min-height: calc(3 * 1.15em); }
html body.cz-premium #page-container .cz-news .et_pb_post .entry-title,
html body.cz-premium #page-container .cz-news .et_pb_post .entry-title a { font-size: 26px !important; line-height: 1.15 !important; color: var(--cz-ink) !important; }
html body.cz-premium #page-container .cz-news .et_pb_post .entry-title a { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; background: linear-gradient(currentColor, currentColor) 0 92% / 0 1px no-repeat; transition: background-size .5s var(--cz-ease); }
html body.cz-premium #page-container .cz-news .et_pb_post:hover .entry-title a { background-size: 100% 1px; }
html body.cz-premium #page-container .cz-news .et_pb_post .post-content { order: 3; }
html body.cz-premium #page-container .cz-news .et_pb_post .post-content :is(p, .post-content-inner) { font-size: 15px !important; line-height: 1.65 !important; color: var(--cz-text) !important; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
html body.cz-premium #page-container .cz-news .et_pb_post .more-link { display: none !important; }

/* Pagination */
html body.cz-premium #page-container .cz-news .pagination { display: flex; justify-content: space-between; gap: 16px; border-top: 1px solid var(--cz-line); padding-top: 32px !important; margin-top: 8px; }
html body.cz-premium #page-container .cz-news .pagination :is(.alignleft, .alignright) { float: none !important; }
html body.cz-premium #page-container .cz-news .pagination .alignright { margin-left: auto; }
html body.cz-premium #page-container .cz-news .pagination a { display: inline-flex; align-items: center; padding: 15px 24px; border-radius: 100px; border: 1px solid rgba(10, 43, 119, .22); font-size: 0 !important; color: var(--cz-ink) !important; text-decoration: none; transition: background-color .3s ease, border-color .3s ease, color .3s ease; }
html body.cz-premium #page-container .cz-news .pagination .alignleft a::before { content: "Articles plus anciens  →"; white-space: pre; font-family: var(--cz-sans); font-size: 15px; font-weight: 600; }
html body.cz-premium #page-container .cz-news .pagination .alignright a::before { content: "←  Articles plus récents"; white-space: pre; font-family: var(--cz-sans); font-size: 15px; font-weight: 600; }
html body.cz-premium #page-container .cz-news .pagination a:hover { background: var(--cz-navy); border-color: var(--cz-navy); color: #fff !important; }
/* Ancienne présentation à droite : l'article plus ancien est à droite, le plus récent à gauche */
html body.cz-premium #page-container .cz-news .pagination .alignleft { order: 2; margin-left: auto; }
html body.cz-premium #page-container .cz-news .pagination .alignright { order: 1; margin-left: 0; }

@media (max-width: 980px) {
	html body.cz-premium #page-container .cz-news .et_pb_post .entry-title { min-height: 0; }
	html body.cz-premium #page-container .cz-news .et_pb_post .entry-title,
	html body.cz-premium #page-container .cz-news .et_pb_post .entry-title a { font-size: 23px !important; }
	html body.cz-premium #page-container .cz-news .et_pb_post { margin-bottom: 40px !important; }
}
@media (max-width: 767px) {
	html body.cz-premium #page-container .cz-featured .et_pb_slide, html body.cz-premium #page-container .cz-featured .et_pb_container { min-height: 520px; height: 520px !important; }
	html body.cz-premium #page-container .cz-featured .et_pb_slide_description { padding: 26px 22px !important; }
	html body.cz-premium #page-container .cz-featured .et_pb_slide_content { font-size: 15px !important; }
	html body.cz-premium #page-container .et_pb_post_slider.cz-featured { border-radius: 22px !important; }
	html body.cz-premium #page-container .cz-news .pagination a { width: 100%; justify-content: center; }
	html body.cz-premium #page-container .cz-news .pagination { flex-direction: column; }
}

/* =====================================================================
   PIED DE PAGE (Theme Builder, modules Divi natifs : sections cz-ft / cz-ft-bar)
   ===================================================================== */
html body.cz-premium #page-container .et-l--footer .et_pb_section.cz-ft {
	background: radial-gradient(120% 140% at 100% 0%, #16306f 0%, var(--cz-navy-deep) 55%) !important;
	border-radius: 36px 36px 0 0; padding: clamp(64px, 7vw, 104px) 0 clamp(48px, 5vw, 72px) !important; margin-top: 0;
}
html body.cz-premium #page-container .et-l--footer .et_pb_section.cz-ft-bar { background: var(--cz-navy-deep) !important; padding: 0 !important; }
html body.cz-premium #page-container .et-l--footer :is(.cz-ft, .cz-ft-bar) > .et_pb_row { width: 88% !important; max-width: 1240px !important; padding: 0 !important; }
@media (min-width: 981px) {
	html body.cz-premium #page-container .et-l--footer .et_pb_row.cz-ft-main { display: flex !important; gap: 0; }
	html body.cz-premium #page-container .et-l--footer .et_pb_row.cz-ft-main > .et_pb_column { margin-bottom: 0 !important; }
	html body.cz-premium #page-container .et-l--footer .et_pb_row.cz-ft-main > .et_pb_column.cz-ft-brand { padding-right: 4% !important; }
}
html body.cz-premium #page-container .et-l--footer .et_pb_module { margin-bottom: 0 !important; }
html body.cz-premium #page-container .et-l--footer p { color: rgba(255, 255, 255, .72) !important; padding: 0 !important; }

/* Marque */
html body.cz-premium #page-container .et-l--footer .cz-ft-logo { margin-bottom: 28px !important; text-align: left; }
html body.cz-premium #page-container .et-l--footer .cz-ft-logo img { max-height: 72px !important; width: auto !important; }
html body.cz-premium #page-container .et-l--footer p.cz-ft-tagline { font-family: var(--cz-serif) !important; font-size: clamp(26px, 2.3vw, 34px) !important; line-height: 1.15 !important; color: #fff !important; max-width: 15em; margin: 0 0 28px !important; text-wrap: balance; }
html body.cz-premium #page-container .et-l--footer p.cz-ft-tagline em { font-style: italic; color: #b9c8ee; }
html body.cz-premium #page-container .et-l--footer ul.cz-ft-contact { list-style: none !important; margin: 0 0 28px !important; padding: 0 !important; }
html body.cz-premium #page-container .et-l--footer ul.cz-ft-contact li { list-style: none !important; padding: 0 0 8px !important; font-size: 15px !important; color: rgba(255, 255, 255, .6) !important; }
html body.cz-premium #page-container .et-l--footer ul.cz-ft-contact a { color: #fff !important; font-weight: 600; font-size: 16px; }

/* Colonnes de liens */
html body.cz-premium #page-container .et-l--footer p.cz-ft-title { font-family: var(--cz-sans) !important; font-size: 12px !important; font-weight: 600 !important; letter-spacing: .22em !important; text-transform: uppercase; color: rgba(255, 255, 255, .5) !important; margin: 10px 0 22px !important; }
html body.cz-premium #page-container .et-l--footer ul.cz-ft-links { list-style: none !important; margin: 0 !important; padding: 0 !important; }
html body.cz-premium #page-container .et-l--footer ul.cz-ft-links li { list-style: none !important; padding: 0 0 12px !important; line-height: 1.4 !important; }
html body.cz-premium #page-container .et-l--footer :is(ul.cz-ft-links, ul.cz-ft-contact, .cz-ft-legal) a {
	font-family: var(--cz-sans) !important; text-decoration: none !important; font-size: 15px; color: rgba(255, 255, 255, .82) !important;
	background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .45s var(--cz-ease), color .3s ease;
}
html body.cz-premium #page-container .et-l--footer :is(ul.cz-ft-links, ul.cz-ft-contact, .cz-ft-legal) a:hover { color: #fff !important; background-size: 100% 1px; }
html body.cz-premium #page-container .et-l--footer ul.cz-ft-contact a { color: #fff !important; }

/* Réseaux sociaux */
html body.cz-premium #page-container .et-l--footer .cz-ft-social { text-align: left !important; }
html body.cz-premium #page-container .et-l--footer .cz-ft-social li { margin: 0 8px 0 0 !important; }
html body.cz-premium #page-container .et-l--footer .cz-ft-social li a.icon { width: 40px !important; height: 40px !important; background-color: transparent !important; border: 1px solid rgba(255, 255, 255, .28) !important; border-radius: 50% !important; transition: background-color .3s ease, border-color .3s ease, transform .35s var(--cz-ease); }
html body.cz-premium #page-container .et-l--footer .cz-ft-social li a.icon::before { width: 38px !important; height: 38px !important; line-height: 38px !important; font-size: 15px !important; }
html body.cz-premium #page-container .et-l--footer .cz-ft-social li a.icon:hover { background-color: #fff !important; border-color: #fff !important; transform: translateY(-2px); }
html body.cz-premium #page-container .et-l--footer .cz-ft-social li a.icon:hover::before { color: var(--cz-navy-deep) !important; }

/* Newsletter */
html body.cz-premium #page-container .et-l--footer p.cz-ft-small { font-size: 14px !important; line-height: 1.6 !important; margin: 0 0 18px !important; }
html body.cz-premium #page-container .et-l--footer .cz-ft-news { padding: 0 !important; background: none !important; }
html body.cz-premium #page-container .et-l--footer .cz-ft-news :is(.et_pb_newsletter_description, .et_pb_newsletter_description h2) { display: none !important; }
html body.cz-premium #page-container .et-l--footer .cz-ft-news .et_pb_newsletter_form { width: 100% !important; padding: 0 !important; }
html body.cz-premium #page-container .et-l--footer .cz-ft-news .et_pb_newsletter_form p { margin: 0 0 10px !important; }
html body.cz-premium #page-container .et-l--footer .cz-ft-news .input { width: 100% !important; background: rgba(255, 255, 255, .06) !important; border: 1px solid rgba(255, 255, 255, .18) !important; border-radius: 14px !important; padding: 15px 16px !important; color: #fff !important; font-family: var(--cz-sans) !important; font-size: 15px !important; }
html body.cz-premium #page-container .et-l--footer .cz-ft-news .input::placeholder { color: rgba(255, 255, 255, .55) !important; }
html body.cz-premium #page-container .et-l--footer .cz-ft-news .input:focus { border-color: #fff !important; background: rgba(255, 255, 255, .1) !important; }
html body.cz-premium #page-container .et-l--footer .cz-ft-news .et_pb_newsletter_button {
	width: 100%; display: inline-flex !important; justify-content: center; align-items: center; gap: 10px; padding: 15px 22px !important;
	border-radius: 100px !important; border: 0 !important; background: #fff !important; color: var(--cz-navy-deep) !important;
	font-family: var(--cz-sans) !important; font-weight: 600 !important; font-size: 15px !important; letter-spacing: 0 !important; text-transform: none !important;
	transition: transform .35s var(--cz-ease), background-color .3s ease !important;
}
html body.cz-premium #page-container .et-l--footer .cz-ft-news .et_pb_newsletter_button::after { content: "→" !important; font-family: var(--cz-sans) !important; position: static !important; opacity: 1 !important; margin: 0 !important; font-size: 15px !important; line-height: 1 !important; display: inline-block !important; }
html body.cz-premium #page-container .et-l--footer .cz-ft-news .et_pb_newsletter_button:hover { padding: 15px 22px !important; background: #e9eefb !important; transform: translateY(-2px); }

/* Barre du bas */
html body.cz-premium #page-container .et-l--footer .et_pb_row.cz-ft-barrow { border-top: 1px solid rgba(255, 255, 255, .1); padding: 26px 0 30px !important; display: flex !important; align-items: center; justify-content: space-between; }
html body.cz-premium #page-container .et-l--footer .et_pb_row.cz-ft-barrow > .et_pb_column { width: auto !important; margin: 0 !important; }
html body.cz-premium #page-container .et-l--footer .cz-ft-barrow p { font-size: 13px !important; color: rgba(255, 255, 255, .5) !important; margin: 0 !important; }
html body.cz-premium #page-container .et-l--footer .cz-ft-legal a { font-size: 13px !important; color: rgba(255, 255, 255, .7) !important; }

@media (max-width: 980px) {
	html body.cz-premium #page-container .et-l--footer .et_pb_row.cz-ft-main { display: grid !important; grid-template-columns: 1fr 1fr; gap: 40px 24px; }
	html body.cz-premium #page-container .et-l--footer .et_pb_row.cz-ft-main > .et_pb_column { width: auto !important; margin: 0 !important; }
	html body.cz-premium #page-container .et-l--footer .et_pb_row.cz-ft-main > :is(.cz-ft-brand, .cz-ft-newscol) { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
	html body.cz-premium #page-container .et-l--footer .et_pb_section.cz-ft { border-radius: 24px 24px 0 0; }
	html body.cz-premium #page-container .et-l--footer :is(.cz-ft, .cz-ft-bar) > .et_pb_row { width: 88% !important; }
	html body.cz-premium #page-container .et-l--footer .et_pb_row.cz-ft-barrow { flex-direction: column; align-items: flex-start; gap: 8px; }
}
html body.cz-premium #page-container .et-l--footer .et_pb_row.cz-ft-barrow::before, html body.cz-premium #page-container .et-l--footer .et_pb_row.cz-ft-barrow::after { display: none !important; content: none !important; }

/* Bouton « Contactez-nous » de l'en-tête (module Bouton, classes cz-btn cz-btn--nav) */
html body.cz-premium #page-container .et-l--header .et_pb_button.cz-btn--nav { padding: 12px 22px !important; font-size: 14px !important; width: auto !important; box-shadow: 0 10px 24px -14px rgba(10, 43, 119, .7) !important; }
html body.cz-premium #page-container .et-l--header .et_pb_button.cz-btn--nav:hover { padding: 12px 22px !important; }
html body.cz-premium #page-container .et-l--header .et_pb_button_module_wrapper:has(> .cz-btn--nav) { display: block; margin: 15px 0 0 !important; text-align: right; }
html body.cz-premium #page-container .et_pb_button:is(.cz-btn, .cz-btn-ghost)::after { top: auto !important; margin-top: 0 !important; align-self: center; position: relative !important; line-height: 1 !important; height: auto !important; transform: translateY(-3px); }
html body.cz-premium #page-container .et_pb_button:is(.cz-btn, .cz-btn-ghost):hover::after { transform: translate(4px, -3px); }

/* En-tête fixe : « overflow-x: hidden » sur body / #page-container empêchait position: sticky.
   « clip » coupe toujours le débordement horizontal sans créer de zone de défilement. */
html body.cz-premium, html body.cz-premium #page-container { overflow-x: clip !important; overflow-y: visible !important; }
/* En-tête mobile : même fond givré que sur ordinateur, sans bandes transparentes, plus compact */
html body.cz-premium #page-container .et-l--header .et_pb_section_1_tb_header { background-color: rgba(250, 248, 244, 0.9) !important; -webkit-backdrop-filter: saturate(160%) blur(14px); backdrop-filter: saturate(160%) blur(14px); }
html body.cz-premium #page-container .et-l--header .et_pb_section_1_tb_header :is(.et_pb_menu, .et_pb_menu_inner_container) { background: transparent !important; }
html body.cz-premium #page-container .et-l--header .et_pb_row_1_tb_header { padding: 8px 0 !important; }
html body.cz-premium #page-container .et-l--header .et_pb_section_1_tb_header .et_pb_menu__logo img { max-height: 52px !important; width: auto !important; transition: max-height .4s var(--cz-ease); }
html body.cz-premium.cz-scrolled #page-container .et-l--header .et_pb_section_1_tb_header .et_pb_menu__logo img { max-height: 42px !important; }
html body.cz-premium #page-container .et-l--header .et_pb_column_3_tb_header { background: transparent !important; }

/* =====================================================================
   HARMONISATION FINALE
   ===================================================================== */
/* Tuiles photo « Nos services » / « Tourisme d'affaires » : titre serif, plus de majuscules condensées */
html body.cz-premium #page-container .et_pb_column:has(> .et_pb_icon) .et_pb_text h3 {
	font-family: var(--cz-serif) !important; font-weight: 400 !important; text-transform: none !important;
	font-size: clamp(28px, 2.4vw, 38px) !important; line-height: 1.05 !important; letter-spacing: -0.01em !important;
}

/* Tous les autres boutons Divi : même typographie que les boutons du site (les sur-titres des pages de services gardent leur style) */
html body.cz-premium #page-container .et_pb_section .et_pb_button:where(:not(.cz-btn, .cz-btn-ghost, .cz-btn-link, .et_pb_more_button)) {
	font-size: 15px !important; letter-spacing: 0 !important; text-transform: none !important; font-weight: 600 !important;
	padding: 15px 26px !important; border-radius: 100px !important; line-height: 1.2 !important;
}
html body.cz-premium #page-container .et_pb_section .et_pb_button:where(:not(.cz-btn, .cz-btn-ghost, .cz-btn-link, .et_pb_more_button)):hover { padding: 15px 26px !important; }
html body.cz-premium #page-container .et_pb_section .et_pb_button:where(:not(.cz-btn, .cz-btn-ghost, .cz-btn-link, .et_pb_more_button))::after { display: none !important; }

/* Articles (gabarit Divi par défaut) */
html body.cz-premium.single-post #main-content { background: transparent !important; }
html body.cz-premium.single-post #main-content .container { width: 88%; max-width: 860px; padding-top: clamp(48px, 6vw, 88px) !important; }
html body.cz-premium.single-post #main-content .container::before { display: none !important; }
html body.cz-premium.single-post #left-area { width: 100% !important; padding: 0 !important; float: none !important; }
html body.cz-premium.single-post #sidebar { display: none !important; }
html body.cz-premium.single-post .et_post_meta_wrapper h1.entry-title { font-size: clamp(40px, 4.6vw, 68px) !important; line-height: 1.04 !important; color: var(--cz-ink) !important; padding: 0 0 18px !important; margin: 0 !important; }
html body.cz-premium.single-post .et_post_meta_wrapper .post-meta { font-size: 12px !important; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--cz-navy) !important; padding: 0 0 0 44px !important; margin: 0 0 36px !important; position: relative; }
html body.cz-premium.single-post .et_post_meta_wrapper .post-meta::before { content: ""; position: absolute; left: 0; top: 50%; width: 32px; height: 1px; background: currentColor; }
html body.cz-premium.single-post .et_post_meta_wrapper .post-meta :is(.author, .comments-number) { display: none; }
html body.cz-premium.single-post .et_post_meta_wrapper .post-meta a { color: inherit !important; }
html body.cz-premium.single-post .et_post_meta_wrapper img { border-radius: 22px; box-shadow: var(--cz-shadow); margin-bottom: 40px; width: 100%; max-height: 620px; object-fit: cover; }
html body.cz-premium.single-post .entry-content :is(p, li) { font-size: 18px !important; line-height: 1.8 !important; color: var(--cz-text) !important; }
html body.cz-premium.single-post .entry-content :is(h2, h3) { color: var(--cz-ink) !important; margin-top: 1.4em !important; }
html body.cz-premium.single-post .entry-content .gallery img, html body.cz-premium.single-post .entry-content .et_pb_gallery_image img { border-radius: 14px; border: 0 !important; }
html body.cz-premium.single-post .entry-content .gallery { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 40px 0 !important; }
html body.cz-premium.single-post .entry-content .gallery .gallery-item { width: auto !important; margin: 0 !important; float: none !important; }
html body.cz-premium.single-post .entry-content .gallery br { display: none; }
html body.cz-premium.single-post .entry-content .gallery img { width: 100% !important; aspect-ratio: 1; object-fit: cover; }
html body.cz-premium.single-post #comment-wrap { display: none !important; }
@media (max-width: 767px) { html body.cz-premium.single-post .entry-content .gallery { grid-template-columns: repeat(2, 1fr); } }

/* Page 404 / sans résultat */
html body.cz-premium.error404 #main-content .container { padding: clamp(64px, 8vw, 120px) 0 !important; width: 88%; max-width: 860px; }
html body.cz-premium.error404 #main-content .container::before, html body.cz-premium.error404 #sidebar { display: none !important; }
html body.cz-premium.error404 #left-area { width: 100% !important; padding: 0 !important; }
html body.cz-premium.error404 .not-found-title, html body.cz-premium.error404 #left-area h1 { font-family: var(--cz-serif) !important; font-weight: 400 !important; font-size: clamp(44px, 5vw, 72px) !important; color: var(--cz-ink) !important; }
html body.cz-premium.single-post #page-container #main-content .et_post_meta_wrapper h1.entry-title { font-size: clamp(40px, 4.6vw, 68px) !important; line-height: 1.04 !important; }
html body.cz-premium.error404 #main-content { background: transparent !important; }
/* Méta de l'article : on ne garde que la catégorie (le « par » et les « | » sont du texte brut) */
html body.cz-premium.single-post #page-container .et_post_meta_wrapper .post-meta { font-size: 0 !important; }
html body.cz-premium.single-post #page-container .et_post_meta_wrapper .post-meta a { font-size: 12px !important; }
html body.cz-premium.single-post #page-container .et_post_meta_wrapper .post-meta :is(.published) { font-size: 12px !important; margin-left: 14px; }

/* =====================================================================
   MENU MOBILE (module Menu Divi) : panneau plein écran sous l'en-tête
   ===================================================================== */
@media (max-width: 980px) {
	/* Icône burger dessinée -> croix à l'ouverture */
	html body.cz-premium #page-container .et-l--header .mobile_menu_bar { position: relative; display: block; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(10, 43, 119, .18); transition: background-color .3s ease, border-color .3s ease; }
	html body.cz-premium #page-container .et-l--header .mobile_menu_bar::before,
	html body.cz-premium #page-container .et-l--header .mobile_menu_bar::after {
		content: "" !important; position: absolute !important; left: 50% !important; top: 50% !important; width: 18px; height: 1.5px; margin: 0 0 0 -9px !important;
		background: var(--cz-navy); border-radius: 2px; font-size: 0 !important; transition: transform .45s var(--cz-ease), background-color .3s ease;
	}
	html body.cz-premium #page-container .et-l--header .mobile_menu_bar::before { transform: translateY(-4px); }
	html body.cz-premium #page-container .et-l--header .mobile_menu_bar::after { transform: translateY(4px); }
	html body.cz-premium #page-container .et-l--header .mobile_nav.opened .mobile_menu_bar { background: var(--cz-navy); border-color: var(--cz-navy); }
	html body.cz-premium #page-container .et-l--header .mobile_nav.opened .mobile_menu_bar::before { transform: rotate(45deg); background: #fff; }
	html body.cz-premium #page-container .et-l--header .mobile_nav.opened .mobile_menu_bar::after { transform: rotate(-45deg); background: #fff; }

	/* Panneau : sous l'en-tête, toute la largeur, toute la hauteur restante */
	html body.cz-premium #page-container .et-l--header .et_mobile_menu {
		position: fixed !important; top: 100% !important; left: 0 !important; right: 0 !important; width: 100% !important;
		height: calc(100dvh - 100%); max-height: none; overflow-y: auto; overscroll-behavior: contain;
		background: var(--cz-paper) !important; border: 0 !important; border-top: 1px solid var(--cz-line) !important; box-shadow: none !important;
		padding: 18px 6% 40px !important; margin: 0 !important;
		display: flex !important; flex-direction: column;
		opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-8px);
		transition: opacity .35s var(--cz-ease), transform .45s var(--cz-ease), visibility 0s linear .45s;
	}
	html body.cz-premium #page-container .et-l--header .mobile_nav:not(.opened) .et_mobile_menu * { visibility: hidden !important; pointer-events: none !important; }
	html body.cz-premium #page-container .et-l--header .mobile_nav.opened .et_mobile_menu { opacity: 1; visibility: visible; pointer-events: auto; transform: none; transition: opacity .35s var(--cz-ease), transform .45s var(--cz-ease), visibility 0s; }

	/* Liens de premier niveau : grands, en serif, séparés par des filets */
	html body.cz-premium #page-container .et-l--header .et_mobile_menu li { list-style: none; padding: 0 !important; margin: 0 !important; }
	html body.cz-premium #page-container .et-l--header .et_mobile_menu li a { background: transparent !important; border: 0 !important; }
	html body.cz-premium #page-container .et-l--header .et_mobile_menu > li { border-bottom: 1px solid var(--cz-line) !important; }
	html body.cz-premium #page-container .et-l--header .et_mobile_menu > li > a {
		display: flex !important; align-items: center; justify-content: space-between; padding: 18px 0 !important;
		font-family: var(--cz-serif) !important; font-weight: 400 !important; font-size: 30px !important; line-height: 1.1 !important; letter-spacing: -0.01em !important; color: var(--cz-ink) !important;
	}
	html body.cz-premium #page-container .et-l--header .et_mobile_menu > li.current-menu-item > a { color: var(--cz-navy) !important; font-style: italic; }
	html body.cz-premium #page-container .et-l--header .et_mobile_menu > li:not(.menu-item-has-children):not(:last-child) > a::after { content: "→"; font-family: var(--cz-sans); font-style: normal; font-size: 18px; color: var(--cz-navy); opacity: .5; }

	/* Sous-menus : liste simple, sans cartes ni ombres */
	html body.cz-premium #page-container .et-l--header .et_mobile_menu .sub-menu {
		display: block !important; position: static !important; width: auto !important; visibility: inherit !important; opacity: 1 !important;
		background: transparent !important; box-shadow: none !important; border: 0 !important; border-radius: 0 !important; padding: 0 0 14px !important; margin: 0 !important; transform: none !important;
	}
	html body.cz-premium #page-container .et-l--header .et_mobile_menu .sub-menu li a {
		display: block !important; padding: 9px 0 9px 18px !important; position: relative;
		font-family: var(--cz-sans) !important; font-size: 16px !important; font-weight: 500 !important; color: var(--cz-text) !important; line-height: 1.35 !important;
	}
	html body.cz-premium #page-container .et-l--header .et_mobile_menu .sub-menu li a::before { content: ""; position: absolute; left: 0; top: 50%; width: 8px; height: 1px; background: rgba(10, 43, 119, .35); }
	html body.cz-premium #page-container .et-l--header .et_mobile_menu .sub-menu .sub-menu { padding: 0 0 4px 18px !important; }
	html body.cz-premium #page-container .et-l--header .et_mobile_menu .sub-menu .sub-menu li a { font-size: 15px !important; color: var(--cz-muted) !important; }
	html body.cz-premium #page-container .et-l--header .et_mobile_menu .sub-menu li.current-menu-item > a { color: var(--cz-navy) !important; font-weight: 600 !important; }

	/* Dernier lien (Contact) : bouton plein en bas du panneau */
	html body.cz-premium #page-container .et-l--header .et_mobile_menu > li:last-child { border-bottom: 0 !important; margin-top: auto !important; padding-top: 28px !important; }
	html body.cz-premium #page-container .et-l--header .et_mobile_menu > li:last-child > a {
		justify-content: center; gap: 12px; padding: 18px 26px !important; border-radius: 100px !important; background: var(--cz-navy) !important; color: #fff !important;
		font-family: var(--cz-sans) !important; font-size: 16px !important; font-weight: 600 !important; font-style: normal !important;
		box-shadow: 0 14px 30px -16px rgba(10, 43, 119, .7);
	}
	html body.cz-premium #page-container .et-l--header .et_mobile_menu > li:last-child > a::after { content: "→"; }
	html body.cz-premium #page-container .et-l--header .et_mobile_menu > li:last-child > a::before { content: "Nous contacter"; display: none; }

	/* Page figée quand le menu est ouvert */
	/* Uniquement sur <html> : un overflow sur <body> casserait l'en-tête sticky (il sortirait de l'écran) */
	html.cz-menu-open { overflow: hidden !important; }
}

/* =====================================================================
   INFOS PRATIQUES : logo de la section RSE (module Image, classe cz-rse-logo)
   ===================================================================== */
html body.cz-premium #page-container .et_pb_image.cz-rse-logo { width: 100% !important; max-width: 240px !important; margin: 0 auto !important; text-align: center; }
html body.cz-premium #page-container .et_pb_image.cz-rse-logo .et_pb_image_wrap {
	display: block; background: rgba(255, 255, 255, .96); border-radius: 28px !important; padding: 34px 40px !important;
	box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .55) !important; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
html body.cz-premium #page-container .et_pb_image.cz-rse-logo img { width: 100% !important; height: auto !important; image-rendering: auto; }
html body.cz-premium #page-container .et_pb_image.cz-rse-logo:hover img { transform: none !important; }
@media (min-width: 981px) {
	html body.cz-premium #et-main-area .et_pb_row:has(.cz-rse-logo) { display: flex !important; align-items: center; }
	html body.cz-premium #et-main-area .et_pb_row:has(.cz-rse-logo) > .et_pb_column { margin-bottom: 0 !important; }
}
@media (max-width: 980px) { html body.cz-premium #page-container .et_pb_image.cz-rse-logo { max-width: 180px !important; margin-top: 24px !important; } }

/* =====================================================================
   ARTICLES : galerie + diaporama plein écran (visionneuse Magnific Popup de Divi)
   ===================================================================== */
html body.cz-premium.single-post .entry-content .gallery a { display: block; border-radius: 14px; overflow: hidden; cursor: zoom-in; }
html body.cz-premium.single-post .entry-content .gallery a img { transition: transform .7s var(--cz-ease), filter .4s ease; }
html body.cz-premium.single-post .entry-content .gallery a:hover img { transform: scale(1.05); filter: brightness(1.05); }
html body.cz-premium .mfp-bg.cz-lightbox { background: #0b1b45; opacity: .94 !important; }
html body.cz-premium .mfp-wrap.cz-lightbox .mfp-img { border-radius: 14px; padding: 48px 0 !important; max-height: 88vh !important; }
html body.cz-premium .mfp-wrap.cz-lightbox .mfp-figure::after { box-shadow: none; background: transparent; }
html body.cz-premium .mfp-wrap.cz-lightbox .mfp-bottom-bar { margin-top: -40px; }
html body.cz-premium .mfp-wrap.cz-lightbox .mfp-title { font-family: var(--cz-sans); font-size: 14px; color: rgba(255, 255, 255, .8); padding-right: 60px; }
html body.cz-premium .mfp-wrap.cz-lightbox .mfp-counter { font-family: var(--cz-sans); font-size: 13px; color: rgba(255, 255, 255, .6); letter-spacing: .08em; }
html body.cz-premium .mfp-wrap.cz-lightbox .mfp-close { width: 48px; height: 48px; line-height: 46px; top: 14px; right: 14px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .3); color: #fff; opacity: 1; font-family: var(--cz-sans); font-size: 26px; text-align: center; padding: 0; position: fixed; }
html body.cz-premium .mfp-wrap.cz-lightbox .mfp-close:hover { background: #fff; color: #0b1b45; }
html body.cz-premium .mfp-wrap.cz-lightbox .mfp-arrow { width: 56px; height: 56px; margin-top: -28px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .3); opacity: 1; transition: background-color .3s ease; }
html body.cz-premium .mfp-wrap.cz-lightbox .mfp-arrow-left { left: 20px; }
html body.cz-premium .mfp-wrap.cz-lightbox .mfp-arrow-right { right: 20px; }
html body.cz-premium .mfp-wrap.cz-lightbox .mfp-arrow::before { display: none; }
html body.cz-premium .mfp-wrap.cz-lightbox .mfp-arrow::after { border: 0 !important; margin: 0 !important; width: 100% !important; height: 100% !important; top: 0 !important; left: 0 !important; display: grid !important; place-items: center; font-family: var(--cz-sans); font-size: 22px; color: #fff; position: absolute; }
html body.cz-premium .mfp-wrap.cz-lightbox .mfp-arrow-left::after { content: "←"; }
html body.cz-premium .mfp-wrap.cz-lightbox .mfp-arrow-right::after { content: "→"; }
html body.cz-premium .mfp-wrap.cz-lightbox .mfp-arrow:hover { background: rgba(255, 255, 255, .14); }
html body.cz-premium .mfp-wrap.cz-lightbox.mfp-ready .mfp-content { animation: cz-lb-in .45s var(--cz-ease); }
@keyframes cz-lb-in { from { opacity: 0; transform: scale(.97); } }
@media (max-width: 767px) {
	html body.cz-premium .mfp-wrap.cz-lightbox .mfp-arrow { width: 44px; height: 44px; margin-top: -22px; top: auto; bottom: 22px; }
	html body.cz-premium .mfp-wrap.cz-lightbox .mfp-arrow-left { left: calc(50% - 56px); }
	html body.cz-premium .mfp-wrap.cz-lightbox .mfp-arrow-right { right: calc(50% - 56px); }
}
/* Logo RSE : prioritaire sur la règle générale « image seule dans une colonne » (format portrait pleine largeur) */
html body.cz-premium #et-main-area .et_pb_row > .et_pb_column > .et_pb_image.cz-rse-logo,
html body.cz-premium #et-main-area .et_pb_row:not(:has(.et_pb_toggle)) > .et_pb_column > .et_pb_image.cz-rse-logo:only-child { width: 100% !important; max-width: 220px !important; margin: 0 auto !important; }
html body.cz-premium #et-main-area .et_pb_row > .et_pb_column > .et_pb_image.cz-rse-logo .et_pb_image_wrap,
html body.cz-premium #et-main-area .et_pb_row:not(:has(.et_pb_toggle)) > .et_pb_column > .et_pb_image.cz-rse-logo:only-child .et_pb_image_wrap { aspect-ratio: auto !important; max-height: none !important; height: auto !important; box-sizing: border-box; padding: 30px 34px !important; border-radius: 28px !important; clip-path: none !important; }
html body.cz-premium #et-main-area .et_pb_row:not(:has(.et_pb_toggle)) > .et_pb_column > .et_pb_image.cz-rse-logo:only-child img { height: auto !important; object-fit: contain !important; transform: none !important; }
/* Flèches du diaporama */
html body.cz-premium .mfp-wrap.cz-lightbox .mfp-arrow-left { left: 20px !important; }
html body.cz-premium .mfp-wrap.cz-lightbox .mfp-arrow-right { right: 20px !important; left: auto !important; }
@media (max-width: 767px) {
	html body.cz-premium .mfp-wrap.cz-lightbox .mfp-arrow { position: fixed !important; top: auto !important; bottom: 24px !important; margin-top: 0 !important; }
	html body.cz-premium .mfp-wrap.cz-lightbox .mfp-arrow-left { left: calc(50% - 56px) !important; }
	html body.cz-premium .mfp-wrap.cz-lightbox .mfp-arrow-right { right: calc(50% - 56px) !important; left: auto !important; }
}
html body.cz-premium #et-main-area .et_pb_image.cz-rse-logo { border-radius: 28px; overflow: hidden; }
