@charset "UTF-8";
@import url(main.css);
.animated-border-button:after { background-color: #157145; }

a.nav-link.fs-6.dropdown-toggle.px-0.text-color-secondary.text-center { font-family: Montserrat !important; }

nav.navbar { box-shadow: rgba(0, 0, 0, 0.3) 0px 25px 20px -20px; }

/* ----------------------------------------------------------------------------- BOUTONS SITE - LES JARDINS DE LUD'EAU ----------------------------------------------------------------------------- */
/* Boutons du CMS */
.button-contact, .button-primary, .button-secondary, .btn-primary, .btn-secondary, body > main > div.wrapper > div > div.d-flex.align-items-center.justify-content-center.px-4.py-5.text-center.cta_banner.bg-sixthColor.position-relative > div.content > div.col-lg-12.mx-auto > div > a, #navbarSupportedContent > div > a { position: relative; display: inline-flex !important; align-items: center; justify-content: center; border-radius: 35px 0 35px 35px !important; overflow: hidden; transition: transform 0.3s ease; }

/* Supprimer les marges internes */
.button-contact p, .button-primary p, .button-secondary p, .btn-primary p, .btn-secondary p, body > main > div.wrapper > div > div.d-flex.align-items-center.justify-content-center.px-4.py-5.text-center.cta_banner.bg-sixthColor.position-relative > div.content > div.col-lg-12.mx-auto > div > a p, #navbarSupportedContent > div > a p { margin: 0 !important; }

/* Supprimer les marges sur les spans */
.button-contact span, .button-primary span, .button-secondary span, .btn-primary span, .btn-secondary span, body > main > div.wrapper > div > div.d-flex.align-items-center.justify-content-center.px-4.py-5.text-center.cta_banner.bg-sixthColor.position-relative > div.content > div.col-lg-12.mx-auto > div > a span, #navbarSupportedContent > div > a span { margin: 0 !important; }

/* Effet léger uniquement sur les boutons */
.button-contact:hover, .button-primary:hover, .button-secondary:hover, .btn-primary:hover, .btn-secondary:hover, body > main > div.wrapper > div > div.d-flex.align-items-center.justify-content-center.px-4.py-5.text-center.cta_banner.bg-sixthColor.position-relative > div.content > div.col-lg-12.mx-auto > div > a:hover, #navbarSupportedContent > div > a:hover { transform: translateY(-3px); }

/* ----------------------------------------------------------------------------- HERO LES JARDINS DE LUD'EAU ----------------------------------------------------------------------------- */
/* --- IMAGE SLIDER --- */
.carousel-item-homepage img, .first-carousel-img { transform: none !important; transition: none !important; box-shadow: none !important; filter: none !important; opacity: 1 !important; }

/* --- CONTENEUR --- */
.bloc-slider-homepage { z-index: 2; }

/* --- LOGO --- */
.sliderLogoContainer { max-width: 140px; margin-bottom: 25px; animation: ludLogoAppear 1s ease forwards; }

.sliderLogoContainer img { width: 100%; height: auto; display: block; }

/* --- TITRE --- */
.titleText { max-width: 1150px; margin-left: auto; margin-right: auto; animation: ludTextAppear 1.2s ease forwards; }

.titleText h1 { margin-bottom: 18px; }

.titleText h1 span { letter-spacing: -1.2px !important; text-transform: uppercase; line-height: 1.05; }

/* --- DESCRIPTION --- */
.titleText p { max-width: 950px; margin-left: auto; margin-right: auto; line-height: 1.35; opacity: 0.95; letter-spacing: -0.5px !important; }

.titleText p span { letter-spacing: -0.5px !important; }

/* --- GLOBAL TEXTE HERO --- */
.bloc-slider-homepage .titleText, .bloc-slider-homepage .titleText h1, .bloc-slider-homepage .titleText h1 span, .bloc-slider-homepage .titleText p, .bloc-slider-homepage .titleText p span { letter-spacing: -0.5px !important; }

/* --- BOUTON SI AJOUTÉ PLUS TARD --- */
.titleText a { border-radius: 40px; }

/* --- ANIMATIONS --- */
@keyframes ludLogoAppear { from { opacity: 0;
    transform: translateY(-15px); }
  to { opacity: 1;
    transform: translateY(0); } }

@keyframes ludTextAppear { from { opacity: 0;
    transform: translateY(25px); }
  to { opacity: 1;
    transform: translateY(0); } }

/* --- MOBILE --- */
@media screen and (max-width: 767px) { .sliderLogoContainer { max-width: 100px; margin-bottom: 20px; } .titleText { max-width: 100%; } .titleText h1 span { letter-spacing: -0.8px !important; line-height: 1.1; } .titleText p, .titleText p span { letter-spacing: -0.3px !important; line-height: 1.4; } }

/* -------------------------------- IMAGE PRESENTATION ------------------------------- */
.phototext-single-image { height: 400px; object-fit: cover; }

/* --- MOBILE --- */
@media screen and (max-width: 767px) { .phototext-single-image { height: 250px; } }

/* -------------------------------- BLOC PICTOS ------------------------------- */
.picto_card .row { --bs-gutter-x: 0.5rem !important; --bs-gutter-y: 0 !important; margin-left: auto !important; margin-right: auto !important; }

.picto_card .col { padding-left: 1px !important; padding-right: 1px !important; }

.picto_card .svg-picto-card { padding-left: 1px !important; padding-right: 1px !important; }

/* Garder les icônes identiques */
.picto_card svg { width: 100px !important; height: 100px !important; }

/* Réduire uniquement l'espace icône / texte */
.picto_card .svg-picto-card .mt-4 { margin-top: 10px !important; }

/* -------------------------------- BLOC ZONE D'INTERVENTION ------------------------------- */
.lud-zone { width: 100%; padding: 80px 20px; background: #ffffff; }

.lud-zone__container { max-width: 1400px; margin: 0 auto; display: grid; grid-template-columns: 1fr 0.9fr; gap: 70px; align-items: center; }

/* --- IMAGE --- */
.lud-zone__image { width: 100%; height: 520px; overflow: hidden; border-radius: 20px; }

.lud-zone__image img { width: 100%; height: 100%; object-fit: contain; display: block; }

/* --- CONTENU --- */
.lud-zone__content { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }

/* --- PETIT TITRE --- */
.lud-zone__title-small { margin-bottom: 18px; color: #157145; text-transform: uppercase; letter-spacing: 0; }

/* --- TITRE PRINCIPAL --- */
.lud-zone__title { color: #20291e; line-height: 1.15; margin-bottom: 20px; }

/* --- TRAIT --- */
.lud-zone__line { width: 80px; height: 3px; background: #57a773; margin-bottom: 25px; }

/* --- DESCRIPTION --- */
.lud-zone__description { max-width: 600px; color: #20291e; line-height: 1.7; }

/* ----------------------------------------------------------------------------- TABLETTE ----------------------------------------------------------------------------- */
@media screen and (max-width: 992px) { .lud-zone { padding: 60px 20px; } .lud-zone__container { grid-template-columns: 1fr; gap: 40px; } .lud-zone__image { height: 450px; } }

/* ----------------------------------------------------------------------------- MOBILE ----------------------------------------------------------------------------- */
@media screen and (max-width: 600px) { .lud-zone { padding: 45px 15px; } .lud-zone__image { height: 300px; border-radius: 15px; } .lud-zone__description { line-height: 1.6; } }

/* -------------------------------- TIMELINE BLOC ------------------------------- */
.timeline-line.timeline-vertical-line.position-absolute { background-color: white !important; }

/* -------------------------------- BLOC SERVICE ------------------------------- */
.custom-services-section { width: 100%; background: #20291e; padding: 80px 30px; }

/* --- HEADER SECTION --- */
.custom-services-section__header { max-width: 900px; margin: 0 auto 45px; text-align: center; color: #ffffff; }

.custom-services-section__header .section-title { position: relative; color: #ffffff; margin-bottom: 25px; padding-bottom: 18px; }

.custom-services-section__header .section-title::after { content: ""; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 75px; height: 3px; background: #57a773; border-radius: 5px; }

/* ----------------------------------------------------------------------------- CONTAINER CARTES ----------------------------------------------------------------------------- */
.custom-cards-2 { width: 100%; max-width: 1250px; margin: 0 auto; display: flex; justify-content: center; flex-wrap: wrap; gap: 25px; }

/* ----------------------------------------------------------------------------- CARTE ----------------------------------------------------------------------------- */
.custom-card-2 { width: calc(50% - 15px); position: relative; background: #ffffff; border-radius: 18px; overflow: hidden; }

/* --- IMAGE --- */
.card__img { visibility: hidden; width: 100%; height: 300px; background-size: cover; background-position: center; background-repeat: no-repeat; border-radius: 18px 18px 0 0; }

.card__img--hover { width: 100%; height: 300px; position: absolute; top: 0; left: 0; background-size: cover; background-position: center; background-repeat: no-repeat; border-radius: 18px 18px 0 0; }

/* ----------------------------------------------------------------------------- CONTENU ----------------------------------------------------------------------------- */
.card__info { background: #ffffff; padding: 30px 35px 35px; border-radius: 0 0 18px 18px; }

/* --- TITRE CARTE --- */
.card__title { color: #20291e; margin-bottom: 15px; }

/* --- DESCRIPTION --- */
.card__description { color: #20291e; line-height: 1.45; }

/* --- LISTES --- */
.card__description ul { margin-top: 8px !important; margin-bottom: 0 !important; padding-left: 20px !important; }

.card__description li { margin-bottom: 3px !important; line-height: 1.25 !important; }

.card__description li::marker { color: #57a773; }

/* ----------------------------------------------------------------------------- SUPPRESSION LIEN IMAGE ----------------------------------------------------------------------------- */
.card_link { display: none !important; }

/* ----------------------------------------------------------------------------- RESPONSIVE TABLETTE ----------------------------------------------------------------------------- */
@media (max-width: 1024px) { .custom-services-section { padding: 65px 25px; } .custom-card-2 { width: calc(50% - 12px); } .card__img, .card__img--hover { height: 260px; } .card__info { padding: 25px; } }

/* ----------------------------------------------------------------------------- MOBILE ----------------------------------------------------------------------------- */
@media (max-width: 768px) { .custom-services-section { padding: 55px 20px; } .custom-cards-2 { gap: 25px; } .custom-card-2 { width: 100%; } .card__img, .card__img--hover { height: 240px; } }

/* -------------------------------- BLOC GALERIE ------------------------------- */
/* -------------------------------------------------------------------------- GALERIE D'IMAGES -------------------------------------------------------------------------- */
.custom-gallery-block { width: 100%; padding-top: 40px; padding-bottom: 40px; }

.custom-gallery-block *, .custom-gallery-lightbox * { box-sizing: border-box; }

.custom-gallery-title { margin-bottom: 30px; }

.custom-gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-flow: dense; gap: 20px; }

.custom-gallery-item { position: relative; aspect-ratio: 1 / 1; }

.custom-gallery-item--large { grid-column: span 2; grid-row: span 2; }

.custom-gallery-card { position: relative; width: 100%; height: 100%; overflow: hidden; }

.custom-gallery-link { position: relative; display: block; width: 100%; height: 100%; overflow: hidden; text-decoration: none; cursor: pointer; }

.custom-gallery-image { display: block; width: 100% !important; height: 100% !important; object-fit: cover !important; object-position: center !important; transition: transform 0.6s ease; }

.custom-gallery-hover { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: #ffffff; background: rgba(0, 0, 0, 0.7); opacity: 0; transition: opacity 0.4s ease; }

.custom-gallery-hover i { color: #ffffff; font-size: 3em; transform: scale(0.85); transition: transform 0.4s ease; }

.custom-gallery-link:hover .custom-gallery-image, .custom-gallery-link:focus-visible .custom-gallery-image { transform: scale(1.04); }

.custom-gallery-link:hover .custom-gallery-hover, .custom-gallery-link:focus-visible .custom-gallery-hover { opacity: 1; }

.custom-gallery-link:hover .custom-gallery-hover i, .custom-gallery-link:focus-visible .custom-gallery-hover i { transform: scale(1); }

.custom-gallery-link:focus-visible { outline: 2px solid #ffffff; outline-offset: -6px; }

/* -------------------------------------------------------------------------- LIGHTBOX -------------------------------------------------------------------------- */
.custom-gallery-lightbox { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; padding: 30px 80px; background: rgba(0, 0, 0, 0.9); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 0.3s ease, visibility 0.3s ease; -webkit-user-select: none; -moz-user-select: none; user-select: none; }

.custom-gallery-lightbox.is-open { opacity: 1; visibility: visible; pointer-events: auto; }

.custom-gallery-lightbox__visual { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }

.custom-gallery-lightbox__image { display: block; width: auto; max-width: 1100px; width: 85%; height: auto; max-height: 88vh; margin: 0; object-fit: contain; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.45); }

/* -------------------------------------------------------------------------- BOUTONS DE LA LIGHTBOX -------------------------------------------------------------------------- */
.custom-gallery-lightbox__button { position: absolute; z-index: 2; display: flex; align-items: center; justify-content: center; padding: 0; color: #ffffff; background: transparent; border: none; cursor: pointer; transition: opacity 0.3s ease, transform 0.3s ease; }

.custom-gallery-lightbox__button:hover { opacity: 0.7; }

.custom-gallery-lightbox__button:focus-visible { outline: 2px solid #ffffff; outline-offset: 5px; }

.custom-gallery-lightbox__previous, .custom-gallery-lightbox__next { top: 50%; width: 55px; height: 80px; font-size: 3em; transform: translateY(-50%); }

.custom-gallery-lightbox__previous { left: 20px; }

.custom-gallery-lightbox__next { right: 20px; }

.custom-gallery-lightbox__previous:hover { transform: translate(-4px, -50%); }

.custom-gallery-lightbox__next:hover { transform: translate(4px, -50%); }

.custom-gallery-lightbox__close { top: 15px; right: 15px; width: 55px; height: 55px; font-size: 3em; }

.custom-gallery-lightbox__counter { position: absolute; bottom: 18px; left: 50%; color: #ffffff; font-size: 14px; font-weight: 500; letter-spacing: 0.08em; transform: translateX(-50%); }

body.custom-gallery-lightbox-open { overflow: hidden; }

/* -------------------------------------------------------------------------- RESPONSIVE -------------------------------------------------------------------------- */
@media screen and (min-width: 991px) { .custom-gallery-block { padding: 60px 30px 60px; } }

@media screen and (max-width: 991px) { .custom-gallery-grid { gap: 15px; } }

@media screen and (max-width: 767px) { .custom-gallery-block { padding-top: 20px; padding-bottom: 20px; } .custom-gallery-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; } .custom-gallery-lightbox { padding: 60px 45px; } .custom-gallery-lightbox__image { max-width: 90vw; max-height: 80vh; } .custom-gallery-lightbox__previous, .custom-gallery-lightbox__next { width: 40px; height: 60px; font-size: 2em; } .custom-gallery-lightbox__previous { left: 2px; } .custom-gallery-lightbox__next { right: 2px; } .custom-gallery-lightbox__close { top: 5px; right: 5px; width: 45px; height: 45px; font-size: 2em; } }

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