@import url(main.css);
body { background-color: #333333 !important; color: #e0e0e0; }

/************************** NAVBAR **************************/
#text { content: none !important; display: none !important; }

#navigation-bar-hide { opacity: 1 !important; top: 0 !important; }

/* Etat initial (sans scroll) : voile gris leger + flou */
.navbar { background-color: rgba(85, 85, 84, 0.35) !important; -webkit-backdrop-filter: blur(0.5rem); backdrop-filter: blur(0.5rem); border-bottom: 1px solid rgba(250, 250, 250, 0.4); transition: background-color 0.3s ease, border-color 0.3s ease; }

/* Apres scroll : gris #555554 presque opaque */
.navbar.scrolled { background-color: rgba(85, 85, 84, 0.92) !important; -webkit-backdrop-filter: blur(1rem); backdrop-filter: blur(1rem); border-bottom: 1px solid #fafafa; }

/* Responsive : navbar toujours bien visible */
@media (max-width: 991px) { .navbar { background-color: rgba(85, 85, 84, 0.92) !important; -webkit-backdrop-filter: blur(1rem); backdrop-filter: blur(1rem); } }

.navbar-brand { height: 10vh !important; width: 10vw !important; }

.logo_nav { height: 9vh !important; }

.animated-border-button:after { background-color: #05b8fe; }

/************************** LIEN "RECHERCHES FREQUENTES" **************************/
/* Meme police, epaisseur et casse que ACCUEIL, NOS PRESTATIONS, CONTACT. La police est forcee ici car les autres liens l'ont en style en ligne dans le HTML. */
.navbar .nav-link.dropdown-toggle { position: relative; font-family: Poppins, sans-serif !important; font-weight: 600 !important; text-transform: uppercase; line-height: 1.3; text-align: center; /* Annule le nowrap de Bootstrap et place chaque mot sur sa propre ligne : RECHERCHES / FREQUENTES */ white-space: normal !important; width: min-content; }

/* Texte et chevron toujours cote a cote, centres verticalement */
.navbar li.dropdown div:has(.nav-link.dropdown-toggle) { flex-direction: row !important; align-items: center !important; justify-content: center; }

.navbar .nav-link.dropdown-toggle .bi-chevron-down { margin-left: 0.25rem !important; margin-right: 0 !important; }

/* Soulignement bleu au survol, comme les liens .animated-border-button */
.navbar .nav-link.dropdown-toggle[role=button]::before { content: ""; position: absolute; left: 0; bottom: 0.2rem; width: 0; height: 2px; background-color: #05b8fe; transition: width 0.3s ease; }

.navbar .nav-link.dropdown-toggle[role=button]:hover::before, .navbar .nav-link.dropdown-toggle[role=button]:focus-visible::before { width: 100%; }

/************************** MENUS DEROULANTS **************************/
.navbar ul.dropdown-menu { min-width: 250px !important; background-color: rgba(85, 85, 84, 0.96) !important; -webkit-backdrop-filter: blur(1rem); backdrop-filter: blur(1rem); border: 1px solid rgba(250, 250, 250, 0.35) !important; border-radius: 0.6rem; padding: 0.5rem 0; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18); overflow: hidden; }

/* Liens des deux menus */
.navbar ul.dropdown-menu li a { color: #fafafa !important; display: block; width: 100%; text-decoration: none; transition: color 0.2s ease, background-color 0.2s ease; }

/* Menu "Recherches frequentes" : on neutralise le fond bleu ecrit en ligne et on aligne les liens sur ceux du menu NOS PRESTATIONS */
.navbar ul.dropdown-menu .dropdown-item { padding: 0.5rem 1.5rem; background-color: transparent !important; font-family: Poppins, sans-serif; font-weight: 600; text-transform: uppercase; white-space: normal; }

.navbar ul.dropdown-menu .dropdown-item .bi-chevron-right { margin-left: 0.25rem; }

/* Separateur discret */
.navbar ul.dropdown-menu .dropdown-divider { margin: 0.4rem 1.5rem; border-top-color: rgba(250, 250, 250, 0.25); opacity: 1; }

/* Survol : fond assombri pour que le bleu #05B8FE garde un contraste suffisant (environ 4,6:1) */
.navbar ul.dropdown-menu li:hover { background-color: rgba(0, 0, 0, 0.25); }

.navbar ul.dropdown-menu li:hover a { color: #05b8fe !important; }

/* Focus clavier dans les menus */
.navbar ul.dropdown-menu li a:focus-visible { outline: 2px solid #05b8fe; outline-offset: -2px; color: #05b8fe !important; }

/* Boutons qui ouvrent les menus */
.navbar .dropdown-toggle { color: #fafafa !important; }

/* Evite la double fleche de Bootstrap, car une icone bi-chevron-down est deja presente */
.navbar .dropdown-toggle::after { display: none !important; }

/* Chevron */
.navbar .dropdown-toggle .bi-chevron-down { display: inline-block; font-size: 0.8rem; transition: transform 0.25s ease; }

/* Rotation du chevron quand un menu est ouvert (fonctionne aussi quand le chevron est dans un lien separe) */
.navbar .dropdown-toggle.show .bi-chevron-down, .navbar li.dropdown:has(.dropdown-menu.show) .bi-chevron-down { transform: rotate(180deg); }

/************************** MOBILE **************************/
@media (max-width: 991px) { .navbar ul.dropdown-menu { position: static !important; float: none !important; width: 100%; min-width: 250px !important; margin-top: 0.5rem; background-color: rgba(70, 70, 69, 0.65) !important; box-shadow: none; border: 1px solid rgba(250, 250, 250, 0.2) !important; } .navbar ul.dropdown-menu li { text-align: center; } .navbar ul.dropdown-menu .dropdown-item { text-align: center; } }

/************************** ACCESSIBILITE **************************/
@media (prefers-reduced-motion: reduce) { .navbar { transition: none; } .navbar .dropdown-toggle .bi-chevron-down, .navbar .nav-link.dropdown-toggle[role=button]::before { transition: none; } }

/************************** BOUTONS CLEAN PEINTURE 35 **************************/
/* STYLE COMMUN Fond bleu #0b63c9 + texte blanc : contraste 5,8:1 */
:is(.button_header.button-header-telephone, .button_homepageDoubleScreen, .button-contact.phototext-button, .cp-galerie__pause,     #maps-url) { display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: 0.5rem; position: relative !important; padding: 1rem 2.2rem !important; border: none !important; border-radius: 999px !important; background: #0b63c9 !important; color: #fff !important; text-align: center; text-decoration: none !important; box-shadow: none !important; transform: none !important; cursor: pointer; transition: transform 0.25s ease, background-color 0.25s ease !important; }

/* TAILLES PARTICULIERES */
:is(.button_header.button-header-telephone) { padding: 0.75rem 1.7rem !important; }

:is(.cp-galerie__pause) { padding: 0.7rem 1.6rem !important; }

/* TEXTE ET ELEMENTS INTERNES */
:is(.button_header.button-header-telephone, .button_homepageDoubleScreen, .button-contact.phototext-button, .cp-galerie__pause,     #maps-url) :is(span, p) { display: inline !important; margin: 0 !important; background: transparent !important; transform: none !important; }

:is(.button_header.button-header-telephone, .button_homepageDoubleScreen, .button-contact.phototext-button, .cp-galerie__pause,     #maps-url) * { color: #fff !important; }

/* HOVER */
:is(.button_header.button-header-telephone, .button_homepageDoubleScreen, .button-contact.phototext-button, .cp-galerie__pause,     #maps-url):hover { background: #0a55ad !important; color: #fff !important; transform: translateY(-2px) !important; }

/* ACTIVE */
:is(.button_header.button-header-telephone, .button_homepageDoubleScreen, .button-contact.phototext-button, .cp-galerie__pause,     #maps-url):active { background: #084a96 !important; transform: translateY(0) !important; }

/* ACCESSIBILITE CLAVIER : contour #05B8FE bien visible sur fond sombre */
:is(.button_header.button-header-telephone, .button_homepageDoubleScreen, .button-contact.phototext-button, .cp-galerie__pause,     #maps-url):focus-visible { color: #fff !important; outline: 2px solid #05b8fe !important; outline-offset: 4px !important; }

/* MOUVEMENT REDUIT */
@media (prefers-reduced-motion: reduce) { :is(.button_header.button-header-telephone, .button_homepageDoubleScreen, .button-contact.phototext-button, .cp-galerie__pause,       #maps-url) { transition: none !important; } :is(.button_header.button-header-telephone, .button_homepageDoubleScreen, .button-contact.phototext-button, .cp-galerie__pause,       #maps-url):hover { transform: none !important; } }

/* RESPONSIVE */
@media (max-width: 767px) { :is(.button_homepageDoubleScreen, .button-contact.phototext-button,       #maps-url) { padding: 0.9rem 1.8rem !important; } :is(.button_header.button-header-telephone) { padding: 0.7rem 1.4rem !important; } }

/*********************************************************** PAGE PRINCIPALE *************************************************************/
/* ========================================================== HERO ========================================================== */
/* Coupe uniquement ce qui depasse sur les cotes (pas de defilement horizontal). Le bas reste visible : l'eclaboussure peut deborder sur la section suivante. */
#fullHeight { overflow-x: clip; overflow-y: visible; }

.videoTitle { width: 90% !important; }

.fondDegradeLogo { width: 80% !important; }

#fullHeight > div.video-background-content.container.h-100 > div > div.container.videoTitle span { letter-spacing: 0px !important; }

/* SOULIGNEMENT SOUS LE TITRE */
#fullHeight .videoTitle::after { content: ""; display: block; width: 70px; height: 3px; margin: 18px auto 0; background: #05b8fe; border-radius: 10px; }

/* Le contenu du hero et l'indicateur de scroll restent au-dessus de l'eclaboussure */
#fullHeight .video-background-content { position: relative; z-index: 7; }

#fullHeight .lottie-scroll { z-index: 8; }

/* LIGNE COLOREE EN BAS DU HERO (passe sous l'eclaboussure) */
#fullHeight::after { content: ""; position: absolute; left: 0; bottom: 0; z-index: 5; width: 100%; height: 4px; background: linear-gradient(90deg, #0a84ff 0%, #00e5ff 25%, #ff007a 50%, #ff8a00 75%, #ffd600 100%); }

/* Tablette */
@media (max-width: 991.98px) { #fullHeight::before { right: -21vw; bottom: -6vw; width: 42vw; height: 29vw; } }

/* Mobile */
@media (max-width: 575.98px) { #fullHeight::before { right: -27vw; bottom: -7vw; width: 54vw; height: 37vw; opacity: 0.9; } }

/* ========================================================== DIVIDER ========================================================== */
.b-bloc-divider-horizontal { display: inline-block; width: 120px !important; background-color: transparent !important; height: 50px; }

/* ========================================================== PRESTATIONS PAGE D'ACCUEIL (cartes sombres + tache de peinture) Pas de font-size / font-family : geres par le CMS ========================================================== */
.cp-presta { --cp-carte: #262626; --cp-titre: #ffffff; --cp-texte: #e0e0e0; padding: 90px 0; background-color: #333333; color: var(--cp-texte); }

.cp-presta *, .cp-presta *:before, .cp-presta *:after { box-sizing: border-box; }

/* Les champs du CMS contiennent leurs propres balises : on neutralise leurs marges */
.cp-presta__titre > *, .cp-presta__carte-titre > * { margin: 0; color: inherit; }

.cp-presta__texte-intro > *:last-child, .cp-presta__description > *:last-child { margin-bottom: 0; }

/* ---------- Introduction ---------- */
.cp-presta__intro { max-width: 46rem; margin: 0 auto 3rem; text-align: center; }

.cp-presta__titre { margin-bottom: 1.5rem; color: var(--cp-titre); }

.cp-presta__texte-intro { color: var(--cp-texte); line-height: 1.6; }

/* ---------- Carte (non cliquable : aucun effet au survol) ---------- */
/* Deux couleurs par carte : --cp-accent       : icone et bulle (contraste superieur a 3:1) --cp-accent-texte : texte du bouton (contraste superieur a 4,5:1) */
.cp-presta__carte { --cp-accent: #0a84ff; --cp-accent-texte: #4da6ff; position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; align-items: flex-start; height: 100%; min-height: 300px; padding: 2rem 1.75rem 1.75rem; background-color: var(--cp-carte); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 1rem; text-align: left; }

/* 5 couleurs differentes, une par carte */
.cp-presta__carte--bleu { --cp-accent: #0a84ff; /* 4,2:1 sur la carte */ --cp-accent-texte: #4da6ff; /* 5,9:1 */ }

.cp-presta__carte--fuchsia { --cp-accent: #ff007a; /* 4,0:1 */ --cp-accent-texte: #ff4d9d; /* 4,9:1 */ }

.cp-presta__carte--orange { --cp-accent: #ff8a00; /* 6,4:1 */ --cp-accent-texte: #ff8a00; }

.cp-presta__carte--cyan { --cp-accent: #00e5ff; /* plus de 10:1 */ --cp-accent-texte: #00e5ff; }

.cp-presta__carte--jaune { --cp-accent: #ffd600; /* plus de 10:1 */ --cp-accent-texte: #ffd600; }

/* Tache de peinture dans le coin haut droit */
.cp-presta__tache { position: absolute; top: -10%; right: -12%; z-index: -1; width: 75%; height: auto; max-width: none; pointer-events: none; -webkit-mask-image: radial-gradient(ellipse at top right, #000 35%, transparent 75%); mask-image: radial-gradient(ellipse at top right, #000 35%, transparent 75%); }

.cp-presta__icone { display: inline-flex; margin-bottom: 1.5rem; color: var(--cp-accent); }

.cp-presta__icone svg { display: block; width: 2.75rem; height: 2.75rem; }

.cp-presta__carte-titre { margin-bottom: 1rem; color: var(--cp-titre); font-weight: 700; line-height: 1.2; text-transform: uppercase; text-shadow: 0 1px 6px rgba(0, 0, 0, 0.6); }

.cp-presta__description { max-width: 22rem; margin-bottom: 1.75rem; color: var(--cp-texte); line-height: 1.6; text-shadow: 0 1px 6px rgba(0, 0, 0, 0.6); }

/* Cartes sans bouton : pas d'espace vide sous le texte */
.cp-presta__description:last-child { margin-bottom: 0; }

.cp-presta__description ul { margin: 0.75rem 0 0; padding-left: 1.1rem; }

.cp-presta__description li + li { margin-top: 0.35rem; }

/* ---------- Bouton : seul element cliquable (3 premieres cartes) ---------- */
/* Etat normal ET visite : meme couleur que la carte. Sans cette regle, le texte pourrait passer en violet une fois le lien visite. */
.cp-presta a.cp-presta__lien, .cp-presta a.cp-presta__lien:visited { display: inline-flex; align-items: center; gap: 0.85rem; margin-top: auto; color: var(--cp-accent-texte) !important; font-weight: 600; text-decoration: none; }

.cp-presta__lien-texte p { display: inline; margin: 0; }

/* Bulle : contour et fleche dans la couleur de la carte */
.cp-presta__bulle { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 3.5rem; height: 3.5rem; border: 2px solid var(--cp-accent); border-radius: 50%; color: var(--cp-accent); transition: background-color 0.25s ease, color 0.25s ease, transform 0.25s ease; }

.cp-presta__bulle i { line-height: 1; }

/* Survol et focus clavier du bouton uniquement */
.cp-presta__lien:hover .cp-presta__lien-texte, .cp-presta__lien:focus-visible .cp-presta__lien-texte { text-decoration: underline; text-underline-offset: 0.25em; }

.cp-presta__lien:hover .cp-presta__bulle, .cp-presta__lien:focus-visible .cp-presta__bulle { background-color: var(--cp-accent); color: #1a1a1a; transform: translateX(4px); }

.cp-presta__lien:active .cp-presta__bulle { transform: translateX(0); }

.cp-presta__lien:focus-visible { outline: 3px solid #05b8fe; outline-offset: 4px; border-radius: 999px; }

/* ---------- Responsive ---------- */
@media (max-width: 767.98px) { .cp-presta { padding: 60px 0; } .cp-presta__intro { margin-bottom: 2rem; } .cp-presta__carte { min-height: 260px; padding: 1.75rem 1.5rem 1.5rem; } .cp-presta__tache { width: 60%; } }

/* ---------- Mouvement reduit ---------- */
@media (prefers-reduced-motion: reduce) { .cp-presta__bulle { transition: none; } .cp-presta__lien:hover .cp-presta__bulle, .cp-presta__lien:focus-visible .cp-presta__bulle { transform: none; } }

/* ========================================================== TITRE METHODE DE TRAVAIL ========================================================== */
.clean-savoir-heading { width: 100%; padding: 70px 20px 35px; background: #333333; }

.clean-savoir-heading * { box-sizing: border-box; }

.clean-savoir-heading-container { width: 100%; max-width: 850px; margin: 0 auto; text-align: center; }

.clean-savoir-eyebrow { margin-bottom: 12px; color: #05b8fe; font-weight: 700; text-transform: uppercase; letter-spacing: 2px; }

.clean-savoir-title { color: #ffffff; font-weight: 600; line-height: 1.2; }

@media (max-width: 767px) { .clean-savoir-heading { padding: 50px 20px 25px; } .clean-savoir-eyebrow { letter-spacing: 1.5px; } }

/* ========================================================== ETAPES METHODE DE TRAVAIL Fonds sombres teintes bleu / violet, textes clairs ========================================================== */
.bg-primaryColor.rounded-3:is(:has(img[src*=etape_1]), :has(img[src*=image_arriere_plan_4_1]), :has(img[src*=netoyage_sol])) { counter-reset: etape; }

:is(.bg-primaryColor.rounded-3:is(:has(img[src*=etape_1]), :has(img[src*=image_arriere_plan_4_1]), :has(img[src*=netoyage_sol])), .bg-primaryColor.rounded-3:is(:has(img[src*=etape_1]), :has(img[src*=image_arriere_plan_4_1]), :has(img[src*=netoyage_sol])) ~ .bg-primaryColor.rounded-3) { --etape-fond: #1f3550; --etape-accent: #0a84ff; background-color: var(--etape-fond) !important; color: #e0e0e0 !important; box-shadow: none !important; border-left: 6px solid var(--etape-accent); counter-increment: etape; }

:is(.bg-primaryColor.rounded-3:is(:has(img[src*=etape_1]), :has(img[src*=image_arriere_plan_4_1]), :has(img[src*=netoyage_sol])), .bg-primaryColor.rounded-3:is(:has(img[src*=etape_1]), :has(img[src*=image_arriere_plan_4_1]), :has(img[src*=netoyage_sol])) ~ .bg-primaryColor.rounded-3):nth-child(even) { --etape-fond: #40243a; --etape-accent: #ff007a; }

:is(.bg-primaryColor.rounded-3:is(:has(img[src*=etape_1]), :has(img[src*=image_arriere_plan_4_1]), :has(img[src*=netoyage_sol])), .bg-primaryColor.rounded-3:is(:has(img[src*=etape_1]), :has(img[src*=image_arriere_plan_4_1]), :has(img[src*=netoyage_sol])) ~ .bg-primaryColor.rounded-3) .background-image-div-opacity { display: none; }

:is(.bg-primaryColor.rounded-3:is(:has(img[src*=etape_1]), :has(img[src*=image_arriere_plan_4_1]), :has(img[src*=netoyage_sol])), .bg-primaryColor.rounded-3:is(:has(img[src*=etape_1]), :has(img[src*=image_arriere_plan_4_1]), :has(img[src*=netoyage_sol])) ~ .bg-primaryColor.rounded-3) .row { margin-top: 0 !important; }

:is(.bg-primaryColor.rounded-3:is(:has(img[src*=etape_1]), :has(img[src*=image_arriere_plan_4_1]), :has(img[src*=netoyage_sol])), .bg-primaryColor.rounded-3:is(:has(img[src*=etape_1]), :has(img[src*=image_arriere_plan_4_1]), :has(img[src*=netoyage_sol])) ~ .bg-primaryColor.rounded-3) .titles { display: flex; align-items: center; gap: 1rem; margin-bottom: 0 !important; }

:is(.bg-primaryColor.rounded-3:is(:has(img[src*=etape_1]), :has(img[src*=image_arriere_plan_4_1]), :has(img[src*=netoyage_sol])), .bg-primaryColor.rounded-3:is(:has(img[src*=etape_1]), :has(img[src*=image_arriere_plan_4_1]), :has(img[src*=netoyage_sol])) ~ .bg-primaryColor.rounded-3) .titles::before { content: counter(etape); flex: none; display: inline-flex; align-items: center; justify-content: center; width: 1.6em; height: 1.6em; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; background-color: var(--etape-accent); color: #1a1a1a; line-height: 1; }

:is(.bg-primaryColor.rounded-3:is(:has(img[src*=etape_1]), :has(img[src*=image_arriere_plan_4_1]), :has(img[src*=netoyage_sol])), .bg-primaryColor.rounded-3:is(:has(img[src*=etape_1]), :has(img[src*=image_arriere_plan_4_1]), :has(img[src*=netoyage_sol])) ~ .bg-primaryColor.rounded-3) .titles h3 { margin: 0; color: #ffffff !important; }

:is(.bg-primaryColor.rounded-3:is(:has(img[src*=etape_1]), :has(img[src*=image_arriere_plan_4_1]), :has(img[src*=netoyage_sol])), .bg-primaryColor.rounded-3:is(:has(img[src*=etape_1]), :has(img[src*=image_arriere_plan_4_1]), :has(img[src*=netoyage_sol])) ~ .bg-primaryColor.rounded-3) .lead { margin-top: 1.25rem !important; color: #e0e0e0 !important; }

:is(.bg-primaryColor.rounded-3:is(:has(img[src*=etape_1]), :has(img[src*=image_arriere_plan_4_1]), :has(img[src*=netoyage_sol])), .bg-primaryColor.rounded-3:is(:has(img[src*=etape_1]), :has(img[src*=image_arriere_plan_4_1]), :has(img[src*=netoyage_sol])) ~ .bg-primaryColor.rounded-3) .lead p:last-child { margin-bottom: 0; }

:is(.bg-primaryColor.rounded-3:is(:has(img[src*=etape_1]), :has(img[src*=image_arriere_plan_4_1]), :has(img[src*=netoyage_sol])), .bg-primaryColor.rounded-3:is(:has(img[src*=etape_1]), :has(img[src*=image_arriere_plan_4_1]), :has(img[src*=netoyage_sol])) ~ .bg-primaryColor.rounded-3) .row div:has(img) { margin-left: auto; margin-right: auto; }

:is(.bg-primaryColor.rounded-3:is(:has(img[src*=etape_1]), :has(img[src*=image_arriere_plan_4_1]), :has(img[src*=netoyage_sol])), .bg-primaryColor.rounded-3:is(:has(img[src*=etape_1]), :has(img[src*=image_arriere_plan_4_1]), :has(img[src*=netoyage_sol])) ~ .bg-primaryColor.rounded-3) img { width: 100% !important; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 0.75rem; }

@media (max-width: 767.98px) { :is(.bg-primaryColor.rounded-3:is(:has(img[src*=etape_1]), :has(img[src*=image_arriere_plan_4_1]), :has(img[src*=netoyage_sol])), .bg-primaryColor.rounded-3:is(:has(img[src*=etape_1]), :has(img[src*=image_arriere_plan_4_1]), :has(img[src*=netoyage_sol])) ~ .bg-primaryColor.rounded-3) { border-left: 0; border-top: 6px solid var(--etape-accent); } }

/* ========================================================== GALERIE INFINIE ========================================================== */
.cp-galerie { --cp-titre: #ffffff; --cp-texte: #e0e0e0; /* Intensite de l'eclaboussure : 0 = invisible, 1 = couleurs pleines */ --cp-eclaboussure-opacite: 0.35; position: relative; isolation: isolate; overflow: hidden; padding: 80px 0; background: #333333; }

/* Eclaboussure de peinture en fond (image 1 du bloc) - toute la hauteur de la section, proportions conservees : aucune deformation - collee au bord droit */
.cp-galerie::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: var(--cp-eclaboussure); background-repeat: no-repeat; background-position: right center; background-size: auto 100%; opacity: var(--cp-eclaboussure-opacite); pointer-events: none; -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 18%, #000 82%, transparent 100%); mask-image: linear-gradient(to bottom, transparent 0%, #000 18%, #000 82%, transparent 100%); }

/* Titre */
.cp-galerie__intro { max-width: 46rem; margin: 0 auto 2.5rem; text-align: center; }

.cp-galerie__titre { margin-bottom: 1.25rem; color: var(--cp-titre); }

.cp-galerie__titre > * { margin: 0; color: inherit; }

.cp-galerie__texte { line-height: 1.6; color: var(--cp-texte); }

.cp-galerie__texte > *:last-child { margin-bottom: 0; }

/* Bouton pause */
.cp-galerie__controles { display: flex; justify-content: flex-end; margin-bottom: 1rem; }

.cp-galerie__pause { gap: 0.5rem; cursor: pointer; }

.gallery-item a:focus-visible, .lightbox-close:focus-visible { outline: 3px solid #05b8fe; outline-offset: 3px; }

/* Galerie infinie */
.infinite-gallery { overflow: hidden; width: 100%; position: relative; padding: 10px 0 20px; }

.gallery-track { display: flex; gap: 20px; width: max-content; animation: scrollGallery 60s linear infinite; }

.gallery-item { flex: 0 0 auto; --cp-trace: #0a84ff; }

.gallery-item:nth-child(5n+2) { --cp-trace: #00e5ff; }

.gallery-item:nth-child(5n+3) { --cp-trace: #ff007a; }

.gallery-item:nth-child(5n+4) { --cp-trace: #ff8a00; }

.gallery-item:nth-child(5n+5) { --cp-trace: #ffd600; }

.gallery-item a { display: block; border-radius: 0.75rem; transition: transform 0.3s ease; }

.gallery-item img { width: 340px; height: 340px; object-fit: cover; display: block; border-radius: 0.75rem; border-bottom: 6px solid var(--cp-trace); }

.gallery-item a:hover { transform: translateY(-4px); }

@keyframes scrollGallery { from { transform: translateX(0); }
  to { transform: translateX(-50%); } }

.gallery-track:hover, .gallery-track:focus-within, .gallery-track.is-paused { animation-play-state: paused; }

/* Mouvement reduit */
@media (prefers-reduced-motion: reduce) { .infinite-gallery { overflow-x: auto; } .gallery-track { animation: none; } .cp-galerie__controles { display: none; } .gallery-item a, .lightbox { transition: none; } .gallery-item a:hover { transform: none; } }

/* Mobile */
@media screen and (max-width: 767px) { .cp-galerie { padding: 50px 0; --cp-eclaboussure-opacite: 0.25; } /* Section tres haute (grille de photos) : l'image prend toute la largeur avec ses proportions, collee en haut a droite, et s'estompe vers le bas */ .cp-galerie::before { background-size: 100% auto; background-position: right top; -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 6%, #000 30%, transparent 55%); mask-image: linear-gradient(to bottom, transparent 0%, #000 6%, #000 30%, transparent 55%); } .cp-galerie__intro { margin-bottom: 1.75rem; } .cp-galerie__controles { display: none; } .infinite-gallery { overflow: visible; padding: 0 20px; } .gallery-track { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; width: 100%; animation: none; transform: none; } .gallery-item { width: 100%; } .gallery-item img { width: 100%; height: auto; aspect-ratio: 1 / 1; border-bottom-width: 4px; } }

/* Lightbox */
.lightbox { position: fixed; inset: 0; background: rgba(35, 38, 43, 0.95); display: flex; align-items: center; justify-content: center; padding: 40px; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 0.3s ease, visibility 0.3s ease; z-index: 9999; }

.lightbox.active { opacity: 1; visibility: visible; pointer-events: auto; }

.lightbox-image { max-width: 90vw; max-height: 90vh; object-fit: contain; border-radius: 0.5rem; }

.lightbox-close { position: absolute; top: 20px; right: 25px; display: inline-flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; background: transparent; border: 2px solid rgba(255, 255, 255, 0.6); border-radius: 50%; color: #fff; cursor: pointer; line-height: 1; }

.lightbox-close:hover { background-color: rgba(255, 255, 255, 0.15); }

@media screen and (max-width: 767px) { .lightbox { padding: 20px; } .lightbox-close { top: 12px; right: 16px; } }

/* ========================================================== ZONE D'INTERVENTION ========================================================== */
.cp-zone { --cp-titre: #ffffff; --cp-texte: #e0e0e0; --cp-bleu: #0b63c9; /* bouton et filets */ --cp-bleu-fonce: #0a55ad; --cp-bleu-texte: #05b8fe; /* textes et icones bleus */ --cp-encadre: #1f3550; position: relative; width: 100%; padding: 100px 30px; background: #333333; }

.cp-zone *, .cp-zone *:before, .cp-zone *:after { box-sizing: border-box; }

.cp-zone__container { display: grid; grid-template-columns: 7fr 5fr; align-items: center; gap: 70px; width: 100%; max-width: 1180px; margin: 0 auto; }

.cp-zone__visual { order: -1; }

.cp-zone__map { display: block; width: 100%; height: 460px; border: 0; border-bottom: 6px solid var(--cp-bleu-texte); border-radius: 0.75rem; }

.cp-zone__kicker { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 12px; color: var(--cp-bleu-texte); font-weight: 600; text-transform: uppercase; }

.cp-zone__kicker:before { content: ""; width: 0.6em; height: 0.8em; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; background: var(--cp-bleu-texte); }

.cp-zone__title, .cp-zone__title h1, .cp-zone__title h2, .cp-zone__title h3, .cp-zone__title p { margin: 0; color: var(--cp-titre); line-height: 1.1; }

.cp-zone__line { display: block; width: 90px; height: 4px; margin: 22px 0 24px; border-radius: 4px; background: linear-gradient(90deg, #0a84ff, #00e5ff, #ff007a, #ff8a00, #ffd600); }

.cp-zone__description { margin-bottom: 26px; color: var(--cp-texte); line-height: 1.6; }

.cp-zone__note { display: flex; align-items: center; gap: 14px; margin-bottom: 32px; padding: 16px 20px; background: var(--cp-encadre); border-left: 4px solid var(--cp-bleu-texte); border-radius: 0 0.75rem 0.75rem 0; }

.cp-zone__note-icon { flex: 0 0 auto; display: flex; color: var(--cp-bleu-texte); }

.cp-zone__note-icon svg { display: block; width: 24px; height: 24px; }

.cp-zone__note-text { color: var(--cp-texte); }

/* Bouton : fond bleu fonce + texte blanc (5,8:1) */
.cp-zone__button { display: inline-flex; align-items: center; justify-content: center; padding: 1rem 2.2rem; background: var(--cp-bleu); color: #fff; font-weight: 700; text-decoration: none; border: 0; border-radius: 999px; transition: background 0.25s ease, transform 0.25s ease; }

.cp-zone__button span, .cp-zone__button * { color: #fff !important; }

.cp-zone__button:hover { background: var(--cp-bleu-fonce); color: #fff; text-decoration: none; transform: translateY(-2px); }

.cp-zone__button:focus-visible { outline: 2px solid var(--cp-bleu-texte); outline-offset: 4px; }

.cp-zone__kicker p, .cp-zone__description p, .cp-zone__note-text p, .cp-zone__button p { display: inline; margin: 0 !important; padding: 0 !important; }

.cp-zone__description p { display: block; }

@media (prefers-reduced-motion: reduce) { .cp-zone__button { transition: none; } .cp-zone__button:hover { transform: none; } }

@media (max-width: 1199px) { .cp-zone__container { gap: 50px; } }

@media (max-width: 991px) { .cp-zone { padding: 80px 25px; } .cp-zone__container { grid-template-columns: 1fr; } .cp-zone__visual { order: 0; } .cp-zone__map { height: 380px; } }

@media (max-width: 575px) { .cp-zone { padding: 60px 18px; } .cp-zone__map { height: 300px; border-bottom-width: 4px; } .cp-zone__note { padding: 14px 16px; } }

/* ========================================================== SAVOIR-FAIRE + REASSURANCE ========================================================== */
.cp-savoir { --cp-titre: #ffffff; --cp-texte: #e0e0e0; --cp-bleu: #0b63c9; --cp-bleu-texte: #05b8fe; --cp-carte: #3d3d3d; --cp-savoir-opacite: 0.35; position: relative; isolation: isolate; overflow: hidden; padding: 100px 0; background: #333333; }

/* Image de fond (image 1 du bloc) - occupe uniquement la partie basse de la section, derriere les cartes - contain : image entiere, proportions conservees, aucune deformation - centree horizontalement et verticalement dans cette zone */
.cp-savoir::before { content: ""; position: absolute; top: 30%; right: 0; bottom: 0; left: 0; z-index: -1; background-image: var(--cp-savoir-fond); background-repeat: no-repeat; background-position: center center; background-size: contain; opacity: var(--cp-savoir-opacite); pointer-events: none; -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 15%, #000 85%, transparent 100%); mask-image: linear-gradient(to bottom, transparent 0%, #000 15%, #000 85%, transparent 100%); }

.cp-savoir *, .cp-savoir *:before, .cp-savoir *:after { box-sizing: border-box; }

.cp-savoir__titre > *, .cp-savoir__reassurance-titre > *, .cp-savoir__carte-titre > * { margin: 0; color: inherit; }

.cp-savoir__description > *:last-child, .cp-savoir__carte-texte > *:last-child { margin-bottom: 0; }

/* Partie savoir-faire */
.cp-savoir__presentation { max-width: 760px; margin: 0 auto 80px; text-align: center; }

.cp-savoir__kicker { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 12px; color: var(--cp-bleu-texte); font-weight: 600; text-transform: uppercase; }

.cp-savoir__kicker:before { content: ""; width: 0.6em; height: 0.8em; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; background: var(--cp-bleu-texte); }

.cp-savoir__titre { color: var(--cp-titre); line-height: 1.1; }

.cp-savoir__ligne { display: block; width: 90px; height: 4px; margin: 22px auto 24px; border-radius: 4px; background: linear-gradient(90deg, #0a84ff, #00e5ff, #ff007a, #ff8a00, #ffd600); }

.cp-savoir__description { color: var(--cp-texte); line-height: 1.7; }

/* Partie reassurance */
.cp-savoir__reassurance-titre { margin-bottom: 40px; text-align: center; color: var(--cp-titre); }

.cp-savoir__grille { display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; margin: 0; padding: 0; list-style: none; }

.cp-savoir__carte { --cp-accent: #0a84ff; display: flex; flex-direction: column; align-items: center; padding: 32px 20px 28px; text-align: center; background: var(--cp-carte); border-radius: 0.75rem; border-bottom: 5px solid var(--cp-accent); }

/* Couleurs vives : icones en #1a1a1a (contraste 4,6:1 minimum) */
/* Anciennes classes conservees : pas besoin de modifier le HTML */
.cp-savoir__carte--bleu { --cp-accent: #0a84ff; }

.cp-savoir__carte--violet, .cp-savoir__carte--cyan { --cp-accent: #00e5ff; }

.cp-savoir__carte--rose, .cp-savoir__carte--fuchsia { --cp-accent: #ff007a; }

.cp-savoir__carte--orange { --cp-accent: #ff8a00; }

.cp-savoir__carte--vert, .cp-savoir__carte--jaune { --cp-accent: #ffd600; }

.cp-savoir__icone { display: inline-flex; align-items: center; justify-content: center; width: 3.6rem; height: 3.6rem; margin-bottom: 18px; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; background: var(--cp-accent); color: #1a1a1a; }

.cp-savoir__icone svg { display: block; width: 1.5rem; height: 1.5rem; }

.cp-savoir__carte-titre { margin-bottom: 10px; color: var(--cp-titre); font-weight: 700; line-height: 1.25; }

.cp-savoir__carte-texte { color: var(--cp-texte); line-height: 1.6; }

@media (max-width: 1199px) { .cp-savoir__grille { grid-template-columns: repeat(3, 1fr); } }

@media (max-width: 991px) { .cp-savoir { padding: 80px 0; } /* Cartes empilees : la zone des cartes commence plus haut en proportion */ .cp-savoir::before { top: 22%; } .cp-savoir__presentation { margin-bottom: 60px; } .cp-savoir__grille { grid-template-columns: repeat(2, 1fr); } }

@media (max-width: 575px) { .cp-savoir { padding: 60px 0; --cp-savoir-opacite: 0.25; } .cp-savoir::before { top: 15%; } .cp-savoir__grille { grid-template-columns: 1fr; } }

/* ========================================================== ACTIVITES SEO Fonds sombres teintes bleu / violet, textes clairs ========================================================== */
:is(.first-activity-div, .second-activity-div, .third-activity-div) { --activite-fond: #1f3550; --activite-accent: #0a84ff; background-color: var(--activite-fond) !important; color: #e0e0e0 !important; box-shadow: none !important; border-left: 6px solid var(--activite-accent); }

.second-activity-div { --activite-fond: #40243a; --activite-accent: #ff007a; }

:is(.first-activity-div, .second-activity-div, .third-activity-div) .row { margin-top: 0 !important; }

:is(.first-activity-title, .second-activity-title, .third-activity-title) { display: flex; align-items: center; gap: 1rem; margin-bottom: 0 !important; color: #ffffff !important; }

:is(.first-activity-title, .second-activity-title, .third-activity-title)::before { content: ""; flex: none; width: 0.6em; height: 0.8em; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; background-color: var(--activite-accent); }

:is(.first-activity-title, .second-activity-title, .third-activity-title) :is(h1, h2, h3, p) { margin: 0; color: #ffffff !important; }

:is(.first-activity-div, .second-activity-div, .third-activity-div) .lead { margin-top: 1.25rem !important; color: #e0e0e0 !important; }

:is(.first-activity-div, .second-activity-div, .third-activity-div) .lead p:last-child { margin-bottom: 0; }

:is(.first-activity-div, .second-activity-div, .third-activity-div) .row div:has(.card-cover) { margin-left: auto; margin-right: auto; }

:is(.first-activity-div, .second-activity-div, .third-activity-div) .card-cover { height: auto !important; aspect-ratio: 3 / 2; border: 0; border-radius: 0.75rem !important; box-shadow: none !important; }

:is(.first-activity-div, .second-activity-div, .third-activity-div) .card-cover h3 { margin: auto 0 !important; padding: 0 !important; }

/* Lien dans l'image : souligne en permanence pour etre identifie comme un lien. Etat normal et visite identiques (texte blanc). */
:is(.first-activity-div, .second-activity-div, .third-activity-div) .card-cover a, :is(.first-activity-div, .second-activity-div, .third-activity-div) .card-cover a:visited { color: #fff !important; text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: 0.2em; }

/* Le soulignement s'applique aussi au texte place dans des balises internes */
:is(.first-activity-div, .second-activity-div, .third-activity-div) .card-cover a * { text-decoration: inherit !important; }

/* Survol : trait plus epais pour signaler l'interaction */
:is(.first-activity-div, .second-activity-div, .third-activity-div) .card-cover a:hover { text-decoration-thickness: 4px !important; }

:is(.first-activity-div, .second-activity-div, .third-activity-div) .card-cover a:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }

@media (max-width: 767.98px) { :is(.first-activity-div, .second-activity-div, .third-activity-div) { border-left: 0; border-top: 6px solid var(--activite-accent); } }

/************************** AVIS GOOGLE **************************/
/* BANDEAU PRINCIPAL */
.googleReviews-div > .container > .card { background-color: #FFFFFF !important; color: #222222 !important; }

/* TITRE ET NOTE GLOBALE */
.googleReviews-div h3, .googleReviews-div #place-rating, .googleReviews-div #place-rating span { color: #222222 !important; }

/* NOUVEAU LOGO */
.googleReviews-div .avatar-google-place { width: 70px !important; height: 70px !important; object-fit: contain !important; opacity: 0 !important; }

.googleReviews-div .avatar-google-place { position: relative !important; }

.googleReviews-div .avatar-google-place { opacity: 1 !important; content: url("https://storage.googleapis.com/refpro-app-ca244.appspot.com/customers%2FJSn5bBO7GhQhuSVyieUweUBTwUy2%2Fimages%2Flogo%2Flogo_png_a9ls.webp") !important; }

/* ETOILES */
.googleReviews-div .star, .googleReviews-div .bi-star-fill { color: #F0B43A !important; }

/* CARTES DES AVIS */
#google-reviews-widget .card { background-color: #FFFFFF !important; color: #222222 !important; }

/* TEXTES DES AVIS */
#google-reviews-widget .card-body, #google-reviews-widget .card-text, #google-reviews-widget .card p, #google-reviews-widget .card span, #google-reviews-widget .card .mx-2 { color: #222222 !important; }

/* DATES */
#google-reviews-widget .text-muted { color: #595959 !important; }

/* ETOILES DANS LES AVIS */
#google-reviews-widget .star, #google-reviews-widget .bi-star-fill { color: #F0B43A !important; }

/* BOUTON GOOGLE */
.googleReviews-div #maps-url { background-color: #0067DA !important; color: #FFFFFF !important; text-decoration: none !important; }

.googleReviews-div #maps-url:hover { background-color: #0054B3 !important; color: #FFFFFF !important; }

/* RESPONSIVE */
@media (max-width: 767px) { .googleReviews-div .avatar-google-place { width: 60px !important; height: 60px !important; } .googleReviews-div #place-rating { display: block; margin-top: 8px; } }

/*********************************************************** PAGES SECONDAIRES *************************************************************/
/* ========================================================== HERO SECONDAIRE ========================================================== */
#secondaires { height: 0; }

#secondaires + style + #fullHeight { height: 90vh; min-height: unset !important; }

.spacer { display: none; }

.titleText.text-white.text-center.fs-2.mb-4.mt-lg-5.titles { letter-spacing: 0px; }

.carousel-homepage .sliderLogoContainer.mx-auto { width: 180px !important; max-width: 45%; }

.carousel-homepage .sliderLogoContainer .fondDegradeLogo { display: block; width: 100% !important; height: auto; }

.carousel-homepage .carousel-item-homepage img { filter: brightness(0.45); }

@media (max-width: 767.98px) { .carousel-homepage .sliderLogoContainer.mx-auto { width: 130px !important; } }

/* ========================================================== PRESTATIONS PAGES SERVICES (cp-prestas) ========================================================== */
.cp-prestas { --cp-titre: #ffffff; --cp-texte: #e0e0e0; --cp-bleu: #0b63c9; --cp-bleu-texte: #05b8fe; --cp-carte: #3d3d3d; padding: 100px 0; background: #333333; }

.cp-prestas *, .cp-prestas *:before, .cp-prestas *:after { box-sizing: border-box; }

.cp-prestas__titre > *, .cp-prestas__carte-titre > * { margin: 0; color: inherit; }

.cp-prestas__carte-texte > *:last-child { margin-bottom: 0; }

/* Introduction */
.cp-prestas__intro { max-width: 760px; margin: 0 auto 50px; text-align: center; }

.cp-prestas__kicker { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 12px; color: var(--cp-bleu-texte); font-weight: 600; text-transform: uppercase; }

.cp-prestas__kicker:before { content: ""; width: 0.6em; height: 0.8em; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; background: var(--cp-bleu-texte); }

.cp-prestas__titre { color: var(--cp-titre); line-height: 1.1; }

.cp-prestas__ligne { display: block; width: 90px; height: 4px; margin: 22px auto 0; border-radius: 4px; background: linear-gradient(90deg, #0a84ff, #00e5ff, #ff007a, #ff8a00, #ffd600); }

/* Cartes */
.cp-prestas__grille { --cp-gap: 24px; display: flex; flex-wrap: wrap; justify-content: center; gap: var(--cp-gap); max-width: 1180px; margin: 0 auto; padding: 0; list-style: none; }

.cp-prestas__carte { --cp-accent: #0a84ff; flex: 0 0 calc((100% - 2 * var(--cp-gap)) / 3); display: flex; flex-direction: column; align-items: center; padding: 36px 28px 32px; background: var(--cp-carte); border-radius: 0.75rem; border-bottom: 5px solid var(--cp-accent); }

/* Anciennes classes conservees : pas besoin de modifier le HTML */
.cp-prestas__carte--bleu { --cp-accent: #0a84ff; }

.cp-prestas__carte--violet, .cp-prestas__carte--cyan { --cp-accent: #00e5ff; }

.cp-prestas__carte--rose, .cp-prestas__carte--fuchsia { --cp-accent: #ff007a; }

.cp-prestas__carte--orange { --cp-accent: #ff8a00; }

.cp-prestas__carte--vert, .cp-prestas__carte--jaune { --cp-accent: #ffd600; }

.cp-prestas__icone { display: inline-flex; align-items: center; justify-content: center; width: 3.6rem; height: 3.6rem; margin-bottom: 18px; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; background: var(--cp-accent); color: #1a1a1a; }

.cp-prestas__icone svg { display: block; width: 1.5rem; height: 1.5rem; }

.cp-prestas__carte-titre { margin-bottom: 14px; text-align: center; color: var(--cp-titre); font-weight: 700; line-height: 1.25; }

.cp-prestas__carte-texte { width: 100%; text-align: left; color: var(--cp-texte); line-height: 1.7; }

/* Variante 4 cartes */
.cp-prestas__grille--4 .cp-prestas__carte { flex-basis: calc((100% - 3 * var(--cp-gap)) / 4); padding: 32px 22px 28px; }

/* Variante avec image de fond */
.cp-prestas--fond { --cp-prestas-opacite: 0.35; position: relative; isolation: isolate; overflow: hidden; background: #333333; }

/* Image de fond (image 1 du bloc) - occupe la partie basse de la section, derriere les cartes - contain : image entiere, proportions conservees, aucune deformation - centree horizontalement et verticalement dans cette zone */
.cp-prestas--fond::before { content: ""; position: absolute; top: 25%; right: 0; bottom: 0; left: 0; z-index: -1; background-image: var(--cp-prestas-fond); background-repeat: no-repeat; background-position: center center; background-size: contain; opacity: var(--cp-prestas-opacite); pointer-events: none; -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 15%, #000 85%, transparent 100%); mask-image: linear-gradient(to bottom, transparent 0%, #000 15%, #000 85%, transparent 100%); }

/* Cartes sombres : elles restent lisibles au-dessus de l'image */
.cp-prestas--fond .cp-prestas__carte { background: var(--cp-carte); }

/* Responsive */
@media (max-width: 1199px) { .cp-prestas__grille--4 { max-width: 860px; } .cp-prestas__grille--4 .cp-prestas__carte { flex-basis: calc((100% - var(--cp-gap)) / 2); } }

@media (max-width: 991px) { .cp-prestas { padding: 80px 0; } .cp-prestas__grille { max-width: 640px; } .cp-prestas__carte { flex-basis: 100%; } .cp-prestas__grille--4 { max-width: 860px; } .cp-prestas__grille--4 .cp-prestas__carte { flex-basis: calc((100% - var(--cp-gap)) / 2); } /* Cartes empilees : la zone des cartes commence plus haut en proportion */ .cp-prestas--fond::before { top: 15%; } }

@media (max-width: 767px) { .cp-prestas__grille--4 { max-width: 640px; } .cp-prestas__grille--4 .cp-prestas__carte { flex-basis: 100%; } }

@media (max-width: 575px) { .cp-prestas { padding: 60px 0; } .cp-prestas--fond { --cp-prestas-opacite: 0.25; } .cp-prestas--fond::before { top: 10%; } .cp-prestas__carte, .cp-prestas__grille--4 .cp-prestas__carte { padding: 30px 22px 26px; } }

/* ========================================================== FOURNISSEUR Pas de font-size / font-family : geres par le CMS ========================================================== */
.cp-fournisseur { --cp-carte: #262626; --cp-titre: #ffffff; --cp-texte: #e0e0e0; --cp-degrade: linear-gradient(135deg, #0a84ff, #00e5ff, #ff007a, #ff8a00, #ffd600); position: relative; isolation: isolate; overflow: hidden; padding: 100px 20px; background-color: #333333; }

.cp-fournisseur *, .cp-fournisseur *:before, .cp-fournisseur *:after { box-sizing: border-box; }

/* Halo colore diffus derriere la carte : la carte se detache du fond plat */
.cp-fournisseur::before { content: ""; position: absolute; top: 50%; left: 50%; z-index: -1; width: 70%; max-width: 820px; height: 70%; background: var(--cp-degrade); border-radius: 50%; filter: blur(90px); opacity: 0.22; transform: translate(-50%, -50%); pointer-events: none; }

/* Carte centree avec bordure en degrade des couleurs du camion */
.cp-fournisseur__carte { position: relative; max-width: 760px; margin: 0 auto; padding: 3.5rem 3rem; text-align: center; border: 2px solid transparent; border-radius: 1.5rem; background: linear-gradient(160deg, #2e2e2e, var(--cp-carte)) padding-box, var(--cp-degrade) border-box; box-shadow: 0 30px 60px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(255, 255, 255, 0.04) inset; }

/* Logo sur pastille blanche : reste lisible meme s'il est sombre */
.cp-fournisseur__logo { display: inline-flex; align-items: center; justify-content: center; margin-bottom: 2.25rem; padding: 1.5rem 2.5rem; background-color: #ffffff; border-radius: 1rem; box-shadow: 0 10px 25px rgba(0, 0, 0, 0.35); }

.cp-fournisseur__logo img { display: block; width: auto; max-width: 380px; height: auto; max-height: 140px; }

/* Les champs du CMS contiennent leurs propres balises : on neutralise leurs marges */
.cp-fournisseur__titre > * { margin: 0; color: inherit; }

.cp-fournisseur__titre { color: var(--cp-titre); line-height: 1.15; }

.cp-fournisseur__ligne { display: block; width: 90px; height: 4px; margin: 1.25rem auto 1.5rem; border-radius: 4px; background: var(--cp-degrade); }

.cp-fournisseur__description { max-width: 36rem; margin: 0 auto; color: var(--cp-texte); line-height: 1.7; }

.cp-fournisseur__description > *:last-child { margin-bottom: 0; }

/* ---------- Responsive ---------- */
@media (max-width: 767.98px) { .cp-fournisseur { padding: 60px 16px; } .cp-fournisseur::before { width: 90%; filter: blur(60px); } .cp-fournisseur__carte { padding: 2.5rem 1.5rem; border-radius: 1.25rem; } .cp-fournisseur__logo { padding: 1.25rem 1.75rem; margin-bottom: 1.75rem; } .cp-fournisseur__logo img { max-width: 100%; max-height: 100px; } }

/*# sourceMappingURL=custom.css.map */