/*
 * Pages en code dur (Gamache) — MTL Ticket.
 * Seule feuille des pages au modèle « Code dur (Gamache) » : remplace Bootstrap, les feuilles du thème Monity,
 * d'Elementor, de WooCommerce et de Formidable. Mesures reprises de l'accueil Elementor (1 440 et 375 px).
 * Préfixe cd- : aucune collision avec les classes du thème ou des extensions.
 */

/* Polices : fichiers latins déjà servis par Elementor (uploads/elementor/google-fonts) */
@font-face { font-family: Poppins; font-style: normal; font-weight: 300; font-display: swap; src: url(../../../uploads/elementor/google-fonts/fonts/poppins-de430313.woff2) format("woff2"); }
@font-face { font-family: Poppins; font-style: normal; font-weight: 400; font-display: swap; src: url(../../../uploads/elementor/google-fonts/fonts/poppins-e6a077c3.woff2) format("woff2"); }
@font-face { font-family: Poppins; font-style: normal; font-weight: 500; font-display: swap; src: url(../../../uploads/elementor/google-fonts/fonts/poppins-57e843b6.woff2) format("woff2"); }
@font-face { font-family: Poppins; font-style: normal; font-weight: 600; font-display: swap; src: url(../../../uploads/elementor/google-fonts/fonts/poppins-93818c37.woff2) format("woff2"); }
@font-face { font-family: Poppins; font-style: normal; font-weight: 700; font-display: swap; src: url(../../../uploads/elementor/google-fonts/fonts/poppins-742b18be.woff2) format("woff2"); }
@font-face { font-family: "DM Sans"; font-style: normal; font-weight: 100 1000; font-display: swap; src: url(../../../uploads/elementor/google-fonts/fonts/dmsans-002a94d0.woff2) format("woff2"); }

:root {
	--bleu: #004b9f;
	--jaune: #fcaf18;
	--marine: #041139;
	--ardoise: #2a334e;
	--encre: #222;
	--titre: #2f3437;
	--texte: #575a7b;
	--clair: #f7faff;
	--ligne: #ededed;
	--titres: Poppins, "Segoe UI", Arial, sans-serif;
	--corps: "DM Sans", "Segoe UI", Arial, sans-serif;
}

