@charset "UTF-8";
@import url(main.css);
div.shadow-lg { box-shadow: none !important; }

h2 { color: #473418; }

h4 { margin: 0 0 18px; color: #4e592f; text-transform: uppercase; letter-spacing: 0.12em; }

/*--------------------------------------------------------- HERO HOME ---------------------------------------------------------*/
.bloc-7f3a { position: relative; min-height: calc(100vh - 28px); padding: 0 20px; overflow: hidden; isolation: isolate; }

/* IMAGE DE FOND */
.bloc-7f3a__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; z-index: 0; pointer-events: none; animation: alliance-hero-zoom 8s ease-out infinite; will-change: transform; }

@keyframes alliance-hero-zoom { 0% { transform: scale(1); }
  100% { transform: scale(1.16); } }

.bloc-7f3a__overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, 0.34) 0%, rgba(0, 0, 0, 0.46) 45%, rgba(0, 0, 0, 0.58) 100%); z-index: 1; }

/* CONTENEUR */
.bloc-7f3a__container { position: relative; z-index: 2; width: 100%; max-width: 1200px; min-height: calc(100vh - 72px); margin: 0 auto; padding: 60px 0 80px; display: flex; align-items: center; justify-content: center; }

/* CONTENU */
.bloc-7f3a__content { width: 100%; max-width: 950px; display: flex; flex-direction: column; align-items: center; text-align: center; transform: translateY(15px); }

/* LOGO */
.bloc-7f3a__logo { display: flex; justify-content: center; margin-bottom: 18px; }

.bloc-7f3a__logo img { width: 210px; height: auto; filter: drop-shadow(0 6px 12px rgba(0, 0, 0, 0.2)); }

/* TITRE */
.bloc-7f3a__title { width: 100%; }

.bloc-7f3a__title h1 { margin: 0; max-width: 950px; color: #f8f8f8; line-height: 1.1; text-align: center; }

/* DESCRIPTION */
.bloc-7f3a__description { max-width: 760px; margin-top: 22px; }

.bloc-7f3a__description p { margin: 0; color: #f8f8f8; line-height: 1.6; opacity: 0.9; }

/* CTA */
.bloc-7f3a__cta { display: flex; justify-content: center; margin-top: 30px; }

.bloc-7f3a__btn p { margin-bottom: 0 !important; }

/* FLÈCHE */
.bloc-7f3a__scroll { position: absolute; left: 50%; bottom: 24px; z-index: 3; transform: translateX(-50%); pointer-events: none; }

.bloc-7f3a__scroll span { display: block; width: 14px; height: 14px; border-right: 2px solid rgba(255, 255, 255, 0.8); border-bottom: 2px solid rgba(255, 255, 255, 0.8); transform: rotate(45deg); }

/*--------------------------------------------------------- RESPONSIVE ---------------------------------------------------------*/
@media (max-width: 991px) { .bloc-7f3a__container { padding: 60px 20px 75px; } .bloc-7f3a__content { transform: translateY(10px); } .bloc-7f3a__logo img { width: 180px; } }

@media (max-width: 768px) { .bloc-7f3a { min-height: 650px; padding: 0 20px; } .bloc-7f3a__container { min-height: 650px; padding: 55px 0 70px; } .bloc-7f3a__content { transform: none; } .bloc-7f3a__logo { margin-bottom: 16px; } .bloc-7f3a__logo img { width: 150px; } .bloc-7f3a__description { margin-top: 18px; } .bloc-7f3a__cta { margin-top: 25px; } }

@media (max-width: 575px) { .bloc-7f3a__btn { width: 100%; } .bloc-7f3a__cta { width: 100%; max-width: 320px; } }

/*------------------------------------------------------------------------------------BLOC SERVICES------------------------------------------------------------*/
.bloc-a7f3-services { padding: 40px 20px; }

.bloc-a7f3-container { width: auto; padding: 0 80px; margin: 0 auto; box-sizing: border-box; }

.bloc-a7f3-header { text-align: center; max-width: 900px; margin: 0 auto 50px; }

.bloc-a7f3-header > * { margin: 0; line-height: 1.2; }

.bloc-a7f3-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 25px; }

.bloc-a7f3-card { width: 100%; position: relative; min-height: 400px; display: flex; align-items: flex-end; border-radius: 18px; overflow: hidden; text-decoration: none; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); transition: transform 0.35s ease, box-shadow 0.35s ease; }

