/* Recoland RDC – responsive & animations modernes */
:root { --rc-g: #014a3f; --rc-g2: #1B7C29; --rc-ease: cubic-bezier(.22, .8, .24, 1); }

/* ---------- Responsive ---------- */
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
html, body { overflow-x: hidden; }
@supports (overflow: clip) { html, body { overflow-x: clip; } }
body { text-rendering: optimizeLegibility; }
img, video, svg, canvas { max-width: 100%; }
.elementor img { height: auto; }
.elementor-widget-text-editor, .elementor-widget-text-editor p, .elementor-widget-text-editor li,
.elementor-heading-title, .elementor-icon-list-text, .entry-content { overflow-wrap: break-word; }
a[href^="mailto:"] { overflow-wrap: anywhere; }
iframe { max-width: 100%; }
table { display: block; max-width: 100%; overflow-x: auto; }

/* Tablettes */
@media (max-width: 1024px) {
  .elementor-section.elementor-section-boxed > .elementor-container { padding-left: 20px; padding-right: 20px; }
  .elementor-nav-menu--main .elementor-item { padding-left: 10px !important; padding-right: 10px !important; }
}
/* Mobiles */
@media (max-width: 767px) {
  .elementor-section.elementor-section-boxed > .elementor-container { padding-left: 16px; padding-right: 16px; }
  .elementor-widget-text-editor { font-size: max(15px, 1em); line-height: 1.65; }
  h1.elementor-heading-title { font-size: clamp(28px, 9vw, 44px) !important; line-height: 1.12 !important; }
  h2.elementor-heading-title { font-size: clamp(24px, 7.4vw, 36px) !important; line-height: 1.18 !important; }
  .elementor-button { min-height: 44px; display: inline-flex !important; align-items: center; justify-content: center; }
  .elementor-widget-image-carousel .swiper-slide img { width: 100%; object-fit: cover; }
  #cookie-notice .cookie-notice-container { padding: 12px 16px !important; font-size: 13px; }
}
/* En-tête : icônes sociales et menu mobile homogènes sur toutes les pages (vert Recoland) */
.elementor-location-header .elementor-social-icon { background-color: var(--rc-g) !important; }
.elementor-location-header .elementor-social-icon svg { fill: #fff !important; }
.elementor-location-header .elementor-menu-toggle { background-color: var(--rc-g) !important; color: #fff !important; }
.elementor-location-header .elementor-menu-toggle svg { fill: #fff !important; }
.elementor-location-header .elementor-social-icons-wrapper > svg { display: none; } /* icône orpheline éventuelle */

/* Très petits écrans */
@media (max-width: 380px) {
  .elementor-location-header .elementor-social-icons-wrapper { gap: 4px; }
}
/* Grands écrans */
@media (min-width: 1920px) {
  .elementor-section.elementor-section-boxed > .elementor-container { max-width: 1320px; }
}

/* ---------- Apparition au défilement ---------- */
.rc-rv { opacity: 0; transform: translate3d(0, 34px, 0); transition: opacity .8s var(--rc-ease), transform .9s var(--rc-ease); transition-delay: var(--rc-delay, 0s); will-change: opacity, transform; }
.rc-rv.rc-left  { transform: translate3d(-42px, 0, 0); }
.rc-rv.rc-right { transform: translate3d(42px, 0, 0); }
.rc-rv.rc-zoom  { transform: scale(.94); }
.rc-rv.rc-in { opacity: 1; transform: none; }
.rc-rv.rc-done { will-change: auto; }

/* Images : zoom doux au survol */
.elementor-widget-image .elementor-widget-container,
.elementor-widget-image-box .elementor-image-box-img { overflow: hidden; border-radius: inherit; }
.elementor-widget-image img, .elementor-image-box-img img { transition: transform 1.1s var(--rc-ease), filter .6s ease; }
.elementor-widget-image:hover img, .elementor-widget-image-box:hover .elementor-image-box-img img { transform: scale(1.06); }

/* Cartes (boîtes image / icône) */
.elementor-widget-image-box, .elementor-widget-icon-box, .elementor-widget-call-to-action { transition: transform .5s var(--rc-ease), box-shadow .5s var(--rc-ease); }
.elementor-widget-image-box:hover, .elementor-widget-icon-box:hover { transform: translateY(-6px); }

/* Boutons : élévation + reflet */
.elementor-button { position: relative; overflow: hidden; isolation: isolate; transition: transform .35s var(--rc-ease), box-shadow .35s var(--rc-ease), background-color .3s, color .3s !important; }
.elementor-button::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(110deg, transparent 30%, rgba(255,255,255,.35) 50%, transparent 70%); transform: translateX(-120%); transition: transform .8s var(--rc-ease); }
.elementor-button:hover { transform: translateY(-3px); box-shadow: 0 12px 26px -10px rgba(1, 74, 63, .55); }
.elementor-button:hover::after { transform: translateX(120%); }

/* Icônes sociales */
.elementor-social-icon { transition: transform .35s var(--rc-ease) !important; }
.elementor-social-icon:hover { transform: translateY(-3px) rotate(-6deg); }

/* Menu : soulignement animé */
.elementor-nav-menu--main .elementor-item { position: relative; }
.elementor-nav-menu--main .elementor-item::before { content: ""; position: absolute; left: 12px; right: 12px; bottom: 6px; height: 2px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .45s var(--rc-ease); opacity: .8; }
.elementor-nav-menu--main .elementor-item:hover::before, .elementor-nav-menu--main .elementor-item:focus-visible::before { transform: scaleX(1); transform-origin: left; }


/* En-tête : ombre au défilement (si collant) */
header.elementor-location-header, .elementor-location-header { transition: box-shadow .4s ease; }
html.rc-scrolled .elementor-sticky--effects, html.rc-scrolled .elementor-sticky--active { box-shadow: 0 8px 24px -12px rgba(10,20,40,0.25); }

/* Liens du pied de page */
.elementor-location-footer a { transition: color .3s, padding .3s var(--rc-ease); }
.elementor-location-footer .elementor-icon-list-item a:hover { padding-left: 4px; }

/* Bouton retour en haut avec anneau de progression */
.rc-top { position: fixed; right: 16px; bottom: 16px; z-index: 2147482000; width: 48px; height: 48px; border: 0 !important; padding: 0; border-radius: 50% !important;
  background: #fff !important; color: var(--rc-g) !important; box-shadow: 0 6px 20px -6px rgba(10,20,40,0.3); cursor: pointer;
  opacity: 0; transform: translateY(16px) scale(.9); pointer-events: none; transition: opacity .4s ease, transform .4s var(--rc-ease); }
.rc-top.rc-show { opacity: 1; transform: none; pointer-events: auto; }
.rc-top:hover, .rc-top:focus-visible { background: var(--rc-g) !important; color: #fff !important; }
.rc-top svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.rc-top .rc-ring { fill: none; stroke: var(--rc-g); stroke-width: 3; stroke-linecap: round; transform: rotate(-90deg); transform-origin: 50% 50%; stroke-dasharray: 1; stroke-dashoffset: 1; }
.rc-top:hover .rc-ring { stroke: #fff; }
.rc-top .rc-arrow { fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }

/* Mouvement réduit */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .rc-rv { opacity: 1 !important; transform: none !important; transition: none !important; }
  .elementor-widget-image:hover img, .elementor-button:hover, .elementor-widget-image-box:hover, .elementor-widget-icon-box:hover { transform: none !important; }
}

/* ---------- Sections sombres (charte) + motif environnement animé à 15 % ---------- */
.rc-dark { background: radial-gradient(at 50% 0%, #084736 0%, #04261D 100%) !important; color: #FFFFFF; }
.rc-dark > .elementor-background-overlay { display: none !important; }
.rc-dark .elementor-heading-title, .rc-dark h1, .rc-dark h2, .rc-dark h3, .rc-dark h4, .rc-dark h5, .rc-dark h6,
.rc-dark .elementor-widget-text-editor, .rc-dark .elementor-widget-text-editor *, .rc-dark p, .rc-dark li,
.rc-dark .elementor-icon-list-text, .rc-dark .elementor-tab-title, .rc-dark .elementor-tab-title a, .rc-dark .elementor-tab-content,
.rc-dark .elementor-toggle-title, .rc-dark .elementor-accordion-title, .rc-dark .elementor-image-box-title, .rc-dark .elementor-image-box-description,
.rc-dark .elementor-icon-box-title, .rc-dark .elementor-icon-box-title a, .rc-dark .elementor-icon-box-description, .rc-dark .elementor-counter-number-wrapper,
.rc-dark .elementor-counter-title, .rc-dark a:not(.elementor-button) { color: #FFFFFF !important; }
.rc-dark a:not(.elementor-button) { text-decoration-color: #FFF039; }
.rc-dark .elementor-icon, .rc-dark .elementor-icon-list-icon i, .rc-dark .elementor-icon-list-icon svg, .rc-dark .elementor-icon svg,
.rc-dark .elementor-toggle-icon, .rc-dark .elementor-accordion-icon { color: #FFFFFF !important; fill: #FFFFFF !important; border-color: rgba(255,255,255,.17) !important; }
.rc-dark .elementor-button { background-color: #1B7C29 !important; color: #FFFFFF !important; border-color: rgba(255,255,255,.17) !important; }
.rc-dark .elementor-button:hover { background-color: #FFFFFF !important; color: #014A3F !important; }
.rc-dark .elementor-divider-separator, .rc-dark .elementor-tab-title, .rc-dark .elementor-tab-content, .rc-dark .elementor-toggle-item { border-color: rgba(255,255,255,.17) !important; }
/* cartes claires conservées dans une section sombre */
.rc-dark .rc-keep-light, .rc-dark .rc-keep-light * { color: #0A1428 !important; }
.rc-dark .rc-keep-light .elementor-heading-title { color: #1B7C29 !important; }

.rc-pattern { position: relative; isolation: isolate; }
.rc-pattern::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: .15;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' fill='none' stroke='%23FFFFFF' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 40C14 24 26 14 44 14C44 30 34 40 14 40ZM14 40L34 20'/%3E%3Cpath d='M122 22a14 14 0 1 1-12 6M106 22l4 6 6-4'/%3E%3Cpath d='M36 100c7 9 10 15 10 20a10 10 0 0 1-20 0c0-5 3-11 10-20Z'/%3E%3Cpath d='M132 164v-18M132 146c-10 0-15-7-15-13s6-12 15-12 15 5 15 12-5 13-15 13Z'/%3E%3Ccircle cx='92' cy='84' r='5'/%3E%3Cpath d='M92 72v-4M92 100v-4M80 84h-4M108 84h-4'/%3E%3Cpath d='M66 146h12v4c3 2 5 5 5 9v8c0 2-2 4-4 4H65c-2 0-4-2-4-4v-8c0-4 2-7 5-9Z'/%3E%3Cpath d='M160 70c-8 0-12 6-12 12 8 0 12-6 12-12Z'/%3E%3C/svg%3E");
  background-size: 180px 180px;
  animation: rc-drift 46s linear infinite;
}
.rc-pattern > :not(.elementor-background-overlay):not(.elementor-background-video-container):not(.elementor-background-slideshow):not(.elementor-shape) { position: relative; z-index: 2; }
@keyframes rc-drift { to { background-position: 180px -180px; } }
@media (prefers-reduced-motion: reduce) { .rc-pattern::before { animation: none; } }

/* Icônes SVG sans couleur définie : couleur du texte (évite le noir hors charte) */
svg.e-font-icon-svg { fill: currentColor; }
/* Flèches de carrousel : blanc cassé de la charte */
.elementor-swiper-button { color: #F8F9FF !important; }
.elementor-swiper-button svg, .elementor-swiper-button svg path { fill: #F8F9FF !important; }

/* ================= Mise en page professionnelle ================= */
/* Ancres sous l'en-tête */
[id] { scroll-margin-top: 130px; }

/* Boutons : angles droits (charte), tailles homogènes */
.elementor-button { border-radius: 0 !important; min-height: 44px; padding: 12px 26px !important; font-weight: 600 !important; letter-spacing: 1px; text-transform: uppercase; font-size: 13px !important; line-height: 1.2 !important; display: inline-flex !important; align-items: center; justify-content: center; }
@media (max-width: 767px) {
  .elementor-widget-button { text-align: center !important; }
  .elementor-widget-button .elementor-button { width: 100%; max-width: 340px; }
}

/* Menu : sous-menus lisibles, libellés longs sur plusieurs lignes */
.elementor-nav-menu--main .sub-menu { min-width: 280px !important; }
.elementor-nav-menu--main .elementor-sub-item { white-space: normal !important; line-height: 1.35; padding-top: 12px !important; padding-bottom: 12px !important; }
.elementor-nav-menu--main .elementor-item.elementor-item-active { color: #1B7C29 !important; }
.elementor-nav-menu--main .elementor-item.elementor-item-active::before { display: block !important; transform: scaleX(1) !important; }

/* Pied de page : colonne imbriquée par erreur dans le gabarit d'origine */
.elementor-widget-wrap > .elementor-column { width: 100% !important; }
.elementor-location-footer .elementor-heading-title { word-break: normal !important; overflow-wrap: normal !important; }
.rc-foot-bottom { background-color: #04261D !important; }

/* Texte : largeur de lecture confortable (classes posées par enhance.js) */
.rc-measure { max-width: 860px; margin-left: auto !important; margin-right: auto !important; }
.rc-measure-h { max-width: 980px; margin-left: auto !important; margin-right: auto !important; }
.rc-edge { padding-left: clamp(16px, 4vw, 56px) !important; padding-right: clamp(16px, 4vw, 56px) !important; }
@media (max-width: 767px) { .rc-left-m { text-align: left !important; } }
.rc-dark { padding-top: clamp(56px, 7vw, 96px) !important; padding-bottom: clamp(56px, 7vw, 96px) !important; }

/* ================= Blocs des nouvelles sections (service Hygiène 4D) ================= */
.rc-sec { padding: clamp(56px, 7vw, 96px) 0; }
.rc-sec > .elementor-container { max-width: 1140px; margin: 0 auto; padding: 0 clamp(16px, 4vw, 32px) !important; }
.rc-sec .elementor-widget-wrap { display: block !important; text-align: center; }
.rc-sec .elementor-widget { margin-bottom: 0; }
.rc-sec h1.elementor-heading-title { font-family: "Jost", sans-serif; font-weight: 800; font-size: clamp(30px, 4.6vw, 48px); line-height: 1.15; color: #1B7C29; margin: 0 auto 18px; max-width: 900px; }
.rc-sec h2.elementor-heading-title { font-family: "Jost", sans-serif; font-weight: 700; font-size: clamp(26px, 3.4vw, 39px); line-height: 1.2; color: #1B7C29; margin: 0 auto 16px; max-width: 900px; }
.rc-kicker { font-size: 14px; letter-spacing: 2px; text-transform: uppercase; font-weight: 600; color: #1B7C29; margin: 0 0 10px; }
.rc-dark .rc-kicker { color: #FFF039 !important; }
.rc-lead { max-width: 760px; margin: 0 auto 32px !important; font-size: 17px; line-height: 1.65; color: rgba(10,20,40,.868); }
.rc-actions { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin-top: 28px; }
.rc-actions .elementor-widget-button { margin: 0 !important; }
.rc-btn { background-color: #014A3F !important; color: #FFFFFF !important; border: 1px solid #014A3F !important; }
.rc-btn:hover { background-color: #1B7C29 !important; border-color: #1B7C29 !important; }
.rc-btn-outline { background-color: transparent !important; color: #014A3F !important; }
.rc-btn-outline:hover { background-color: #014A3F !important; color: #FFFFFF !important; }
.rc-dark .rc-btn-outline { color: #FFFFFF !important; border-color: rgba(255,255,255,.6) !important; background: transparent !important; }
.rc-dark .rc-btn-outline:hover { background-color: #FFFFFF !important; color: #014A3F !important; }

.rc-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; text-align: left; margin-top: 8px; }
@media (max-width: 1024px) { .rc-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .rc-cards { grid-template-columns: 1fr; } }
.rc-card { background: #FFFFFF; border: 1px solid #CCD3DD; border-top: 3px solid #1B7C29; padding: 26px 22px; margin: 0 !important; }
.rc-card:hover { box-shadow: 0 16px 34px -18px rgba(1,74,63,.45); }
.rc-card-icon { width: 54px; height: 54px; display: grid; place-items: center; background: #F8F9FF; color: #014A3F; margin-bottom: 16px; }
.rc-card-icon svg { width: 36px; height: 36px; fill: none !important; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.rc-card-title { font-family: "Jost", sans-serif; font-size: 21px !important; font-weight: 700 !important; color: #014A3F !important; margin: 0 0 10px !important; }
.rc-card p { font-size: 15.5px; line-height: 1.6; color: rgba(10,20,40,.868); margin: 0 0 12px; }
.rc-list, .rc-checks { list-style: none; margin: 0; padding: 0; }
.rc-list li { position: relative; padding: 6px 0 6px 18px; font-size: 14.5px; line-height: 1.45; color: rgba(10,20,40,.868); border-top: 1px solid #CCD3DD; }
.rc-list li::before { content: ""; position: absolute; left: 0; top: 13px; width: 7px; height: 7px; background: #1B7C29; }

.rc-steps { list-style: none; counter-reset: rc-step; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 24px 0 0; padding: 0; text-align: left; }
@media (max-width: 1024px) { .rc-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .rc-steps { grid-template-columns: 1fr; } }
.rc-step { counter-increment: rc-step; position: relative; padding: 64px 24px 24px; border-left: 1px solid #CCD3DD; }
.rc-step:first-child { border-left: 0; }
@media (max-width: 1024px) { .rc-step { border-left: 0; border-top: 1px solid #CCD3DD; } }
.rc-step::before { content: counter(rc-step, decimal-leading-zero); position: absolute; top: 16px; left: 24px; font-family: "Jost", sans-serif; font-weight: 800; font-size: 34px; line-height: 1; color: #1B7C29; }
.rc-step .elementor-heading-title { font-family: "Jost", sans-serif; font-size: 20px !important; font-weight: 700 !important; color: #014A3F !important; margin: 0 0 8px !important; }
.rc-step p { margin: 0; font-size: 15.5px; line-height: 1.6; color: rgba(10,20,40,.868); }

.rc-chips { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 0; padding: 0; }
.rc-chips li { padding: 12px 20px; border: 1px solid rgba(255,255,255,.17); background: rgba(255,255,255,.06); font-weight: 600; }
.rc-checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 32px; max-width: 920px; margin: 24px auto 0; text-align: left; }
@media (max-width: 767px) { .rc-checks { grid-template-columns: 1fr; } }
.rc-checks li { position: relative; padding: 14px 16px 14px 52px; background: #F8F9FF; border-left: 3px solid #1B7C29; line-height: 1.5; color: #0A1428; }
.rc-checks li::before { content: ""; position: absolute; left: 18px; top: 50%; width: 16px; height: 9px; margin-top: -7px; border-left: 3px solid #1B7C29; border-bottom: 3px solid #1B7C29; transform: rotate(-45deg); }
.rc-hero { padding-top: clamp(72px, 10vw, 140px) !important; padding-bottom: clamp(72px, 10vw, 140px) !important; }
.rc-hero h1.elementor-heading-title, .rc-cta h2.elementor-heading-title { color: #FFFFFF !important; }
.rc-4d { background: #F8F9FF; }/* Titres longs sur mobile (mots composés) */
@media (max-width: 767px) { .rc-sec h1.elementor-heading-title { font-size: clamp(25px, 7vw, 34px) !important; hyphens: auto; -webkit-hyphens: auto; } .rc-chips li { width: 100%; max-width: 340px; text-align: center; } }
/* Page « Nos services » : grille de 3 cartes avec lien */
.rc-cards.rc-cards-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1024px) { .rc-cards.rc-cards-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .rc-cards.rc-cards-3 { grid-template-columns: 1fr; } }
.rc-card { display: flex; flex-direction: column; }
.rc-card-link { margin-top: auto; padding-top: 10px; align-self: flex-start; font-weight: 600; font-size: 13px; letter-spacing: 1px; text-transform: uppercase; color: #014A3F !important; text-decoration: none; border-bottom: 2px solid #1B7C29; }
.rc-card-link::after { content: " \2192"; }
.rc-card-link:hover { color: #1B7C29 !important; }
/* ================= Pages refondues : photos conservées ================= */
.rc-hero-img { background-image: linear-gradient(180deg, rgba(4,38,29,.74), rgba(8,71,54,.62)), var(--rc-bg) !important; background-size: cover !important; background-position: center !important; }
.rc-tagline { font-family: "Jost", sans-serif; font-style: italic; font-size: clamp(20px, 2.6vw, 30px); color: #FFF039; margin: -6px 0 18px; }
.rc-sec .rc-rich { max-width: 760px; margin: 0 auto 16px; font-size: 17px; line-height: 1.7; color: rgba(10,20,40,.868); }
.rc-sec .rc-rich p { margin: 0 0 14px; }
.rc-dark .rc-rich, .rc-dark .rc-rich * { color: #FFFFFF !important; }
.rc-dark .rc-rich { margin-left: auto; margin-right: auto; }

.rc-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 64px); align-items: center; text-align: left; }
.rc-split-rev .rc-media { order: 2; }
@media (max-width: 900px) { .rc-split { grid-template-columns: 1fr; } .rc-split-rev .rc-media { order: 0; } }
.rc-split .rc-split-body .elementor-heading-title { text-align: left; margin-left: 0 !important; }
.rc-split .rc-rich, .rc-split .rc-lead { margin-left: 0 !important; text-align: left; max-width: none; }
.rc-split .rc-actions { justify-content: flex-start; }
.rc-split h3.elementor-heading-title { font-family: "Jost", sans-serif; font-size: 22px !important; color: #014A3F !important; margin: 0 0 14px !important; line-height: 1.3; }
.rc-media { margin: 0 !important; position: relative; overflow: hidden; }
.rc-media::after { content: ""; position: absolute; left: 0; bottom: 0; width: 38%; height: 4px; background: #1B7C29; }
.rc-img { display: block; width: 100%; height: 100%; max-height: 520px; object-fit: cover; aspect-ratio: 4 / 3; }

.rc-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
@media (max-width: 900px) { .rc-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.rc-gallery figure { margin: 0 !important; overflow: hidden; }
.rc-gallery .rc-img { aspect-ratio: 1 / 1; transition: transform 1s cubic-bezier(.22,.8,.24,1); }
.rc-gallery figure:hover .rc-img { transform: scale(1.06); }

.rc-pillars { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: 10px; }
@media (max-width: 1024px) { .rc-pillars { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .rc-pillars { grid-template-columns: 1fr; } }
.rc-pillar { position: relative; display: block; overflow: hidden; min-height: 320px; margin: 0 !important; text-decoration: none; color: #FFFFFF !important; }
.rc-pillar .rc-img { position: absolute; inset: 0; height: 100%; max-height: none; aspect-ratio: auto; transition: transform 1s cubic-bezier(.22,.8,.24,1); }
.rc-pillar::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(4,38,29,0) 30%, rgba(4,38,29,.92) 100%); }
.rc-pillar:hover .rc-img { transform: scale(1.06); }
.rc-pillar-n { position: absolute; top: 16px; right: 20px; z-index: 1; font-family: "Jost", sans-serif; font-weight: 800; font-size: 46px; line-height: 1; color: #FFFFFF; }
.rc-pillar-t { position: absolute; left: 20px; right: 20px; bottom: 20px; z-index: 1; font-family: "Jost", sans-serif; font-weight: 700; font-size: 20px; line-height: 1.25; text-align: left; border-left: 3px solid #FFF039; padding-left: 12px; }

.rc-legal-sec .elementor-widget-wrap { text-align: left !important; }
.rc-legal { max-width: 860px; margin: 0 auto; text-align: left; }
.rc-legal .elementor-widget { margin: 0 !important; }
.rc-legal .elementor-widget-container { padding: 0 !important; margin: 0 !important; background: none !important; border: 0 !important; }
.rc-legal h2.elementor-heading-title, .rc-legal h2 { font-family: "Jost", sans-serif; font-size: clamp(22px, 2.6vw, 28px) !important; color: #1B7C29 !important; margin: 0 0 8px !important; text-align: left !important; }
.rc-legal h3, .rc-legal h3.elementor-heading-title { font-family: "Jost", sans-serif; font-size: 20px !important; font-weight: 700 !important; color: #014A3F !important; margin: 34px 0 10px !important; padding-top: 18px; border-top: 1px solid #CCD3DD; text-align: left !important; line-height: 1.35 !important; text-transform: none !important; }
.rc-legal h4, .rc-legal h4.elementor-heading-title, .rc-legal p, .rc-legal li { font-family: inherit !important; font-size: 16.5px !important; font-weight: 400 !important; line-height: 1.7 !important; color: rgba(10,20,40,.868) !important; text-align: left !important; text-transform: none !important; letter-spacing: 0 !important; margin: 0 0 12px !important; }
.rc-legal ul, .rc-legal ol { margin: 0 0 14px 0 !important; padding-left: 22px !important; }
.rc-legal li { margin-bottom: 6px !important; }
.rc-legal strong, .rc-legal b { color: #0A1428 !important; }
.rc-legal a { color: #1B7C29 !important; }
.rc-faq h3, .rc-faq h3.elementor-heading-title { border-top: 0; padding: 16px 18px; margin: 26px 0 10px !important; background: #F8F9FF; border-left: 3px solid #1B7C29; }

.rc-social { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }
.rc-social a { padding: 8px 12px; border: 1px solid #014A3F; color: #014A3F !important; font-size: 13px; font-weight: 600; text-decoration: none; }
.rc-social a:hover { background: #014A3F; color: #FFFFFF !important; }
.rc-mail { text-transform: none !important; letter-spacing: 0 !important; overflow-wrap: anywhere; }
.rc-mail::after { content: "" !important; }

/* ================= Accueil : modèle « bandeau partagé » ================= */
/* Boutons pilule */
.rc-pill { border-radius: 999px !important; padding: 13px 26px !important; font-weight: 700 !important; text-transform: none !important; letter-spacing: .2px !important; font-size: 15px !important; gap: 8px; }
.rc-pill .elementor-button-text::after { content: " \2192"; }
.rc-pill-y { background: #FFF039 !important; color: #04261D !important; border: 2px solid #FFF039 !important; }
.rc-pill-y:hover { background: #FFFFFF !important; border-color: #FFFFFF !important; color: #04261D !important; }
.rc-pill-o { background: transparent !important; color: #FFFFFF !important; border: 2px solid rgba(255,255,255,.7) !important; }
.rc-pill-o:hover { background: #FFFFFF !important; color: #04261D !important; }
.rc-pill-o .elementor-button-text::after { content: ""; }
.rc-h-why .rc-pill-y { border-color: #FFF039 !important; }

/* 1. Bandeau partagé, bord courbe */
.rc-h-hero { position: relative; display: grid !important; grid-template-columns: 1.08fr 1fr; min-height: 560px; background: #04261D; overflow: hidden; padding: 0 !important; }
.rc-h-panel { position: relative; z-index: 2; margin-right: -140px; background: linear-gradient(135deg, #04261D 0%, #084736 100%); border-top-right-radius: 260px 50%; border-bottom-right-radius: 260px 50%; box-shadow: 10px 0 0 0 #1B7C29; display: flex; align-items: center; }
.rc-h-inner { position: relative; z-index: 2; padding: clamp(48px, 7vw, 90px) clamp(150px, 12vw, 190px) clamp(48px, 7vw, 90px) clamp(20px, 6vw, 96px); text-align: left; }
.rc-h-hero .rc-kicker { color: #FFF039 !important; text-align: left; }
.rc-h-hero h1.elementor-heading-title { font-family: "Jost", sans-serif; font-weight: 800; font-size: clamp(34px, 4.4vw, 58px) !important; line-height: 1.08 !important; color: #FFFFFF !important; text-align: left !important; margin: 0 0 18px !important; max-width: none !important; }
.rc-h-l1, .rc-h-l2 { display: block; }
.rc-h-l2 { color: #FFF039 !important; font-size: .62em; font-weight: 700; margin-top: 8px; }
.rc-h-hero .rc-lead { margin: 0 0 26px !important; text-align: left; max-width: 520px; }
.rc-h-hero .rc-lead p { color: rgba(255,255,255,.9) !important; }
.rc-h-actions { justify-content: flex-start !important; margin-top: 0 !important; }
.rc-h-badges { display: flex; flex-wrap: wrap; gap: 22px 34px; margin-top: 34px; }
.rc-h-badge, .rc-h-float, .rc-why-card { display: flex; align-items: center; gap: 12px; text-align: left; }
.rc-h-badge strong, .rc-h-float strong, .rc-why-card strong { display: block; font-size: 14.5px; color: #FFFFFF; }
.rc-h-badge small, .rc-h-float small, .rc-why-card small { display: block; font-size: 12.5px; color: rgba(255,255,255,.75); line-height: 1.4; }
.rc-h-bi { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; border: 2px solid #1B7C29; background: rgba(27,124,41,.25); color: #FFF039; }
.rc-h-bi svg, .rc-feat-ic svg, .rc-stat-ic svg, .rc-pcard-badge svg, .rc-pcard-a svg, .rc-kicker-leaf svg { width: 22px; height: 22px; fill: none !important; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.rc-h-photo { position: relative; z-index: 1; min-height: 560px; }
.rc-h-photo .rc-img { position: absolute; inset: 0; width: 100%; height: 100%; max-height: none; aspect-ratio: auto; object-fit: cover; object-position: 60% center; }
.rc-h-float { position: absolute; right: clamp(16px, 3vw, 36px); bottom: clamp(16px, 3vw, 36px); z-index: 2; max-width: 260px; padding: 16px 18px; background: #04261D; border-radius: 16px; box-shadow: 0 18px 40px -18px rgba(0,0,0,.6); }
@media (max-width: 900px) {
  .rc-h-hero { grid-template-columns: 1fr; }
  .rc-h-panel { margin-right: 0; border-radius: 0 0 48px 48px; box-shadow: 0 8px 0 0 #1B7C29; order: 1; }
  .rc-h-inner { padding: 56px 20px 48px; text-align: center; }
  .rc-h-hero .rc-kicker, .rc-h-hero h1.elementor-heading-title, .rc-h-hero .rc-lead { text-align: center !important; margin-left: auto !important; margin-right: auto !important; }
  .rc-h-actions, .rc-h-badges { justify-content: center !important; }
  .rc-h-photo { order: 2; min-height: 320px; margin-top: -40px; }
}

/* 2. Bande d'icônes */
.rc-h-feat .rc-kicker { color: #FFF039 !important; }
.rc-h-feat .rc-rich { max-width: 680px; }
.rc-feat { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 34px; }
.rc-feat-i { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 8px 18px; text-align: center; text-decoration: none; border-left: 1px solid rgba(255,255,255,.17); margin: 0 !important; }
.rc-feat-i:first-child { border-left: 0; }
.rc-feat-ic { width: 62px; height: 62px; border-radius: 50%; display: grid; place-items: center; background: #1B7C29; color: #FFFFFF; box-shadow: 0 0 0 6px rgba(27,124,41,.25); transition: transform .4s cubic-bezier(.22,.8,.24,1); }
.rc-feat-ic svg { width: 28px; height: 28px; }
.rc-feat-i:hover .rc-feat-ic { transform: translateY(-4px); }
.rc-feat-t { font-family: "Jost", sans-serif; font-weight: 700; font-size: 16px; color: #FFFFFF !important; line-height: 1.3; }
.rc-feat-d { font-size: 13.5px; line-height: 1.5; color: rgba(255,255,255,.78) !important; }
@media (max-width: 1024px) { .rc-feat { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; } .rc-feat-i:nth-child(odd) { border-left: 0; } }
@media (max-width: 600px) { .rc-feat { grid-template-columns: 1fr; } .rc-feat-i { border-left: 0; border-top: 1px solid rgba(255,255,255,.17); padding-top: 22px; } .rc-feat-i:first-child { border-top: 0; } }

/* 3. Pourquoi Recoland */
.rc-why { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 64px); align-items: center; text-align: left; }
.rc-why .elementor-heading-title { text-align: left !important; margin-left: 0 !important; }
.rc-why .rc-rich { margin-left: 0 !important; text-align: left; max-width: none; }
.rc-why .rc-actions { justify-content: flex-start; }
.rc-kicker-leaf { display: inline-flex; align-items: center; gap: 8px; }
.rc-kicker-leaf svg { width: 18px; height: 18px; color: #1B7C29; }
.rc-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 34px; padding-top: 26px; border-top: 1px solid #CCD3DD; }
.rc-stat { display: flex; align-items: flex-start; gap: 10px; }
.rc-stat-ic { flex: 0 0 auto; color: #1B7C29; margin-top: 4px; }
.rc-stat b { display: block; font-family: "Jost", sans-serif; font-size: 30px; font-weight: 800; line-height: 1; color: #014A3F; }
.rc-stat small { display: block; font-size: 13px; line-height: 1.4; color: rgba(10,20,40,.8); margin-top: 4px; }
.rc-why-panel { background: rgba(27,124,41,.12); border-radius: 28px; padding: clamp(18px, 3vw, 28px); text-align: left; }
.rc-why-img { margin: 0 0 18px !important; border-radius: 18px; overflow: hidden; }
.rc-why-img .rc-img { aspect-ratio: 16 / 9; }
.rc-why-panel h3.elementor-heading-title { font-family: "Jost", sans-serif; font-size: 22px !important; color: #014A3F !important; text-align: left !important; margin: 0 0 8px !important; }
.rc-why-panel .rc-rich { font-size: 15.5px; margin-bottom: 16px !important; }
.rc-why-card { background: #04261D; border-radius: 16px; padding: 16px 18px; }
.rc-why-card a { display: inline-block; margin-top: 6px; font-weight: 700; font-size: 13.5px; color: #FFF039 !important; text-decoration: none; }
.rc-why-card a::after { content: " \2192"; }
@media (max-width: 900px) { .rc-why { grid-template-columns: 1fr; } .rc-stats { grid-template-columns: 1fr; } }

/* 4. Piliers : cartes photo */
.rc-pil { display: grid; grid-template-columns: .85fr 2fr; gap: clamp(28px, 4vw, 48px); align-items: center; text-align: left; }
.rc-pil .elementor-heading-title, .rc-pil .rc-kicker { text-align: left !important; margin-left: 0 !important; }
.rc-pil .rc-rich { margin-left: 0 !important; text-align: left; }
.rc-pil .rc-actions { justify-content: flex-start; }
.rc-h-pil .rc-kicker { color: #FFF039 !important; }
.rc-pcards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.rc-pcard { display: flex; flex-direction: column; background: #FFFFFF; border-radius: 14px; overflow: hidden; text-decoration: none; margin: 0 !important; transition: transform .4s cubic-bezier(.22,.8,.24,1), box-shadow .4s; }
.rc-pcard:hover { transform: translateY(-6px); box-shadow: 0 20px 36px -18px rgba(0,0,0,.6); }
.rc-pcard-img { position: relative; display: block; }
.rc-pcard-img .rc-img { aspect-ratio: 4 / 3; }
.rc-pcard-badge { position: absolute; left: 14px; bottom: -18px; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: #014A3F; color: #FFFFFF; border: 3px solid #FFFFFF; }
.rc-pcard-badge svg { width: 18px; height: 18px; }
.rc-pcard-b { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; padding: 28px 16px 16px; flex: 1; }
.rc-pcard-t { font-family: "Jost", sans-serif; font-weight: 700; font-size: 15.5px; line-height: 1.3; color: #014A3F !important; }
.rc-pcard-a { color: #1B7C29 !important; flex: 0 0 auto; }
@media (max-width: 1100px) { .rc-pil { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .rc-pcards { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rc-pcard:last-child:nth-child(odd) { grid-column: 1 / -1; } }
@media (max-width: 480px) { .rc-pcards { grid-template-columns: 1fr; } }
.rc-dark .rc-pcard-t { color: #014A3F !important; }
.rc-dark .rc-pcard-a svg, .rc-dark .rc-pcard-badge svg { fill: none !important; }

/* ================= Pied de page ================= */
.rc-footer { position: relative; overflow: hidden; background: #084736 !important; color: #FFFFFF; font-family: "Jost", "TT Commons Classic", sans-serif; }
.rc-footer::before { content: none !important; }
.rc-f-wrap { position: relative; z-index: 1; max-width: 1180px; margin: 0 auto; padding: clamp(48px, 6vw, 72px) clamp(20px, 4vw, 40px) 0; }
.rc-f-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 28px; padding-bottom: 36px; border-bottom: 1px solid rgba(255,255,255,.17); }
.rc-f-h { font-family: "Jost", sans-serif; font-size: 17px !important; font-weight: 600 !important; color: #FFFFFF !important; margin: 0 0 16px !important; letter-spacing: .2px; }
.rc-f-col ul { list-style: none; margin: 0; padding: 0; }
.rc-f-col li { margin: 0 0 11px; font-size: 14px; line-height: 1.45; color: rgba(255,255,255,.82); }
.rc-f-col a { color: rgba(255,255,255,.82) !important; text-decoration: none; transition: color .25s; overflow-wrap: anywhere; }
.rc-f-col a:hover { color: #FFF039 !important; }
.rc-f-bottom { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; padding: 26px 0 8px; }
.rc-f-addr p { margin: 0 0 12px; font-size: 15.5px; line-height: 1.5; color: #FFFFFF; max-width: 460px; }
.rc-f-copy, .rc-f-copy a { font-size: 14.5px !important; color: rgba(255,255,255,.82) !important; text-decoration: none; }
.rc-f-copy a:hover { color: #FFF039 !important; }
.rc-f-socs { display: flex; gap: 10px; flex-shrink: 0; }
.rc-f-soc { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: #FFFFFF; color: #084736 !important; transition: background .25s, transform .25s; }
.rc-f-soc svg { width: 18px; height: 18px; fill: currentColor !important; }
.rc-f-soc:hover { background: #FFF039; transform: translateY(-2px); }
.rc-f-word { position: relative; z-index: 0; margin: 0 auto; max-width: 1180px; padding: 0 clamp(20px, 4vw, 40px); font-family: "Jost", sans-serif; font-weight: 800; font-size: clamp(54px, 13.2vw, 176px); line-height: .78; letter-spacing: -1px; text-align: center; white-space: nowrap; user-select: none;
  background: linear-gradient(180deg, rgba(255,255,255,.22) 0%, rgba(255,255,255,0) 92%); -webkit-background-clip: text; background-clip: text; color: transparent; transform: translateY(12%); }
@media (max-width: 1024px) { .rc-f-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) {
  .rc-f-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 18px; }
  .rc-f-col:last-child { grid-column: 1 / -1; }
  .rc-f-bottom { flex-direction: column; }
}

/* ================= Menu : vert forêt de la charte (#084736) ================= */
.elementor-location-header .elementor-inner-section { background: #084736 !important; background-image: none !important; }
.elementor-location-header .elementor-inner-section .elementor-social-icon { background-color: rgba(255,255,255,.12) !important; }
.elementor-location-header .elementor-inner-section .elementor-social-icon:hover { background-color: #1B7C29 !important; }
.elementor-location-header .elementor-nav-menu--main .elementor-item,
.elementor-location-header .elementor-nav-menu--main .elementor-item.elementor-item-active,
.elementor-location-header .elementor-nav-menu--main .elementor-item:hover { color: #084736 !important; }
.elementor-location-header .elementor-nav-menu--main .elementor-item .sub-arrow svg { fill: #084736 !important; }
.elementor-location-header .elementor-nav-menu--main .elementor-item::before { background: #084736 !important; }
.elementor-location-header .elementor-nav-menu--main .elementor-item.elementor-item-active::before { background: #1B7C29 !important; height: 3px; }
.elementor-location-header .elementor-nav-menu--main .sub-menu { background: #084736 !important; }
.elementor-location-header .elementor-nav-menu--main .elementor-sub-item { color: #FFFFFF !important; background: transparent !important; }
.elementor-location-header .elementor-nav-menu--main .elementor-sub-item:hover, .elementor-location-header .elementor-nav-menu--main .elementor-sub-item.elementor-item-active { color: #FFF039 !important; background: rgba(255,255,255,.06) !important; }
.elementor-location-header .elementor-menu-toggle { background-color: #084736 !important; }
.elementor-location-header .elementor-nav-menu--dropdown.elementor-nav-menu__container { background: #084736 !important; }
.elementor-location-header .elementor-nav-menu--dropdown .elementor-item, .elementor-location-header .elementor-nav-menu--dropdown .elementor-sub-item { color: #FFFFFF !important; background: transparent !important; }
.elementor-location-header .elementor-nav-menu--dropdown .elementor-item-active, .elementor-location-header .elementor-nav-menu--dropdown a:hover { color: #FFF039 !important; }
.elementor-location-header .elementor-social-icon { background-color: #084736 !important; }
/* Menu déroulant mobile : lisibilité (sous-menu blanc sur blanc auparavant) */
.elementor-location-header .elementor-nav-menu--dropdown.elementor-nav-menu__container { border-top: 3px solid #1B7C29; box-shadow: 0 18px 30px -12px rgba(4,38,29,.75); }
.elementor-location-header .elementor-nav-menu--dropdown > ul > li { border-bottom: 1px solid rgba(255,255,255,.1); }
.elementor-location-header .elementor-nav-menu--dropdown > ul > li:last-child { border-bottom: 0; }
.elementor-location-header .elementor-nav-menu--dropdown .elementor-item { font-size: 15px !important; padding-top: 14px !important; padding-bottom: 14px !important; }
.elementor-location-header .elementor-nav-menu--dropdown .sub-menu,
.elementor-location-header .elementor-nav-menu--dropdown ul.sub-menu { background: #04261D !important; border-left: 3px solid #1B7C29; }
.elementor-location-header .elementor-nav-menu--dropdown .elementor-sub-item { font-size: 14px !important; line-height: 1.4; padding: 12px 20px 12px 30px !important; border-bottom: 1px solid rgba(255,255,255,.07) !important; white-space: normal; }
.elementor-location-header .elementor-nav-menu--dropdown .sub-arrow, .elementor-location-header .elementor-nav-menu--dropdown .sub-arrow svg, .elementor-location-header .elementor-nav-menu--dropdown .sub-arrow i { color: #FFF039 !important; fill: #FFF039 !important; }
.elementor-location-header .elementor-nav-menu--dropdown .elementor-sub-item.elementor-item-active, .elementor-location-header .elementor-nav-menu--dropdown .elementor-sub-item:hover { color: #FFF039 !important; background: rgba(255,255,255,.06) !important; }
.elementor-location-header .elementor-menu-toggle, .elementor-location-header .elementor-menu-toggle svg, .elementor-location-header .elementor-menu-toggle i { color: #FFFFFF !important; fill: #FFFFFF !important; }
/* ================= Formulaire de contact ================= */
.rc-form-sec { background: #F8F9FF; }
.rc-form-grid { display: grid; grid-template-columns: .9fr 1.4fr; gap: clamp(28px, 5vw, 64px); align-items: start; text-align: left; }
@media (max-width: 900px) { .rc-form-grid { grid-template-columns: 1fr; } }
.rc-form-intro .elementor-heading-title, .rc-form-intro .rc-kicker { text-align: left !important; margin-left: 0 !important; }
.rc-form-intro .rc-rich { margin-left: 0 !important; text-align: left; }
.rc-form-points { list-style: none; margin: 18px 0 0; padding: 0; }
.rc-form-points li { position: relative; padding: 8px 0 8px 28px; font-size: 15.5px; color: rgba(10,20,40,.868); }
.rc-form-points li::before { content: ""; position: absolute; left: 4px; top: 13px; width: 12px; height: 7px; border-left: 2.5px solid #1B7C29; border-bottom: 2.5px solid #1B7C29; transform: rotate(-45deg); }
.rc-form { background: #FFFFFF; border: 1px solid #CCD3DD; border-top: 4px solid #1B7C29; border-radius: 18px; padding: clamp(20px, 3.4vw, 36px); box-shadow: 0 22px 46px -30px rgba(4,38,29,.45); }
.rc-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 600px) { .rc-form-row { grid-template-columns: 1fr; } }
.rc-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.rc-field label { font-size: 14px; font-weight: 600; color: #014A3F; }
.rc-req { color: #C21B31; }
.rc-field input, .rc-field select, .rc-field textarea { width: 100%; font: inherit; font-size: 15.5px; color: #0A1428; background: #F8F9FF; border: 1.5px solid #CCD3DD; border-radius: 10px; padding: 12px 14px; min-height: 48px; transition: border-color .2s, box-shadow .2s, background .2s; }
.rc-field textarea { resize: vertical; min-height: 130px; }
.rc-field input:focus, .rc-field select:focus, .rc-field textarea:focus { outline: none; background: #FFFFFF; border-color: #1B7C29; box-shadow: 0 0 0 4px rgba(27,124,41,.15); }
.rc-field.rc-invalid input, .rc-field.rc-invalid textarea, .rc-field.rc-invalid select { border-color: #C21B31; box-shadow: 0 0 0 4px rgba(194,27,49,.12); }
.rc-form-note { font-size: 13px; color: rgba(10,20,40,.65); margin: -4px 0 18px; }
.rc-form-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.rc-send { display: inline-flex !important; align-items: center; justify-content: center; gap: 10px; flex: 1 1 220px; min-height: 52px; padding: 12px 22px !important; border-radius: 999px !important; font: 700 15px/1.2 "Jost", sans-serif !important; cursor: pointer; transition: transform .25s, box-shadow .25s, background .25s; border: 2px solid transparent !important; }
.rc-send svg { width: 22px; height: 22px; fill: currentColor; }
.rc-send-wa { background: #1B7C29 !important; color: #FFFFFF !important; }
.rc-send-wa:hover { background: #014A3F !important; transform: translateY(-2px); box-shadow: 0 12px 24px -12px rgba(1,74,63,.7); }
.rc-send-mail { background: #FFFFFF !important; color: #014A3F !important; border-color: #014A3F !important; }
.rc-send-mail:hover { background: #014A3F !important; color: #FFFFFF !important; transform: translateY(-2px); }
.rc-send[hidden] { display: none !important; }
.rc-form-status { margin: 16px 0 0; padding: 12px 14px; border-radius: 10px; background: rgba(27,124,41,.1); border-left: 4px solid #1B7C29; color: #014A3F; font-size: 14.5px; }

/* ================= Numéros de téléphone / WhatsApp ================= */
.rc-hdr-phone .elementor-icon-list-icon svg { width: 14px; height: 14px; fill: #FFFFFF !important; }
.rc-hdr-phone .elementor-icon-list-text { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; }
.rc-hdr-tel { color: #FFFFFF !important; text-decoration: none; white-space: nowrap; }
.rc-hdr-tel:hover { color: #FFF039 !important; }
.rc-hdr-sep { opacity: .5; }

.rc-cards.rc-cards-2x { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 640px) { .rc-cards.rc-cards-2x { grid-template-columns: 1fr; } }
.rc-phone-list { list-style: none; margin: 4px 0 0; padding: 0; }
.rc-phone-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 10px 0; border-top: 1px solid #CCD3DD; }
.rc-phone-call { font-family: "Jost", sans-serif; font-weight: 700; font-size: 17px; color: #014A3F !important; text-decoration: none; white-space: nowrap; }
.rc-phone-call:hover { color: #1B7C29 !important; }
.rc-phone-wa { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 999px; background: #1B7C29; color: #FFFFFF !important; font-weight: 700; font-size: 13.5px; text-decoration: none; }
.rc-phone-wa svg { width: 16px; height: 16px; fill: currentColor; }
.rc-phone-wa:hover { background: #014A3F; }

.rc-wa-choice { border: 1px solid #CCD3DD; border-radius: 12px; padding: 12px 14px 8px; margin: 0 0 16px; }
.rc-wa-choice legend { padding: 0 6px; font-size: 14px; font-weight: 600; color: #014A3F; }
.rc-wa-choice label { display: inline-flex; align-items: center; gap: 8px; margin: 0 18px 6px 0; font-size: 15px; color: #0A1428; cursor: pointer; }
.rc-wa-choice input { accent-color: #1B7C29; width: 18px; height: 18px; }

.rc-wa-float { position: fixed; right: 16px; bottom: 76px; z-index: 2147482000; width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; background: #1B7C29; color: #FFFFFF !important; box-shadow: 0 10px 26px -8px rgba(4,38,29,.6); transition: transform .3s, background .3s; }
.rc-wa-float svg { width: 28px; height: 28px; fill: currentColor; }
.rc-wa-float:hover { background: #014A3F; transform: translateY(-3px); }
.rc-wa-float::after { content: ""; position: absolute; inset: 0; border-radius: 50%; box-shadow: 0 0 0 0 rgba(27,124,41,.55); animation: rc-wa-pulse 2.6s ease-out infinite; }
@keyframes rc-wa-pulse { 0% { box-shadow: 0 0 0 0 rgba(27,124,41,.55); } 70%, 100% { box-shadow: 0 0 0 16px rgba(27,124,41,0); } }
.rc-wa-tip { position: absolute; right: 64px; top: 50%; transform: translateY(-50%); white-space: nowrap; background: #04261D; color: #FFFFFF; font-size: 13px; font-weight: 600; padding: 6px 10px; border-radius: 8px; opacity: 0; pointer-events: none; transition: opacity .2s; }
.rc-wa-float:hover .rc-wa-tip, .rc-wa-float:focus-visible .rc-wa-tip { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .rc-wa-float::after { animation: none; } }
/* Barre du haut : e-mail + numéros sur une ligne */
.elementor-location-header .elementor-inner-section > .elementor-container { flex-wrap: nowrap !important; }
.elementor-location-header .elementor-inner-section .elementor-inner-column:first-child { flex: 1 1 auto !important; width: auto !important; }
.elementor-location-header .elementor-inner-section .elementor-inner-column:last-child { flex: 0 0 auto !important; width: auto !important; }
.elementor-location-header .elementor-inner-section .elementor-icon-list-items { flex-wrap: nowrap !important; white-space: nowrap; }
.rc-hdr-phone .elementor-icon-list-text { flex-wrap: nowrap !important; font-size: 13.5px; }
@media (max-width: 1180px) { .rc-hdr-phone .rc-hdr-sep, .rc-hdr-phone .rc-hdr-tel + .rc-hdr-sep + .rc-hdr-tel { display: none; } }
/* ================= Partenaires : défilement droite → gauche, logos N&B, couleur au survol ================= */
.rc-partners { background: #FFFFFF; overflow: hidden; }
.rc-partners .rc-eyebrow { margin: 0 0 8px; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #014A3F; }
.rc-partners-lead { max-width: 640px; margin: 0 auto 34px; color: #0A1428; opacity: .8; }
.rc-marquee { position: relative; overflow: hidden; padding: 6px 0; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.rc-marquee-track { display: flex; gap: 22px; width: max-content; margin: 0; padding: 0; list-style: none; animation: rc-marquee 32s linear infinite; }
.rc-marquee:hover .rc-marquee-track, .rc-marquee:focus-within .rc-marquee-track { animation-play-state: paused; }
@keyframes rc-marquee { from { transform: translateX(0); } to { transform: translateX(calc(-50% - 11px)); } }
.rc-partner { flex: 0 0 auto; width: 240px; height: 120px; margin: 0 !important; padding: 0 !important; display: grid; place-items: center; background: #F8F9FF; border: 1px solid #CCD3DD; border-radius: 14px; transition: border-color .35s, box-shadow .35s, transform .35s; }
.rc-partner::before { display: none !important; }
.rc-partner img { width: 100%; height: 100%; object-fit: contain; padding: 8px 12px; filter: grayscale(1); opacity: .7; transition: filter .4s, opacity .4s, transform .4s; }
.rc-partner:hover { border-color: #1B7C29; box-shadow: 0 14px 28px -16px rgba(4,38,29,.45); transform: translateY(-3px); }
.rc-partner:hover img { filter: grayscale(0); opacity: 1; transform: scale(1.04); }
@media (max-width: 640px) { .rc-partner { width: 180px; height: 90px; } .rc-marquee-track { gap: 14px; animation-duration: 24s; } @keyframes rc-marquee { from { transform: translateX(0); } to { transform: translateX(calc(-50% - 7px)); } } }
@media (prefers-reduced-motion: reduce) { .rc-marquee-track { animation-duration: 90s; } }
[dir="rtl"] .rc-marquee-track { direction: ltr; }

/* ================= Hygiène : photos d'intervention ================= */
.rc-hyg-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 14px; }
@media (max-width: 900px) { .rc-hyg-gallery { grid-template-columns: 1fr; max-width: 560px; margin-left: auto; margin-right: auto; } }
.rc-hyg-fig { position: relative; margin: 0 !important; overflow: hidden; border-radius: 14px; box-shadow: 0 18px 36px -20px rgba(0,0,0,.7); }
.rc-hyg-fig .rc-img { aspect-ratio: 4 / 3; max-height: none; transition: transform 1s cubic-bezier(.22,.8,.24,1); }
.rc-hyg-fig:hover .rc-img { transform: scale(1.06); }
.rc-hyg-fig figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 34px 18px 14px; background: linear-gradient(to top, rgba(4,38,29,.92), rgba(4,38,29,0)); color: #FFFFFF; font-family: "Jost", sans-serif; font-weight: 600; font-size: 17px; text-align: left; }
.rc-hyg-fig figcaption::before { content: ""; display: block; width: 34px; height: 3px; margin-bottom: 8px; background: #FFF039; }
.rc-hyg-team .rc-media { border-radius: 14px; }
.rc-hyg-team .rc-img { object-position: 50% 30%; }

.rc-hyg-gallery.rc-gal-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 1000px; margin-left: auto; margin-right: auto; }
@media (max-width: 900px) { .rc-hyg-gallery.rc-gal-2 { grid-template-columns: 1fr; max-width: 560px; } }

/* Cartes posées sur une section sombre (page SAFI : impact) */
.rc-dark .rc-card { background: rgba(4,38,29,.62) !important; border: 1px solid rgba(255,255,255,.18) !important; box-shadow: none; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); text-align: left; }
.rc-dark .rc-card:hover { border-color: #FFF039 !important; }
.rc-dark .rc-card .rc-card-title { color: #FFFFFF !important; }
.rc-dark .rc-card p { color: rgba(255,255,255,.86) !important; }
.rc-dark .rc-card .rc-card-icon { background: rgba(255,240,57,.14) !important; color: #FFF039 !important; }
.rc-dark .rc-card .rc-card-icon svg { stroke: #FFF039 !important; }
.rc-safi-impact .rc-lead { margin-bottom: 30px; }
