/* ==========================================================================
   Copie 1:1 de controleplus.fr
   Valeurs reprises du thème de la prod (web/app/themes/controleplus/assets/css, même style.css que le site en
   ligne) et vérifiées sur le rendu réel. Chargé après main.css. Tailles fluides : formule font-ratio() de la prod,
   font-ratio(F, r, a, b) = F × r à a px de large, F à b px et au-delà.
   ========================================================================== */

/* ---------- Base : fond de page gris clair de la prod (body) ---------- */
body { background: #f4f5f7; color: #122043; font-size: 16px; line-height: 1.618; }
@media (min-width: 1024px) { body { font-size: 17.6px; } }

/* ---------- Accueil : hero (.frontpage_header) ---------- */
.cp-hero .cp-hero__panel a.cp-price-tag { width: 190px; padding: 0 30px 0 15px; border-left: 1px solid rgba(255, 255, 255, .3); border-bottom: 1px solid rgba(255, 255, 255, .3); border-radius: 0 0 0 25px; background: #101d3c; }
.cp-hero .cp-price-tag__price { color: #78df7a; }
.cp-hero .cp-price-tag__ribbon { background: #78df7a; color: #101d3c; }
.cp-hero .cp-hero__kicker .cp-hero__anniversary { position: relative; top: -5px; width: 105px; height: auto; margin: 0; vertical-align: top; }
@media (max-width: 1024px) { .cp-hero .cp-hero__kicker .cp-hero__anniversary { top: -6px; width: 61px; max-height: 40px; margin-left: 2px; } }

/* Boutons Auto / Moto / Poids lourd sur le bord droit (.frontpage_slider_link) */
.cp-hero__vehicles { display: none; }
@media (min-width: 768px) {
	.cp-hero__vehicles { position: absolute; top: 50%; right: 0; z-index: 5; display: block; width: auto; transform: translateY(-50%); }
	.cp-hero__vehicles::after { content: ""; display: table; clear: both; }
	.cp-hero__vehicles a { float: right; clear: right; display: inline-block; width: 100%; min-width: 0; height: auto; margin: 20px 0 10px; padding: 20px 40px 20px 20px; border: 1px solid #fff; border-radius: 0; background: url(../img/prod/arrow-white.svg) no-repeat calc(100% - 10px) center / 20px 14px; color: #fff; font-size: clamp(2.3px, calc(2.3px + 20.7 * ((100vw - 320px) / 704)), 23px); font-weight: 600; line-height: 1; letter-spacing: 1px; text-align: center; text-transform: uppercase; white-space: normal; text-decoration: none; }
	.cp-hero__vehicles a span { display: inline; font: inherit; letter-spacing: inherit; }
	.cp-hero__vehicles a svg { display: none; }
	.cp-hero__vehicles a:hover, .cp-hero__vehicles a:focus-visible { padding: 20px 40px 20px 20px; background: url(../img/prod/arrow-white.svg) no-repeat calc(100% - 10px) center / 20px 14px; transition: none; } /* couleur au survol : plus bas */
}

/* Panneau centré verticalement dans le hero (padding 40 / 80, min-height 70vh), textes aux interlignes de la prod */
@media (min-width: 1024px) {
	.cp-hero .cp-hero__inner { min-height: 70vh; padding-top: 40px; padding-bottom: 80px; align-items: center; }
	.cp-hero .cp-hero__panel { align-self: center; }
	.cp-hero .cp-hero__kicker { margin: 0; line-height: 1.618; letter-spacing: normal; }
	.cp-hero .cp-hero__title { margin: 0 0 25px; line-height: 1.1; letter-spacing: normal; }
	.cp-hero .cp-hero__text { margin: 0 0 10px; letter-spacing: 2px; line-height: 1.2944; }
	.cp-hero .cp-hero__note { margin: 0; font-size: 12px; line-height: 16.5px; }
}
/* Macaron Avis Vérifiés (.patch-avis) : positionné par rapport au panneau, comme la prod */
.cp-hero .cp-hero__badge { display: none; }
@media (min-width: 1024px) {
	.cp-hero .cp-hero__panel { position: relative; overflow: visible; }
	.cp-hero .cp-hero__badge { position: absolute; top: 20px; left: calc(100% + 50px); display: block; margin: 0; transform: scale(.8) !important; transform-origin: center; }
}
@media (min-width: 1400px) {
	.cp-hero .cp-hero__badge { top: 50px; left: calc(100% + 139px); transform: none !important; }
}

/* Barre d'accès rapides (.frontpage_nav) : 3 accès + loupe, sans arrondi */
@media (min-width: 768px) {
	.cp-hero .cp-quick-wrap { transform: translateY(-10px); }
	.cp-quick { grid-template-columns: calc(100% / 3 - 32.5px) calc(100% / 3 - 32.5px) 1fr; border-radius: 0; box-shadow: 0 4px 16px rgba(0, 0, 0, .2); }
	.cp-quick__item, .cp-quick__item:first-child, .cp-quick__toggle { min-height: 100px; padding: 22px 10px; border-radius: 0; color: #122143; font-size: 22px; font-weight: 600; line-height: 1.2; }
	.cp-quick__item + .cp-quick__item { border-left: 1px solid #dfe2e7; }
	.cp-quick__item > span:not(.cp-quick__search-icon) { padding: 0; }
	.cp-quick__ico { flex: none; width: auto; max-width: none; height: auto; margin: 0 10px; padding-right: 15px; box-sizing: content-box; object-fit: contain; transition: filter .25s ease-in; }
	.cp-quick__toggle { padding-right: 130px; position: relative; }
	.cp-quick .cp-quick__item > .cp-quick__search-icon { position: absolute; top: 0; right: 40px; bottom: 0; display: flex; align-items: center; justify-content: center; width: 40px; height: auto; margin: 0; padding: 0 20px 0 40px; border-left: 1px solid #dfe2e7; box-sizing: content-box; background: none; color: #000; }
	.cp-quick__search-icon .cp-icon { width: 40px; height: 41px; }
}

/* Hero : tailles fluides de la prod (font-ratio(F, .35, 320px, 1600px)), toutes largeurs */
.cp-hero .cp-hero__kicker { font-size: clamp(12.25px, calc(12.25px + 22.75 * ((100vw - 320px) / 1280)), 35px); font-weight: 700; color: #ff0014; text-transform: uppercase; }
.cp-hero .cp-hero__title { width: calc(78% - 12px); font-size: clamp(28px, calc(28px + 52 * ((100vw - 320px) / 1280)), 80px); font-weight: 700; line-height: 1.1; }
.cp-hero .cp-hero__text { font-size: clamp(8.75px, calc(8.75px + 16.25 * ((100vw - 320px) / 1280)), 25px); font-weight: 600; letter-spacing: 2px; text-transform: uppercase; }
.cp-hero .cp-hero__note { margin-top: 5px; font-size: clamp(9.6px, calc(9.6px + 2.4 * ((100vw - 320px) / 1280)), 12px); line-height: 1.1; }
/* Encart « Meilleur tarif » (.map__promo_wrapper.best_promo.right-positioned) */
.cp-hero .cp-hero__panel a.cp-price-tag { font-size: clamp(9.35px, calc(9.35px + 1.65 * ((100vw - 320px) / 704)), 11px); }
.cp-hero .cp-hero__panel a.cp-price-tag .cp-price-tag__label { font-size: 1em; font-weight: 400; }
.cp-hero .cp-hero__panel a.cp-price-tag .cp-price-tag__price { font-size: clamp(18px, calc(18px + 6 * ((100vw - 320px) / 704)), 24px); line-height: 1; }
.cp-hero .cp-hero__panel a.cp-price-tag .cp-price-tag__ribbon { font-size: 1em; font-weight: 700; }
/* Contenu de l'encart en bloc (« À partir de », retour à la ligne, prix), bande verticale « Meilleur tarif » à droite */
.cp-hero .cp-hero__panel a.cp-price-tag { display: block; padding-top: 10px; }
.cp-hero .cp-hero__panel a.cp-price-tag .cp-price-tag__label { display: block; padding: 0; letter-spacing: normal; line-height: 1.618; }
.cp-hero .cp-hero__panel a.cp-price-tag .cp-price-tag__price { display: block; }
.cp-hero .cp-hero__panel a.cp-price-tag .cp-price-tag__ribbon { position: absolute; top: 0; right: 0; bottom: 0; width: 1.618em; height: auto; line-height: 1.618em; text-align: center; }
@media (min-width: 1400px) {
	.cp-hero .cp-hero__panel a.cp-price-tag { padding-top: 35px; font-size: 14px; }
	.cp-hero .cp-hero__panel a.cp-price-tag .cp-price-tag__price { font-size: 32px; }
}

/* Hero mobile (< 768 px) : photo derrière le panneau (20 px au-dessus, 95 px dessous), panneau 96 % / 396 px max,
   barre d'accès remontée de 75 px sur la photo, sans ombre */
@media (max-width: 767px) {
	.cp-hero { background: transparent; }
	.cp-hero .cp-hero__media { display: none; }
	.cp-hero .cp-hero__inner { display: block; min-height: 0; padding: 20px 0 95px; background: #122043 var(--cp-hero-bg) center / cover no-repeat; }
	.cp-hero .cp-hero__panel { width: 96%; max-width: 396px; margin: 0; padding: 20px; background: rgba(16, 28, 59, .85); }
	.cp-hero .cp-hero__kicker { margin: 0; padding-right: 0; line-height: 1.618; white-space: normal; }
	.cp-hero .cp-hero__title { margin: 0 0 10px; letter-spacing: normal; }
	.cp-hero .cp-hero__text { margin: 0; line-height: 1.2944; }
	.cp-hero .cp-hero__panel a.cp-price-tag { top: -15px; right: 0; left: auto; width: auto; min-height: 91px; padding: 0 25px 0 10px; }
	.cp-hero .cp-quick-wrap, .cp-hero .cp-quick-wrap.cp-container { position: relative; top: auto; bottom: auto; z-index: 20; width: calc(100% - 30px); margin: -75px auto 0; padding: 0; }
	.cp-hero .cp-quick { box-shadow: none; background: #fff; gap: 0; }
	.cp-hero .cp-quick__item, .cp-hero .cp-quick__item:first-child, .cp-hero .cp-quick__toggle { position: relative; gap: 0; min-height: 50px; padding: 13px 70px 13px 20px; border: 0; border-bottom: 1px solid #dfe2e7; border-radius: 0; background: #fff; color: #122143; font-size: clamp(12.1px, calc(12.1px + 9.9 * ((100vw - 320px) / 704)), 22px); font-weight: 600; line-height: 1.2; }
	.cp-hero .cp-quick__item + .cp-quick__item { border-top: 0; border-left: 0; }
	.cp-hero .cp-quick__item > span:not(.cp-quick__search-icon) { padding: 0; }
	.cp-hero .cp-quick__ico { flex: none; width: 30px; height: auto; margin: 0; padding-right: 15px; box-sizing: border-box; object-fit: contain; }
	.cp-hero .cp-quick .cp-quick__item > .cp-quick__search-icon { position: absolute; top: 50%; right: 20px; width: 20px; height: 20px; margin: 0; padding: 0; transform: translateY(-50%); background: none; color: #122143; }
	.cp-hero .cp-quick__search-icon .cp-icon { width: 20px; height: 20px; }
	.cp-hero + .cp-section.cp-section { padding-top: 30px; }
}

/* ---------- Boutons (.button / .button.has-icon / .ghost de la prod) ---------- */
a.cp-btn, button.cp-btn, span.cp-btn { position: relative; display: inline-block; width: auto; min-height: 0; padding: 13.5px 30px; border: 0; border-radius: 50px; background: #ff0014; box-shadow: none; color: #fff; font-size: clamp(11.2px, calc(11.2px + 2.8 * ((100vw - 320px) / 704)), 14px); font-weight: 700; line-height: 1; letter-spacing: normal; text-align: center; text-decoration: none; text-transform: none; white-space: normal; }
@media (min-width: 896px) { a.cp-btn, button.cp-btn, span.cp-btn { padding-top: 16px; padding-bottom: 16px; } }
@media (min-width: 1024px) { a.cp-btn, button.cp-btn, span.cp-btn { padding-top: 17px; padding-bottom: 17px; } }
a.cp-btn > span, button.cp-btn > span, span.cp-btn > span { display: inline; }
a.cp-btn > .cp-icon, button.cp-btn > .cp-icon, span.cp-btn > .cp-icon { position: absolute; top: 50%; right: 20px; width: 8px; height: 14px; margin: 0; transform: translateY(-50%) !important; color: #fff; }
a.cp-btn:hover, a.cp-btn:focus-visible, button.cp-btn:hover, button.cp-btn:focus-visible { background: #cc0010; box-shadow: none; color: #e6e5e5; text-decoration: none; transform: none; }
a.cp-btn--navy, button.cp-btn--navy { background: #122043; }
a.cp-btn--navy:hover, a.cp-btn--navy:focus-visible, button.cp-btn--navy:hover { background: #223d7f; color: #fff; }
a.cp-btn--ghost, button.cp-btn--ghost { border: 2px solid #122043; background: transparent; color: #122043; }
a.cp-btn--ghost > .cp-icon, button.cp-btn--ghost > .cp-icon { color: #122043; }
a.cp-btn--ghost:hover, a.cp-btn--ghost:focus-visible, button.cp-btn--ghost:hover { border-color: #223d7f; background: transparent; color: #223d7f; }
a.cp-btn--block, button.cp-btn--block { display: block; width: 100%; }
/* Accueil (.home .content-sidebar-wrap .button) */
.home .cp-main a.cp-btn { width: 100%; min-width: 250px; padding-top: 18px; padding-bottom: 18px; }
@media (min-width: 768px) { .home .cp-main a.cp-btn { width: auto; padding-top: 21px; padding-bottom: 21px; } }

/* ---------- Bloc moto de l'accueil (.frontpage_block_heavy) ---------- */
@media (min-width: 768px) {
	.cp-section.cp-bg--light.cp-section--text_image { padding: 166px 0 116px; background: transparent; }
	.cp-section.cp-bg--light.cp-section--text_image .cp-split { position: relative; display: flex; flex-wrap: wrap; align-items: flex-start; gap: 0; width: calc(100% - 30px); max-width: 1126px; margin: 0 auto; padding: 45px 30px 46px; background: linear-gradient(90deg, #fff 75%, transparent 50%); border-radius: 0; box-shadow: none; overflow: visible; }
	.cp-section.cp-bg--light.cp-section--text_image .cp-split::before { display: none; }
	.cp-section.cp-bg--light.cp-section--text_image .cp-split__content { position: static; width: 42%; margin-right: -40px; padding: 2% 3.5% 0; }
	.cp-section.cp-bg--light.cp-section--text_image .cp-split__media { position: relative; right: -30px; width: 58%; margin: 0 0 16px; padding: 0; align-self: flex-start; }
	.cp-section.cp-bg--light.cp-section--text_image .cp-split__media img { display: block; width: 100%; height: auto; border-radius: 0; box-shadow: none; }
	.cp-section.cp-bg--light.cp-section--text_image .cp-heading { margin: 0; }
	.cp-section.cp-bg--light.cp-section--text_image .cp-heading__kicker { margin: 0 0 26px; padding-right: 10px; color: #cc0010; font-size: 22px; font-weight: 500; line-height: 1.2; letter-spacing: normal; text-transform: none; }
	.cp-section.cp-bg--light.cp-section--text_image .cp-heading__title { margin: 0 0 25px; padding: 0 10px 0 0; color: #0a152d; font-size: 30px; font-weight: 600; line-height: 1.2; letter-spacing: normal; }
	.cp-section.cp-bg--light.cp-section--text_image .cp-heading__title::after { display: none; }
	.cp-section.cp-bg--light.cp-section--text_image .cp-prose p { margin: 0 0 10px; padding-right: 10px; color: #0a152d; font-size: 20px; font-weight: 500; line-height: 1.2; }
	.cp-section.cp-bg--light.cp-section--text_image .cp-actions { position: absolute; bottom: 45px; left: calc(30px + (100% - 60px) * .035); margin: 0; }
}
@media (max-width: 767px) {
	.cp-section.cp-bg--light.cp-section--text_image { padding: 30px 0; background: transparent; }
	.cp-hero + .cp-section.cp-bg--light.cp-section--text_image { padding-top: 30px; }
	.cp-section.cp-bg--light.cp-section--text_image .cp-split { display: flex; flex-direction: column; gap: 0; width: calc(100% - 30px); margin: 0 auto; padding: 18px 17px; background: #fff; border-radius: 0; box-shadow: none; overflow: visible; }
	.cp-section.cp-bg--light.cp-section--text_image .cp-split__media { order: -1; margin: 0 0 25px; padding: 0; }
	.cp-section.cp-bg--light.cp-section--text_image .cp-split__media img { display: block; width: 100%; height: auto; border-radius: 0; box-shadow: none; }
	.cp-section.cp-bg--light.cp-section--text_image .cp-split__content { padding: 0; }
	.cp-section.cp-bg--light.cp-section--text_image .cp-heading { margin: 0; }
	.cp-section.cp-bg--light.cp-section--text_image .cp-heading__kicker, .cp-section.cp-bg--light.cp-section--text_image .cp-heading__title, .cp-section.cp-bg--light.cp-section--text_image .cp-prose p { margin: 0 0 25px; padding: 0 10px 0 0; color: #0a152d; font-size: 16px; font-weight: 500; line-height: 1.1; letter-spacing: normal; text-transform: none; }
	.cp-section.cp-bg--light.cp-section--text_image .cp-heading__kicker { color: #cc0010; }
	.cp-section.cp-bg--light.cp-section--text_image .cp-heading__title { font-weight: 600; }
	.cp-section.cp-bg--light.cp-section--text_image .cp-heading__title::after { display: none; }
	.cp-section.cp-bg--light.cp-section--text_image .cp-actions { margin: 0; }
	.cp-section.cp-bg--light.cp-section--text_image .cp-actions a.cp-btn { display: block; width: 100%; }
}

/* ---------- Navigation des carrousels (.slick-nav-wrapper de la prod) ----------
   Flèches carrées blanches 45 px (90 px dès 1024 px) à bord #ebebeb, flèches longues du sprite, compteur « 1/4 »
   au-dessus des barres (22 × 5 px, 43 × 8 px dès 1024 px), barre active rouge. */
.cp-slider .cp-slider__nav, .cp-slider__nav { display: grid; grid-template-columns: auto auto auto; grid-template-rows: auto auto; align-items: end; justify-content: start; gap: 0; margin: 20px 0 0; }
.cp-slider__nav.cp-slider__nav .cp-slider__btn.cp-slider__btn { grid-row: 1 / 3; display: flex; align-items: center; justify-content: center; flex: none; width: 45px; height: 45px; margin: 0; padding: 0; border: 1px solid #ebebeb; border-radius: 0; background: #fff; box-shadow: none; color: #000; line-height: 1; }
.cp-slider__nav.cp-slider__nav .cp-slider__btn.cp-slider__btn + .cp-slider__btn { margin-left: -1px; border-left: 1px solid #ebebeb; }
.cp-slider__nav.cp-slider__nav .cp-slider__btn.cp-slider__btn .cp-icon { width: 30px; height: 20px; margin: auto; }
.cp-slider__nav.cp-slider__nav .cp-slider__btn.cp-slider__btn:hover:not(:disabled), .cp-slider__nav.cp-slider__nav .cp-slider__btn.cp-slider__btn:focus-visible { background: #122043; color: #fff; }
.cp-slider__nav.cp-slider__nav .cp-slider__btn.cp-slider__btn:disabled { color: #000; opacity: 1; }
.cp-slider__nav.cp-slider__nav .cp-slider__count { grid-column: 3; grid-row: 1; display: block; margin: 0 0 3px 15px; color: #122043; font-size: clamp(12px, calc(12px + 4 * ((100vw - 320px) / 704)), 16px); font-weight: 400; line-height: 1; }
.cp-slider__nav.cp-slider__nav .cp-slider__bars { grid-column: 3; grid-row: 2; display: flex; flex-wrap: wrap; gap: 0; margin: 0 0 0 10px; }
.cp-slider__nav.cp-slider__nav .cp-slider__bars i { display: block; width: 22px; height: 5px; margin: 5px 5px 10px; background: #122043; }
.cp-slider__nav.cp-slider__nav .cp-slider__bars i.is-active { background: #ff0014; }
@media (min-width: 1024px) {
	.cp-slider__nav.cp-slider__nav .cp-slider__btn.cp-slider__btn { width: 90px; height: 90px; }
	.cp-slider__nav.cp-slider__nav .cp-slider__btn.cp-slider__btn .cp-icon { width: 39px; height: 28px; }
	.cp-slider__nav.cp-slider__nav .cp-slider__count { font-size: 20px; }
	.cp-slider__nav.cp-slider__nav .cp-slider__bars i { width: 43px; height: 8px; margin-bottom: 15px; }
}

/* ---------- Accueil : bloc rouge des véhicules (.after-content .slider-controles) ---------- */
.cp-section.cp-vehicles-block { position: relative; display: flex; flex-direction: column; padding: 0; overflow: hidden; background: transparent; }
.cp-section.cp-vehicles-block .cp-vehicles-block__media { display: none; }
.cp-section.cp-vehicles-block .cp-vehicles-block__panel { position: relative; display: block; min-height: 0; margin: 0; padding: 20px 10px 0; background: #ff0014; color: #fff; letter-spacing: 4px; text-transform: uppercase; overflow: visible; }
.cp-section.cp-vehicles-block .cp-vehicles-block__title { max-width: none; margin: 0 0 20px; padding: 0; color: #fff; font-size: clamp(11.25px, calc(11.25px + 13.75 * ((100vw - 320px) / 704)), 25px); font-weight: 700; line-height: 1.2944; letter-spacing: 2px; }
.cp-section.cp-vehicles-block .cp-vehicles-block__slider { display: block; margin: 0; }
.cp-section.cp-vehicles-block .cp-vehicles__list.cp-slider__track { display: flex; align-items: flex-start; gap: 0; margin: 0; padding: 0; }
.cp-section.cp-vehicles-block .cp-vehicles__list.cp-slider__track > li { position: relative; display: flex; align-items: center; flex: 0 0 33.3333%; border-right: 1px solid rgba(18, 32, 67, .2); }
.cp-section.cp-vehicles-block .cp-vehicles__list.cp-slider__track > li + li::before { display: none; }
.cp-section.cp-vehicles-block .cp-vehicles__list a { display: block; width: 100%; height: auto; padding: 0; border-radius: 0; color: #fff; text-align: center; text-decoration: none; transform: none; }
.cp-section.cp-vehicles-block .cp-vehicles__list a:hover { background: none; color: #fff; }
.cp-section.cp-vehicles-block .cp-vehicles__img { display: block; }
.cp-section.cp-vehicles-block .cp-vehicles__img img { display: block; width: 100%; max-width: 80%; height: auto; max-height: 122px; margin: auto; object-fit: contain; filter: brightness(0) invert(1); }
.cp-section.cp-vehicles-block .cp-vehicles__label { display: block; font-size: clamp(12px, calc(12px + 8 * ((100vw - 320px) / 704)), 20px); font-weight: 700; line-height: 1.618; letter-spacing: 0; }
.cp-section.cp-vehicles-block .cp-slider__nav { width: auto; margin: 20px 30px 0 auto; padding: 0; justify-content: end; transform: none; align-self: auto; }
.cp-section.cp-vehicles-block .cp-slider__nav .cp-slider__count { color: #fff; letter-spacing: normal; }
.cp-section.cp-vehicles-block .cp-slider__nav .cp-slider__bars i.is-active { background: #fff; }
@media (min-width: 601px) { .cp-section.cp-vehicles-block .cp-vehicles__list.cp-slider__track > li { flex-basis: 25%; } }
@media (min-width: 1025px) {
	.cp-section.cp-vehicles-block .cp-vehicles-block__media { display: block; width: 45%; margin: 0; }
	.cp-section.cp-vehicles-block .cp-vehicles-block__media img { position: static; display: block; width: 100%; height: 500px; min-height: 0; object-fit: cover; }
	.cp-section.cp-vehicles-block .cp-vehicles-block__panel { position: absolute; right: 0; bottom: 0; width: 73%; padding: 40px 40px 0; }
	.cp-section.cp-vehicles-block .cp-vehicles-block__title { margin: 0 0 50px; letter-spacing: 4px; }
	.cp-section.cp-vehicles-block .cp-slider__nav { width: 80%; margin: 30px 0 0 auto; justify-content: start; }
}
@media (min-width: 1281px) { .cp-section.cp-vehicles-block .cp-vehicles__list.cp-slider__track > li { flex-basis: 20%; } }
@media (min-width: 1601px) { .cp-section.cp-vehicles-block .cp-vehicles__list.cp-slider__track > li { flex-basis: 16.6667%; } }

/* ---------- Services Plus (.after-content .slider-service) ---------- */
.cp-section.cp-section--services:not(.is-accordion) { padding: 0 0 80px; background: transparent; }
.cp-section--services .cp-services-wide .cp-services__media img { min-height: 0; }
.cp-section--services .cp-services-wide .cp-services__badge { position: absolute; right: 0; bottom: 0; width: 72%; margin: 0; padding: 10vw 12vw; background: #122043; color: #fff; font-size: clamp(20px, calc(20px + 30 * ((100vw - 320px) / 704)), 50px); font-weight: 400; line-height: 1.1; letter-spacing: normal; text-transform: uppercase; }
.cp-section--services .cp-services-wide .cp-services__badge strong { display: block; font-weight: 900; }
.cp-section--services .cp-services-wide .cp-split__content { display: flex; flex-direction: column; padding: 20px 10px; background: #fff; }
.cp-section--services .cp-services-wide .cp-heading { margin: 0; }
.cp-section--services .cp-services-wide .cp-heading__title { margin: 0; padding: 0; color: #122043; font-size: clamp(27.5px, calc(27.5px + 27.5 * ((100vw - 320px) / 704)), 55px); font-weight: 400; line-height: 1.2944; letter-spacing: normal; }
.cp-section--services .cp-services-wide .cp-heading__title strong { font-weight: 700; }
.cp-section--services .cp-services-wide .cp-heading__title::after { content: ""; display: block; position: static; width: 60px; height: 7px; margin: 10px 0 0; background: #122043; transform: none; }
.cp-section--services .cp-services-wide .cp-heading__intro { margin: 15px 0 16px; }
.cp-section--services .cp-services-wide .cp-heading__intro p { margin: 0; color: #122043; font-size: clamp(12px, calc(12px + 8 * ((100vw - 320px) / 704)), 20px); line-height: 1.618; }
.cp-section--services .cp-services-wide .cp-tabs { margin-top: auto; }
/* Onglets (.slick-tabs) */
.cp-section--services .cp-tabs__list { display: block; margin: 0 0 0 -10px; text-align: center; }
.cp-section--services .cp-tabs__list button, .cp-section--services .cp-services-wide .cp-tabs__list button { position: relative; display: inline-block; min-height: 0; margin: 0 20px 20px; padding: 3px 0; border: 0; border-bottom: 5px solid transparent; background: none; color: #122043; font-size: clamp(13px, calc(13px + 7 * ((100vw - 320px) / 704)), 20px); font-weight: 400; line-height: 1.618; letter-spacing: normal; text-transform: uppercase; }
.cp-section--services .cp-tabs__list button:first-child { padding-left: 0; }
.cp-section--services .cp-tabs__list button::after { display: none; }
.cp-section--services .cp-tabs__list button + button::before { content: ""; position: absolute; top: 7px; bottom: 7px; left: -20px; width: 1px; height: auto; background: #122043; transform: none; }
.cp-section--services .cp-tabs__list button[aria-selected="true"] { border-bottom-color: #ff0014; color: #ff0014; font-weight: 700; }
/* Services : 4 par vue, picto rond 64 px (80 px dès 1024 px) */
.cp-section--services .cp-services.cp-slider__track { grid-template-rows: repeat(4, auto); grid-auto-columns: 100%; gap: 10px 0; padding: 10px 0; }
.cp-section--services .cp-services.cp-slider__track > li { display: block; }
.cp-section--services a.cp-service, .cp-section--services div.cp-service { display: flex; align-items: center; gap: 0; margin: 0; padding: 0; border-radius: 0; background: none; color: #122043; text-decoration: none; }
/* Survol de la prod (.sub-slide-item:hover) : seul le titre passe en #cc0010, le reste reste marine, sans soulignement ni contour */
.cp-section--services a.cp-service:hover, .cp-section--services a.cp-service:focus { background: none; color: #122043; text-decoration: none; outline: none; }
.cp-section--services a.cp-service:hover .cp-service__body strong { color: #cc0010; text-decoration: none; }
.cp-section--services a.cp-service:hover .cp-service__body span { color: #122043; }
.cp-section--services .cp-service__icon { display: block; flex: none; width: 64px; height: auto; margin: 0 20px 0 0; padding: 0; border-radius: 0; background: none; box-shadow: none; }
.cp-section--services .cp-service__icon img, .cp-section--services .cp-service__icon .cp-service__picto { display: block; width: 100% !important; height: auto !important; padding: 0 !important; object-fit: contain; }
.cp-section--services .cp-service__body { font-size: inherit; line-height: 1.618; }
.cp-section--services .cp-service__body strong { display: block; color: #ff0014; font-weight: 700; }
.cp-section--services .cp-service__body span { display: block; color: #122043; font-weight: 400; }
/* Sous 1024 px (prod) : photo au format du fichier de la prod (600 × 504), flèches + compteur sous le bloc blanc, à droite. */
@media (max-width: 1023px) {
	.cp-section--services .cp-services-wide .cp-services__media { min-height: 0; overflow: visible; }
	.cp-section--services .cp-services-wide .cp-services__media img { position: static; height: auto; min-height: 0; aspect-ratio: 600 / 504; }
	.cp-section--services .cp-services-wide .cp-slider__nav.cp-slider__nav { top: 100%; bottom: auto; left: auto; right: 0; width: auto; }
	.cp-section--services .cp-services-wide .cp-slider__nav.cp-slider__nav .cp-slider__bars { flex-wrap: nowrap; }
	.cp-section--services .cp-services-wide .cp-tabs__panel { padding-bottom: 32px; }
}
/* Navigation sous le bloc, décalée de 90 px vers la gauche (bottom/left -90px de la prod) */
.cp-section--services .cp-services-wide .cp-split__content { position: relative; }
.cp-section--services .cp-services-wide .cp-slider { position: static; }
.cp-section--services .cp-services-wide .cp-slider__nav { position: absolute; right: 0; bottom: -45px; margin: 0; padding-right: 30px; background: #fff; }
@media (min-width: 1024px) {
	.cp-section--services .cp-services-wide.cp-split { display: grid; grid-template-columns: 48% 52%; align-items: stretch; }
	.cp-section--services .cp-services-wide .cp-services__media { position: relative; min-height: 992px; }
	.cp-section--services .cp-services-wide .cp-services__media img { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 992px; object-fit: cover; }
	.cp-section--services .cp-services-wide .cp-services__badge { width: 53%; min-width: 495px; padding: 70px 6%; }
	.cp-section--services .cp-services-wide .cp-split__content { padding: 50px 50px 89px; }
	.cp-section--services .cp-tabs__list { text-align: left; }
	.cp-section--services .cp-services-wide .cp-tabs { margin-bottom: 46px; }
	.cp-section--services .cp-tabs__list button, .cp-section--services .cp-services-wide .cp-tabs__list button { padding: 10px 0; }
	.cp-section--services .cp-tabs__list button + button::before { top: 15px; bottom: 15px; }
	.cp-section--services .cp-service__icon { width: 80px; }
	.cp-section--services .cp-services-wide .cp-slider__nav { top: 100%; bottom: auto; left: -90px; right: 0; max-width: none; margin: 0; padding-right: 0; }
}
@media (min-width: 1600px) {
	.cp-section--services .cp-services-wide.cp-split { grid-template-columns: 48% 40vw; }
}

/* ---------- Accueil : « Tout savoir sur le contrôle technique » (.frontpage_block_allabout) ---------- */
.cp-section.cp-dossiers-featured { margin: 0; padding: 10px 0 90px; background: url(../img/prod/frontpage/savoir.png) no-repeat -400px 0 / cover; }
.cp-dossiers-featured .cp-dossiers-featured__bg { display: none; }
.cp-dossiers-featured .cp-container { max-width: none; padding: 0; }
.cp-dossiers-featured .cp-heading { width: 75%; max-width: none; margin: 0 auto 20px; }
.cp-dossiers-featured .cp-heading__title { position: relative; margin: 0; padding: 10px 0 15px; color: #122043; font-size: clamp(19.25px, calc(19.25px + 35.75 * ((100vw - 320px) / 704)), 55px); font-weight: 300; line-height: 1.2944; letter-spacing: normal; text-align: center; }
.cp-dossiers-featured .cp-heading__title strong { font-weight: 700; }
.cp-dossiers-featured .cp-heading__title::after { content: ""; position: absolute; right: 0; bottom: 0; left: 0; width: 40px; height: 5px; margin: 0 auto; background: #122043; transform: none; }
.cp-dossiers-featured .cp-dossiers-featured__all { display: none; position: relative; max-width: 2200px; margin: 0 auto; padding: 0 20px; text-align: right; }
.cp-dossiers-featured .cp-dossiers-featured__all .cp-link-line { position: relative; display: inline; color: #ff0014; font-size: inherit; text-decoration: none; }
.cp-dossiers-featured .cp-dossiers-featured__all .cp-link-line::before { content: ""; position: absolute; top: 50%; left: -190px; width: 165px; height: 2px; background: #ff0014; transform: translateY(-50%); }
.cp-dossiers-featured .cp-dossiers-featured__grid { display: block; width: 90%; margin: 0 auto; padding: 0; }
.cp-dossiers-featured .cp-dossier-main { display: block; padding: 15px; border-radius: 0; background: #fff; box-shadow: none; }
.cp-dossiers-featured .cp-dossier-main__media { position: relative; left: -25px; display: block; width: auto; min-width: calc(100% + 25px); margin: 0; aspect-ratio: 710 / 550; border-radius: 0; box-shadow: none; overflow: hidden; z-index: 9; }
.cp-dossiers-featured .cp-dossier-main__media img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.cp-dossiers-featured .cp-dossier-main__body { padding: 20px 0 15px; }
.cp-dossiers-featured .cp-dossier-main__title { margin: 0; color: #122043; font-size: clamp(18px, calc(18px + 27 * ((100vw - 320px) / 704)), 45px); font-weight: 700; line-height: 1.3; }
.cp-dossiers-featured .cp-dossier-main .cp-btn, .cp-dossiers-featured .cp-dossier-main a.cp-btn { min-width: 0; margin: 0; }
.cp-dossiers-featured .cp-dossier-side { display: none; }
@media (min-width: 715px) { .cp-dossiers-featured .cp-dossier-main a.cp-btn { min-width: 315px; margin-top: 25px; } }
@media (min-width: 768px) {
	.cp-section.cp-dossiers-featured { padding-bottom: 50px; background-position: -675px 0; }
	.cp-dossiers-featured .cp-dossiers-featured__all { display: block; }
	.cp-dossiers-featured .cp-dossiers-featured__grid { display: flex; align-items: stretch; justify-content: space-between; gap: 0; width: calc(80% - 40px); max-width: 1200px; min-width: 700px; margin: 10px auto 0; }
	.cp-dossiers-featured .cp-dossier-main { flex: 0 1 653px; min-width: 0; max-width: 653px; margin-right: 20px; }
	.cp-dossiers-featured .cp-dossier-main__body { padding: 20px 30px 10px 25px; }
	.cp-dossiers-featured .cp-dossier-side { display: flex; flex-direction: column; flex: 1 1 0; min-width: 0; gap: 0; margin: 0 -20px 0 20px; }
	.cp-dossiers-featured .cp-dossier-item { padding-bottom: 10px; }
	.cp-dossiers-featured .cp-dossier-item__media { display: block; aspect-ratio: 470 / 370; border-radius: 0; overflow: hidden; }
	.cp-dossiers-featured .cp-dossier-item__media img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
	.cp-dossiers-featured .cp-dossier-item__title { margin: 0; padding-top: 10px; color: #122043; font-size: clamp(10.5px, calc(10.5px + 24.5 * ((100vw - 320px) / 704)), 35px); font-weight: 900; line-height: 1.3; }
	.cp-dossiers-featured .cp-dossier-item__sub { margin: 0; color: #ff0014; font-size: clamp(5px, calc(5px + 20 * ((100vw - 320px) / 704)), 25px); line-height: 1.618; }
}
@media (min-width: 1024px) {
	.cp-section.cp-dossiers-featured { margin-top: 80px; }
	.cp-dossiers-featured .cp-dossiers-featured__all { font-size: 25px; }
	.cp-dossiers-featured .cp-heading__title { padding: 30px 0 35px; }
	.cp-dossiers-featured .cp-heading__title::after { width: 75px; height: 10px; }
	.cp-dossiers-featured .cp-dossier-main__media { left: -8%; min-width: calc(118% - 25px); margin-left: -8%; }
	.cp-dossiers-featured .cp-dossier-main__title { margin: 0 0 25px; }
}
@media (min-width: 1500px) { .cp-dossiers-featured .cp-dossiers-featured__grid { width: 100%; } }

/* ---------- Accueil : magazine (.frontpage_block_lastnews), articles de bord à bord ---------- */
.cp-section.cp-posts-simple { padding: 5px 0 0; background: #fff; }
.cp-posts-simple .cp-container { max-width: none; padding: 0; }
.cp-posts-simple .cp-heading { max-width: none; margin: 0; }
.cp-posts-simple .cp-heading__kicker { margin: 0 0 16px; color: #ff0014; font-size: clamp(10px, calc(10px + 15 * ((100vw - 320px) / 704)), 25px); font-weight: 500; line-height: 1.618; letter-spacing: normal; text-align: center; text-transform: uppercase; }
.cp-posts-simple .cp-heading__title { max-width: 60%; margin: 0 auto; padding: 0 0 15px; color: #122043; font-size: clamp(16.5px, calc(16.5px + 38.5 * ((100vw - 320px) / 704)), 55px); font-weight: 300; line-height: 1.2944; letter-spacing: normal; text-align: center; }
.cp-posts-simple .cp-heading__title strong { font-weight: 700; }
.cp-posts-simple .cp-dossiers-featured__all { display: none; position: relative; max-width: 2200px; margin: 0 auto 35px; padding: 0 20px; text-align: right; }
.cp-posts-simple .cp-dossiers-featured__all .cp-link-line { position: relative; display: inline; color: #ff0014; font-size: inherit; text-decoration: none; }
.cp-posts-simple .cp-dossiers-featured__all .cp-link-line::before { content: ""; position: absolute; top: 50%; left: -190px; width: 165px; height: 2px; background: #ff0014; transform: translateY(-50%); }
.cp-posts-simple .cp-posts-simple__grid, .cp-posts-simple .cp-posts-simple__grid[style] { display: grid; grid-auto-flow: column; grid-auto-columns: 100%; grid-template-columns: none; gap: 0; margin: 0; padding: 0; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.cp-posts-simple .cp-posts-simple__grid > li { min-width: 0; padding: 0 10px; scroll-snap-align: start; }
.cp-posts-simple .cp-post-simple__media { aspect-ratio: 609 / 472; background: none; }
.cp-posts-simple .cp-post-simple__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cp-posts-simple .cp-post-simple__title { margin: 10px 0 5px; color: #122043; font-size: clamp(17.5px, calc(17.5px + 17.5 * ((100vw - 320px) / 1180)), 35px); font-weight: 900; line-height: 1.3; }
.cp-posts-simple .cp-post-simple__date { margin: 0; color: #122043; font-size: clamp(12.6px, calc(12.6px + 5.4 * ((100vw - 320px) / 704)), 18px); line-height: 1.618; }
@media (min-width: 600px) { .cp-posts-simple .cp-posts-simple__grid, .cp-posts-simple .cp-posts-simple__grid[style] { grid-auto-columns: 100%; } }
@media (min-width: 768px) {
	.cp-section.cp-posts-simple { margin-bottom: 10px; padding: 90px 0 125px; }
	.cp-posts-simple .cp-heading__title { max-width: none; padding: 0 0 30px; }
	.cp-posts-simple .cp-dossiers-featured__all { display: block; }
	.cp-posts-simple .cp-post-simple__title { margin-top: 15px; }
}
@media (min-width: 800px) { .cp-posts-simple .cp-posts-simple__grid, .cp-posts-simple .cp-posts-simple__grid[style] { grid-auto-columns: 50%; } }
@media (min-width: 1024px) {
	.cp-posts-simple .cp-posts-simple__grid, .cp-posts-simple .cp-posts-simple__grid[style] { grid-auto-columns: calc(100% / 3); }
	.cp-posts-simple .cp-dossiers-featured__all { font-size: 25px; }
}
@media (min-width: 1280px) { .cp-posts-simple .cp-posts-simple__grid, .cp-posts-simple .cp-posts-simple__grid[style] { grid-auto-columns: 25%; } }

/* ---------- Bandeau avant pied de page (.before-footer) ---------- */
.cp-prefooter { padding: 0 0 40px; background: #fff; }
.cp-prefooter .cp-container { max-width: 1280px; padding: 30px 0 0; }
.cp-prefooter .cp-prefooter__list { display: flex; flex-wrap: wrap; gap: 0; margin: 0; padding: 0; list-style: none; }
.cp-prefooter .cp-prefooter__list > li { display: block; margin: 0 auto; padding: 0 0 20px; }
.cp-prefooter .cp-prefooter__card { display: block; color: #122043; text-decoration: none; }
.cp-prefooter .cp-prefooter__img { display: block; width: auto; border: 0; border-left: 5px solid #ff0014; background: none; aspect-ratio: auto; border-radius: 0; overflow: hidden; }
.cp-prefooter .cp-prefooter__img img { display: block; width: 375px; max-width: 100%; height: 192px; object-fit: cover; border-radius: 0; transform: none; }
.cp-prefooter .cp-prefooter__title { display: flex; align-items: flex-start; gap: 0; margin: 20px 0 0; }
.cp-prefooter .cp-prefooter__icon { flex: none; width: auto; height: 25px; object-fit: contain; }
.cp-prefooter .cp-prefooter__title > span { width: 50%; margin-left: 10px; color: #122043; font-size: clamp(20px, calc(20px + 5 * ((100vw - 320px) / 704)), 25px); font-weight: 700; line-height: 1.2; letter-spacing: -1px; }
@media (min-width: 1024px) {
	.cp-prefooter .cp-container { padding: 60px 0; }
	.cp-prefooter .cp-prefooter__list { flex-wrap: nowrap; }
	.cp-prefooter .cp-prefooter__list > li { margin-top: 0; padding: 0 10px; }
	.cp-prefooter .cp-prefooter__icon { height: 29px; }
	.cp-prefooter .cp-prefooter__title > span { margin-left: 25px; line-height: 1; }
}

/* ---------- Pied de page (.site-footer) ---------- */
@font-face { font-family: "icomoon"; src: url(../fonts/icomoon/icomoon.woff) format("woff"), url(../fonts/icomoon/icomoon.ttf) format("truetype"); font-weight: normal; font-style: normal; font-display: block; }
.cp-social[class*="icon-"]::before { font-family: "icomoon" !important; font-style: normal; font-weight: normal; line-height: 1; -webkit-font-smoothing: antialiased; }
.icon-linkedin::before { content: "\e902"; }
.icon-facebook::before { content: "\ea91"; }
.icon-instagram::before { content: "\e901"; }
.icon-youtube1::before { content: "\e900"; }
.cp-footer { border-top: 1px solid #dfe2e5; background: #122043; color: #fff; font-size: 15px; }
.cp-footer .cp-footer__wrap { display: block; max-width: 1280px; margin: 0 auto; padding: 0; }
.cp-footer .cp-footer__main { display: block; gap: 0; padding: 40px 5px 25px; }
.cp-footer .cp-footer__col { padding: 0 20px; }
.cp-footer .cp-footer__title { position: relative; width: 100%; max-width: none; margin: 0 0 25px; padding: 0 40px 30px 0; border: 0; color: #ff0014; font-size: clamp(10.5px, calc(10.5px + 3.5 * ((100vw - 320px) / 704)), 14px); font-weight: 700; line-height: 1.6; letter-spacing: 3px; text-transform: uppercase; }
.cp-footer .cp-footer__title::before { content: ""; position: absolute; bottom: 0; left: 0; width: 100%; height: 6px; background: #ff0014; }
.cp-footer .cp-footer__title::after { content: none; }
.cp-footer .cp-footer__panel { padding: 0 0 30px; }
.cp-footer .cp-footer__menu { display: block; margin: 0; padding: 0; list-style: none; font-size: 15px; line-height: 1.618; }
.cp-footer .cp-footer__menu li { width: 100%; padding: 5px 0 0; }
.cp-footer .cp-footer__menu a { color: #fff; text-decoration: none; }
.cp-footer .cp-footer__subtitle { display: block; margin: 0 0 25px; color: #fff; font-size: 14px; font-weight: 700; line-height: 1.6; text-transform: none; letter-spacing: normal; }
.cp-footer .cp-footer__newsletter { overflow: hidden; margin: 0 0 20px; }
.cp-footer .cp-footer__newsletter input[type="email"] { width: 100%; height: auto; margin: 0 0 10px; padding: 18px 40px 18px 60px; border: 0; border-radius: 999px; background: #eef0f5 url(../img/prod/mail.png) no-repeat 25px center; color: #122043; font-size: 15px; line-height: 1.15; }
.cp-footer .cp-footer__newsletter input[type="email"]::placeholder { color: #122043; font-weight: 700; }
.cp-footer .cp-footer__newsletter input[type="submit"] { float: right; clear: right; min-height: 0; margin: 10px 0 0; padding: 17px 40px 17px 30px; border: 0; border-radius: 50px; background: #ff0014 url(../img/prod/arrow-white.svg) no-repeat calc(100% - 20px) center / 20px 14px; color: #fff; font-size: 14px; font-weight: 700; line-height: 1; }
.cp-footer .cp-footer__newsletter input[type="submit"]:hover { background-color: #cc0010; color: #e6e5e5; }
.cp-footer .cp-newsletter-row { display: block; }
.cp-footer .cp-socials { display: flex; gap: 0; justify-content: space-around; width: 80%; margin: auto; padding: 0 0 25px; }
.cp-footer .cp-socials a.cp-social { display: inline-block; width: auto; height: auto; margin-right: 13px; padding: 15px; border-radius: 30px; background: #ff0014; color: #fff; font-size: 22px; line-height: 1; text-align: center; text-decoration: none; transform: none; }
.cp-footer .cp-socials a.cp-social:hover { background: #cc0010; color: #e6e5e5; }
.cp-footer .cp-footer__side { display: flex; flex-direction: column; align-items: stretch; gap: 0; margin: 20px 0 -25px -5px; padding: 40px 40px 30px 30px; background: #0a152d; }
.cp-footer .cp-footer__pills { display: flex; flex-direction: column; gap: 0; width: 100%; max-width: none; margin: 0; }
.cp-footer .cp-footer__pills a { position: relative; display: block; min-height: 0; margin: 0 0 20px; padding: 20px; border: 1px solid #fff; border-radius: 1000px; background: none; color: #ff0014; font-size: clamp(15px, calc(15px + 5 * ((100vw - 320px) / 704)), 20px); font-weight: 500; line-height: 1.618; letter-spacing: 2px; text-align: center; text-decoration: none; text-shadow: 0 0 1px #ff0014; text-transform: uppercase; }
.cp-footer .cp-footer__pills a:hover { border-color: #b3b2b2; background: none; color: #cc0010; }
.cp-footer .cp-footer__pills a .cp-icon { display: none; }
.cp-footer .cp-footer__pills a span { font: inherit; letter-spacing: inherit; }
.cp-footer .cp-footer__pills a::before { position: relative; display: inline-block; margin-right: 10px; vertical-align: middle; transform: translateY(5px); content: url(../img/prod/truck.png); }
.cp-footer .cp-footer__pills a:nth-child(1)::before { content: url(../img/prod/auto.png); }
.cp-footer .cp-footer__pills a:nth-child(2)::before { content: url(../img/prod/moto.png); }
.cp-footer .cp-footer__pills a:nth-child(4)::before { content: url(../img/prod/speaker.png); }
.cp-footer .cp-footer__brand-band { display: block; height: 100px; padding: 0; background: #ff0014; text-align: center; }
.cp-footer .cp-footer__brand-band a { display: inline-block; }
.cp-footer .cp-footer__brand-band img { display: block; width: 335px; height: 71px; margin: 10px auto 0; }
@media (max-width: 1023px) {
	.cp-footer .cp-footer__title { margin: 0; text-align: left; }
	.cp-footer .cp-footer__title button { display: block; }
	.cp-footer .cp-footer__subtitle { margin-top: 0; font-size: 13px; text-align: center; }
	.cp-footer .cp-footer__newsletter input[type="email"] { padding: 25px 40px 25px 60px; font-size: 12px; }
	.cp-footer .cp-footer__newsletter input[type="submit"] { float: none; width: 100%; margin: 10px auto 20px 0; padding: 25px 30px; font-size: 12px; }
}
@media (min-width: 1024px) {
	.cp-footer .cp-footer__wrap { display: flex; flex-wrap: wrap; padding: 0 20px; }
	.cp-footer .cp-footer__main { display: flex; flex: 0 0 75%; padding: 80px 0 25px; }
	.cp-footer .cp-footer__col { flex: 0 0 33.333%; box-sizing: border-box; }
	.cp-footer .cp-footer__title { width: 70%; }
	.cp-footer .cp-footer__title::before { width: 50px; }
	.cp-footer .cp-footer__title .cp-icon { display: none; }
	.cp-footer .cp-footer__panel { display: block !important; }
	.cp-footer .cp-socials { justify-content: flex-start; width: auto; margin: 0; }
	.cp-footer .cp-footer__side { flex: 0 0 25%; box-sizing: border-box; margin: 0; padding: 80px 20px 30px; }
	.cp-footer .cp-footer__subtitle + .cp-footer__newsletter { margin-top: 0; }
}

/* ---------- En-tête : barre rouge, menu, bandeau « Votre partenaire » + note (.header-wrapper) ---------- */
@media (min-width: 1025px) {
	.cp-brandbar { height: 75px; }
	.cp-brandbar .cp-logo { margin-top: 3px; }
	.cp-nav { height: 49px; }
}
.cp-band { background: #ebebeb; }
.cp-band .cp-band__inner { padding-top: 10px; padding-bottom: 10px; min-height: 53px; }
.cp-band p { margin: 0; color: #122043; font-size: 18px; font-weight: 900; line-height: 1.3; letter-spacing: 1px; }
.cp-band p strong { color: #ff0014; font-weight: 900; text-decoration: underline; }
.cp-band .cp-rating--band { line-height: 1.5; letter-spacing: 1px; }
.cp-band .cp-rating--band .cp-stars { gap: 0; }
.cp-band .cp-rating--band .cp-stars__star { width: 30px; height: 30px; }
.cp-band .cp-rating--band .cp-rating__text strong { margin-right: 5px; color: #122043; font-size: 22px; font-weight: 900; line-height: 1.5; }
.cp-band .cp-rating--band .cp-rating__text span { color: #122043; font-size: 14.4px; font-weight: 400; }
@media (max-width: 768px) {
	.cp-band .cp-band__inner { justify-content: center; }
	.cp-band .cp-rating--band .cp-stars__star { width: 20px; height: 20px; }
	.cp-band .cp-rating--band .cp-rating__text strong { font-size: 22px; }
	.cp-band .cp-rating--band .cp-rating__text span { font-size: 10.4px; }
}
@media (min-width: 1025px) {
	.cp-nav .cp-nav__inner { max-width: 1280px; padding: 0; justify-content: space-around; }
	.cp-nav .cp-nav__inner .cp-menu > li > a { padding-left: 0; padding-right: 0; }
	.cp-nav .cp-nav__search { padding-left: 0; }
}

/* ---------- Localisateur : carte de recherche (.cs-search, .steps__tabs) ---------- */
.cp-finder__card { width: 100%; max-width: 1125px; margin-left: auto; margin-right: auto; border-radius: 0; background: transparent; box-shadow: none; overflow: visible; }
.cp-finder__card .cp-vtabs, .cp-vtabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 0; margin: 0; padding: 0; border: 0; border-radius: 0; background: #fff; box-shadow: 0 13px 25px rgba(0, 0, 0, .07); }
.cp-vtabs::after, .cp-vtabs .cp-vtabs__indicator { display: none !important; }
.cp-vtabs .cp-vtabs__tab { position: relative; display: block; flex: 0 0 33%; width: 33%; min-height: 0; margin: 0; padding: 15px 0; border: 0; border-bottom: 5px solid transparent; border-radius: 0; background: none; color: #000; font-size: clamp(15px, calc(15px + 5 * ((100vw - 320px) / 704)), 20px); font-weight: 700; line-height: 1.618; letter-spacing: 1px; text-align: center; text-decoration: none; text-transform: uppercase; }
.cp-vtabs .cp-vtabs__tab > .cp-icon { display: none; }
.cp-vtabs .cp-vtabs__tab > span { display: block; font: inherit; letter-spacing: inherit; }
.cp-vtabs .cp-vtabs__tab.is-active, .cp-vtabs .cp-vtabs__tab[aria-current="page"], .cp-vtabs .cp-vtabs__tab:hover { border-bottom-color: transparent; color: #ff0014; text-decoration: none; }
.cp-vtabs .cp-vtabs__tab.is-active, .cp-vtabs .cp-vtabs__tab[aria-current="page"] { border-bottom-color: #ff0014; }
@media (min-width: 768px) {
	.cp-vtabs .cp-vtabs__tab::before { content: ""; display: block; width: 59px; height: 37px; margin: 0 auto 5px; background: url(../img/prod/pixicons/sprite-vehicule.png) no-repeat 0 -37px; filter: invert(1) brightness(0); }
	.cp-vtabs .cp-vtabs__tab:has(.cp-icon--moto)::before, .cp-vtabs .cp-vtabs__tab[data-filter="2r"]::before { background-position: 0 -194px; }
	.cp-vtabs .cp-vtabs__tab:has(.cp-icon--truck)::before, .cp-vtabs .cp-vtabs__tab[data-filter="pl"]::before { background-position: 0 -111px; }
	.cp-vtabs .cp-vtabs__tab.is-active::before, .cp-vtabs .cp-vtabs__tab[aria-current="page"]::before, .cp-vtabs .cp-vtabs__tab:hover::before { background-position: 0 0; filter: none; }
	.cp-vtabs .cp-vtabs__tab.is-active:has(.cp-icon--moto)::before, .cp-vtabs .cp-vtabs__tab[aria-current="page"]:has(.cp-icon--moto)::before, .cp-vtabs .cp-vtabs__tab:hover:has(.cp-icon--moto)::before, .cp-vtabs .cp-vtabs__tab.is-active[data-filter="2r"]::before, .cp-vtabs .cp-vtabs__tab:hover[data-filter="2r"]::before { background-position: 0 -154px; }
	.cp-vtabs .cp-vtabs__tab.is-active:has(.cp-icon--truck)::before, .cp-vtabs .cp-vtabs__tab[aria-current="page"]:has(.cp-icon--truck)::before, .cp-vtabs .cp-vtabs__tab:hover:has(.cp-icon--truck)::before, .cp-vtabs .cp-vtabs__tab.is-active[data-filter="pl"]::before, .cp-vtabs .cp-vtabs__tab:hover[data-filter="pl"]::before { background-position: 0 -74px; }
}
@media (min-width: 1024px) { .cp-vtabs .cp-vtabs__tab.is-active, .cp-vtabs .cp-vtabs__tab[aria-current="page"] { border-bottom-width: 7px; } }
@media (max-width: 767px) { .cp-vtabs .cp-vtabs__tab { font-size: 14px; } } /* rendu mesuré sur la prod en mobile : « Poids lourd » sur une ligne, onglets de 58 px */
/* Formulaire */
.cp-search.cp-search--finder { padding: 20px 20px 30px; border-radius: 0; background: #fff; }
.cp-search--finder .cp-finder__label { display: block; margin: 0; padding: 0; color: #ff0014; font-size: clamp(11.2px, calc(11.2px + 2.8 * ((100vw - 320px) / 704)), 14px); font-weight: 700; line-height: 1.2944; letter-spacing: 1.5px; text-align: center; text-transform: uppercase; }
.cp-search--finder .cp-finder__label::after { content: ""; display: block; width: 30px; height: 4px; margin: 13px auto 0; background: #ff0014; }
.cp-search--finder .cp-search__row { display: block; gap: 0; }
.cp-search--finder .cp-search__field { position: relative; margin-top: 15px; }
.cp-search--finder .cp-search__field > .cp-icon { position: absolute; top: 50%; left: 15px; z-index: 9; width: 18px; height: 19px; color: #ff0014; transform: translateY(-50%); }
.cp-search--finder .cp-search__field input { width: 100%; height: auto; padding: 13px 13px 13px 50px; border: 1px solid #b8b8b8; border-radius: 50px; background: #edeff5; color: #122043; font-size: 14px; font-weight: 700; line-height: 1.15; }
.cp-search--finder .cp-search__row > .cp-btn, .cp-search--finder .cp-search__row > button.cp-btn { display: block; width: 100%; margin-top: 15px; padding: 17px 20px; text-align: center; }
.cp-search--finder .cp-search__locate { position: relative; display: block; margin-top: 15px; padding: 0 0 0 30px; border: 0; background: none; color: #122043; font-size: 12px; font-weight: 400; line-height: 1.618; letter-spacing: 1.5px; text-align: left; text-transform: uppercase; cursor: pointer; }
.cp-search--finder .cp-search__locate > .cp-icon { position: absolute; top: 50%; left: 0; width: 22px; height: 22px; transform: translateY(-50%); }
.cp-search--finder .cp-search__locate u { display: inline-block; border-bottom: 3px solid #122043; font-weight: 700; text-decoration: none; }
@media (min-width: 896px) { .cp-search--finder .cp-search__row > .cp-btn { padding: 16px 30px; } }
/* Sous 1024 px (prod) : champ en 16 px, bouton 11,2 → 14 px sur une ligne de 1, suite du lien de géolocalisation masquée sous 385 px. */
@media (max-width: 1023px) {
	.cp-search--finder .cp-search__field input { font-size: 16px; }
	.cp-search--finder .cp-search__row > .cp-btn { min-height: 0; }
	.cp-search--finder .cp-search__row > .cp-btn, .cp-search--finder .cp-search__row > .cp-btn span { font-size: clamp(11.2px, calc(9.92727px + .397727vw), 14px); line-height: 1; }
}
@media (max-width: 384px) { .cp-search--finder .cp-search__locate-more { display: none; } }
@media (min-width: 1024px) {
	.cp-search.cp-search--finder { padding: 25px 40px 40px; }
	.cp-search--finder .cp-finder__label { letter-spacing: 3px; }
	.cp-search--finder .cp-finder__label::after { width: 42px; margin-top: 20px; }
	.cp-search--finder .cp-search__row { display: flex; flex-wrap: wrap; align-items: center; }
	.cp-search--finder .cp-search__field { width: 70%; padding-right: 40px; }
	.cp-search--finder .cp-search__field > .cp-icon { left: 20px; }
	.cp-search--finder .cp-search__field input { padding: 20px 30px 20px 60px; }
	.cp-search--finder .cp-search__row > .cp-btn, .cp-search--finder .cp-search__row > button.cp-btn { width: 30%; padding: 20px 30px; }
	.cp-search--finder .cp-search__locate { margin: 30px 0 0 10px; padding-left: 45px; }
}
.cp-search--finder .cp-finder__label { position: static; margin: 0; padding: 0; }
.cp-search--finder .cp-finder__label::after { position: static; left: auto; bottom: auto; transform: none; }

/* ---------- En-têtes de page (.hero-wrapper : contenu sur 1145 px, fil d'Ariane 14 px, titre 88 px) ---------- */
.cp-page-header .cp-page-header__inner { max-width: 1145px; padding-left: 10px; padding-right: 10px; }
.cp-page-header .cp-breadcrumb { padding: 20px 0; font-size: 14px; }
.cp-page-header .cp-breadcrumb a, .cp-page-header .cp-breadcrumb span { font-size: 14px; font-weight: 400; }
@media (max-width: 1023px) { .cp-page-header .cp-breadcrumb { display: none; } } /* .breadcrumb de la prod : masqué sous 1024 px */
.cp-page-header__title--rdv u { text-decoration: underline; text-decoration-thickness: from-font; }
@media (min-width: 1024px) { .cp-page-header__title--rdv { max-width: 995px; } }
.cp-page-header .cp-page-header__inner.cp-page-header__inner { padding-top: 10px; }
.cp-page-header .cp-page-header__text p { margin: 0 0 1em; color: #fff; font-size: clamp(16.5px, calc(16.5px + 13.5 * ((100vw - 320px) / 704)), 30px); font-weight: 600; line-height: 1.2944; }
/* « Voir la liste de nos centres » (.view-all-results) : flèche longue du sprite, tournée vers le bas */
.cp-finder__down { display: block; width: 40%; margin: 0 auto; padding: 10px; color: #fff; font-size: clamp(10.5px, calc(10.5px + 3.5 * ((100vw - 320px) / 704)), 14px); font-weight: 600; text-align: center; text-decoration: none; }
.cp-finder__down .cp-icon { display: none; }
.cp-finder__down::after { content: ""; display: block; width: 19px; height: 28px; margin: 10px auto; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 329 518'%3E%3Cpath fill='%23fff' d='M258.902 328.906L70.004 517.805 0 447.8l188.899-188.899L.2 70.205 70.205.2l258.8 258.801-70.003 70.004-.1-.1z'/%3E%3C/svg%3E") no-repeat center / contain; transform: rotate(90deg); }
@media (min-width: 1024px) {
	.cp-finder__down { margin-top: 70px; }
	.cp-finder__down::after { width: 25px; height: 36px; margin: 20px auto 40px; }
}
/* Pages localisateur (Trouver un centre, RDV, villes, Moto, PL) : carte de recherche dans le bandeau photo */
.cp-page-header .cp-page-header__inner { position: relative; }
.cp-page-header .cp-steps { position: absolute; top: 75px; right: 0; left: 0; margin: 0; }
@media (min-width: 1024px) {
	.cp-page-header:has(+ .cp-section--finder) .cp-page-header__inner.cp-page-header__inner { padding-bottom: 572px; }
	.cp-page-header:has(+ .cp-section--finder) .cp-page-header__title { max-width: 995px; margin: 56px 0 53px; padding: 10px 0; /* h1.larger de la prod */ font-size: 88px; line-height: 1.1; }
	.cp-page-header:has(+ .cp-section--finder) .cp-page-header__title--rdv { max-width: 995px; }
	.cp-page-header:has(+ .cp-section--finder) .cp-page-header__text { margin: 0; font-size: inherit; }
	.cp-page-header:has(+ .cp-section--finder) .cp-page-header__text p { margin: 0 0 30px; }
	.cp-page-header + .cp-section--finder .cp-finder__card { margin-top: -572px; }
	.cp-page-header + .cp-section--finder .cp-finder__down { margin-top: 80px; margin-bottom: 10px; color: #fff; }
}
/* Sous 1024 px (.post-type-archive-control-center .hero-wrapper de la prod) : bandeau de 571 px mini + 10 px, titre et bloc
   de recherche (marge haute auto) avec 10 px de padding, lien « Voir la liste » collé à la recherche, onglets juste sous le bandeau. */
@media (max-width: 1023px) {
	.cp-page-header:has(+ .cp-section--finder) .cp-page-header__inner.cp-page-header__inner { display: flex; flex-direction: column; min-height: 581px; padding-top: 0; padding-bottom: clamp(362px, calc(408.9px - 6.107vw), 386px); }
	.cp-page-header:has(+ .cp-section--finder) .cp-page-header__title { padding: 10px; }
	.cp-page-header:has(+ .cp-section--finder) .cp-page-header__text { margin-top: auto; padding: 10px 10px 0; }
	.cp-page-header:has(+ .cp-section--finder) .cp-finder__subtitle { margin-top: auto; margin-bottom: 0; padding: 10px 10px 0; } /* page Moto */
	.cp-page-header:has(+ .cp-section--finder) .cp-finder__subtitle + .cp-page-header__text { margin-top: 0; padding-top: 0; }
	.cp-page-header + .cp-section--finder .cp-finder__card { margin-top: calc(-1 * clamp(362px, calc(408.9px - 6.107vw), 386px)); margin-bottom: 0; }
	.cp-page-header + .cp-section--finder .cp-finder__down { width: calc(40% + 8px); margin-top: 10px; margin-bottom: 0; } /* 40 % de la largeur du bandeau (conteneur à 10 px de marge) */
	.cp-page-header + .cp-section--finder .cp-finder__down::after { margin-bottom: 0; }
	.cp-page-header + .cp-section--finder > .cp-container + .cp-finder__block { padding-top: 10px; }
}

/* ---------- Cartes de centres (.type-control-center) et encart promo (.map__promo_wrapper.classic_promo) ---------- */
.cp-centre-card.cp-centre-card { position: relative; display: block !important; margin: 0; padding: 0; border-radius: 0; background: none; box-shadow: none; overflow: visible; }
.cp-centre-card[hidden] { display: none !important; }
.cp-centre-card .cp-centre-card__box { position: relative; display: flex; flex-direction: column; height: 100%; margin: 0 auto 10px; padding: 20px 15px; background: #fff; color: #122043; font-size: 14px; }
.cp-centre-card .cp-centre-card__media { display: block; margin: -5px 0 20px; border-radius: 0; aspect-ratio: auto; overflow: hidden; }
.cp-centre-card .cp-centre-card__media img { display: block; width: 100%; height: auto; max-height: 200px; margin: 0 0 10px; border-radius: 0; object-fit: cover; }
.cp-centre-card .cp-centre-card__body { display: flex; flex-direction: column; flex-grow: 1; padding: 0; }
.cp-centre-card .cp-centre-card__name { margin: 0 0 5px; color: #122043; font-size: clamp(13.5px, calc(13.5px + 4.5 * ((100vw - 320px) / 704)), 18px); font-weight: 700; line-height: 1.2944; letter-spacing: 2px; text-transform: uppercase; }
.cp-centre-card .cp-centre-card__name a { color: #122043; text-decoration: none; }
.cp-centre-card .cp-centre-card__name a:hover { color: #ff0014; }
.cp-centre-card .cp-centre-card__address { margin: 0 0 5px; color: #122043; font-size: clamp(11.2px, calc(11.2px + 2.8 * ((100vw - 320px) / 704)), 14px); font-weight: 600; line-height: 1.618; }
.cp-centre-card .cp-centre-card__infos { display: block; margin: 0; padding: 0; list-style: none; }
.cp-centre-card .cp-centre-card__infos li { position: relative; display: block; padding: 4px 0 4px 28px; color: #ff0014; font-size: 14px; font-weight: 700; line-height: 1.618; text-align: left; }
.cp-centre-card .cp-centre-card__infos li a { color: #ff0014; text-decoration: none; }
.cp-centre-card .cp-centre-card__infos li .cp-icon { display: none; }
.cp-centre-card .cp-centre-card__infos li::before { content: ""; position: absolute; top: 4px; left: 0; width: 21px; height: 21px; background: url(../img/prod/pixicons/saturday-open.png) no-repeat center / cover; }
.cp-centre-card .cp-centre-card__infos li:has(a[href^="tel:"])::before { background-image: url(../img/prod/pixicons/phone.png); }
.cp-centre-card .cp-centre-card__types { display: flex; flex-direction: row; gap: 0; margin: 10px 0 10px -5px; padding: 0; list-style: none; }
.cp-centre-card .cp-centre-card__types li { display: block; width: auto; height: auto; margin: 0; padding: 0; border-radius: 0; background: none; }
.cp-centre-card .cp-centre-card__cat { display: block; width: 45px; height: 45px; margin: 5px; }
.cp-centre-card .cp-centre-card__actions { display: block; margin-top: auto; }
.cp-centre-card .cp-centre-card__actions a.cp-btn { display: block; width: 100%; margin: 0 0 10px; text-align: center; }
.cp-centre-card .cp-centre-card__book { display: block; margin: 0 0 15px; color: #122043; font-size: clamp(11.2px, calc(11.2px + 2.8 * ((100vw - 320px) / 704)), 14px); font-weight: 700; text-align: center; text-decoration: underline; }
.cp-centre-card .cp-centre-card__book:hover { text-decoration: none; }
.cp-centre-card .cp-centre-card__rating { display: flex; align-items: center; justify-content: center; gap: 0; margin: 0; font-size: clamp(11.2px, calc(11.2px + 2.8 * ((100vw - 320px) / 704)), 14px); font-weight: 700; text-decoration: underline; }
.cp-centre-card .cp-centre-card__rating > a { padding: 0 10px; color: #122043; text-transform: uppercase; }
.cp-centre-card .cp-centre-card__note { display: none; }
.cp-centre-card .cp-centre-card__rating .cp-stars { gap: 0; }
.cp-centre-card .cp-centre-card__rating .cp-stars__star { width: 30px; height: 30px; }
/* Encart promo */
.cp-promo-tag { position: absolute; top: 0; left: 0; z-index: 9; display: flex; flex-direction: column; min-height: 0; padding: 0 10px 0 25px; border-radius: 0 0 25px 0; background: #101d3c; color: #fff; font-size: clamp(9.35px, calc(9.35px + 1.65 * ((100vw - 320px) / 704)), 11px); line-height: 1.618; text-decoration: none; text-transform: uppercase; }
.cp-promo-tag:hover { color: #fff; text-decoration: none; }
.cp-promo-tag .cp-promo-tag__ribbon { position: absolute; top: 90px; left: 0; display: block; width: 90px; height: auto; padding: 0; background: #f9ad53; color: #101d3c; font-size: 1em; font-weight: 700; line-height: 1.618; letter-spacing: normal; text-align: center; transform: rotate(-90deg); transform-origin: 0 0; writing-mode: horizontal-tb; }
.cp-promo-tag .cp-promo-tag__body { display: block; padding: 10px 0 0; line-height: 1.618; }
.cp-promo-tag .cp-promo-tag__body small { display: inline; font-size: 1em; font-weight: 400; }
.cp-promo-tag .cp-promo-tag__body small::after { content: "\A"; white-space: pre; }
.cp-promo-tag .cp-promo-tag__body strong { display: block; color: #f9ad53; font-size: clamp(18px, calc(18px + 6 * ((100vw - 320px) / 704)), 24px); font-weight: 700; line-height: 1; }
.cp-promo-tag .cp-promo-tag__body span { display: block; font-size: 1em; font-weight: 400; }
.cp-promo-tag .cp-promo-tag__body span s { text-decoration: line-through; }
.cp-promo-tag .cp-promo-tag__body em { display: block; color: #f9ad53; font-size: 1em; font-style: normal; font-weight: 700; }
@media (max-width: 768px) { .cp-promo-tag { top: -15px; } }
@media (min-width: 768px) {
	.cp-promo-tag { min-height: 105px; padding: 0 20px 0 30px; }
	.cp-promo-tag .cp-promo-tag__ribbon { top: 105px; width: 105px; }
	.cp-centre-card .cp-centre-card__media { margin: 0; }
}
@media (min-width: 1024px) {
	.cp-centre-card .cp-centre-card__box { max-width: 295px; padding: 10px 10px 30px; }
	.cp-centre-card .cp-centre-card__address { margin-bottom: 20px; }
	.cp-centre-card .cp-centre-card__cat { width: 60px; height: 60px; }
	.cp-centre-card .cp-centre-card__actions { min-height: 0; }
	.cp-centre-card .cp-centre-card__book { margin-bottom: 25px; }
}
.cp-centre-card .cp-centre-card__media { position: relative; height: auto; background: none; }
.cp-centre-card .cp-centre-card__media img { position: static; inset: auto; }
.cp-centre-card .cp-centre-card__head { padding: 0; }
.cp-centre-card .cp-centre-card__address { padding: 0; }
.cp-centre-card .cp-centre-card__actions { padding: 0; }
.cp-centre-card .cp-centre-card__actions a.cp-btn { padding: 13.5px 30px; font-size: clamp(11.2px, calc(11.2px + 2.8 * ((100vw - 320px) / 704)), 14px); line-height: 1; }
@media (min-width: 896px) { .cp-centre-card .cp-centre-card__actions a.cp-btn { padding-top: 16px; padding-bottom: 16px; } }
@media (min-width: 1024px) { .cp-centre-card .cp-centre-card__actions a.cp-btn { padding-top: 17px; padding-bottom: 17px; } }
.cp-centre-card .cp-centre-card__rating { padding: 0; color: #122043; }
.cp-promo-tag { box-shadow: none; }

/* Carrousel des centres (.control-center-loop) : 3 à 6 par vue selon la largeur (paliers de 295 px de la prod) */
[data-cp-finder] .cp-finder__list.cp-finder__list.cp-slider__track { display: flex !important; flex-direction: row; grid-auto-columns: auto; gap: 0 !important; padding: 0 !important; }
.cp-finder__list.cp-slider__track > li { flex: 0 0 100%; }
@media (min-width: 590px) { .cp-finder__list.cp-slider__track > li { flex-basis: 50%; } }
@media (min-width: 885px) { .cp-finder__list.cp-slider__track > li { flex-basis: calc(100% / 3); } }
@media (min-width: 1180px) { .cp-finder__list.cp-slider__track > li { flex-basis: 25%; } }
@media (min-width: 1475px) { .cp-finder__list.cp-slider__track > li { flex-basis: 20%; } }
@media (min-width: 1770px) { .cp-finder__list.cp-slider__track > li { flex-basis: calc(100% / 6); } }
[data-cp-finder] .cp-finder__list .cp-centre-card.cp-centre-card { display: block !important; grid-row: auto; grid-template-rows: none; }
[data-cp-finder] .cp-finder__list .cp-centre-card.cp-centre-card[hidden] { display: none !important; }
[data-cp-finder] .cp-finder__list .cp-centre-card > .cp-centre-card__box > * { grid-row: auto; }

/* ---------- Bouton « retour en haut » (.to-top) ---------- */
.cp-to-top { position: fixed; right: 36px; bottom: 100px; z-index: 100000; display: inline-block; width: 40px; height: 40px; overflow: hidden; border-radius: 50%; background: #122043 url(../img/prod/to-top.svg) no-repeat center 50%; box-shadow: 0 0 10px rgba(0, 0, 0, .05); outline: 0; text-indent: 100%; white-space: nowrap; visibility: hidden; opacity: 0; transition: all .3s; }
.cp-to-top.is-visible { visibility: visible; opacity: 1; }
.cp-to-top.is-faded { opacity: .5; }
.cp-to-top.is-faded:hover { opacity: 1; }
@media (min-width: 1024px) { .cp-to-top { right: 30px; bottom: 30px; width: 60px; height: 60px; } }

/* ---------- Accueil : hero, géométrie de la prod à partir de 768 px ----------
   .wrapper_slider_content collé au bord gauche : 55 % (53 % dès 1024 px) de la largeur, 850 px max, padding gauche
   5 % (7 %), contenu de 630 px max calé à droite (.wrapper_slider_content--inner). */
@media (min-width: 768px) {
	.cp-hero .cp-container.cp-hero__inner { max-width: none; margin: 0; padding-left: 0; padding-right: 0; }
	.cp-hero .cp-hero__panel, .cp-hero--large .cp-hero__panel { width: 55%; max-width: 850px; margin: 0; padding: 20px 20px 20px 5%; border-radius: 0; background: rgba(16, 28, 59, .85); box-shadow: none; }
	.cp-hero .cp-hero__content { max-width: 630px; margin-left: auto; }
	.cp-hero .cp-hero__kicker, .cp-hero--large .cp-hero__kicker { padding-right: 0; }
}
@media (min-width: 1024px) {
	.cp-hero .cp-hero__panel, .cp-hero--large .cp-hero__panel { width: 53%; padding: 40px 40px 40px 7%; }
}
/* Encart « Meilleur tarif » (.map__promo_wrapper.right-positioned) : colonne centrée verticalement, hauteur mini
   91 / 105 / 133 px, largeur au contenu (190 px dès 1400 px), texte « À partir de » + prix en ligne (.promo_text). */
.cp-hero .cp-hero__panel a.cp-price-tag { display: flex; flex-direction: column; justify-content: center; top: 0; right: 0; left: auto; width: auto; min-height: 91px; padding: 0 25px 0 10px; }
.cp-hero .cp-price-tag__text { display: block; padding-top: 10px; line-height: 1.618; }
.cp-hero .cp-hero__panel a.cp-price-tag .cp-price-tag__label { display: block; line-height: inherit; text-transform: uppercase; }
.cp-hero .cp-hero__panel a.cp-price-tag .cp-price-tag__price { display: inline; margin: 0; line-height: 1; font-weight: 700; }
@media (max-width: 767px) { .cp-hero .cp-hero__panel a.cp-price-tag { top: -15px; } }
@media (min-width: 768px) { .cp-hero .cp-hero__panel a.cp-price-tag { min-height: 105px; padding: 0 30px 0 15px; } }
@media (min-width: 1400px) {
	.cp-hero .cp-hero__panel a.cp-price-tag { width: 190px; min-height: 133px; padding-top: 0; }
	.cp-hero .cp-price-tag__text { padding-top: 35px; }
}

/* ---------- Accueil : hero 768-1023 px, boutons véhicules et barre d'accès (.frontpage_nav) ----------
   Dès 768 px : hero de 70vh (padding 40 / 80, panneau centré), boutons Auto / Moto / PL collés au bord droit,
   barre de 1240 px max (100 % - 30 px) qui chevauche le bas de la photo de 50 px. */
@media (min-width: 768px) {
	.cp-hero .cp-hero__inner { display: flex; flex-direction: row; align-items: center; min-height: 70vh; padding-top: 40px; padding-bottom: 80px; gap: 0; }
	.cp-hero .cp-hero__panel { align-self: center; }
	.cp-hero .cp-hero__kicker { margin: 0; line-height: 1.618; letter-spacing: normal; }
	.cp-hero .cp-hero__title { margin: 0 0 10px; line-height: 1.1; letter-spacing: normal; }
	.cp-hero .cp-hero__text { margin: 0; letter-spacing: 2px; line-height: 1.2944; }
	.cp-hero .cp-hero__vehicles { padding: 0; gap: 0; grid-template-columns: none; }
	.cp-hero .cp-hero__inner { isolation: isolate; }
	.cp-hero .cp-hero__media { display: block; inset: 0; }
	.cp-hero .cp-quick-wrap, .cp-hero .cp-quick-wrap.cp-container { position: relative; top: auto; bottom: auto; left: auto; right: auto; z-index: 20; width: calc(100% - 30px); max-width: 1240px; margin: -50px auto 0; padding: 0; transform: none; }
	.cp-hero.cp-hero { background: transparent; }
	/* Bloc suivant (.frontpage_block_heavy) : 30 px sous la barre, 116 px dès 1024 px. */
	.cp-hero.has-quick + .cp-section, .cp-hero.has-quick + .cp-section.cp-bg--light.cp-section--text_image { padding-top: 30px; }
	.cp-hero .cp-quick__item, .cp-hero .cp-quick__item:first-child, .cp-hero .cp-quick__toggle { min-height: 0; font-size: clamp(12.1px, calc(12.1px + 9.9 * ((100vw - 320px) / 704)), 22px); }
	.cp-hero .cp-quick__ico { width: 30px; margin: 0; padding-right: 15px; box-sizing: border-box; }
}
@media (min-width: 1024px) {
	.cp-hero.has-quick + .cp-section, .cp-hero.has-quick + .cp-section.cp-bg--light.cp-section--text_image { padding-top: 116px; }
	.cp-hero .cp-hero__title { margin-bottom: 25px; }
	.cp-hero .cp-hero__text { margin-bottom: 10px; }
	.cp-hero .cp-quick__ico { box-sizing: content-box; }
	.cp-hero .cp-quick__item, .cp-hero .cp-quick__item:first-child, .cp-hero .cp-quick__toggle { min-height: 100px; padding-top: 14px; padding-bottom: 14px; }
	.cp-hero .cp-quick__ico { width: auto; margin: 0 10px; }
}
/* Mentions sous l'accroche (#hp-mentions) : 12 → 15 px entre 320 et 1600 px, interligne 1.1. */
.cp-hero .cp-hero__note { margin-top: 5px; font-size: clamp(12px, calc(12px + 3 * ((100vw - 320px) / 1280)), 15px); line-height: 1.1; }
/* Survols de la prod : aucun effet sur les liens véhicules ; accès rapides en fond marine, texte
   blanc, pictos inversés, le filet gauche de la loupe disparaît (border-left: #122043). Pas de transition. */
.cp-hero .cp-hero__vehicles a:hover, .cp-hero .cp-hero__vehicles a:focus-visible { color: #fff; text-decoration: none; } /* prod : la règle .frontpage_slider_link a (blanc, sans soulignement) l'emporte sur a:hover, aucun effet visible */
.cp-hero .cp-quick__item, .cp-hero .cp-quick__item > .cp-icon, .cp-hero .cp-quick__item img, .cp-hero .cp-quick__search-icon { transition: none; }
.cp-hero .cp-quick__item:hover, .cp-hero .cp-quick__item:focus-visible { background: #fff; color: #ff0014; text-decoration: underline; }
@media (min-width: 768px) {
	.cp-hero .cp-quick__item:hover, .cp-hero .cp-quick__item:focus-visible { background: #122043; color: #fff; text-decoration: none; }
	.cp-hero .cp-quick__item:hover .cp-quick__ico, .cp-hero .cp-quick__item:focus-visible .cp-quick__ico { filter: invert(100%) grayscale(100%); }
	.cp-hero .cp-quick .cp-quick__item:hover > .cp-quick__search-icon, .cp-hero .cp-quick .cp-quick__item:focus-visible > .cp-quick__search-icon { border-left: none; color: #fff; }
}

/* ---------- Bandeau gris (.header-wrapper .banner) ----------
   Texte et note en ligne, centrés : 18 px (13 px jusqu'à 768 px), graisse 900, interligne 1.3, espacement 1 px,
   padding 10 px ; note à 15 px du texte. Étoiles : mêmes SVG que la prod, 1.25em (30 px, 20 px en mobile). */
.cp-band { padding: 10px 0; background: #ebebeb; color: #122043; font-size: 18px; font-weight: 900; line-height: 1.3; letter-spacing: 1px; text-align: center; }
.cp-band .cp-band__inner { display: block; min-height: 0; padding-block: 0; }
.cp-band p, .cp-band .cp-band__rating { display: inline-block; vertical-align: middle; }
.cp-band p { font-size: inherit; font-weight: 900; letter-spacing: 1px; }
.cp-band p strong { color: #ff0014; font-weight: 900; text-decoration: underline; text-decoration-thickness: auto; text-underline-offset: auto; }
.cp-band .cp-band__rating { margin-left: 15px; }
.cp-band .cp-band__rating .avis-verifie { margin: 0; font-size: inherit; }
.cp-band .cp-band__rating .rating-holder { font-size: inherit; }
@media (max-width: 768px) {
	.cp-band { font-size: 13px; }
	.cp-band p strong { display: block; text-align: center; }
}
@media (max-width: 767px) {
	.cp-band p { display: none; }
	.cp-band .cp-band__rating { margin-left: 0; }
}

/* ---------- Recherche plein écran (.menu-mobile.search-is-active de la prod) ----------
   Voile marine 70 %, carte blanche de 100 % - 50 px sans arrondi ni ombre, croix marine en deux barres de 50 × 10 px
   (80 px du haut, 70 px de la droite), formulaire de 70 % centré et souligné d'un filet marine de 1 px, champ de
   80 px en 40 px, loupe rouge de 25 px à droite. */
.cp-searchpanel { z-index: 9999; display: block; padding: 0; background: rgba(18, 32, 67, .7); animation: none; }
.cp-searchpanel[hidden] { display: none; }
.cp-searchpanel .cp-searchpanel__box { position: absolute; top: 50%; left: 50%; display: block; width: calc(100% - 50px); height: calc(100% - 50px); padding: 0 20px; border-radius: 0; background: #fff; box-shadow: none; transform: translate(-50%, -50%); }
.cp-searchpanel .cp-searchpanel__close { position: absolute; top: 80px; right: 70px; z-index: 999; display: block; width: 50px; height: 50px; padding: 0; border: 0; border-radius: 0; background: none; cursor: pointer; transition: none; }
.cp-searchpanel .cp-searchpanel__close::before, .cp-searchpanel .cp-searchpanel__close::after { content: ""; position: absolute; top: 0; left: 0; width: 50px; height: 10px; background: #122043; transform: rotate(45deg); }
.cp-searchpanel .cp-searchpanel__close::after { transform: rotate(-45deg); }
.cp-searchpanel .cp-searchpanel__close:hover { background: none; }
.cp-searchpanel .cp-searchpanel__form { position: relative; top: 50%; display: flex; gap: 0; width: 70%; margin: 0 auto; border-bottom: 1px solid #122043; transform: translateY(-50%); }
.cp-searchpanel .cp-searchpanel__form:focus-within { border-color: #122043; }
.cp-searchpanel .cp-searchpanel__form input { flex: 1; height: 80px; margin: 15px auto; padding: 0 70px 0 0; border: 0; border-radius: 5px; background: #fff; color: #000; font-size: 40px; font-weight: 400; }
.cp-searchpanel .cp-searchpanel__form input::placeholder { color: #122043; font-weight: 600; opacity: 1; }
.cp-searchpanel .cp-searchpanel__form button { position: absolute; top: 50%; right: 0; width: 60px; height: 40px; padding: 0; border: 0; border-radius: 5px; background: #fff url(../img/prod/search.svg) center / 25px auto no-repeat; transform: translateY(-50%); transition: none; }
.cp-searchpanel .cp-searchpanel__form button:hover { background-color: #fff; }
@media (max-width: 767px) {
	.cp-searchpanel .cp-searchpanel__close { top: 30px; right: 30px; }
	.cp-searchpanel .cp-searchpanel__form { width: 100%; }
	.cp-searchpanel .cp-searchpanel__form input { height: 60px; font-size: 24px; }
}

/* Distance sur la photo d'un centre (.control-center-thumbnail .kilometers-tag) : pavé rouge collé en bas à droite. */
.cp-centre-card .cp-centre-card__media .cp-centre-card__distance, .cp-dist.cp-centre-card__distance { right: 0; bottom: 0; padding: 6px 13px; border-radius: 0; background: #ff0014; color: #fff; font-size: 14px; font-weight: 700; line-height: 1.618; box-shadow: none; }

/* Note d'une carte centre (.type-control-center .avis-verifie-item) : lien « 628 AVIS » sans soulignement (rouge
   souligné au survol, a:hover de la prod), étoiles de 30 px. */
.cp-centre-card .cp-centre-card__rating > a { text-decoration: none; border: 0; }
.cp-centre-card .cp-centre-card__rating > a:hover, .cp-centre-card .cp-centre-card__rating > a:focus-visible { color: #122043; text-decoration: underline; } /* prod : reste marine (.avis-verifie-item a), souligné par a:hover */
.cp-centre-card .cp-centre-card__rating .avis-verifie { display: inline-block; font-size: 14px; }
.cp-centre-card .cp-centre-card__rating .rating-holder .c-rating .rating-star { padding: 15px; margin: 0; cursor: default; }

/* Carrousel des centres (.control-center-loop .slick-nav-wrapper) : navigation centrée, 60 px au-dessus et en dessous,
   sans fond, flèches de 70 px dès 1024 px. */
.cp-finder__slider .cp-slider__nav.cp-slider__nav { justify-content: center; margin: 60px auto; background: transparent; }
@media (min-width: 1024px) { .cp-finder__slider .cp-slider__nav.cp-slider__nav .cp-slider__btn.cp-slider__btn { width: 70px; height: 70px; } }
/* Services : liste à 17 px sous les onglets (.slider-service .slick-list), comme la prod. */
@media (min-width: 1024px) { .cp-section--services .cp-services.cp-slider__track { position: relative; top: 15px; } } /* décalage visuel seul : la navigation ne bouge pas */

/* Newsletter du pied de page : aucun contour au focus (champ et bouton), comme la prod ; messages Contact Form 7
   éventuels sous le bouton, sans cadre, sans chevaucher le bouton. */
.cp-footer .cp-footer__newsletter input[type="email"]:focus, .cp-footer .cp-footer__newsletter input[type="email"]:focus-visible,
.cp-footer .cp-footer__newsletter input[type="submit"]:focus, .cp-footer .cp-footer__newsletter input[type="submit"]:focus-visible { outline: none; box-shadow: none; }
.cp-footer .cp-footer__newsletter .wpcf7-not-valid { border: 0; box-shadow: none; }
.cp-footer .cp-footer__newsletter .wpcf7-not-valid-tip { display: block; margin: -5px 0 5px 20px; color: #ff0014; font-size: 12px; font-weight: 600; }
.cp-footer .cp-footer__newsletter .wpcf7-response-output { clear: both; margin: 10px 0 0 !important; padding: 0 !important; border: 0 !important; color: #fff; font-size: 12px; }

/* « Tout savoir » : bouton « Je veux tout savoir » hors du bloc texte (.frontpage_allabout_txt_wrap), aligné sur le
   padding de la carte blanche, 25 px sous le bloc texte (padding bas 10 px). */
@media (min-width: 1024px) { .cp-dossiers-featured .cp-dossier-main a.cp-btn { margin: 35px 0 0 -25px; } }
/* « Tout savoir » : padding bas 40 px, 50 px dès 768 px ; dès 1024 px s'ajoute celui de .frontpage_allabout_wrapper
   (10 px en haut, 50 px en bas). */
.cp-section.cp-dossiers-featured { padding-top: 0; padding-bottom: 40px; }
@media (min-width: 768px) { .cp-section.cp-dossiers-featured { padding-bottom: 50px; } }
@media (min-width: 1024px) { .cp-section.cp-dossiers-featured { padding-top: 10px; padding-bottom: 100px; } }
/* Pied de page dès 1024 px : « Newsletter » à 62 px sous le dernier lien d'aide, bouton « M'abonner » à 20 px du
   titre « Retrouvez nous sur » (mesures de la prod en 1920). */
@media (min-width: 1024px) {
	.cp-footer .cp-footer__col > :not(.cp-footer__newsletter) + .cp-footer__subtitle { margin-top: 30px; }
	.cp-footer .cp-footer__newsletter input[type="submit"] { margin-bottom: 20px; }
}
/* « Tout savoir » dès 768 px : colonnes qui rétrécissent ensemble comme la prod (bases 653 et 516 px, soit 569 / 450 px
   à 1366 et 653 / 527 px à 1920). */
@media (min-width: 768px) {
	.cp-dossiers-featured .cp-dossier-main { flex: 0 1 653px; }
	.cp-dossiers-featured .cp-dossier-side { flex: 1 1 516px; }
}
/* « Tous les dossiers » en mobile (.tout-dossiers) : bouton marine pleine largeur - 70 px, 15 px sous la carte. */
.cp-section.cp-dossiers-featured a.cp-btn.cp-dossiers-featured__more { display: block; min-width: 0; width: calc(100% - 70px); margin: 15px auto 0; }
@media (min-width: 768px) { .cp-section.cp-dossiers-featured a.cp-btn.cp-dossiers-featured__more { display: none; } }
.cp-dossiers-featured a.cp-btn { font-size: clamp(11.2px, calc(11.2px + 2.8 * ((100vw - 320px) / 704)), 14px); }
/* Magazine : navigation du carrousel (.frontpage_block_lastnews .slick-nav-wrapper) centrée sous les articles, 30 px
   au-dessus dès 768 px ; masquée quand tous les articles tiennent dans la vue. */
.cp-posts-simple .cp-slider__nav.cp-slider__nav { justify-content: center; margin: 0; }
@media (min-width: 768px) { .cp-posts-simple .cp-slider__nav.cp-slider__nav { margin-top: 30px; } }
@media (max-width: 1023px) { .cp-section--services .cp-services.cp-slider__track { margin-top: 15px; } } /* liste à 17 px sous les onglets */
/* La photo garde 10 px de marge basse : la distance se cale sur le bas de la photo, pas sous elle (comme la prod). */
.cp-centre-card .cp-centre-card__media .cp-centre-card__distance { bottom: 10px; }
/* Services entre 900 et 1023 px : empilé comme la prod (photo pleine largeur, encart marine dessous, texte ensuite),
   et non en deux colonnes ; la prod ne passe en deux colonnes qu'à partir de 1024 px. */
@media (min-width: 900px) and (max-width: 1023px) {
	.cp-section--services .cp-services-wide.cp-split { grid-template-columns: 1fr; }
	.cp-section--services .cp-services-wide .cp-services__media { height: auto; min-height: 0; overflow: visible; }
	.cp-section--services .cp-services-wide .cp-services__media img { position: static; width: 100%; height: auto; min-height: 0; }
	.cp-section--services .cp-services-wide .cp-services__media .cp-services__badge { position: relative; inset: auto; width: 100%; }
}
/* « 1089 AVIS » au survol : un seul trait, celui du navigateur (a:hover de la prod), sans bordure ni ombre. */
.cp-centre-card .cp-centre-card__rating > a, .cp-centre-card .cp-centre-card__rating > a:hover, .cp-centre-card .cp-centre-card__rating > a:focus-visible { border: 0; box-shadow: none; outline: 0; background: none; text-decoration-thickness: auto; text-underline-offset: auto; }
.cp-centre-card .cp-centre-card__rating .avis-verifie, .cp-centre-card .cp-centre-card__rating .rating-holder { text-decoration: none; }
/* Onglets « Nos centres / Voir les centres sur la carte » (#tab-results.search-tabs) : 320 × 104 px, padding 10 px 32 px,
   trait actif de 6 px, 50 px sous le bloc de recherche. */
@media (min-width: 768px) {
	.cp-finder__switch { margin-top: 13px; }
	.cp-finder__switch a { box-sizing: border-box; width: 320px; min-width: 0; min-height: 104px; padding: 10px 32px 0; border-bottom-width: 6px; }
}
/* Même onglets, modèle de la prod à toutes les largeurs (.search-tabs li a) : lien en bloc, picto centré à 10 px de marge
   (repère 19 × 31 / carte 35 × 31, 24 × 39 / 44 × 39 dès 1024 px), trait navy, rouge actif ; 12 px puis 14 px dès 1024 px.
   Largeur : la moitié du bandeau moins 20 px (50 % - 5 px du conteneur à 15 px de marge), 320 px maxi. */
.cp-finder__switch a { display: block; flex: none; box-sizing: border-box; width: calc(50% - 5px); max-width: 320px; min-width: 0; min-height: 0; padding: 10px calc(5% - .5px); border-bottom: 6px solid transparent; font-size: 12px; line-height: 1.4; text-align: center; }
.cp-finder__switch a.is-active { border-bottom-color: #ff0014; }
.cp-finder__switch .cp-switch-ico { display: block; margin: 10px auto; stroke: #122043; stroke-width: 20px; }
.cp-finder__switch a.is-active .cp-switch-ico, .cp-finder__switch a:hover .cp-switch-ico, .cp-finder__switch a:focus-visible .cp-switch-ico { stroke: #ff0014; }
.cp-finder__switch .cp-switch-ico--pin { width: 19px; height: 31px; }
.cp-finder__switch .cp-switch-ico--map { width: 35px; height: 31px; }
@media (max-width: 1023px) { .cp-finder__switch { flex-wrap: wrap; margin-top: 0; margin-bottom: 20px; } }
@media (min-width: 768px) { .cp-finder__switch a { padding: 10px 32px; } }
@media (min-width: 1024px) {
	.cp-finder__switch a { font-size: 14px; }
	.cp-finder__switch .cp-switch-ico--pin { width: 24px; height: 39px; }
	.cp-finder__switch .cp-switch-ico--map { width: 44px; height: 39px; }
}
/* Carrousel des partenaires (page Promos, .promo_block_partenaire .slick-nav-wrapper) : bloc blanc de 300 px centré,
   20 px plus bas, flèches au centre, barres puis compteur « 1/4 » en dessous, centrés. */
.cp-section--logos .cp-slider__nav.cp-slider__nav { position: relative; top: 20px; display: flex; justify-content: center; width: 300px; max-width: 300px; margin: 0 auto 20px; background: #fff; }
.cp-section--logos .cp-slider__nav.cp-slider__nav .cp-slider__btn.cp-slider__btn { display: inline-flex; vertical-align: top; }
.cp-section--logos .cp-slider__nav.cp-slider__nav .cp-slider__bars { position: absolute; top: calc(100% + 14px); right: 0; left: 0; justify-content: center; margin: 0; }
.cp-section--logos .cp-slider__nav.cp-slider__nav .cp-slider__count { position: absolute; top: calc(100% + 50px); right: 0; left: 0; margin: 0; text-align: center; font-size: clamp(15px, calc(15px + 5 * ((100vw - 320px) / 704)), 20px); }
/* Onglets Automobile / Moto / Poids lourd : pas de barre collante au défilement sur ordinateur, comme la prod (ses
   .steps__tabs ne restent collés que dans leur bloc de recherche). */
@media (min-width: 768px) { .cp-finder__sticky { display: none !important; } }
/* Encart « Meilleur tarif » : aucun effet au survol, comme la prod (.map__promo_wrapper:hover reste blanc, sans soulignement). */
.cp-hero a.cp-price-tag, .cp-hero a.cp-price-tag:hover, .cp-hero a.cp-price-tag:focus-visible { filter: none; color: #fff; text-decoration: none; transition: none; }
/* Listes de centres en mobile (prod : boucle FacetWP non carrousel) : cartes empilées, 10 px d'écart, 5 puis
   « Voir plus de centres » (bouton marine sans fond, 16 px gras). */
@media (max-width: 767px) {
	[data-cp-finder] .cp-finder__list.cp-finder__list.cp-slider__track { flex-direction: column; overflow: visible !important; }
	[data-cp-finder] .cp-finder__list.cp-slider__track > li { flex: none; width: 100%; margin-bottom: 10px; }
	[data-cp-finder] .cp-finder__list .cp-centre-card.cp-centre-card.is-extra { display: none !important; }
	[data-cp-finder] .cp-finder__slider .cp-slider__nav { display: none !important; }
}
.cp-finder__more { display: block; width: 100%; margin: 0 0 20px; padding: 13.5px 30px; border: 0; border-radius: 50px; background: transparent; color: #122043; font-size: 16px; font-weight: 700; cursor: pointer; }
.cp-finder__more[hidden] { display: none; }
/* Newsletter : fenêtre de confirmation de la prod (.wrapper_message-send.newsletter-confirm, _contact.scss) ; le
   message Contact Form 7 du pied de page est remplacé par cette fenêtre. */
.cp-footer .cp-footer__newsletter .wpcf7 form.sent .wpcf7-response-output { display: none; }
.cp-nl-confirm { position: fixed; top: 93px; right: 0; left: 0; z-index: 100002; max-width: 650px; height: 100%; max-height: 550px; margin: 0 auto; border: 3px solid #122043; background: #fff; color: #122043; font-weight: 600; }
.cp-nl-confirm__title { position: relative; z-index: 8; display: block; margin: 0; padding: 30px 80px; background: #77df7a; color: #fff; font-size: clamp(15px, calc(15px + 15 * ((100vw - 320px) / 704)), 30px); font-weight: 700; line-height: 1.2; text-align: center; text-transform: uppercase; }
.cp-nl-confirm__title svg { position: absolute; top: 50%; left: 25px; width: 42px; height: 42px; transform: translateY(-50%); }
.cp-nl-confirm__title::after { content: ""; position: absolute; right: 0; bottom: -20px; left: 0; width: 0; height: 0; margin: 0 auto; border-top: 20px solid #77df7a; border-right: 20px solid transparent; border-left: 20px solid transparent; }
.cp-nl-confirm__body { display: flex; flex-direction: column; align-items: center; justify-content: center; height: calc(100% - 150px); padding: 30px 20px 0; font-weight: 700; text-align: center; }
.cp-nl-confirm__body p { margin: 0; color: #122043; }
.cp-nl-confirm__close { position: relative; min-width: 280px; margin-top: 20px; padding: 13.5px 30px; border: 2px solid #122043; border-radius: 50px; background: transparent; color: #122043; font: inherit; font-size: clamp(11.2px, calc(11.2px + 2.8 * ((100vw - 320px) / 704)), 14px); font-weight: 700; line-height: 1; cursor: pointer; }
.cp-nl-confirm__close:hover, .cp-nl-confirm__close:focus-visible { border-color: #253f84; color: #253f84; outline: none; }
.cp-nl-confirm__close svg { position: absolute; top: 50%; left: 20px; width: 10px; height: 10px; transform: translateY(-50%); }
@media (min-width: 768px) { .cp-nl-confirm__close { padding: 16px 30px; } }
@media (min-width: 1024px) { .cp-nl-confirm__close { padding: 17px 30px; } }
@media (max-width: 767px) { .cp-nl-confirm { top: 56px; bottom: 0; max-height: none; border: 0; } }
@media (min-width: 768px) { body.cp-nl-overlay::before { content: ""; position: fixed; inset: 0; z-index: 100001; background: rgba(255, 255, 255, .85); } }
/* Recherche de centre sous 1024 px (prod : .cs-search pleine largeur, 10 px de marge ; liste des centres 1 carte par vue). */
@media (max-width: 1023px) {
	.cp-page-header + .cp-section--finder > .cp-container { padding-left: 10px; padding-right: 10px; }
	[data-cp-finder] .cp-finder__list.cp-slider__track > li { flex-basis: 100%; }
}
/* Cartes centres en mobile, comme la prod (.entry__main en flex) : adresse, téléphone et samedi dans une colonne
   de 280 px, pictos véhicules empilés à droite (colonne de 55 px, 5 px au-dessus de l'adresse), bouton 20 px dessous. */
@media (max-width: 767px) {
	.cp-centre-card .cp-centre-card__body { display: grid; grid-template-columns: minmax(0, 1fr) 55px; gap: 0 10px; align-items: start; }
	.cp-centre-card .cp-centre-card__body > .cp-centre-card__head { margin-top: 10px; }
	.cp-centre-card .cp-centre-card__body > * { grid-column: 1 / -1; }
	.cp-centre-card .cp-centre-card__body > .cp-centre-card__address { grid-column: 1; grid-row: 2; }
	.cp-centre-card .cp-centre-card__body > .cp-centre-card__infos { grid-column: 1; grid-row: 3; margin-bottom: 20px; }
	.cp-centre-card .cp-centre-card__body > .cp-centre-card__types { grid-column: 2; grid-row: 2 / span 2; flex-direction: column; margin: -5px -5px 15px 0; }
}
/* Pied de page mobile : 27 px entre le dernier trait rouge (« A propos ») et le bloc foncé, comme la prod. */
@media (max-width: 1023px) {
	.cp-footer .cp-footer__main { padding-bottom: 0; }
	.cp-footer .cp-footer__side { margin-top: 0; }
}