.bloc-a7f3-card:hover { transform: translateY(-6px); box-shadow: 0 16px 35px rgba(0, 0, 0, 0.12); }

.bloc-a7f3-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }

.bloc-a7f3-card:hover img { transform: scale(1.05); }

.bloc-a7f3-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 0, 0, 0.78) 0%, rgba(0, 0, 0, 0.35) 45%, rgba(0, 0, 0, 0.1) 100%); transition: background 0.35s ease; z-index: 1; }

.bloc-a7f3-card:hover .bloc-a7f3-overlay { background: linear-gradient(to top, rgba(0, 0, 0, 0.88) 0%, rgba(0, 0, 0, 0.55) 50%, rgba(0, 0, 0, 0.18) 100%); }

.bloc-a7f3-content { position: absolute; left: 0; bottom: 0; z-index: 2; padding: 30px; width: 100%; transform: translateY(calc(100% - 115px)); transition: transform 0.35s ease; }

.bloc-a7f3-card:hover .bloc-a7f3-content { transform: translateY(0); }

.bloc-a7f3-title { display: flex; align-items: center; justify-content: flex-start; gap: 16px; }

.bloc-a7f3-title > *:not(.bloc-a7f3-arrow) { flex: 1; margin: 0; font-size: 24px; line-height: 1.3; color: #f8f8f8; transition: transform 0.35s ease; }

.bloc-a7f3-arrow { width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; border: 1px solid rgba(78, 89, 47, 0.55); border-radius: 50%; background: rgba(0, 0, 0, 0.22); backdrop-filter: blur(6px); transition: transform 0.35s ease, background 0.35s ease, border-color 0.35s ease; }

.bloc-a7f3-arrow svg { width: 20px; height: 20px; fill: none; stroke: #4e592f; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.bloc-a7f3-card:hover .bloc-a7f3-arrow { transform: translateX(4px) rotate(45deg); background: #7e8c43; border-color: #7e8c43; }

.bloc-a7f3-card:hover .bloc-a7f3-arrow svg { stroke: #ffffff; }

.bloc-a7f3-description > * { margin: 14px 0 0; font-size: 16px; line-height: 1.7; color: rgba(255, 255, 255, 0.92); opacity: 0; transform: translateY(12px); transition: opacity 0.35s ease, transform 0.35s ease; }

.bloc-a7f3-card:hover .bloc-a7f3-description > * { opacity: 1; transform: translateY(0); }

@media (max-width: 1200px) { .bloc-a7f3-container { padding: 0 45px; } .bloc-a7f3-grid { grid-template-columns: repeat(2, 1fr); } .bloc-a7f3-card { min-height: 420px; } .bloc-a7f3-content { transform: translateY(calc(100% - 95px)); } }

@media (max-width: 768px) { .bloc-a7f3-services { padding: 20px 15px; } .bloc-a7f3-container { padding: 0 24px; } .bloc-a7f3-header { margin-bottom: 35px; } .bloc-a7f3-grid { grid-template-columns: 1fr; gap: 20px; } .bloc-a7f3-card { min-height: 360px; border-radius: 16px; } .bloc-a7f3-content { padding: 24px; transform: none; } .bloc-a7f3-card:hover .bloc-a7f3-content { transform: none; } .bloc-a7f3-description > * { opacity: 1; transform: none; line-height: 1.6; } }

@media (max-width: 480px) { .bloc-a7f3-services { padding: 15px 20px; } .bloc-a7f3-card { min-height: 320px; } .bloc-a7f3-content { padding: 20px; } .bloc-a7f3-title { gap: 12px; } .bloc-a7f3-arrow { width: 38px; height: 38px; } .bloc-a7f3-arrow svg { width: 18px; height: 18px; } }

/* ========================================================== SERVICE À LA PERSONNE ========================================================== */
.sap-section { padding: 60px 0; background: #fdfcfa; }

.sap-content { max-width: 1100px; margin: 0 auto; padding: 55px 65px; display: flex; align-items: center; gap: 70px; background: #f3ebdd; border: 1px solid rgba(145, 101, 31, 0.14); border-radius: 36px; overflow: hidden; }

/* ========================================================== VISUEL ========================================================== */
.sap-visual { flex-shrink: 0; display: flex; align-items: center; justify-content: center; min-width: 240px; }

.sap-logo { width: 215px; max-width: 100%; height: auto; display: block; object-fit: contain; }

/* ========================================================== CONTENU ========================================================== */
.sap-text { flex: 1; }

.sap-kicker { margin: 0 0 12px; color: #4e592f; text-transform: uppercase; letter-spacing: 0.12em; }

.sap-text h2 { margin-bottom: 22px; color: #473418; }

/* ========================================================== DESCRIPTIONS ========================================================== */
.sap-descriptions { margin-bottom: 28px; }

.sap-descriptions p { margin-bottom: 14px; line-height: 1.6; }

.sap-descriptions p:last-child { margin-bottom: 0; }

.sap-button-pill { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 12px 20px; background: #4e592f; color: #ffffff !important; border: none; border-radius: 50px; text-decoration: none; transition: background 0.3s ease, transform 0.3s ease; }

.sap-button-pill:hover { background: #7e8c43; color: #ffffff; transform: translateY(-2px); }

/* ========================================================== RESPONSIVE ========================================================== */
@media (max-width: 991px) { .sap-content { padding: 50px 40px; gap: 40px; } .sap-logo { width: 160px; } }

@media (max-width: 767px) { .sap-section { padding: 40px 0; } .sap-content { padding: 40px 25px; flex-direction: column; text-align: center; gap: 30px; } .sap-logo { width: 150px; } .sap-button { width: 100%; } }

/*---------------------------------------------------------Avant - Après------------------------------*/
/*------Couleur des lignes---*/
.slider-before-after-images:before, .slider-before-after-images:after { background: #4e592f !important; }

/*------Couleur du rond---*/
.slider-before-after-images { border: 3px solid #4e592f !important; background: #4e592f !important; }

/*------Couleur des flêches---*/
.bi-chevron-left::before, .bi-chevron-right::before { color: white; }

/* ============================================================ RÉSEAUX SOCIAUX ============================================================ */
.bloc-k7m4-socials { position: relative; padding: 85px 6%; overflow: hidden; }

.bloc-k7m4-socials-container { width: 100%; max-width: 1450px; margin: 0 auto; }

/* ------------------------------------------------------------ TITRE ------------------------------------------------------------ */
.bloc-k7m4-socials-heading { max-width: 760px; margin: 0 auto 45px; text-align: center; }

/* ------------------------------------------------------------ GRILLE ------------------------------------------------------------ */
.bloc-k7m4-socials-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; }

/* ------------------------------------------------------------ CARTES ------------------------------------------------------------ */
.bloc-k7m4-social-card { position: relative; display: flex; align-items: center; gap: 26px; padding: 34px 36px; background: #f3ebdd; border: 1px solid rgba(78, 89, 47, 0.18); border-radius: 36px; color: inherit; text-decoration: none; overflow: hidden; transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease; }

.bloc-k7m4-social-card:hover { transform: translateY(-5px); border-color: rgba(126, 140, 67, 0.65); box-shadow: 0 18px 40px rgba(71, 52, 24, 0.1); }

/* ------------------------------------------------------------ ICÔNES ------------------------------------------------------------ */
.bloc-k7m4-social-icon { position: relative; z-index: 2; width: 68px; height: 68px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; border-radius: 50%; background: #4e592f; transition: background 0.35s ease, transform 0.35s ease; }

.bloc-k7m4-social-icon svg { width: 44px; height: 44px; fill: none; stroke: #ffffff; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.bloc-k7m4-social-card:nth-child(2) .bloc-k7m4-social-icon svg { width: 45px; height: 45px; fill: #ffffff; stroke: none; }

.bloc-k7m4-social-card:hover .bloc-k7m4-social-icon { background: #7e8c43; transform: scale(1.05); }

/* ------------------------------------------------------------ CONTENU ------------------------------------------------------------ */
.bloc-k7m4-social-content { position: relative; z-index: 2; }

.bloc-k7m4-social-content h1, .bloc-k7m4-social-content h2, .bloc-k7m4-social-content h3, .bloc-k7m4-social-content h4, .bloc-k7m4-social-content h5, .bloc-k7m4-social-content h6 { margin-top: 0; margin-bottom: 9px; }

.bloc-k7m4-social-content p { margin: 0; line-height: 1.55; }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 991px) { .bloc-k7m4-socials { padding: 75px 5%; } .bloc-k7m4-socials-grid { grid-template-columns: 1fr; } }

@media (max-width: 600px) { .bloc-k7m4-socials { padding: 60px 20px; } .bloc-k7m4-socials-heading { margin-bottom: 35px; } .bloc-k7m4-social-card { align-items: flex-start; gap: 18px; padding: 26px 22px; border-radius: 28px; } .bloc-k7m4-social-icon { width: 58px; height: 58px; } .bloc-k7m4-social-icon svg { width: 29px; height: 29px; } .bloc-k7m4-social-card:nth-child(2) .bloc-k7m4-social-icon svg { width: 30px; height: 30px; } }

/* ========================================================== ART' BRISSEAU - PRESTATIONS ========================================================== */
.artbrisseau-services { padding: 40px 20px 60px; }

.artbrisseau-services__container { width: 100%; max-width: 1450px; margin: 0 auto; padding: 0 40px; }

/* ========================================================== TITRE ========================================================== */
.artbrisseau-services__header { max-width: 950px; margin: 0 auto 45px; text-align: center; }

.artbrisseau-services__header h2 { margin: 0; }

.artbrisseau-services__intro { max-width: 900px; margin: 18px auto 0; line-height: 1.6; }

.artbrisseau-services__intro p { margin: 0; }

/* ========================================================== GRILLE ========================================================== */
.artbrisseau-services__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }

/* ========================================================== CARTES ========================================================== */
.artbrisseau-services__card { position: relative; min-height: 280px; padding: 32px; background: #f3ebdd; border: 1px solid rgba(78, 89, 47, 0.14); border-radius: 36px; overflow: hidden; }

/* DÉCOR DISCRET */
.artbrisseau-services__card::before { content: ""; position: absolute; top: -60px; right: -60px; width: 150px; height: 150px; border-radius: 50%; background: rgba(126, 140, 67, 0.08); }

/* ========================================================== NUMÉRO ========================================================== */
.artbrisseau-services__number { position: relative; z-index: 2; width: 52px; height: 52px; margin-bottom: 26px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: #4e592f; color: #ffffff; }

.artbrisseau-services__number span { letter-spacing: 0.06em; }

/* ========================================================== TITRES CARTES ========================================================== */
.artbrisseau-services__card h3 { position: relative; z-index: 2; margin: 0 0 14px; line-height: 1.25; }

/* ========================================================== TEXTES ========================================================== */
.artbrisseau-services__text { position: relative; z-index: 2; }

.artbrisseau-services__text p { margin: 0; line-height: 1.6; }

/* ========================================================== RESPONSIVE ========================================================== */
@media (max-width: 1200px) { .artbrisseau-services__grid { grid-template-columns: repeat(2, 1fr); } }

@media (max-width: 768px) { .artbrisseau-services { padding: 65px 15px; } .artbrisseau-services__container { padding: 0; } .artbrisseau-services__header { margin-bottom: 32px; text-align: left; } .artbrisseau-services__grid { grid-template-columns: 1fr; gap: 18px; } .artbrisseau-services__card { min-height: auto; padding: 26px; border-radius: 28px; } .artbrisseau-services__number { width: 48px; height: 48px; margin-bottom: 22px; } }

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

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

.gallery-item { flex: 0 0 auto; }

.gallery-item img { max-height: 400px; aspect-ratio: 1 / 1; object-fit: cover; display: block; }

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

/* Pause au survol */
.gallery-track:hover { animation-play-state: paused; }

/*-----------------------------------------------Mobile-------------------------------------------------------------*/
@media screen and (max-width: 767px) { .infinite-gallery { overflow: visible; padding: 60px 20px; } .gallery-track { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; width: 100%; animation: none; transform: none; } .gallery-track:hover { animation-play-state: initial; } .gallery-item { width: 100%; } .gallery-item a { display: block; width: 100%; } .gallery-item img { width: 100%; max-height: none; aspect-ratio: 1 / 1; object-fit: cover; } }

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

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

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

.lightbox-close { position: absolute; top: 20px; right: 25px; background: transparent; border: none; color: white; font-size: 40px; cursor: pointer; line-height: 1; }

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

/* ========================================================== SERVICE À LA PERSONNE - ÉTAPES ========================================================== */
.artbrisseau-sap-steps { padding: 90px 0; }

.artbrisseau-sap-steps__box { max-width: 1180px; margin: 0 auto; padding: 55px 65px; background: #f3ebdd; border: 1px solid rgba(78, 89, 47, 0.14); border-radius: 36px; }

/* ========================================================== LOGO ========================================================== */
.artbrisseau-sap-steps__visual { display: flex; align-items: center; justify-content: center; }

.artbrisseau-sap-steps__logo { width: 200px; max-width: 100%; height: auto; display: block; }

/* ========================================================== INTRO ========================================================== */
.artbrisseau-sap-steps__intro-row { display: grid; grid-template-columns: 230px 1fr; gap: 55px; align-items: center; padding-bottom: 30px; margin-bottom: 10px; border-bottom: 1px solid rgba(78, 89, 47, 0.16); }

.artbrisseau-sap-steps__content h2 { margin-bottom: 18px; }

.artbrisseau-sap-steps__intro { max-width: 760px; }

.artbrisseau-sap-steps__intro p { margin: 0; line-height: 1.6; }

/* ========================================================== ÉTAPES ========================================================== */
.artbrisseau-sap-steps__list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 40px; }

.artbrisseau-sap-steps__item { display: grid; grid-template-columns: 46px 1fr; gap: 18px; padding: 26px 0; border-bottom: 1px solid rgba(78, 89, 47, 0.16); }

.artbrisseau-sap-steps__number { width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: #4e592f; color: #ffffff; }

.artbrisseau-sap-steps__item-content h3 { margin: 4px 0 7px; }

.artbrisseau-sap-steps__item-text p { margin: 0; line-height: 1.55; }

/* ========================================================== RESPONSIVE ========================================================== */
@media (max-width: 991px) { .artbrisseau-sap-steps__box { padding: 50px 40px; } .artbrisseau-sap-steps__intro-row { grid-template-columns: 170px 1fr; gap: 40px; } .artbrisseau-sap-steps__logo { width: 160px; } .artbrisseau-sap-steps__list { grid-template-columns: 1fr; } }

@media (max-width: 767px) { .artbrisseau-sap-steps { padding: 65px 0; } .artbrisseau-sap-steps__box { padding: 40px 25px; border-radius: 28px; } .artbrisseau-sap-steps__intro-row { grid-template-columns: 1fr; gap: 25px; text-align: center; } .artbrisseau-sap-steps__logo { width: 155px; } .artbrisseau-sap-steps__content { text-align: left; } .artbrisseau-sap-steps__item { grid-template-columns: 42px 1fr; gap: 14px; } }

/*-----------------------------------------------logo hero-------------------------------------------------------------*/
.slider-with-features-carousel-logo { height: 20vh !important; }

/*---------------------------------------------------------MAPS----------------------------------------------------------------*/
\
.map-content { padding: 25px 25px 25px 25px !important; }

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