/* ---------- Base ---------- */
/* Remises à zéro sous :where() : priorité nulle, toute règle à classe .cd-… l'emporte. */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 90px; }
body.gm-cd { margin: 0; font: 400 17px/1.7 var(--corps); letter-spacing: .5px; color: var(--texte); background: #fff; overflow-x: hidden; }
:where(.gm-cd) img { max-width: 100%; height: auto; }
:where(.gm-cd) :is(h1, h2, h3, h4, h5, h6):where(:not(.cd-surtitre, .cd-formulaire__clients, .cd-tarif__montant, .cd-temoin__nom)) { margin: 0 0 .5em; font-family: var(--titres); font-weight: 600; line-height: 1.2; letter-spacing: .5px; color: var(--encre); }
:where(.gm-cd) p { margin: 0 0 1em; }
:where(.gm-cd) a { color: var(--bleu); text-decoration: none; transition: color .25s; }
:where(.gm-cd) :is(ul, ol) { margin: 0; padding: 0; }
:where(.gm-cd) button { font: inherit; }
.gm-cd :focus-visible { outline: 2px solid var(--jaune); outline-offset: 2px; }
.cd-conteneur { width: 100%; max-width: 1320px; margin: 0 auto; padding: 0 12px; }
.cd-visuel-cache { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.cd-sauter { position: absolute; left: -9999px; top: 8px; z-index: 10000; padding: 8px 16px; background: #fff; color: var(--bleu); }
.cd-sauter:focus { left: 8px; }

.cd-surtitre { display: block; margin: 0 0 20px; font: 500 17px/1 var(--corps); letter-spacing: .85px; color: var(--bleu); }
.cd-titre { margin: 0 0 20px; font-size: 35px; line-height: 44px; letter-spacing: .35px; }
.cd-titre span { color: var(--bleu); }
.cd-centre { text-align: center; }

.cd-bouton { display: inline-block; padding: 16px 30px; border: 0; border-radius: 3px; background: var(--jaune); font: 600 15px/19px var(--corps); letter-spacing: 1px; text-transform: uppercase; color: #fff !important; text-align: center; cursor: pointer; transition: background-color .3s, color .3s; }
.cd-bouton:hover, .cd-bouton:focus-visible { background: var(--marine); color: #fff !important; }
.cd-bouton--bleu { background: var(--bleu); }
.cd-bouton--blanc { background: #fff; color: var(--bleu) !important; }
.cd-lien-fleche { font-weight: 500; letter-spacing: .85px; white-space: nowrap; }

/* ---------- En-tête ---------- */
.cd-entete { position: absolute; top: 0; left: 0; right: 0; z-index: 999; }
.cd-entete__barre { display: flex; align-items: center; height: 90px; padding: 0 46px; border-bottom: 1px solid rgba(255, 255, 255, .1); transition: background-color .3s, box-shadow .3s; }
.cd-logo { position: relative; display: block; flex: none; width: 154px; padding-left: 5px; }
.cd-logo img { display: block; width: 133px; height: auto; }
.cd-logo__couleur { display: none !important; }
.cd-menu { margin-left: auto; }
.cd-menu__liste { display: flex; align-items: center; list-style: none; }
.cd-menu__liste > li { position: relative; margin: 0 5px; }
.cd-menu__liste > li > a { display: block; padding: 21px 10px; font: 600 16px/27.2px var(--titres); letter-spacing: .8px; text-transform: uppercase; color: #fff; }
.cd-menu__liste > li > a:hover, .cd-menu__liste > li.current-menu-item > a, .cd-menu__liste > li.current-menu-ancestor > a { color: var(--jaune); }
.cd-menu__liste > .menu-item-has-children > a::after { content: ""; display: inline-block; width: 5px; height: 5px; margin: 0 0 4px 7px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); }
.cd-menu .sub-menu { position: absolute; top: 100%; left: 0; z-index: 1000; width: 385px; padding: 15px 0; list-style: none; background: #fff; border-radius: 0 0 5px 5px; box-shadow: 0 8px 30px rgba(0, 0, 0, .1); opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .25s, transform .25s, visibility .25s; }
.cd-menu .menu-item-has-children:hover > .sub-menu, .cd-menu .menu-item-has-children:focus-within > .sub-menu, .cd-menu .est-ouvert > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.cd-menu .sub-menu a { display: block; padding: 8px 25px; font: 500 16px/27.2px var(--titres); letter-spacing: .5px; color: #272c49; }
.cd-menu .sub-menu a:hover { color: var(--bleu); }
.cd-menu-bouton { display: none; }
.cd-entete__tel { flex: none; margin-left: auto; padding: 12px 22px; font-size: 17px; line-height: 22px; }

/* En-tête fixé après défilement (comme le thème) */
.cd-entete.est-fixe .cd-entete__barre { position: fixed; top: 0; left: 0; right: 0; height: 80px; background: #fff; border-bottom-color: transparent; box-shadow: 0 0 3px rgba(0, 0, 0, .2); animation: cd-descente .5s; }
.cd-entete.est-fixe .cd-logo__blanc { display: none !important; }
.cd-entete.est-fixe .cd-logo__couleur { display: block !important; }
.cd-entete.est-fixe .cd-menu__liste > li > a { color: #282b2d; }
.cd-entete.est-fixe .cd-menu__liste > li > a:hover { color: var(--bleu); }
@keyframes cd-descente { from { transform: translateY(-100%); } to { transform: none; } }
/* Barre d'administration de WordPress (personnes connectées seulement, par exemple dans l'aperçu d'un brouillon) */
.admin-bar .cd-entete, .admin-bar .cd-entete.est-fixe .cd-entete__barre { top: 32px; }
@media (max-width: 782px) { .admin-bar .cd-entete, .admin-bar .cd-entete.est-fixe .cd-entete__barre { top: 46px; } }
@media (max-width: 600px) { .admin-bar .cd-entete.est-fixe .cd-entete__barre { top: 0; } }

/* ---------- Accueil : bandeau vidéo ---------- */
/* Un pixel de moins que l'écran : Chrome ignore une image de la taille exacte de l'écran pour le « plus grand
   élément affiché » (LCP) ; la mesure tombait alors sur le texte du bandeau de cookies, vers 6 s. */
.cd-hero { position: relative; display: flex; align-items: center; min-height: calc(100vh - 1px); overflow: hidden; background: #1b1f17; color: #fff; }
.cd-hero__fond, .cd-hero__fond img, .cd-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cd-hero__fond img { max-width: none; }
.cd-hero__video { opacity: 0; transition: opacity .6s; }
.cd-hero__video.est-pret { opacity: 1; }
.cd-hero::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, .5); }
.cd-hero--image::after { background: linear-gradient(-90deg, rgba(0, 0, 0, 0), var(--ardoise) 65%); opacity: .85; }
.cd-hero__texte { position: relative; z-index: 3; padding-top: 22px; padding-bottom: 22px; }
.cd-hero__contenu { position: relative; max-width: 770px; }
.cd-hero__rond { position: absolute; z-index: -1; left: -91px; top: -145px; width: 260px; height: 260px; border-radius: 50%; background: var(--bleu); animation: cd-flotte 6s ease-in-out infinite alternate; }
.cd-hero__surtitre { display: block; margin: 0 0 4px; font: 400 17px/28.9px var(--corps); color: var(--jaune); }
.cd-hero h1 { margin: 0 0 47px; font-size: 50px; line-height: 60px; color: #fff; }
.cd-hero h1 strong { font-weight: 600; color: var(--jaune); }
.cd-hero__boutons { display: flex; flex-wrap: wrap; gap: 14px 26px; }
.cd-hero__triangle { position: absolute; z-index: 3; right: 0; top: 611px; width: 112px; height: 232px; background: var(--bleu); clip-path: polygon(100% 0, 100% 100%, 0 100%); }
.cd-hero__cercle { position: absolute; z-index: 3; right: 0; top: 676px; width: 180px; height: 180px; border: 2px solid var(--jaune); border-radius: 50%; animation: cd-flotte-v 4s ease-in-out infinite alternate; }
@keyframes cd-flotte { to { transform: translate(26px, -3px); } }
@keyframes cd-flotte-v { to { transform: translateY(12px); } }

/* ---------- Accueil : formulaire d'en-tête ---------- */
.cd-formulaire { position: relative; z-index: 11; margin-top: -193px; padding-bottom: 7px; background: linear-gradient(transparent 221px, var(--jaune) 221px); }
.cd-formulaire__carte { position: relative; padding: 25px 25px 45px; border-radius: 15px; background: var(--marine); color: #fff; }
.cd-formulaire h2 { margin: 0 0 20px; font-size: 24px; line-height: 24px; color: #fff; }
.cd-formulaire__intro { margin: 0 0 20px !important; font: 400 17px/28.9px var(--titres); }
.cd-formulaire__intro strong { font-weight: 700; color: var(--jaune); }
.cd-formulaire__clients { position: absolute; left: 15px; bottom: 47px; display: flex; align-items: center; gap: 19px; margin: 0; font: 400 16px/16px var(--titres); }
.cd-formulaire__clients span { color: var(--jaune); }
.cd-avatars { display: flex; }
.cd-avatars img { width: 50px; height: 50px; margin-right: -10px; border: 2px solid #fff; border-radius: 50%; object-fit: cover; }

/* Formidable (sa feuille de 128 Ko est retirée sur ces pages) */
.gm-cd .frm_forms fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.gm-cd .frm_screen_reader, .gm-cd .frm_hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.gm-cd .frm_fields_container { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 20px 26px; }
.gm-cd .frm_form_field { grid-column: span 12; margin: 0; }
.gm-cd .frm_form_field.frm4 { grid-column: span 4; }
.gm-cd .frm_form_field.frm6, .gm-cd .frm_form_field.frm_half { grid-column: span 6; }
.gm-cd .frm_forms .frm_primary_label { display: none; }
.gm-cd .frm_forms input[type=text], .gm-cd .frm_forms input[type=tel], .gm-cd .frm_forms input[type=email], .gm-cd .frm_forms textarea, .gm-cd .frm_forms select { display: block; width: 100%; height: 45px; padding: 6px 10px; border: 1px solid #bfc3c8; border-radius: 4px; background: #fff; font: 400 14px/18.2px var(--corps); letter-spacing: 0; color: #555; }
.gm-cd .frm_forms textarea { height: 85px; line-height: 23.8px; resize: vertical; }
.gm-cd .frm_forms input:focus, .gm-cd .frm_forms textarea:focus { border-color: var(--jaune); outline: 0; box-shadow: 0 0 0 2px rgba(252, 175, 24, .35); }
.gm-cd .frm-cf-turnstile { min-height: 74px; }
.gm-cd .frm_submit { display: flex; justify-content: flex-end; padding-top: 20px; }
.cd-formulaire .frm_forms { margin-bottom: 20px; }
.gm-cd .frm_button_submit { min-width: 144px; height: 39px; padding: 0 30px; border: 0; border-radius: 28px; background: var(--jaune); font: 400 15px/39px var(--corps); color: #fff; cursor: pointer; transition: background-color .3s; }
.gm-cd .frm_button_submit:hover { background: var(--bleu); }
.gm-cd .frm_error, .gm-cd .frm_error_style { margin-top: 4px; font-size: 13px; line-height: 1.4; color: #ffb4a8; }
.gm-cd .frm_error_style { padding: 10px 14px; border-radius: 4px; background: rgba(255, 255, 255, .08); }
.gm-cd .frm_blank_field input, .gm-cd .frm_blank_field textarea { border-color: #e0573f; }
.gm-cd .frm_message { padding: 14px 18px; border-radius: 4px; background: rgba(255, 255, 255, .1); color: #fff; }
.gm-cd .frm_message p { margin: 0; }
.gm-cd .frm_verify, .gm-cd .frm_fields_container > div:has(> .frm_verify) { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.gm-cd .gm-turnstile-avis { margin-top: 8px; font-size: 14px; color: #fff; }

/* ---------- Accueil : logos des partenaires ---------- */
.cd-logos { padding: 48px 0; overflow: hidden; background: var(--jaune); }
.cd-logos__fenetre { max-width: 1185px; margin: 0 auto; overflow: hidden; }
.cd-logos__piste { display: flex; width: max-content; animation: cd-defile 32s linear infinite; }
.cd-logos__fenetre:hover .cd-logos__piste, .cd-logos__fenetre:focus-within .cd-logos__piste { animation-play-state: paused; }
.cd-logos__liste { display: flex; list-style: none; }
.cd-logos__liste li { flex: none; width: 296px; padding: 0 15px; }
.cd-logos__liste a, .cd-logos__lien { display: block; }
.cd-logos__liste img { display: block; width: 265px; height: 87px; object-fit: contain; }
@keyframes cd-defile { to { transform: translateX(-50%); } }

/* Flèches animées entre les sections */
.cd-fleches { position: relative; max-width: 1320px; height: 150px; margin: 0 auto; }
.cd-fleches span { position: absolute; right: 111px; width: 25px; height: 14px; background: var(--jaune); clip-path: polygon(0 0, 100% 0, 50% 100%); opacity: .15; animation: cd-fleche 2s infinite; }
.cd-fleches span:nth-child(1) { top: 13px; }
.cd-fleches span:nth-child(2) { top: 63px; animation-delay: .5s; }
.cd-fleches span:nth-child(3) { top: 113px; animation-delay: 1s; }
/* Flèches entre deux sections (pages produites par tools/convertir_page.py), positions de l'original */
.cd-fleches--haut span { width: 36px; height: 18px; clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.cd-fleches--haut.cd-fleches--gauche span { right: auto; left: 18px; }
.cd-fleches--haut.cd-fleches--gauche span:nth-child(1) { top: 28px; }
.cd-fleches--haut.cd-fleches--gauche span:nth-child(2) { top: 66px; }
.cd-fleches--haut.cd-fleches--gauche span:nth-child(3) { top: 104px; }
.cd-fleches--haut.cd-fleches--droite span { right: 124px; }
.cd-fleches--haut.cd-fleches--droite span:nth-child(1) { top: 21px; }
.cd-fleches--haut.cd-fleches--droite span:nth-child(2) { top: 59px; }
.cd-fleches--haut.cd-fleches--droite span:nth-child(3) { top: 97px; }
@media (max-width: 1399.98px) { .cd-fleches--xxl span { display: none; } }
@media (max-width: 991.98px) { .cd-fleches--haut span { display: none; } }
@keyframes cd-fleche { 50% { opacity: 1; } }

/* ---------- Accueil : à propos (Riendeau Avocats) ---------- */
.cd-apropos { position: relative; z-index: 9; margin: 0 30px; }
.cd-apropos::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 690px; background: var(--clair); }
.cd-apropos__grille { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: center; min-height: 673px; padding: 0 0 0 30px; }
.cd-apropos__titre .cd-titre { letter-spacing: -.35px; }
.cd-apropos__image { position: relative; width: 363px; }
.cd-apropos__image img { display: block; width: 363px; height: 433px; border-radius: 6px; object-fit: cover; }
.cd-texte-rond { position: absolute; left: 178px; top: -130px; width: 300px; height: 300px; fill: var(--encre); font: 500 12.5px var(--corps); letter-spacing: 1.6px; animation: cd-tourne 18s linear infinite; pointer-events: none; }
.cd-texte-rond--blanc { fill: #fff; }
@keyframes cd-tourne { to { transform: rotate(360deg); } }
.cd-quoi { justify-self: end; width: 363px; min-height: 433px; padding: 48px; border-radius: 6px; background: var(--marine); color: #fff; }
.cd-quoi h3 { color: var(--jaune); font-size: 40px; line-height: 48px; letter-spacing: -.45px; margin: 0 0 22px; }
.cd-quoi h3 + h3 { margin: 0 0 30px; font-size: 24px; font-weight: 400; line-height: 34px; letter-spacing: .5px; color: #fff; }
.cd-quoi p { margin: 0 0 24px; line-height: 40px; }
.cd-quoi p a { color: #fff; }
.cd-quoi p a:hover { color: var(--jaune); }
.cd-quoi > a { color: var(--jaune); }
.cd-quoi > a:hover { color: #fff; }
.cd-apropos__triangles { position: absolute; right: 7px; bottom: 0; width: 120px; height: 82px; pointer-events: none; }
.cd-apropos__triangles::before, .cd-apropos__triangles::after { content: ""; position: absolute; bottom: 0; right: 0; }
.cd-apropos__triangles::before { width: 112px; height: 82px; background: var(--bleu); clip-path: polygon(0 0, 100% 100%, 0 100%); right: 7px; }
.cd-apropos__triangles::after { width: 60px; height: 62px; background: var(--jaune); clip-path: polygon(0 0, 100% 0, 100% 100%); animation: cd-gauche-droite 3s ease-in-out infinite alternate; }
@keyframes cd-gauche-droite { to { transform: translateX(8px); } }

/* ---------- Accueil : infractions (carrousel) ---------- */
.cd-services { padding: 130px 0 10px; }
.cd-services__piste { display: flex; gap: 30px; margin: 20px calc(50% - 50vw) 0 0; padding: 0 0 0 0; overflow-x: auto; list-style: none; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.cd-services__piste::-webkit-scrollbar { display: none; }
.cd-service { position: relative; flex: 0 0 397px; height: 420px; overflow: hidden; border-radius: 4px; scroll-snap-align: start; }
.cd-service img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.cd-service::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(4, 17, 57, .21) 0%, rgba(0, 75, 159, .63) 100%); }
.cd-service:hover img { transform: scale(1.06); }
.cd-service__texte { position: absolute; z-index: 2; left: 30px; right: 30px; bottom: 26px; }
.cd-service h3 { margin: 0; font-size: 20px; line-height: 24px; color: #fff; }
.cd-service h3 a { color: #fff; }
.cd-service h3 a::after { content: ""; position: absolute; inset: 0; }
.cd-service__plus { display: block; max-height: 0; overflow: hidden; font-size: 15px; font-weight: 500; color: var(--jaune); transition: max-height .35s, margin .35s; }
.cd-service:hover .cd-service__plus, .cd-service:focus-within .cd-service__plus { max-height: 30px; margin-top: 8px; }
.cd-services__nav { display: flex; align-items: center; gap: 14px; height: 60px; }
.cd-services__nav button { display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 3px; background: #e6eef8; color: var(--bleu); cursor: pointer; transition: background-color .25s, color .25s; }
.cd-services__nav button:hover { background: var(--bleu); color: #fff; }
.cd-services__nav span { width: 6px; height: 6px; border-radius: 50%; background: var(--jaune); }

/* ---------- Accueil : tarifs ---------- */
.cd-tarifs { padding: 10px 0 30px; }
.cd-tarifs__grille { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 30px 24px; margin-top: 60px; }
.cd-tarif { position: relative; grid-column: span 4; display: flex; flex-direction: column; border-radius: 5px; }
.cd-tarif--large { grid-column: span 7; }
.cd-tarif__tete { position: relative; padding: 40px 35px 70px; border-bottom: 1px solid var(--ligne); border-radius: 5px 5px 0 0; background: #f7f7f8; }
.cd-tarif h4 { margin: 0; font-size: 24px; line-height: 28.8px; color: var(--titre); }
/* Lien « En savoir plus » placé dans le titre h4, comme dans l'original : à la ligne, avec le texte courant, et le
   même espace dessous que lorsqu'il suivait le titre (3 px ; 5 px avec la hauteur de ligne de 18 px des infractions) */
.cd-tarif h4 .cd-tarif__plus { display: table; margin-bottom: 3px; font-family: var(--corps); font-weight: 400; }
:is(.cd-tarifs__grille--deux, .cd-tarifs__grille--une) .cd-tarif h4 .cd-tarif__plus { margin-bottom: 5px; }
.cd-tarif__plus { position: relative; z-index: 2; display: inline-block; margin-top: 7px; font-size: 15px; line-height: 22px; }
.cd-tarif--large .cd-tarif__tete { padding-bottom: 42px; }
.cd-tarif__prix { position: absolute; z-index: 2; left: 30px; right: 30px; top: calc(100% - 38px); display: flex; align-items: center; justify-content: space-between; gap: 10px; pointer-events: none; }
.cd-tarif__montant { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 6px; min-height: 70px; margin: 0 !important; padding: 17px 19px; border-radius: 5px; background: #fff; box-shadow: 0 0 40px 5px rgba(0, 0, 0, .03); font: 600 30px/36px var(--titres); color: var(--titre); white-space: nowrap; }
.cd-tarif__montant small { font-size: 22.4px; }
.cd-tarif__montant .cd-taxes { margin-left: -4px; font-size: 15px; }
.cd-tarif__montant del { flex-basis: 100%; font-size: 22px; line-height: 26px; color: #8a8d99; }
.cd-tarif__forfait { padding: 5px 20px; border-radius: 35px; background: var(--bleu); font-size: 14px; line-height: 23.8px; color: #fff; white-space: nowrap; }
.cd-tarif__corps { flex: 1; display: flex; flex-direction: column; align-items: flex-start; padding: 60px 35px 30px; border: 1px solid var(--ligne); border-top: 0; border-radius: 0 0 5px 5px; background: #fff; }
.cd-tarif__liste { width: 100%; list-style: none; }
.cd-tarif__liste li { margin: 0 0 15px; padding: 0 0 15px; border-bottom: 1px solid var(--ligne); font-weight: 500; }
.cd-tarif__liste li:last-child { margin: 0; padding: 0; border-bottom: 0; }
.cd-tarif__liste + .cd-tarif__points { margin-top: 15px !important; }
.cd-tarif__points { width: 100%; margin: 0 !important; padding: 0 0 0 23px; }
.cd-tarif__points li { margin-bottom: 2px; }
.cd-tarif__note { margin: 28px 0 0 !important; }
.cd-tarif .cd-bouton { position: static; margin-top: 30px; }
.cd-tarif .cd-bouton::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: 5px; }
.cd-tarifs__notes { margin: 50px 0 0 !important; font-size: 13px; line-height: 22.1px; letter-spacing: .65px; color: #b1b1b1; text-align: center; }

/* ---------- Accueil : bloc foncé (Riendeau, l'équipe la plus accessible) ---------- */
.cd-acces { margin: 0 24px; padding: 120px 0; border-radius: 4px; background: var(--marine); color: #bababa; }
.cd-acces__grille { display: grid; grid-template-columns: 1fr 1fr; align-items: center; }
.cd-acces__images { position: relative; min-height: 609px; display: grid; grid-template-columns: 1fr 1fr; gap: 26px; align-items: start; padding: 0 15px; }
.cd-acces__images img { display: block; width: 100%; border-radius: 6px; object-fit: cover; }
.cd-acces__images img:first-child { height: 410px; margin-top: 10px; }
.cd-acces__images img:nth-child(2) { height: 500px; margin-top: 55px; }
.cd-acces__images .cd-texte-rond { left: 152px; top: 390px; width: 300px; height: 300px; }
.cd-acces__texte { padding-left: 71px; }
.cd-acces .cd-surtitre { color: #fff; }
.cd-acces .cd-titre { letter-spacing: -.35px; color: #fff; }
.cd-acces .cd-titre span { color: var(--jaune); }
.cd-acces__intro { margin: 0 0 40px !important; font-size: 15px; line-height: 25.5px; letter-spacing: -.14px; }
.cd-boite { display: flex; gap: 20px; }
.cd-boite svg { flex: none; width: 32px; height: 32px; }
.cd-boite h3 { margin: 0 0 8px; font: 400 24px/28.8px var(--corps); }
.cd-boite h3 a { color: #fff; }
.cd-boite p { margin: 0; font-size: 15px; line-height: 25.5px; letter-spacing: -.14px; }
.cd-boite p a { display: block; margin-top: 16px; color: #fff; font-weight: 500; letter-spacing: .85px; }
.cd-boite a:hover { color: var(--jaune) !important; }
.cd-acces hr { margin: 20px 0; border: 0; border-top: 1px solid rgba(112, 112, 112, .6); }

/* ---------- Accueil : équipe ---------- */
.cd-equipe { position: relative; padding-bottom: 70px; }
.cd-equipe__points { position: absolute; left: 18px; top: 46px; width: 104px; height: 87px; }
.cd-equipe__grille { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px 24px; margin-top: 54px; list-style: none; }
.cd-membre { position: relative; overflow: hidden; border-radius: 5px; background: #fff; box-shadow: 0 0 25px rgba(0, 0, 0, .08); text-align: center; }
.cd-membre img { display: block; width: 100%; height: 420px; object-fit: cover; object-position: 50% 20%; transition: transform .6s; }
.cd-membre:hover img { transform: scale(1.04); }
.cd-membre__texte { position: relative; padding: 22px 20px 20px; background: #fff; }
.cd-membre h3 { margin: 0 0 2px; font-size: 20px; line-height: 24px; color: var(--titre); }
.cd-membre h3 a { color: inherit; }
.cd-membre h3 a::after { content: ""; position: absolute; inset: -500px 0 0; }
.cd-membre p { margin: 0; font-size: 14.875px; line-height: 25.3px; color: #212529; }
.cd-membre::after { content: ""; position: absolute; right: 0; bottom: 0; width: 9px; height: 9px; background: var(--jaune); clip-path: polygon(100% 0, 100% 100%, 0 100%); }

/* Fenêtres de biographies */
.cd-bio { width: min(1000px, calc(100vw - 32px)); max-height: calc(100vh - 40px); padding: 0; border: 0; border-radius: 6px; box-shadow: 0 20px 60px rgba(0, 0, 0, .3); color: var(--texte); }
.cd-bio::backdrop { background: rgba(0, 0, 0, .6); }
.cd-bio__grille { display: grid; grid-template-columns: 2fr 3fr; }
.cd-bio__grille img { display: block; width: 100%; height: 100%; max-height: 640px; object-fit: cover; object-position: 50% 15%; }
.cd-bio__texte { padding: 50px 45px; }
.cd-bio h2 { margin: 0 0 4px; font-size: 30px; line-height: 38px; color: var(--encre); }
.cd-bio__role { margin: 0 0 24px !important; font-weight: 500; color: var(--bleu); }
.cd-bio__texte p { font-size: 16px; line-height: 27.2px; }
.cd-bio__fermer { position: absolute; top: 10px; right: 10px; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%; background: var(--marine); color: #fff; cursor: pointer; }
.cd-bio__fermer:hover { background: var(--bleu); }

/* ---------- Accueil : foire aux questions et témoignages ---------- */
.cd-espace { height: 160px; }
.cd-faq-titre { padding: 10px 0 190px; }
.cd-faq-titre .cd-titre span { color: var(--bleu); }
.cd-faq { padding-bottom: 8px; background: var(--clair); }
.cd-question { margin-bottom: 21px; border-radius: 5px; background: #fff; }
.cd-question summary { position: relative; display: block; padding: 20px 70px 20px 27px; border: 1px solid var(--ligne); border-radius: 5px; font: 500 18px/21.6px var(--titres); color: var(--texte); cursor: pointer; list-style: none; transition: background-color .25s, color .25s; }
.cd-question summary::-webkit-details-marker { display: none; }
.cd-question summary::after { content: "+"; position: absolute; right: 27px; top: 50%; display: grid; place-items: center; width: 20px; height: 20px; margin-top: -10px; border-radius: 3px; background: var(--ardoise); font: 600 16px/1 var(--corps); color: #fff; }
.cd-question[open] summary { border-color: var(--ardoise); border-radius: 5px 5px 0 0; background: var(--ardoise); color: #fff; }
.cd-question[open] summary::after { content: "\2212"; background: #fff; color: var(--ardoise); }
.cd-question summary :is(h2, h3) { display: inline; margin: 0; font: inherit; color: inherit; letter-spacing: inherit; }
.cd-reponse { padding: 26px 27px; border: 1px solid var(--ligne); border-top: 0; border-radius: 0 0 5px 5px; font-size: 16px; line-height: 28px; color: var(--marine); }
.cd-reponse p:last-child { margin-bottom: 0; }
.cd-reponse h4 { margin: 10px 0 8px; font-size: 18px; color: var(--marine); }
.cd-coches { margin: 0 0 1em !important; list-style: none; }
.cd-coches li { position: relative; padding-left: 26px; }
.cd-coches li::before { content: ""; position: absolute; left: 0; top: 6px; width: 16px; height: 16px; border-radius: 50%; background: var(--jaune) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4.5 8.3 2.3 2.3 4.7-5' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat; }
.cd-faq__liste--etroite { max-width: 1080px; margin: 40px auto 0; text-align: left; }
.cd-faq--temoignages { padding-top: 0; }
.cd-temoignages { padding-top: 120px; }
.cd-temoignages__grille { display: grid; grid-template-columns: 769fr 550fr; align-items: start; }
.cd-temoignages__texte { padding: 0 67px 0 15px; }
.cd-temoin-liste { position: relative; margin-top: 16px; }
.cd-temoin { display: none; position: relative; margin: 0; padding: 46px 30px 30px; border-radius: 10px; background: #fff; }
.cd-temoin.est-actif { display: block; animation: cd-apparait .5s; }
.cd-temoin svg { position: absolute; left: 30px; top: -24px; width: 52px; height: 40px; }
.cd-temoin blockquote { margin: 0 0 26px; font: 300 20px/34px var(--corps); color: var(--texte); }
.cd-temoin p { margin: 0; }
.cd-temoin :is(strong, .cd-temoin__nom) { display: block; margin: 0; font: 600 16px/19.2px var(--titres); color: var(--titre); }
.cd-temoin span { font-size: 14.875px; }
.cd-temoin-points { display: flex; gap: 8px; margin-top: 18px; }
.cd-temoin-points button { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 50%; background: #c9d3e6; cursor: pointer; }
.cd-temoin-points button[aria-pressed=true] { background: var(--bleu); }
@keyframes cd-apparait { from { opacity: 0; } }
.cd-bulles { position: relative; height: 580px; margin-left: 56px; }
.cd-bulles img { position: absolute; display: block; object-fit: cover; }
.cd-bulles img:nth-child(1) { left: 13px; top: 11px; width: 114px; height: 114px; border-radius: 31px 61px 84px 81px; }
.cd-bulles img:nth-child(2) { right: 0; top: 45px; width: 124px; height: 116px; border-radius: 30% 70% 70% 26% / 12% 30% 70% 69%; }
.cd-bulles img:nth-child(3) { left: 67px; top: 117px; width: 194px; height: 180px; border-radius: 50% / 60% 60% 40% 40%; }
.cd-bulles img:nth-child(4) { right: 0; top: 251px; width: 226px; height: 216px; border-radius: 38% 51% 48% 46% / 47% 66% 31% 51%; }
.cd-bulles img:nth-child(5) { left: 13px; top: 437px; width: 148px; height: 142px; border-radius: 50%; }

/* ---------- Pied de page ---------- */
.cd-pied { background: #222; color: #fff; }
/* Grille de Bootstrap reprise (col-lg-5, col-lg-3, offset-lg-1 col-lg-3) ; textes en blanc comme dans le thème. */
.cd-pied__grille { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0 24px; padding-top: 72px; padding-bottom: 64px; }
.cd-pied__coord { grid-column: span 5; }
.cd-pied__liens { grid-column: span 3; }
.cd-pied__expertises { grid-column: 10 / span 3; }
.cd-pied__logo img { display: block; width: 214px; height: auto; margin-bottom: 30px; }
.cd-pied__devise { margin: 0 0 30px !important; font: 300 16px/1.5 var(--titres); }
.cd-pied h3 { margin: 0 0 10px; font-size: 20px; line-height: 24px; color: #fff; }
.cd-pied__coord > p { margin-bottom: 20px; font-size: 16px; line-height: 27.2px; }
.cd-pied__moyen { display: flex; gap: 16px; margin-top: 26px; }
.cd-pied__moyen + .cd-pied__moyen { margin-top: 32px; }
.cd-pied__moyen svg { flex: none; }
.cd-pied__moyen h4 { margin: 0 0 4px; font-size: 20px; line-height: 24px; color: #fff; }
.cd-pied__moyen p { margin: 0; font-size: 16px; line-height: 27.2px; }
.cd-pied a, .cd-pied .f-click { color: #fff; }
.cd-pied a:hover { color: var(--jaune) !important; }
.cd-pied__liens h3 { margin: 0 0 24px; font-size: 22px; line-height: 26.4px; }
.cd-pied__expertises h3 { margin: 0 0 30px; font-size: 20px; }
.cd-pied .menu { list-style: none; }
.cd-pied .menu li { padding: 15px 0; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.cd-pied .menu li:first-child { padding-top: 0; }
.cd-pied .menu li:last-child { border-bottom: 0; }
.cd-pied .menu a { display: block; font-size: 17px; line-height: 28.9px; color: #fff; }
.cd-pied .menu .sub-menu, .cd-pied li.menu-item-9405, .cd-pied .menu-item-10182 { display: none; }
.cd-pied .textwidget { margin-top: 26px; font-size: 15px; }
.cd-pied .textwidget p { margin: 0 0 12px; }
.cd-pied__bas { padding: 24px 12px; border-top: 1px solid rgba(255, 255, 255, .1); text-align: center; }
.cd-pied__bas p { margin: 0; font-size: 17px; line-height: 28.9px; }
.cd-pied__bas a { text-decoration: underline; }

.cd-barre-mobile, .gm-cd .wpml-ls-statics-footer { display: none; }
.cd-remonter { position: fixed; right: 30px; bottom: 30px; z-index: 990; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--jaune); color: #fff !important; opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s, background-color .3s; }
.cd-remonter.est-visible { opacity: 1; visibility: visible; }
.cd-remonter:hover { background: var(--bleu); }

/* ---------- Pages d'infractions : bandeau titre (mesures de « Excès de vitesse », 9602) ---------- */
.cd-bandeau { position: relative; overflow: hidden; padding: 170px 0 85px; background: #2a2f36; color: #fff; }
.cd-bandeau__fond, .cd-bandeau__fond img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cd-bandeau::before { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(0, 0, 0, .5); }
.cd-bandeau .cd-conteneur { position: relative; z-index: 3; max-width: 1344px; }
.cd-bandeau h1 { margin: 0 0 39px; font-size: 53px; line-height: 70px; letter-spacing: .85px; color: #fff; overflow-wrap: break-word; }
.cd-bandeau h1 span { color: var(--jaune); }
/* Bandeau des articles du blogue : titre seul, sans fil d'Ariane (335 px de haut sur ordinateur, comme l'original) */
.cd-bandeau--sans-ariane { padding-bottom: 80px; }
.cd-bandeau--sans-ariane h1 { --fs-m: 53px; --lh-m: 70px; --mb-m: 15px; margin-bottom: 15px; }
.cd-bandeau__triangle-haut, .cd-bandeau__triangle-bas, .cd-bandeau__rond, .cd-bandeau__points { position: absolute; z-index: 2; pointer-events: none; }
.cd-bandeau__triangle-haut { top: 0; left: 0; width: 141px; height: 141px; background: rgba(255, 255, 255, .2); clip-path: polygon(0 0, 100% 0, 0 100%); }
.cd-bandeau__triangle-bas { right: 9px; bottom: 21px; width: 82px; height: 82px; background: #3fa8c7; clip-path: polygon(100% 0, 100% 100%, 0 100%); }
.cd-bandeau__rond { left: 14%; top: 39%; width: 100px; height: 100px; border-radius: 50%; background: rgba(255, 255, 255, .1); animation: cd-erre 12s linear infinite alternate; }
.cd-bandeau__points { right: 7%; top: 245px; width: 120px; height: 100px; animation: cd-monte-descend 5s ease-in-out infinite; }
@keyframes cd-erre { 20% { transform: translate(40px, -5px); } 40% { transform: translate(60px, 40px); } 60% { transform: translate(40px, 60px); } 80% { transform: translate(-40px, 60px); } }
@keyframes cd-monte-descend { 65% { transform: translateY(30px); } }
.cd-ariane ol { display: flex; flex-wrap: wrap; align-items: center; list-style: none; font: 400 17px/20.4px Roboto, var(--corps); letter-spacing: .5px; color: var(--jaune); }
.cd-ariane li + li::before { content: ""; display: inline-block; margin: 0 11px 0 12px; border-style: solid; border-width: 6px 0 6px 7px; border-color: transparent transparent transparent var(--jaune); }
.cd-ariane a { font: 700 14px/16.8px Roboto, var(--corps); letter-spacing: 1px; text-transform: uppercase; color: #fff; }
.cd-ariane a:hover { color: var(--jaune); }

/* ---------- Pages d'infractions : menu latéral et contenu ---------- */
.cd-conteneur.cd-infraction { display: grid; grid-template-columns: minmax(0, 356fr) minmax(0, 924fr); gap: 0 40px; max-width: 1344px; padding-bottom: 100px; }
.cd-lateral__colle { position: sticky; top: 83px; }
.admin-bar .cd-lateral__colle { top: 115px; }
.cd-lateral__menu { list-style: none; }
.cd-lateral__menu li { margin: 0 0 11px; border-radius: 10px; background: #f8f8f8; transition: background-color .25s; }
.cd-lateral__menu li:last-child { margin-bottom: 0; }
.cd-lateral__menu a { display: block; padding: 17px 30px; font: 600 16px/20px var(--titres); letter-spacing: .5px; text-transform: uppercase; color: #000; }
.cd-lateral__menu li.current-menu-item, .cd-lateral__menu li:hover { background: var(--jaune); }
.cd-lateral__menu li.current-menu-item a, .cd-lateral__menu li:hover a { color: #fff; }
.cd-lateral__bouton { display: block; margin-top: 20px; padding: 16px; border-radius: 3px; background: var(--jaune); font: 600 16px/16px var(--corps); letter-spacing: .85px; text-align: center; color: #fff !important; transition: background-color .3s; }
.cd-lateral__bouton--bleu { background: var(--bleu); }
.cd-lateral__bouton:hover, .cd-lateral__bouton:focus-visible { background: var(--marine); }
.cd-tarifs__grille.cd-tarifs__grille--deux { margin-top: 0; }
.cd-tarifs__grille--deux .cd-tarif { grid-column: span 6; }
.cd-tarifs__grille--deux .cd-tarif__plus { line-height: 18px; }
.cd-tarifs__grille--deux .cd-tarif__corps { padding-bottom: 39px; }
.cd-infraction .cd-tarifs__notes { margin-top: 30px !important; padding-bottom: 10px; }
.cd-offre { margin: 21px 0 30px; padding-left: 52px; text-align: center; }
.cd-offre h2 { margin: 0 0 20px; font-size: 26px; line-height: 32px; letter-spacing: .35px; color: var(--encre); }
.cd-offre h2 span { color: var(--bleu); }
.cd-offre p { margin: 0 0 6px; font: 400 17px/28.9px Roboto, var(--corps); letter-spacing: .85px; color: var(--encre); }
.cd-offre__icones { display: flex; justify-content: center; gap: 22px; list-style: none; }
.cd-offre__icones a { display: grid; place-items: center; width: 50px; height: 50px; border-radius: 5px; background: var(--bleu); color: #fff; transition: background-color .3s; }
.cd-offre__icones a:hover, .cd-offre__icones a:focus-visible { background: var(--marine); }
.cd-article > * + * { margin-top: 20px; }
.cd-article img { display: block; width: 100%; height: auto; border-radius: 5px; }
.cd-article h2, .cd-article h3 { margin-bottom: 0; font-size: 26px; line-height: 44px; letter-spacing: .85px; color: var(--encre); }
.cd-article p { margin-bottom: 1.7em; }
.cd-article > p, .cd-article > div > :last-child { margin-bottom: 0; }
.cd-article strong { color: #000; }
/* « Excès de vitesse » : marges des éditeurs de texte du thème Monity (p 20 px, listes 32 px, dernier paragraphe compris),
   qui s'ajoutent aux 20 px entre les widgets d'Elementor au lieu de s'y confondre (colonne flex : pas de fusion) */
.cd-article.cd-article--theme { display: flex; flex-direction: column; }
.cd-article.cd-article--theme > p, .cd-article.cd-article--theme > div > p { margin-bottom: 20px; }
.cd-article.cd-article--theme > div > :is(ul, ol) { margin-bottom: 32px; }
.cd-liste-puces { margin: 0 0 1.7em; padding-left: 40px; }
.cd-article > .cd-video, .cd-article > .cd-video + * { margin-top: 44px; }
.cd-video video { display: block; width: 100%; height: auto; border-radius: 10px; background: #0e1e38; }
.cd-video__mobile { display: none !important; max-width: 420px; margin: 0 auto; }

/* Pages d'infractions produites par tools/convertir_infraction.py : un élément par widget Elementor, dans l'ordre.
   Marges et polices reprises de l'original par variables en ligne quand elles diffèrent d'ici : --mt (marge au-dessus),
   --pl (décalage à gauche), --fs, --lh, --ls, --col, --ff ; suffixe -m sous 768 px ; --fin, --fin-m sous la colonne. */
/* Colonne flexible : les marges ne fusionnent pas, comme entre les widgets d'Elementor ; --pb compense, sous un
   élément, l'écart de hauteur avec son widget d'origine mesuré par tools/calibrer_flux.py. */
.cd-flux { display: flex; flex-direction: column; padding-bottom: var(--fin, 0); }
.cd-flux > * { margin-top: var(--mt, 20px); margin-bottom: var(--pb, 0); padding-left: var(--pl, 0); }
.cd-flux .cd-intertitre { margin-bottom: 0; font-family: var(--ff, var(--titres)); font-size: var(--fs, 26px); line-height: var(--lh, 44px); letter-spacing: var(--ls, .85px); color: var(--col, var(--encre)); }
/* flow-root : la marge du dernier paragraphe reste dans le bloc, comme dans le widget d'Elementor */
.cd-flux .cd-texte { display: flow-root; font-family: var(--ff, var(--corps)); font-size: var(--fs, 17px); line-height: var(--lh, 28.9px); color: var(--col, var(--texte)); }
.cd-flux .cd-texte :is(h2, h3, h4, h5, h6) { font-family: var(--titres); font-weight: 600; letter-spacing: normal; color: var(--titre); }
.cd-flux .cd-texte h2 { font-size: 32px; line-height: 38.4px; }
.cd-flux .cd-texte h3 { font-size: 28px; line-height: 33.6px; }
.cd-flux .cd-texte h4 { font-size: 24px; line-height: 28.8px; }
.cd-flux .cd-texte h5 { font-size: 20px; line-height: 24px; }
.cd-flux .cd-texte h6 { font-size: 16px; line-height: 19.2px; }
/* Textes : marges du thème Monity (p 20 px, listes 32 px, titres 8 px), ou une ligne vide entre paragraphes quand
   l'original les séparait par <br><br>. Dans Elementor, la marge du dernier bloc reste dans le widget. */
.cd-flux .cd-texte > * { margin: 0 0 1.7em; }
.cd-flux .cd-texte > :last-child { margin-bottom: 0; }
.cd-flux .cd-texte--p > p, .cd-flux .cd-texte--p > p:last-child { margin-bottom: 20px; }
.cd-flux .cd-texte--p > :is(ul, ol), .cd-flux .cd-texte--p > :is(ul, ol):last-child { margin-bottom: 32px; }
.cd-flux .cd-texte > :is(h2, h3, h4, h5, h6), .cd-flux .cd-texte > :is(h2, h3, h4, h5, h6):last-child { margin-bottom: 8px; }
.cd-flux .cd-texte ul { padding-left: 0; list-style: disc; }
.cd-flux .cd-texte ol { padding-left: 32px; }
.cd-flux .cd-texte strong { color: #000; }
.cd-flux .cd-texte :is(h2, h3, h4, h5, h6) strong { color: inherit; }
.cd-flux .cd-texte a { color: inherit; text-decoration: underline; }
.cd-flux .cd-image { display: block; width: 100%; height: auto; border-radius: 5px; }
.cd-flux .cd-video { padding: 24px 0; }
.cd-flux .cd-jaune { color: var(--jaune); }
.cd-flux .cd-bleu { color: var(--bleu); }
.cd-flux .cd-offre__titre { font-size: 26px; line-height: 32px; letter-spacing: .35px; color: var(--encre); text-align: center; }
.cd-flux .cd-offre__titre span { color: var(--bleu); }
.cd-flux .cd-offre__texte { font: 400 17px/28.9px Roboto, var(--corps); letter-spacing: .85px; color: var(--encre); text-align: center; }
.cd-flux > .cd-tarifs__notes { margin-top: var(--mt, 20px) !important; }
.cd-tarifs__grille--une .cd-tarif { grid-column: span 12; }
.cd-tarifs__grille--une .cd-tarif__plus { line-height: 18px; }
.cd-tarifs__grille--une .cd-tarif__corps { padding-bottom: 39px; }
.cd-flux > .cd-tarifs__grille.cd-tarifs__grille--deux, .cd-flux > .cd-tarifs__grille.cd-tarifs__grille--une { margin-top: var(--mt, 0); }
.cd-tarif-offre { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: 0 0; }
.cd-tarif-offre > .cd-tarifs__grille.cd-tarifs__grille--une { margin-top: 0; }
.cd-tarif-offre__texte { padding-left: 52px; }
.cd-tarif-offre__texte .cd-offre__texte { margin: 20px 0 0; }
.cd-tarif-offre__texte .cd-offre__icones { margin-top: 19px; }
.cd-chevrons { list-style: none; }
.cd-chevrons li { display: flex; align-items: center; padding: 2px 0 6px; font: 400 var(--fs, 16px)/var(--lh, 27.2px) var(--titres); color: var(--col, #7a7a7a); }
.cd-chevrons li::before { content: ""; flex: none; width: 7px; height: 7px; margin: 0 10px 0 4px; border: solid var(--jaune); border-width: 2px 2px 0 0; transform: rotate(45deg); }

/* ---------- Pages produites par tools/convertir_page.py : sections et colonnes d'Elementor ---------- */
/* Variables de mise en page non héritées : une section intérieure ne reprend pas les marges de sa section parente. */
@property --mt { syntax: '*'; inherits: false; }
@property --mt-m { syntax: '*'; inherits: false; }
@property --pb { syntax: '*'; inherits: false; }
@property --pb-m { syntax: '*'; inherits: false; }
@property --pl { syntax: '*'; inherits: false; }
@property --pl-m { syntax: '*'; inherits: false; }
@property --spt { syntax: '*'; inherits: false; }
@property --spb { syntax: '*'; inherits: false; }
@property --spt-m { syntax: '*'; inherits: false; }
@property --spb-m { syntax: '*'; inherits: false; }
@property --mh { syntax: '*'; inherits: false; }
@property --mh-m { syntax: '*'; inherits: false; }
@property --w { syntax: '*'; inherits: false; }
@property --w-m { syntax: '*'; inherits: false; }
@property --cp { syntax: '*'; inherits: false; }
@property --cp-m { syntax: '*'; inherits: false; }
@property --bg { syntax: '*'; inherits: false; }
@property --ta { syntax: '*'; inherits: false; }
@property --ta-m { syntax: '*'; inherits: false; }
@property --h { syntax: '*'; inherits: false; }
@property --h-m { syntax: '*'; inherits: false; }
@property --smt { syntax: '*'; inherits: false; }
@property --smb { syntax: '*'; inherits: false; }
@property --smt-m { syntax: '*'; inherits: false; }
@property --smb-m { syntax: '*'; inherits: false; }
@property --spl { syntax: '*'; inherits: false; }
@property --spr { syntax: '*'; inherits: false; }
@property --spl-m { syntax: '*'; inherits: false; }
@property --spr-m { syntax: '*'; inherits: false; }
.cd-s { position: relative; min-height: var(--mh, 0); margin: var(--smt, 0) 0 var(--smb, 0); padding: var(--spt, 0) var(--spr, 0) var(--spb, 0) calc(var(--spl, 0px) + var(--pl, 0px)); background: var(--bg, transparent) center / cover no-repeat; }
.cd-s__in { display: flex; flex-wrap: wrap; max-width: var(--max, 1320px); margin: 0 auto; }
.cd-s--interne > .cd-s__in { max-width: none; }
.cd-c { flex: 0 0 var(--w, 100%); max-width: var(--w, 100%); min-width: 0; padding: var(--cp, 10px); background: var(--bg, transparent) center / cover no-repeat; }
.cd-flux > :is(.cd-intertitre, .cd-texte, .cd-bouton-bloc) { text-align: var(--ta, start); }
.cd-btn { display: inline-block; width: var(--bw, auto); padding: var(--pad, 16px 30px); border-radius: var(--rad, 3px); background: var(--bg, var(--jaune)); font: var(--fw, 600) var(--fs, 16px)/var(--lh, 16px) var(--corps); letter-spacing: var(--ls, .85px); text-transform: var(--tt, none); color: var(--col, #fff) !important; text-align: center; transition: filter .25s; }
.cd-btn:hover, .cd-btn:focus-visible { filter: brightness(.9); }
.cd-espaceur { height: var(--h, 50px); }
.cd-carte { display: block; width: 100%; height: var(--h, 450px); border: 0; }
/* Encadrés de contact (widget Monity « fancy box v4 ») : mesures du thème */
.cd-cartes-contact { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px 48px; padding-top: 30px; list-style: none; }
.cd-carte-contact { position: relative; padding: 70px 30px 30px; border-radius: 5px; background: #fff; box-shadow: -3px 0 30px rgba(0, 0, 0, .1); text-align: center; }
.cd-carte-contact__icone { position: absolute; top: -50px; left: 50%; display: grid; place-items: center; width: 90px; height: 90px; margin-left: -45px; border-radius: 50%; background: var(--bleu); color: #fff; }
.cd-carte-contact__icone svg { width: 40px; height: 40px; }
.cd-carte-contact :is(h3, h4) { margin: 0 0 16px; font-size: 28px; line-height: 33.6px; color: var(--titre); }
.cd-carte-contact p { margin: 0; font-size: 17.6px; line-height: 29.92px; font-weight: 500; }
.cd-carte-contact a { color: var(--texte); }
/* Formulaire de la page contact (Formidable 3, 5 en anglais) : mesures de l'original */
.gm-cd .cd-formulaire-bloc .frm_fields_container { gap: 20px 10px; }
.gm-cd .cd-formulaire-bloc .frm_forms :is(input[type=text], input[type=tel], input[type=email], select, textarea) { height: 42px; border: 1px solid rgba(0, 0, 0, .45); border-radius: 4px; }
.gm-cd .cd-formulaire-bloc .frm_form_field:has(.frm_dropzone) .frm_primary_label { display: block; margin: 0 0 8px; font-size: 15px; line-height: 25px; color: #3f4b5b; }
.gm-cd .cd-formulaire-bloc .frm_dropzone { display: flex; align-items: center; justify-content: center; min-height: 89px; border: 1px solid rgba(0, 0, 0, .45); border-radius: 4px; background: #fff; }
.gm-cd .cd-formulaire-bloc .frm_dropzone .dz-message { display: flex; align-items: center; gap: 8px; font-size: 14px; color: #555; }
.gm-cd .cd-formulaire-bloc .frm_dropzone .frmsvg { width: 18px; height: 18px; fill: currentColor; }
.gm-cd .cd-formulaire-bloc .frm_dropzone button { padding: 0; border: 0; background: none; font: inherit; color: var(--bleu); cursor: pointer; }
.gm-cd .cd-formulaire-bloc .frm_submit { justify-content: flex-start; padding-top: 20px; }
.gm-cd .cd-formulaire-bloc .frm_button_submit { height: 49px; padding: 0 48px; border-radius: 4px; font: 400 16px/49px var(--corps); }
.gm-cd .cd-formulaire-bloc .frm_error, .gm-cd .cd-formulaire-bloc .frm_error_style { color: #b3261e; }
.gm-cd .cd-formulaire-bloc .frm_error_style, .gm-cd .cd-formulaire-bloc .frm_message { background: #f4f4f6; color: var(--encre); }
/* Pages « À propos » et « Forfaits » : composants de l'accueil posés dans les colonnes (flux), mesures de l'original */
.cd-c { position: relative; }
.cd-flux .cd-intertitre[style*="--fw"] { font-weight: var(--fw); }
.cd-flux .cd-intertitre[style*="--lc"] a { color: var(--lc); }
.cd-flux .cd-image { width: var(--iw, 100%); height: var(--ih, auto); margin-left: var(--ia, 0); margin-right: var(--ia, 0); border-radius: var(--ir, 5px); object-fit: cover; object-position: var(--ipos, 50% 50%); }
.cd-flux > .cd-abs { position: absolute; left: var(--ax, 0); top: var(--ay, 0); display: var(--ad, block); margin: 0; padding: 0; pointer-events: none; }
.cd-rang { display: flex; flex-wrap: wrap; align-items: flex-start; }
.cd-rang > * { flex: 0 0 var(--rw, auto); min-width: 0; margin: 0; }
.cd-icones { display: flex; gap: 21px; margin: 0; padding: 0; list-style: none; }
.cd-icones a { display: grid; place-items: center start; width: 25px; height: 20px; color: #000; }
.cd-icones a:hover, .cd-icones a:focus-visible { color: var(--jaune); }
.cd-collage { position: relative; height: var(--ch, auto); }
.cd-collage__el { position: absolute; left: var(--ex, 0); top: var(--ey, 0); z-index: var(--ez, auto); display: var(--ed, block); width: var(--ew, auto); height: var(--eh, auto); border: var(--eb, 0); border-radius: var(--er, 0); background: var(--ef, transparent); box-shadow: var(--es, none); object-fit: cover; }
.cd-collage__el--va-vient { animation: cd-va-vient 5s ease-in-out infinite; }
@keyframes cd-va-vient { 65% { transform: translateX(30px); } }
.cd-flux > .cd-logos--bloc { padding: 0; background: none; }
.cd-logos--bloc .cd-logos__fenetre { max-width: 1200px; }
.cd-logos--bloc .cd-logos__liste li { width: 300px; }
.cd-logos--bloc .cd-logos__liste img { width: 270px; }
.cd-flux > .cd-equipe__grille { margin-top: var(--mt, 20px); }
.cd-equipe__grille--bloc .cd-membre__texte { padding: 30px 15px; }
.cd-equipe__grille--bloc .cd-membre img { height: 420px; aspect-ratio: auto; }
.cd-temoins .cd-temoin-liste { display: grid; }
.cd-temoins .cd-temoin { display: block; grid-area: 1 / 1; visibility: hidden; }
.cd-temoins .cd-temoin.est-actif { visibility: visible; }
.cd-flux > .cd-tarifs__grille--bloc { margin-top: var(--mt, 20px); }
.cd-faq__liste--bloc { text-align: left; }
.cd-flux > .cd-icone { font-size: var(--is, 50px); line-height: 1; color: var(--col, #fff); text-align: var(--ta, start); }
.cd-icone svg { display: inline-block; vertical-align: top; }
/* Liste des articles ([gm_cd_articles]) : mesures du widget Publications (cartes) de l'original */
.cd-articles { display: grid; gap: 35px; margin: 0; padding: 0; list-style: none; }
.cd-articles__carte { overflow: hidden; border-radius: 3px; background: #fff; box-shadow: 0 0 10px rgba(0, 0, 0, .15); }
.cd-articles__vignette { display: block; aspect-ratio: 924 / 610; overflow: hidden; }
.cd-articles__vignette img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.cd-articles__carte:hover .cd-articles__vignette img { transform: scale(1.03); }
.cd-articles__texte { padding: 40px 30px 20px; }
.cd-articles h3 { margin: 0 0 25px; font: 600 23px/27.6px var(--corps); letter-spacing: 1.14px; color: #222; }
.cd-articles h3 a { color: inherit; }
.cd-articles p { margin: 0 0 25px; font-size: 16px; line-height: 24px; letter-spacing: .85px; color: #777; }
.cd-articles__plus { display: inline-block; font-size: 16px; font-weight: 500; line-height: 27.2px; letter-spacing: .85px; color: #222 !important; }
.cd-rapide.cd-rapide--bloc { width: auto; max-height: none; box-shadow: none; }

/* ---------- Page « Nos conseils » (tools/convertir_conseils.py) : mesures de l'original, conteneurs de 1 200 px ---------- */
.cd-cs-conteneur { max-width: 1200px; margin: 0 auto; }
.cd-cs-surtitre { margin: 0; font: 400 16px/22.4px var(--titres); letter-spacing: .5px; color: var(--bleu); }
.cd-cs-hero h1, .cd-cs-capsules h2, .cd-cs-apropos h2, .cd-cs-appel h2 { margin: 0; font-family: var(--titres); font-weight: 600; letter-spacing: .5px; }
.cd-cs-capsules h2, .cd-cs-apropos h2 { font-size: 40px; line-height: 48px; color: #212529; }
.cd-cs-capsules h2 span, .cd-cs-apropos h2 span { color: var(--bleu); }
.cd-cs-intro { max-width: 560px; font: 400 17px/28.9px var(--corps); letter-spacing: .5px; color: var(--texte); }
.cd-cs-intro p, .cd-cs-hero__texte p { margin: 0 0 20px; }
.cd-cs-btn { display: inline-block; padding: 16px 30px; border-radius: 3px; font: 600 15px/15px var(--corps); letter-spacing: .3px; text-transform: uppercase; text-align: center; transition: filter .25s, background-color .25s; }
.cd-cs-btn:hover, .cd-cs-btn:focus-visible { filter: brightness(.92); }
.cd-cs-btn--bleu { background: var(--bleu); color: #fff !important; }
.cd-cs-btn--blanc { background: #fff; color: var(--bleu) !important; }
.cd-cs-btn--jaune { background: var(--jaune); color: #fff !important; }
.cd-cs-btn--contour { padding: 14px 30px; border: 2px solid rgba(255, 255, 255, .45); color: #fff !important; }
.cd-cs-jaune { color: var(--jaune); }
.cd-cs-hero { position: relative; overflow: hidden; padding: 190px 24px 120px; background: #041139 url("../../../uploads/2026/10/Timeline-1-attente.jpg") center / cover no-repeat; }
.cd-cs-hero .cd-hero__video { z-index: 0; }
.cd-cs-hero::before { content: ""; position: absolute; inset: 0; z-index: 1; background: #000; opacity: .5; }
.cd-cs-hero__rond { position: absolute; z-index: 1; left: -160px; top: 60px; width: 420px; height: 420px; border-radius: 50%; background: var(--bleu); opacity: .55; pointer-events: none; }
.cd-cs-hero__tri { position: absolute; z-index: 1; bottom: -40px; width: 0; height: 0; border-style: solid; border-color: transparent transparent var(--bleu) transparent; pointer-events: none; }
.cd-cs-hero__tri--bleu { right: 120px; border-width: 0 0 220px 220px; opacity: .8; }
.cd-cs-hero__tri--jaune { right: 40px; border-width: 0 0 150px 150px; border-bottom-color: var(--jaune); }
.cd-cs-hero > .cd-cs-conteneur { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 12px; padding: 10px; }
.cd-cs-hero .cd-cs-surtitre { color: var(--jaune); }
.cd-cs-hero h1 { max-width: 760px; font-size: 54px; line-height: 60.48px; color: #fff; }
.cd-cs-hero h1 span { color: var(--jaune); }
.cd-cs-hero__texte { max-width: 620px; font: 400 19px/32.3px var(--corps); letter-spacing: .5px; color: rgba(255, 255, 255, .86); }
.cd-cs-boutons { display: flex; flex-wrap: wrap; gap: 14px; padding-top: 8px; }
.cd-cs-hero__note { margin: 0 0 20px; font: 400 15px/25.5px var(--corps); letter-spacing: .5px; color: rgba(255, 255, 255, .75); }
.cd-cs-capsules { padding: 106px 24px 95px; background: #fff; }
.cd-cs-capsules > .cd-cs-conteneur { display: flex; flex-direction: column; gap: 10px; }
.cd-cs-apropos { padding: 96px 24px; background: var(--clair, #f7faff); }
.cd-cs-apropos__grille { display: flex; align-items: center; gap: 64px; }
.cd-cs-apropos__texte { flex: 0 0 625px; display: flex; flex-direction: column; gap: 12px; padding: 10px; }
.cd-cs-apropos__texte h2 { max-width: 605px; }
.cd-cs-apropos__grille > .cd-cs-bloc { flex: 0 0 511px; padding: 10px; }
.cd-cs-lien { margin: 0 0 20px; font: 600 17px/25.5px var(--corps); letter-spacing: .5px; }
.cd-cs-lien a { color: var(--bleu); }
.cd-cs-chiffres { padding: 72px 24px; background: #041139; }
.cd-cs-chiffres__grille { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; margin: 0 auto; padding: 0; list-style: none; }
.cd-cs-chiffres__grille li { padding-left: 22px; border-left: 2px solid var(--jaune); text-align: center; }
.cd-cs-chiffres strong { display: flex; font: 600 56px/56px var(--titres); color: #fff; }
.cd-cs-chiffres strong::before { content: ""; flex: 1 1 0; }
.cd-cs-chiffres strong span { flex: 1 1 0; align-self: flex-start; margin-top: .15em; font-size: .5em; color: var(--jaune); text-align: left; }
.cd-cs-chiffres p { margin: 0; font: 400 16px/23.2px var(--corps); color: rgba(255, 255, 255, .78); }
.cd-cs-partenaires { padding: 34px 0; background: var(--jaune); }
.cd-cs-appel { padding: 96px 24px; background: #fff; }
.cd-cs-appel__boite { display: flex; align-items: center; gap: 40px; padding: 64px 56px; border-radius: 15px; background: #041139; }
.cd-cs-appel__texte { flex: 0 0 629px; display: flex; flex-direction: column; gap: 12px; padding: 10px; }
.cd-cs-appel h2 { font-size: 36px; line-height: 43.2px; color: #fff; }
.cd-cs-appel h2 span { color: var(--jaune); }
.cd-cs-appel .cd-cs-intro { max-width: 520px; color: rgba(255, 255, 255, .86); }
.cd-cs-appel__actions { flex: 0 0 419px; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; padding: 10px; }
.cd-cs-appel__actions .cd-cs-btn { width: 300px; }
.cd-cs-appel__actions p { margin: 0 0 20px; font: 400 14px/23.8px var(--corps); letter-spacing: .5px; color: rgba(255, 255, 255, .6); }
@media (max-width: 1247.98px) {
	.cd-cs-apropos__texte, .cd-cs-appel__texte { flex: 1 1 auto; min-width: 0; }
	.cd-cs-apropos__grille > .cd-cs-bloc { flex: 0 1 511px; min-width: 0; }
	.cd-cs-appel__actions { flex: 0 1 419px; }
	.cd-cs-chiffres__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
	.cd-cs-hero__rond { left: -120px; width: 260px; height: 260px; }
	.cd-cs-hero__tri--bleu { right: 60px; border-width: 0 0 140px 140px; }
	.cd-cs-hero__tri--jaune { right: 20px; border-width: 0 0 90px 90px; }
}
@media (max-width: 767.98px) {
	.cd-cs-hero { padding: 137px 20px 90px; }
	.cd-cs-hero h1 { font-size: 34px; line-height: 38.08px; }
	.cd-cs-capsules { padding: 74px 20px 64px; }
	.cd-cs-capsules h2, .cd-cs-apropos h2 { font-size: 28px; line-height: 33.6px; }
	.cd-cs-apropos { padding: 64px 20px; }
	.cd-cs-apropos__grille { flex-direction: column; align-items: stretch; gap: 44px; }
	.cd-cs-apropos__texte, .cd-cs-apropos__grille > .cd-cs-bloc { flex: none; width: 100%; }
	.cd-cs-chiffres__grille { grid-template-columns: minmax(0, 1fr); }
	.cd-cs-chiffres strong { font-size: 42px; line-height: 42px; }
	.cd-cs-appel { padding: 64px 20px; }
	.cd-cs-appel__boite { flex-direction: column; align-items: stretch; gap: 32px; padding: 48px 28px; }
	.cd-cs-appel__texte, .cd-cs-appel__actions { flex: none; width: 100%; }
	.cd-cs-appel h2 { font-size: 26px; line-height: 31.2px; }
	.cd-cs-appel__actions .cd-cs-btn { width: 100%; }
}
.cd-pagination { font-size: 17px; line-height: 28.9px; text-align: center; }
.cd-pagination .page-numbers { margin: 0 5px; color: var(--texte); }
.cd-pagination .page-numbers.current { font-weight: 400; }

/* Formulaire rapide (fenêtre « Contactez-nous » des pages d'infractions) */
.cd-rapide { width: min(640px, calc(100vw - 32px)); max-height: calc(100vh - 40px); padding: 0; border: 0; background: #fff; box-shadow: 0 20px 60px rgba(0, 0, 0, .3); color: var(--encre); }
.cd-rapide::backdrop { background: rgba(0, 0, 0, .8); }
.cd-rapide__tete { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 15px 17px; background: var(--marine); }
.cd-rapide__tete :is(h2, h6) { margin: 0; font-size: 16px; line-height: 20px; color: #fff; }
.cd-rapide__fermer { display: grid; place-items: center; width: 28px; height: 28px; margin: -4px -6px -4px 0; padding: 0; border: 0; background: none; color: #fff; cursor: pointer; }
.cd-rapide__corps { padding: 22px 30px 30px; }
.gm-cd .cd-rapide .frm_fields_container { gap: 14px; }
.gm-cd .cd-rapide .frm_forms .frm_primary_label { display: block; margin: 0 0 6px; font: 400 14px/1.4 var(--corps); letter-spacing: 0; color: var(--encre); }
.gm-cd .cd-rapide .frm_required { color: #e0573f; }
.gm-cd .cd-rapide .frm_forms input[type=text], .gm-cd .cd-rapide .frm_forms input[type=tel], .gm-cd .cd-rapide .frm_forms input[type=email] { height: 36px; }
.gm-cd .cd-rapide .frm-cf-turnstile { min-height: 0; }
.gm-cd .cd-rapide .frm_submit { justify-content: flex-start; padding-top: 24px; }
.gm-cd .cd-rapide .frm_button_submit { height: 48px; padding: 0 48px; border-radius: 2px; font-weight: 600; line-height: 48px; }
.gm-cd .cd-rapide .frm_error, .gm-cd .cd-rapide .frm_error_style { color: #b3261e; }
.gm-cd .cd-rapide .frm_error_style, .gm-cd .cd-rapide .frm_message { background: #f4f4f6; color: var(--encre); }

@media (max-width: 1024px) {
	.cd-bandeau { padding: 130px 0 70px; }
	.cd-bandeau h1 { margin-bottom: 29px; font-size: 25px; line-height: 30px; }
}
@media (max-width: 991.98px) {
	.cd-conteneur.cd-infraction { grid-template-columns: minmax(0, 1fr); margin-top: 50px; }
	.cd-lateral__colle { position: static; }
	.cd-infraction__contenu { margin-top: 18px; }
	.cd-infraction__contenu.cd-flux { margin-top: 0; }
	.cd-offre { padding-left: 0; }
}
@media (max-width: 767.98px) {
	.cd-bandeau .cd-conteneur { padding: 0 15px; }
	.cd-bandeau h1 { margin-bottom: var(--mb-m, 29px); font-size: var(--fs-m, 25px); line-height: var(--lh-m, 30px); }
	.cd-ariane ol { font-size: 16px; line-height: 19.2px; }
	.cd-bandeau__triangle-haut, .cd-bandeau__triangle-bas, .cd-bandeau__points { display: none; }
	.cd-conteneur.cd-infraction { padding: 0 20px 50px; }
	.cd-lateral__menu a { font-size: 15px; }
	.cd-tarifs__grille--deux .cd-tarif { grid-column: span 12; }
	.cd-tarifs__grille--deux .cd-tarif__tete { padding: 40px 35px 70px; }
	.cd-tarifs__grille--deux .cd-tarif h4 { font-size: 21.5px; line-height: 25.8px; }
	.cd-tarifs__grille--deux .cd-tarif__corps { padding: 60px 35px 39px; }
	.cd-tarifs__grille--deux .cd-tarif__prix { left: 14px; right: 14px; }
	.cd-tarifs__grille--deux .cd-tarif__liste li { font-size: 16px; line-height: 27.2px; }
	.cd-tarifs__grille--une .cd-tarif__tete { padding: 40px 35px 70px; }
	.cd-tarifs__grille--une .cd-tarif h4 { font-size: 21.5px; line-height: 25.8px; }
	.cd-tarifs__grille--une .cd-tarif__corps { padding: 60px 35px 39px; }
	.cd-tarifs__grille--une .cd-tarif__prix { left: 14px; right: 14px; }
	.cd-tarifs__grille--une .cd-tarif__liste li { font-size: 16px; line-height: 27.2px; }
	.cd-flux { padding-bottom: var(--fin-m, 0); }
	.cd-flux > * { margin-top: var(--mt-m, var(--mt, 20px)); margin-bottom: var(--pb-m, 0); padding-left: var(--pl-m, 0); }
	.cd-flux > .cd-tarifs__grille.cd-tarifs__grille--deux, .cd-flux > .cd-tarifs__grille.cd-tarifs__grille--une { margin-top: var(--mt-m, var(--mt, 0)); }
	.cd-flux > .cd-tarifs__notes { margin-top: var(--mt-m, var(--mt, 20px)) !important; }
	.cd-flux .cd-intertitre { font-size: var(--fs-m, 19px); line-height: var(--lh-m, 24.7px); letter-spacing: var(--ls-m, var(--ls, .85px)); }
	.cd-flux .cd-texte { font-size: var(--fs-m, 16px); line-height: var(--lh-m, 27.2px); }
	.cd-flux .cd-chevrons li { font-size: var(--fs-m, 15px); line-height: var(--lh-m, 25.5px); }
	.cd-flux .cd-offre__titre { font-size: 19px; line-height: 30.4px; }
	.cd-s { min-height: var(--mh-m, 0); margin: var(--smt-m, var(--smt, 0)) 0 var(--smb-m, var(--smb, 0)); padding: var(--spt-m, var(--spt, 0)) var(--spr-m, var(--spr, 0)) var(--spb-m, var(--spb, 0)) calc(var(--spl-m, var(--spl, 0px)) + var(--pl-m, 0px)); }
	.cd-c { flex-basis: var(--w-m, 100%); max-width: var(--w-m, 100%); padding: var(--cp-m, var(--cp, 10px)); }
	.cd-flux > :is(.cd-intertitre, .cd-texte, .cd-bouton-bloc) { text-align: var(--ta-m, var(--ta, start)); }
	.cd-espaceur { height: var(--h-m, var(--h, 50px)); }
	.cd-carte { height: var(--h-m, var(--h, 450px)); }
	.cd-cartes-contact { grid-template-columns: minmax(0, 1fr); gap: 50px; }
	.cd-tarif-offre { grid-template-columns: minmax(0, 1fr); }
	.cd-tarif-offre__texte { margin-top: 28px; padding-left: 0; }
	.cd-offre { margin-top: 48px; margin-bottom: 20px; }
	.cd-offre h2 { margin-bottom: 26px; font-size: 19px; line-height: 30.4px; }
	.cd-offre p { margin-bottom: 7px; }
	.cd-article { font-size: 16px; line-height: 27.2px; }
	.cd-article h2, .cd-article h3 { font-size: 19px; line-height: 24.7px; }
	.cd-video__pc { display: none !important; }
	.cd-video__mobile { display: block !important; }
	.cd-rapide__corps { padding: 20px 18px 24px; }
	.cd-flux .cd-image { width: var(--iw-m, var(--iw, 100%)); height: var(--ih-m, var(--ih, auto)); margin-left: var(--ia-m, var(--ia, 0)); margin-right: var(--ia-m, var(--ia, 0)); }
	.cd-flux > .cd-abs { left: var(--ax-m, var(--ax, 0)); top: var(--ay-m, var(--ay, 0)); display: var(--ad-m, var(--ad, block)); margin: 0; }
	.cd-rang > * { flex-basis: var(--rw-m, var(--rw, auto)); margin: 0; }
	.cd-collage { height: var(--ch-m, var(--ch, auto)); }
	.cd-collage__el { left: var(--ex-m, var(--ex, 0)); top: var(--ey-m, var(--ey, 0)); display: var(--ed-m, var(--ed, block)); width: var(--ew-m, var(--ew, auto)); height: var(--eh-m, var(--eh, auto)); }
	.cd-flux > :is(.cd-equipe__grille, .cd-tarifs__grille--bloc) { margin-top: var(--mt-m, var(--mt, 20px)); }
	.cd-equipe__grille--bloc .cd-membre img { height: 420px; aspect-ratio: auto; }
}
@media (max-width: 575.98px) {
	.cd-bandeau__rond { left: 9%; top: 19%; width: 70px; height: 70px; }
}

/* ---------- Tablettes et téléphones ---------- */
@media (max-width: 1399.98px) {
	.cd-apropos::before { width: 50.5%; }
	.cd-texte-rond { left: auto; right: -40px; }
}
@media (max-width: 1199.98px) {
	.cd-entete__barre { padding: 0 24px; }
	.cd-menu__liste > li { margin: 0; }
	.cd-menu__liste > li > a { padding-left: 8px; padding-right: 8px; font-size: 14px; }
	.cd-entete__tel { display: none; }
	.cd-apropos__grille { grid-template-columns: 1fr 1fr; gap: 30px; padding: 60px 30px; }
	.cd-apropos__image { display: none; }
	.cd-tarif { grid-column: span 6; }
	.cd-tarif--large { grid-column: span 12; }
	.cd-temoignages__grille { grid-template-columns: 1fr; }
	.cd-bulles { order: -1; display: flex; align-items: center; justify-content: center; gap: 6px; height: auto; margin: 0 0 40px; }
	.cd-bulles img { position: static; }
	.cd-bulles img:nth-child(1) { width: 52px; height: 52px; }
	.cd-bulles img:nth-child(2) { width: 62px; height: 58px; }
	.cd-bulles img:nth-child(3) { width: 84px; height: 78px; }
	.cd-bulles img:nth-child(4) { width: 96px; height: 92px; }
	.cd-bulles img:nth-child(5) { width: 70px; height: 68px; }
}
@media (max-width: 991.98px) {
	html { scroll-padding-top: 70px; }
	.cd-entete__barre { height: 70px; padding: 0 15px; }
	.cd-logo { width: auto; padding: 0; }
	.cd-logo img { width: 80px; }
	.cd-menu-bouton { display: grid; place-items: center; width: 44px; height: 44px; margin-left: auto; padding: 0; border: 0; border-radius: 3px; background: var(--jaune); color: #fff; cursor: pointer; }
	.cd-menu { position: absolute; top: 100%; left: 0; right: 0; max-height: calc(100vh - 70px); margin: 0; overflow-y: auto; background: #fff; box-shadow: 0 10px 20px rgba(0, 0, 0, .1); display: none; }
	.cd-entete.menu-ouvert .cd-menu { display: block; }
	.cd-entete.menu-ouvert .cd-entete__barre { background: #fff; }
	.cd-entete.menu-ouvert .cd-logo__blanc { display: none !important; }
	.cd-entete.menu-ouvert .cd-logo__couleur { display: block !important; }
	.cd-menu__liste { flex-direction: column; align-items: stretch; padding: 8px 0 16px; }
	.cd-menu__liste > li { border-bottom: 1px solid var(--ligne); }
	.cd-menu__liste > li > a, .cd-entete.est-fixe .cd-menu__liste > li > a { padding: 12px 20px; font-size: 15px; color: #282b2d; }
	.cd-menu .sub-menu { position: static; display: none; width: auto; padding: 0 0 10px; border-radius: 0; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
	.cd-menu .est-ouvert > .sub-menu { display: block; }
	.cd-menu .sub-menu a { padding: 7px 34px; font-size: 13px; }
	.cd-entete.est-fixe .cd-entete__barre { height: 70px; }
	.cd-fleches { display: none; }
	.cd-equipe__grille { grid-template-columns: 1fr 1fr; }
	.cd-acces__grille { grid-template-columns: 1fr; gap: 50px; }
	.cd-acces__texte { padding: 0 15px; }
}
@media (max-width: 767.98px) {
	body.gm-cd { padding-bottom: 46px; }
	.cd-titre { font-size: 26px; line-height: 34px; }
	.cd-surtitre { margin-bottom: 14px; font-size: 15px; }
	.cd-hero { min-height: calc(100vh - 1px); align-items: flex-start; }
	.cd-hero__texte { padding-top: 248px; }
	.cd-hero__rond { left: -150px; top: -60px; width: 190px; height: 190px; }
	.cd-hero__surtitre { font-size: 15px; }
	.cd-hero h1 { margin-bottom: 26px; font-size: 27px; line-height: 40px; }
	.cd-hero__boutons { flex-direction: column; align-items: flex-start; }
	.cd-hero__boutons .cd-bouton { width: 288px; max-width: 100%; padding: 16px 12px; font-size: 14px; }
	.cd-hero__triangle, .cd-hero__cercle { display: none; }
	.cd-formulaire { margin-top: -140px; padding: 0 0 0; background: linear-gradient(transparent 140px, var(--jaune) 140px); }
	.cd-formulaire .cd-conteneur { padding: 0 22px; }
	.cd-formulaire__carte { padding: 40px 25px 30px; }
	.cd-formulaire h2 { font-size: 19px; line-height: 26px; }
	.cd-formulaire__intro { font-size: 15px; line-height: 24px; }
	.gm-cd .frm_fields_container { gap: 16px; }
	.gm-cd .frm_form_field.frm4, .gm-cd .frm_form_field.frm6, .gm-cd .frm_form_field.frm_half { grid-column: span 12; }
	.gm-cd .frm_button_submit { width: 100%; }
	.cd-formulaire__clients { position: static; flex-wrap: wrap; gap: 14px 6px; margin-top: 24px; padding-left: 0; }
	.cd-formulaire__clients .cd-avatars { flex-basis: 100%; }
	.cd-logos { padding: 40px 0; }
	.cd-apropos { margin: 50px 15px 0; }
	.cd-apropos::before { width: auto; right: 15%; bottom: auto; height: 70%; }
	.cd-apropos__grille { grid-template-columns: 1fr; padding: 70px 0 0; gap: 30px; }
	.cd-apropos__titre { padding: 0 10px; }
	.cd-quoi { justify-self: stretch; width: auto; min-height: 0; padding: 30px; }
	.cd-quoi h3 { font-size: 28px; line-height: 34px; }
	.cd-quoi h3 + h3 { font-size: 19px; line-height: 28px; margin-bottom: 17px; }
	.cd-apropos__triangles { display: none; }
	.cd-services { padding: 10px 0 60px; }
	.cd-service { flex-basis: 78vw; height: 400px; }
	.cd-tarifs__grille { gap: 30px; margin-top: 40px; }
	.cd-tarif, .cd-tarif--large { grid-column: span 12; }
	.cd-tarif__tete { padding: 30px 20px 50px; }
	.cd-tarif__corps { padding: 55px 20px 25px; }
	.cd-tarif__prix { left: 15px; right: 15px; }
	.cd-tarif__montant { padding: 10px 12px; font-size: 21px; line-height: 26px; }
	.cd-tarif__montant small { font-size: 16px; }
	.cd-tarif__montant del { font-size: 16px; line-height: 20px; }
	.cd-tarif__forfait { font-size: 11px; padding: 4px 11px; }
	.cd-tarifs__notes { margin-top: 30px !important; }
	.cd-acces { margin: 60px 0 0; padding: 60px 0; border-radius: 0; }
	.cd-acces__images img:first-child { height: auto; aspect-ratio: 302 / 410; }
	.cd-acces__images img:nth-child(2) { height: auto; aspect-ratio: 274 / 500; margin-top: 25px; }
	.cd-acces__images .cd-texte-rond { left: 50%; top: 52%; width: 220px; height: 220px; margin-left: -110px; }
	.cd-boite { flex-direction: column; align-items: center; gap: 14px; text-align: center; }
	.cd-acces__images { min-height: 0; }
	.cd-equipe { padding: 60px 0 30px; }
	.cd-equipe__points { display: none; }
	.cd-equipe__grille { grid-template-columns: 1fr; margin-top: 36px; }
	.cd-membre img { height: auto; aspect-ratio: 600 / 760; }
	.cd-espace { height: 0; }
	.cd-faq-titre { padding: 60px 0 40px; }
	.cd-faq { padding-bottom: 60px; }
	.cd-faq > .cd-conteneur { padding: 0; }
	.cd-question summary { padding: 16px 56px 16px 20px; font-size: 15px; line-height: 20px; }
	.cd-question summary::after { right: 18px; }
	.cd-reponse { padding: 20px; font-size: 15px; line-height: 26px; }
	.cd-temoignages { padding-top: 60px; }
	.cd-temoignages__texte { padding: 0 6px; }
	.cd-temoin { padding: 40px 22px 24px; }
	.cd-temoin blockquote { font-size: 15px; line-height: 25px; }
	.cd-bio__grille { grid-template-columns: 1fr; }
	.cd-bio__grille img { max-height: 320px; }
	.cd-bio__texte { padding: 26px 22px 30px; }
	.cd-bio h2 { font-size: 24px; line-height: 30px; }
	.cd-pied__grille { grid-template-columns: minmax(0, 1fr); gap: 53px; padding: 56px 22px 20px; }
	.cd-pied__coord, .cd-pied__liens, .cd-pied__expertises { grid-column: auto; }
	.cd-pied__coord { padding-bottom: 27px; }
	.cd-pied .menu a { font-size: 16px; line-height: 27.2px; }
	.cd-pied__expertises .menu a { font-size: 15px; line-height: 25.5px; }
	.cd-pied__expertises .menu li { padding: 16px 0; }
	.cd-pied__expertises .menu li:first-child { padding-top: 0; }
	.cd-pied__bas p { font-size: 15px; }
	.cd-remonter { bottom: 66px; right: 16px; }
	.cd-barre-mobile { position: fixed; left: 0; right: 0; bottom: 0; z-index: 999; display: flex; border-top: 1px solid #fff; }
	.cd-barre-mobile a { flex: 1; padding: 11px 0; font-size: 17px; font-weight: 500; line-height: 22px; text-align: center; color: #fff !important; }
	.cd-barre-mobile__contact { background: var(--bleu); }
	.cd-barre-mobile__appel { background: var(--jaune); }
}

/* ---------- Accueil : écarts avec l'original corrigés (relevés du 28 octobre à 1 440 et 375 px) ----------
   Limités aux sections de l'accueil : les mêmes composants servent ailleurs (forfaits, infractions). */
@media (min-width: 768px) {
	.cd-formulaire { padding-bottom: 14px; }
	.cd-apropos__titre { position: relative; top: 10px; }
	.cd-tarifs .cd-tarif__tete { padding-bottom: 67px; }
	.cd-tarifs .cd-tarif--large .cd-tarif__tete { padding-bottom: 41px; }
	.cd-tarifs .cd-tarif__corps { padding-bottom: 40px; }
	.cd-tarifs .cd-bouton { line-height: 20px; }
	.cd-tarifs .cd-tarif:nth-child(-n+3) { min-height: 588px; }
	.cd-tarifs .cd-tarif:nth-child(n+4) { min-height: 847px; }
	.cd-acces hr { margin: 35px 0; }
	.cd-equipe { padding-bottom: 30px; }
	.cd-equipe .cd-equipe__grille { margin-top: 64px; }
	.cd-faq { padding-bottom: 120px; }
	.cd-temoignages__texte { padding-right: 52px; }
	.cd-temoignages .cd-temoin-liste { margin-top: 32px; }
	.cd-apropos__titre { max-width: 440px; }
	.cd-faq-titre .cd-faq__liste--etroite { margin-top: 70px; }
	:lang(en) .cd-formulaire { padding-bottom: 28px; }
	:lang(en) .cd-apropos__grille { min-height: 639px; }
	:lang(en) .cd-apropos__image img { height: 399px; }
	:lang(en) .cd-quoi { min-height: 399px; }
	:lang(en) .cd-tarifs .cd-tarif:nth-child(n+4) { min-height: 790px; }
	:lang(en) .cd-equipe { padding-bottom: 20px; }
	:lang(en) .cd-equipe .cd-equipe__grille { margin-top: 54px; }
	:lang(en) .cd-faq-titre { padding-bottom: 140px; }
	:lang(en) .cd-tarifs { padding-bottom: 10px; }
}
@media (min-width: 1200px) {
	.cd-bulles { height: 583px; }
	.cd-bulles img:nth-child(1) { left: 0; top: 0; width: 125px; height: 125px; }
	.cd-bulles img:nth-child(2) { left: 332px; right: auto; top: 35px; width: 132px; height: 122px; }
	.cd-bulles img:nth-child(3) { left: 56px; top: 107px; width: 200px; height: 185px; }
	.cd-bulles img:nth-child(4) { left: 230px; right: auto; top: 242px; width: 234px; height: 239px; }
	.cd-bulles img:nth-child(5) { left: 0; top: 431px; width: 158px; height: 152px; }
}
/* Cartes de l'équipe et foire aux questions : comme l'original aux deux largeurs (texte de carte 30/15 px ; paragraphes
   de réponse séparés par une ligne vide de 28 px, comme les <br><br> d'Elementor) */
.cd-equipe .cd-membre__texte { padding: 30px 15px; }
.cd-equipe .cd-membre h3 { margin-bottom: 0; }
/* l'original n'a pas de points sous les témoignages (ils tournent seuls) */
.cd-temoignages .cd-temoin-points { display: none; }
:is(.cd-faq, .cd-faq-titre) .cd-question { margin-bottom: 20px; }
:is(.cd-faq, .cd-faq-titre) .cd-question[open] summary { border-width: 0; }
:is(.cd-faq, .cd-faq-titre) .cd-reponse { padding: 20px 25px; }
:is(.cd-faq, .cd-faq-titre) .cd-reponse p { margin: 0 0 28px; }
:is(.cd-faq, .cd-faq-titre) .cd-reponse p:last-child { margin-bottom: 0; }
/* Accueil anglais : sa mise en page d'origine diffère de la française (FAQ sous son titre, témoignages à part) */
.cd-espace { height: 150px; }
.cd-faq-titre .cd-reponse h4 { margin: 22px 0 21px; font-size: 20px; line-height: 24px; }
.cd-faq-titre .cd-faq__liste--etroite { max-width: 1060px; }
.cd-faq-titre .cd-coches { margin-bottom: 28px !important; }
@media (max-width: 767.98px) {
	.cd-formulaire__intro { font-size: 16px; line-height: 17.6px; }
	.cd-formulaire .frm_fields_container { gap: 20px; }
	.cd-formulaire .frm_forms { padding-bottom: 13px; }
	.cd-formulaire__clients { margin-top: 20px; row-gap: 17px; }
	.cd-logos { padding: 50px 0; }
	.cd-apropos__grille { min-height: 0; gap: 31px; padding: 70px 0; }
	.cd-tarifs > .cd-conteneur { padding: 0 20px; }
	.cd-equipe > .cd-conteneur { padding: 0 10px; }
	:is(.cd-apropos, .cd-services, .cd-tarifs, .cd-acces, .cd-equipe, .cd-faq-titre, .cd-temoignages) .cd-surtitre { margin-bottom: 20px; font-size: 17px; }
	:is(.cd-apropos, .cd-tarifs, .cd-temoignages) .cd-titre { font-size: 23px; line-height: 25.3px; }
	:is(.cd-services, .cd-equipe) .cd-titre { font-size: 23px; line-height: 29.9px; }
	.cd-acces .cd-titre { font-size: 24px; line-height: 36px; }
	.cd-faq-titre .cd-titre { font-size: 23px; line-height: 44px; }
	.cd-quoi { padding: 24px 24px 20px; }
	.cd-quoi h3 { margin-bottom: 21px; }
	.cd-quoi h3 + h3 { font-size: 19px; line-height: 34px; margin-bottom: 17px; }
	.cd-quoi p { margin-bottom: 23px; }
	.cd-services { padding: 60px 0 11px; }
	.cd-service { height: 420px; }
	.cd-services__nav { height: 50px; margin-top: 10px; }
	.cd-tarifs { padding-top: 50px; }
	.cd-tarifs .cd-tarif__tete { padding: 40px 20px 61px; }
	.cd-tarifs .cd-tarif__corps { padding: 60px 20px 40px; }
	.cd-tarifs .cd-tarif__liste li { font-size: 16px; line-height: 27.2px; }
	.cd-tarifs .cd-bouton { line-height: 20px; }
	.cd-tarifs .cd-tarif:nth-child(-n+4) { min-height: 628px; }
	.cd-tarifs .cd-tarif:nth-child(5) { min-height: 1314px; }
	/* l'original resserre l'en-tête de la grande carte au point que le prix passe sur le titre : ici, 12 px d'écart */
	.cd-tarifs .cd-tarif--large .cd-tarif__tete { padding: 24px 20px 46px; }
	.cd-tarifs .cd-tarif--large .cd-tarif__corps { padding-top: 50px; padding-bottom: 20px; }
	.cd-tarifs__notes { margin-top: 49px !important; }
	.cd-acces { margin-top: 40px; padding-bottom: 55px; }
	.cd-acces__images img:first-child { height: 205px; aspect-ratio: auto; margin-top: -7px; }
	.cd-acces__images img:nth-child(2) { height: 274px; aspect-ratio: auto; margin-top: 40px; }
	.cd-acces__grille { gap: 71px; }
	.cd-acces hr { margin: 35px 0; }
	.cd-boite { gap: 20px; }
	.cd-equipe { padding: 50px 0 30px; }
	.cd-equipe .cd-equipe__grille { margin-top: 96px; }
	.cd-equipe .cd-membre img { height: 420px; aspect-ratio: auto; }
	.cd-equipe .cd-membre__texte { padding: 29px 15px; }
	.cd-equipe .cd-equipe__points { display: block; left: 20px; top: 108px; }
	.cd-faq-titre { padding: 0 0 39px; }
	:is(.cd-faq, .cd-faq-titre) .cd-question summary { padding: 14px 56px 14px 20px; }
	:is(.cd-faq, .cd-faq-titre) .cd-reponse { padding: 20px 15px; font-size: 16px; line-height: 28px; }
	.cd-faq-titre > .cd-conteneur { padding: 0 20px; }
	.cd-faq-titre .cd-faq__liste--etroite { margin-top: 29px; }
	.cd-acces > .cd-conteneur { padding: 0 20px; }
	.cd-acces__texte { padding: 0; }
	.cd-espace { height: 50px; }
	.cd-faq.cd-faq--temoignages { padding-bottom: 50px; }
	:lang(en) .cd-acces { margin-top: 20px; }
	:lang(en) .cd-tarifs .cd-tarif:nth-child(-n+4) { min-height: 686px; }
	:lang(en) .cd-tarifs .cd-tarif:nth-child(5) { min-height: 1253px; }
	:lang(en) .cd-equipe { padding-bottom: 53px; }
	:lang(en) .cd-equipe .cd-equipe__grille { margin-top: 54px; }
	:lang(en) .cd-faq-titre { padding: 0 0 30px; }
	.cd-temoignages .cd-temoin blockquote { line-height: 25.5px; }
	.cd-faq { padding-bottom: 50px; }
	.cd-temoignages { padding-top: 49px; }
	.cd-bulles { justify-content: flex-start; align-items: flex-start; gap: 0; height: 94px; margin: 0 0 49px; }
	.cd-bulles img:nth-child(1) { width: 49px; height: 49px; }
	.cd-bulles img:nth-child(2) { width: 52px; height: 48px; }
	.cd-bulles img:nth-child(3) { width: 79px; height: 73px; }
	.cd-bulles img:nth-child(4) { width: 93px; height: 94px; }
	.cd-bulles img:nth-child(5) { width: 62px; height: 60px; }
	.cd-temoignages .cd-temoin-liste { margin-top: 55px; }
	.cd-temoignages .cd-temoin { min-height: 251px; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
	.cd-logos__piste { flex-wrap: wrap; width: auto; justify-content: center; }
	.cd-logos__liste[aria-hidden] { display: none; }
	.cd-logos__liste { flex-wrap: wrap; justify-content: center; }
}
