@charset "UTF-8";
@import url(main.css);
/* ============================================================================= 1. NAVBAR ============================================================================= */
.bg-thirdColor { background-color: rgba(51, 51, 51, 0.5) !important; backdrop-filter: blur(1rem); -webkit-backdrop-filter: blur(1rem); border-bottom: 1px solid #fafafa; }

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

.navbar { background-color: rgba(51, 51, 51, 0.25) !important; border-bottom: 1px solid rgba(250, 250, 250, 0.5); backdrop-filter: blur(0.5rem); -webkit-backdrop-filter: blur(0.5rem); transition: all 0.3s ease; }

.navbar.scrolled { background-color: rgba(51, 51, 51, 0.5) !important; border-bottom: 1px solid #fafafa; backdrop-filter: blur(1rem); -webkit-backdrop-filter: blur(1rem); }

#navbarSupportedContent .button-header-telephone { border-radius: 0 !important; }

/* Logo */
.navbar-brand { width: 11vw !important; height: 11vh !important; }

.logo_nav { height: 10vh !important; }

@media (max-width: 991px) { .navbar { background-color: rgba(51, 51, 51, 0.35) !important; backdrop-filter: blur(0.75rem); -webkit-backdrop-filter: blur(0.75rem); } }

/* ============================================================================= 2. BOUTONS GLOBAUX - sans marges ni arrondis ============================================================================= */
a p, button p, .btn p, [class*="btn"] p, [class*="button"] p { margin: 0 !important; padding: 0 !important; }

a, button, .btn, [class*="btn"], [class*="button"] { display: inline-flex; align-items: center; justify-content: center; border-radius: 0 !important; }

a span, button span, .btn span, [class*="btn"] span, [class*="button"] span { margin: 0; padding: 0; }

/* ============================================================================= 3. HERO ACCUEIL ============================================================================= */
.hamon-hero, .hamon-hero * { box-sizing: border-box; }

.hamon-hero { width: 100%; height: 100vh; height: 100svh; padding: 24px; background: #ffffff; }

.hamon-hero__visual { position: relative; width: 100%; height: 100%; margin: 0 auto; overflow: hidden; display: flex; align-items: center; background-position: center; background-repeat: no-repeat; background-size: cover; }

.hamon-hero__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.7) 34%, rgba(0, 0, 0, 0.5) 65%, rgba(0, 0, 0, 0.38) 100%); pointer-events: none; }

/* Contenu */
.hamon-hero__content { position: relative; z-index: 2; width: 100%; max-width: 820px; margin-left: 7%; padding: 70px 40px 70px 0; color: #ffffff; opacity: 0; animation: hamonFadeUp 0.8s ease forwards; }

.hamon-hero__eyebrow { display: flex; align-items: center; gap: 14px; margin: 0 0 22px !important; padding: 0 !important; color: #ffffff !important; text-transform: uppercase; letter-spacing: 0.16em; text-shadow: 0 2px 5px rgba(0, 0, 0, 0.65); }

.hamon-hero__eyebrow::before { content: ""; width: 42px; height: 1px; flex: 0 0 42px; background: #ffffff; }

.hamon-hero__title { max-width: 800px; margin: 0 0 24px !important; padding: 0 !important; color: #ffffff !important; line-height: 1.03; letter-spacing: 0.01em; text-shadow: 0 2px 8px rgba(0, 0, 0, 0.75); }

.hamon-hero__description { max-width: 700px; margin: 0 0 32px !important; padding: 0 !important; color: #ffffff !important; line-height: 1.65; text-shadow: 0 2px 6px rgba(0, 0, 0, 0.75); }

.hamon-hero__description p { margin: 0 !important; padding: 0 !important; }

/* Bouton : à remplacer dans la section 3 (HERO ACCUEIL), à la place de l'ancien bloc "/* Bouton *\/" (de .hamon-hero__button jusqu'à .hamon-hero__button:hover i inclus). Le reste du CSS ne change pas. */
/* Bouton (verre dépoli : pas de fond blanc, la photo reste visible) */
.hamon-hero__button { display: inline-flex; align-items: center; justify-content: center; gap: 22px; min-width: 210px; min-height: 56px; padding: 15px 26px; background: rgba(255, 255, 255, 0.1); color: #ffffff !important; border: 1px solid rgba(255, 255, 255, 0.85); text-decoration: none; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); transition: background 0.3s ease, border-color 0.3s ease, color 0.3s ease; }

.hamon-hero__button span, .hamon-hero__button i { color: #ffffff !important; transition: color 0.3s ease; }

.hamon-hero__button i { transition: color 0.3s ease, transform 0.3s ease; }

/* Le bouton est cliquable : le survol est autorisé. Le fond reste translucide et le texte reste blanc (contraste conservé). */
.hamon-hero__button:hover { background: rgba(255, 255, 255, 0.22); border-color: #ffffff; }

.hamon-hero__button:hover i { transform: translateX(4px); }

/* Navigation au clavier */
.hamon-hero__button:focus-visible { outline: 2px solid #ffffff; outline-offset: 4px; }

/* Indicateur de scroll */
.hamon-hero__scroll { position: absolute; z-index: 4; left: 50%; bottom: 20px; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; justify-content: center; color: #ffffff; text-align: center; text-shadow: 0 2px 5px rgba(0, 0, 0, 0.7); }

.hamon-hero__scroll-lottie { width: 48px; height: 48px; }

.hamon-hero__scroll-lottie svg { width: 100%; height: 100%; display: block; }

.hamon-hero__scroll span { margin: 0 !important; padding: 0 !important; color: #ffffff !important; text-transform: uppercase; letter-spacing: 0.12em; line-height: 1.2; }

/* Animation */
@keyframes hamonFadeUp { from { opacity: 0;
    transform: translateY(25px); }
  to { opacity: 1;
    transform: translateY(0); } }

/* Responsive */
@media (max-width: 991px) { .hamon-hero { padding: 18px; } .hamon-hero__content { max-width: 700px; margin-left: 6%; padding: 60px 30px 60px 0; } }

@media (max-width: 767px) { .hamon-hero { padding: 12px; } .hamon-hero__overlay { background: linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.7) 48%, rgba(0, 0, 0, 0.48) 100%); } .hamon-hero__content { width: 100%; margin: 0; padding: 70px 22px 50px; } .hamon-hero__eyebrow { margin-bottom: 18px !important; } .hamon-hero__title { margin-bottom: 20px !important; } .hamon-hero__description { margin-bottom: 28px !important; } .hamon-hero__button { width: auto; min-width: 190px; } .hamon-hero__scroll { bottom: 14px; } }

@media (max-width: 480px) { .hamon-hero { padding: 10px; } .hamon-hero__content { padding: 55px 18px 40px; } }

/* ============================================================================= 4. HERO SECONDAIRE (carrousel des pages internes) ============================================================================= */
/* Encadré blanc : mêmes valeurs que le hero accueil (24 / 18 / 12 / 10) */
div#fullHeight { border: 24px solid #ffffff !important; }

@media (max-width: 991px) { div#fullHeight { border-width: 18px !important; } }

@media (max-width: 767px) { div#fullHeight { border-width: 12px !important; } }

@media (max-width: 480px) { div#fullHeight { border-width: 10px !important; } }

.carousel-item-homepage img, .first-carousel-img { transform: none !important; transition: none !important; box-shadow: none !important; opacity: 1 !important; }

/* Voile sombre : plus fort derrière le titre, plus léger sur les bords. Contraste du texte blanc dans le pire cas (pixel de la photo 100 % blanc) : - voile 0.50 -> 3.98:1 (WCAG AA texte large = 3:1, le H1 est un texte large) - voile 0.54 -> 4.5:1  (WCAG AA texte normal) - voile 0.60 -> 5.7:1  (ancienne valeur, plus sombre que nécessaire) Zone centrale (sous le titre) : 0.50. Bords et coins : 0.22. Si le H1 devait descendre sous 24px (ou 19px en gras), passer 0.50 à 0.54. Si le titre n'est pas centré verticalement, ajuster le "50% 50%" (X Y). */
.carousel-item-homepage { position: relative; }

.carousel-item-homepage::after { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 65% 60% at 50% 50%, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.5) 60%, rgba(0, 0, 0, 0.22) 100%); pointer-events: none; }

.titleText.text-white.text-center.fs-2.mb-4.mt-lg-5.titles { letter-spacing: 0; text-shadow: 0 2px 8px rgba(0, 0, 0, 0.75), 0 0 24px rgba(0, 0, 0, 0.45); }

.spacer { display: none; }

/* Tablette : le titre occupe plus de largeur, la zone sombre s'élargit */
@media (max-width: 991px) { .carousel-item-homepage::after { background: radial-gradient(ellipse 85% 65% at 50% 50%, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.5) 65%, rgba(0, 0, 0, 0.25) 100%); } }

/* Mobile : le titre prend presque toute la largeur, voile uniforme */
@media (max-width: 767px) { .carousel-item-homepage::after { background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)); } }

/* ============================================================================= 5. CONTACT ============================================================================= */
.hamon-contact, .hamon-contact * { box-sizing: border-box; }

.hamon-contact { width: 100%; padding: 55px 20px; background: #ffffff; }

.hamon-contact__container { width: 100%; max-width: 1380px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #dedede; border-bottom: 1px solid #dedede; }

.hamon-contact__item { width: 100%; min-height: 145px; padding: 28px 35px; display: flex; align-items: center; gap: 20px; border-right: 1px solid #dedede; }

.hamon-contact__item:last-child { border-right: 0; }

.hamon-contact__icon { width: 42px; height: 42px; flex: 0 0 42px; display: flex; align-items: center; justify-content: center; color: #d8b45a; font-size: 24px; }

.hamon-contact__info { min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 5px; }

.hamon-contact__label { color: #5a5b5d; line-height: 1.2; text-transform: uppercase; letter-spacing: 0.08em; font-weight: 600; }

.hamon-contact__value { color: #272829; line-height: 1.45; text-decoration: none; }

a.hamon-contact__value:hover { color: #272829; }

/* Responsive */
@media (max-width: 991px) { .hamon-contact { padding: 45px 20px; } }

@media (min-width: 768px) and (max-width: 991px) { .hamon-contact__container { grid-template-columns: 1fr 1fr; } .hamon-contact__item { min-height: 120px; padding: 22px 25px; border-right: 0; } .hamon-contact__item:nth-child(3) { grid-column: 1 / -1; border-top: 1px solid #dedede; } }

@media (max-width: 767px) { .hamon-contact__container { grid-template-columns: 1fr; } .hamon-contact__item { min-height: auto; padding: 20px 22px; border-right: 0; border-top: 1px solid #dedede; } .hamon-contact__item:first-child { border-top: 0; } }

@media (max-width: 600px) { .hamon-contact { padding: 35px 15px; } .hamon-contact__item { gap: 15px; } .hamon-contact__icon { width: 36px; height: 36px; flex-basis: 36px; font-size: 21px; } }

@media (max-width: 480px) { .hamon-contact__item { padding: 18px; } }

/* ============================================================================= 6. PRESENTATION ============================================================================= */
.hamon-presentation, .hamon-presentation * { box-sizing: border-box; }

.hamon-presentation { width: 100%; padding: 100px 0; background: #ffffff; }

.hamon-presentation__container { width: 100%; max-width: 1400px; margin: 0 auto; padding: 0 6%; display: flex; align-items: center; justify-content: space-between; gap: 80px; }

.hamon-presentation__content { width: 50%; max-width: 650px; }

.hamon-presentation__eyebrow { margin-bottom: 22px; text-transform: uppercase; letter-spacing: 0.16em; color: #777777; }

.hamon-presentation__title { margin-bottom: 28px; line-height: 1.15; color: #272829; }

.hamon-presentation__description { margin-bottom: 34px; line-height: 1.7; color: #555555; }

.hamon-presentation__description p { margin: 0 0 18px 0; }

.hamon-presentation__description p:last-child { margin-bottom: 0; }

.hamon-presentation__button { min-height: 54px; padding: 15px 26px; display: inline-flex; align-items: center; justify-content: center; gap: 14px; background: #272829; color: #ffffff; text-decoration: none; border: 1px solid #272829; transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease; }

.hamon-presentation__button:hover { background: #ffffff; color: #272829; transform: translateY(-2px); }

.hamon-presentation__visual { position: relative; width: 45%; aspect-ratio: 0.85; overflow: hidden; }

.hamon-presentation__image { width: 100%; height: 100%; display: block; object-fit: cover; }

.hamon-presentation__overlay { position: absolute; left: 0; bottom: 0; width: 100%; padding: 70px 45px 35px; background: linear-gradient(to top, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0)); }

.hamon-presentation__overlay-title { color: #ffffff; line-height: 1.25; }

@media (max-width: 991px) { .hamon-presentation { padding: 80px 0; } .hamon-presentation__container { flex-direction: column; gap: 50px; } .hamon-presentation__content, .hamon-presentation__visual { width: 100%; } .hamon-presentation__visual { aspect-ratio: 1; } }

@media (max-width: 576px) { .hamon-presentation { padding: 60px 0; } .hamon-presentation__container { padding: 0 22px; } .hamon-presentation__overlay { padding: 40px 25px 25px; } }

/* ============================================================================= 7. PRESENTATION + MARQUES (about-brand) ============================================================================= */
.hamon-about-brand, .hamon-about-brand * { box-sizing: border-box; }

.hamon-about-brand p { margin: 0; }

.hamon-about-brand { width: 100%; padding: 70px 0; color: #ffffff; }

.hamon-about-brand__container { width: 100%; max-width: 1400px; margin: 0 auto; padding: 0 6%; }

.hamon-about-brand__presentation { display: flex; align-items: center; gap: 70px; }

.hamon-about-brand__content { width: 50%; }

.hamon-about-brand__visual { width: 50%; height: 520px; overflow: hidden; }

.hamon-about-brand__visual img { width: 100%; height: 100%; display: block; object-fit: cover; }

.hamon-about-brand__eyebrow { margin-bottom: 12px; text-transform: uppercase; letter-spacing: 0.16em; color: rgba(0, 0, 0, 0.65); }

.hamon-about-brand__title { margin-bottom: 22px; line-height: 1.15; color: #000000; }

.hamon-about-brand__text { margin-bottom: 15px; color: rgba(0, 0, 0, 0.85); line-height: 1.7; }

.hamon-about-brand__text:last-child { margin-bottom: 0; }

/* Responsive (ajoute : le bloc n'en avait pas) */
@media (max-width: 991px) { .hamon-about-brand { padding: 55px 0; } .hamon-about-brand__presentation { flex-direction: column; gap: 40px; } .hamon-about-brand__content, .hamon-about-brand__visual { width: 100%; } .hamon-about-brand__visual { height: 420px; } }

@media (max-width: 576px) { .hamon-about-brand__container { padding: 0 22px; } .hamon-about-brand__visual { height: 300px; } }

/* ============================================================================= 8. SERVICES ============================================================================= */
.hamon-services, .hamon-services * { box-sizing: border-box; }

.hamon-services p, .hamon-services span { margin: 0; }

.hamon-services { width: 100%; padding: 70px 0; background: #ffffff; }

.hamon-services__container { width: 100%; max-width: 1400px; margin: 0 auto; padding: 0 6%; }

.hamon-services__header { display: grid; grid-template-columns: 1fr 1fr; gap: 35px; margin-bottom: 45px; }

.hamon-services__eyebrow { grid-column: 1 / -1; margin-bottom: -22px; text-transform: uppercase; letter-spacing: 0.15em; color: #777777; }

.hamon-services__heading { line-height: 1.15; color: #111111; }

.hamon-services__intro { align-self: center; color: #5A5B5D; line-height: 1.7; }

.hamon-services__grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 28px; }

.hamon-services__card { position: relative; width: calc(50% - 14px); aspect-ratio: 1.35; overflow: hidden; background: #222222; }

.hamon-services__image { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform 0.5s ease; }

.hamon-services__card:hover .hamon-services__image { transform: scale(1.04); }

.hamon-services__overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 0, 0, 0.78), rgba(0, 0, 0, 0.08)); }

.hamon-services__number { position: absolute; top: 25px; right: 25px; width: 45px; height: 45px; display: flex; align-items: center; justify-content: center; background: #ffffff; color: #111111; }

.hamon-services__content { position: absolute; left: 35px; right: 35px; bottom: 32px; color: #ffffff; }

.hamon-services__title { margin-bottom: 10px; line-height: 1.2; }

.hamon-services__description { max-width: 520px; color: rgba(255, 255, 255, 0.82); line-height: 1.55; }

.hamon-services__button { min-height: 52px; padding: 14px 28px; display: inline-flex; align-items: center; justify-content: center; gap: 12px; background: #111111; color: #ffffff; border: 1px solid #111111; text-decoration: none; transition: background 0.3s ease, color 0.3s ease; }

.hamon-services__button:hover { background: #ffffff; color: #111111; }

@media (max-width: 991px) { .hamon-services__header { grid-template-columns: 1fr; gap: 20px; } .hamon-services__eyebrow { margin-bottom: -10px; } .hamon-services__card { width: 100%; } }

@media (max-width: 767px) { .hamon-services { padding: 50px 0; } .hamon-services__container { padding: 0 22px; } .hamon-services__header { margin-bottom: 35px; } .hamon-services__card { aspect-ratio: 0.95; } .hamon-services__content { left: 25px; right: 25px; bottom: 25px; } }

/* ============================================================================= 9. SERVICES SIMPLE ============================================================================= */
.hamon-services-simple, .hamon-services-simple * { box-sizing: border-box; }

.hamon-services-simple { width: 100%; padding: 70px 20px; background: #ffffff; }

.hamon-services-simple__container { max-width: 1400px; margin: 0 auto; }

.hamon-services-simple__header { margin-bottom: 45px; }

.hamon-services-simple__eyebrow { margin-bottom: 12px; text-transform: uppercase; letter-spacing: 0.14em; color: #5a5b5d; }

.hamon-services-simple__title { color: #272829; line-height: 1.15; }

.hamon-services-simple__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 25px; }

.hamon-services-simple__card { position: relative; height: 520px; overflow: hidden; background: #272829; }

.hamon-services-simple__image { width: 100%; height: 100%; display: block; object-fit: cover; }

.hamon-services-simple__overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.05)); }

.hamon-services-simple__number { position: absolute; top: 25px; right: 25px; padding: 8px 12px; color: #ffffff; border: 1px solid rgba(255, 255, 255, 0.6); }

.hamon-services-simple__content { position: absolute; left: 35px; right: 35px; bottom: 35px; color: #ffffff; }

.hamon-services-simple__card-title { margin-bottom: 12px; color: #ffffff; line-height: 1.2; }

.hamon-services-simple__card-description { color: rgba(255, 255, 255, 0.85); line-height: 1.5; }

.hamon-services-simple__button-wrapper { margin-top: 40px; display: flex; justify-content: center; }

.hamon-services-simple__button { display: inline-flex; align-items: center; gap: 12px; padding: 15px 28px; background: #272829; color: #ffffff; text-decoration: none; border: 1px solid #272829; transition: 0.3s ease; }

.hamon-services-simple__button:hover { background: #ffffff; color: #272829; }

@media (max-width: 991px) { .hamon-services-simple { padding: 55px 20px; } .hamon-services-simple__grid { grid-template-columns: 1fr; } .hamon-services-simple__card { height: 450px; } }

@media (max-width: 576px) { .hamon-services-simple { padding: 40px 15px; } .hamon-services-simple__card { height: 380px; } .hamon-services-simple__content { left: 25px; right: 25px; bottom: 25px; } }

/* ============================================================================= 10. ETAPES ============================================================================= */
.hamon-steps, .hamon-steps * { box-sizing: border-box; }

.hamon-steps { width: 100%; padding: 80px 20px; background: #ffffff; }

.hamon-steps__container { width: 100%; max-width: 1400px; margin: 0 auto; }

.hamon-steps__header { max-width: 850px; margin-bottom: 55px; }

.hamon-steps__title { color: #272829; line-height: 1.15; }

.hamon-steps__layout { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: stretch; }

.hamon-steps__list { display: flex; flex-direction: column; justify-content: center; }

.hamon-steps__item { display: grid; grid-template-columns: 115px 1fr; gap: 30px; padding: 35px 0; border-top: 1px solid #d9d9d9; }

.hamon-steps__item:last-child { border-bottom: 1px solid #d9d9d9; }

.hamon-steps__number { color: #d3d3d3; font-size: 72px; font-weight: 500; line-height: 0.9; letter-spacing: -0.04em; }

.hamon-steps__content { display: flex; flex-direction: column; justify-content: center; }

.hamon-steps__item-title { margin-bottom: 12px; color: #272829; line-height: 1.2; }

.hamon-steps__description { max-width: 560px; color: #5a5b5d; line-height: 1.7; }

.hamon-steps__description p { margin: 0; }

.hamon-steps__image { width: 100%; min-height: 620px; overflow: hidden; }

.hamon-steps__image img { width: 100%; height: 100%; display: block; object-fit: cover; }

@media (max-width: 991px) { .hamon-steps { padding: 60px 20px; } .hamon-steps__layout { grid-template-columns: 1fr; gap: 45px; } .hamon-steps__image { min-height: 480px; order: -1; } .hamon-steps__item { grid-template-columns: 95px 1fr; gap: 25px; } .hamon-steps__number { font-size: 62px; } }

@media (max-width: 576px) { .hamon-steps { padding: 45px 15px; } .hamon-steps__header { margin-bottom: 35px; } .hamon-steps__image { min-height: 340px; } .hamon-steps__item { grid-template-columns: 70px 1fr; gap: 18px; padding: 28px 0; } .hamon-steps__number { font-size: 48px; } }

/* ============================================================================= 11. AVANT / APRES ============================================================================= */
/* Titre du bloc */
.photoTitleText { padding: 35px 40px; }

.photoTitleText .titles { display: flex; flex-direction: column; gap: 8px; }

.photoTitleText h3 { margin: 0 !important; padding: 0; color: #5a5b5d !important; text-transform: uppercase; letter-spacing: 0.18em; line-height: 1.2; font-weight: 500; }

.photoTitleText h2 { margin: 0 !important; padding: 0; color: #272829 !important; letter-spacing: 0.04em; line-height: 1.15; font-weight: 500; }

/* Grand format */
#grand-format { width: 100%; margin: 0 auto 80px !important; padding: 0 4%; }

#grand-format .row { min-height: 85vh; margin: 0 !important; }

#grand-format .before-after-images-column { width: 100%; max-width: 100%; padding: 0 !important; }

#grand-format .image-before-after-container { position: relative; width: 100%; height: 85vh; min-height: 650px; overflow: hidden; }

#grand-format .before-image-gallery, #grand-format .after-image-gallery { width: 100%; height: 100%; object-fit: cover; }

@media (max-width: 991px) { .photoTitleText { padding: 30px 25px; } #grand-format { padding: 0 25px; } #grand-format .image-before-after-container { height: 70vh; min-height: 500px; } }

@media (max-width: 767px) { .photoTitleText { padding: 25px 20px; } .photoTitleText h3 { letter-spacing: 0.12em; } #grand-format { padding: 0 15px; margin-bottom: 50px !important; } #grand-format .image-before-after-container { height: 60vh; min-height: 400px; } }

/* ============================================================================= 12. PICTOGRAMMES ============================================================================= */
.picto_card { padding: 20px 0 !important; }

.picto_card > .row { max-width: 1500px; margin: 0 auto !important; padding: 0 30px !important; column-gap: 25px !important; }

.picto_card .col { flex: 0 0 auto; width: calc(16.666% - 25px); padding: 0 !important; }

.picto_card .svg-picto-card { padding: 15px 10px !important; display: flex; flex-direction: column; align-items: center; }

.picto_card svg { width: 75px !important; height: 75px !important; }

.picto_card .text-shadow { margin-top: 18px !important; padding: 0 !important; line-height: 1.35; }

.picto_card .text-shadow p { margin: 0 !important; }

.picto_card .text-shadow span { display: block; font-size: 14px !important; letter-spacing: 0.04em; line-height: 1.45; }

@media (max-width: 991px) { .picto_card > .row { row-gap: 30px !important; } .picto_card .col { width: calc(33.333% - 25px); } }

@media (max-width: 576px) { .picto_card > .row { padding: 0 20px !important; } .picto_card .col { width: 100%; } .picto_card svg { width: 70px !important; height: 70px !important; } }

/* ============================================================================= 13. EVOLUTION DE L'ENTREPRISE ============================================================================= */
.hamon-evolution, .hamon-evolution * { box-sizing: border-box; }

.hamon-evolution { width: 100%; padding: 80px 20px; background: #ffffff; }

.hamon-evolution__container { max-width: 1400px; margin: 0 auto; }

.hamon-evolution__header { max-width: 850px; margin: 0 auto 45px; text-align: center; }

.hamon-evolution__eyebrow { margin-bottom: 12px; color: #5a5b5d; text-transform: uppercase; letter-spacing: 0.14em; }

.hamon-evolution__title { margin-bottom: 18px; color: #272829; line-height: 1.15; }

.hamon-evolution__description { max-width: 750px; margin: 0 auto; color: #5a5b5d; line-height: 1.7; }

.hamon-evolution__gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; align-items: start; }

.hamon-evolution__item { margin: 0; text-align: center; }

.hamon-evolution__item img { width: auto; max-width: 160px; height: 120px; display: block; margin: 0 auto; object-fit: contain; background: transparent; }

.hamon-evolution__item figcaption { margin-top: 15px; color: #272829; text-align: center; line-height: 1.4; }

@media (max-width: 991px) { .hamon-evolution { padding: 60px 20px; } .hamon-evolution__gallery { gap: 5px; } .hamon-evolution__item img { max-width: 140px; height: 110px; } }

@media (max-width: 767px) { .hamon-evolution { padding: 45px 15px; } .hamon-evolution__header { margin-bottom: 35px; } .hamon-evolution__gallery { grid-template-columns: 1fr; gap: 35px; } .hamon-evolution__item img { max-width: 150px; height: 120px; } }

/* ============================================================================= 14. EQUIPEMENTS, MARQUES, MEUBLES ============================================================================= */
/* --- Grandes categories d'equipements --- */
.hamon-equipment, .hamon-equipment * { box-sizing: border-box; }

.hamon-equipment { width: 100%; padding: 80px 20px; background: #f5f5f4; }

.hamon-equipment__container { width: 100%; max-width: 1380px; margin: 0 auto; }

.hamon-equipment__header { max-width: 850px; margin: 0 auto 45px; text-align: center; }

.hamon-equipment__heading { margin-bottom: 18px; color: #272829; line-height: 1.15; font-weight: 600; }

.hamon-equipment__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }

.hamon-equipment__card { min-height: 260px; padding: 38px 28px 32px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; background: #ffffff; border: 1px solid #dedede; color: #272829; }

.hamon-equipment__icon { width: 68px; height: 68px; margin-bottom: 25px; display: flex; align-items: center; justify-content: center; color: #5a5b5d; font-size: 42px; }

.hamon-equipment__title { margin-bottom: 12px; color: #272829; line-height: 1.2; font-weight: 600; }

.hamon-equipment__description { color: #666666; line-height: 1.55; }

@media (max-width: 991px) { .hamon-equipment { padding: 65px 20px; } .hamon-equipment__grid { grid-template-columns: repeat(2, 1fr); } }

@media (max-width: 600px) { .hamon-equipment { padding: 50px 15px; } .hamon-equipment__header { margin-bottom: 30px; } .hamon-equipment__grid { grid-template-columns: 1fr; gap: 12px; } .hamon-equipment__card { min-height: 220px; padding: 30px 24px; } .hamon-equipment__icon { margin-bottom: 18px; } }

/* ============================================================================= MARQUES D'ELECTROMENAGER (bandeaux) - HAMON AGENCEMENT ============================================================================= */
.hamon-brands { width: 100%; overflow: hidden; background: #f7f6f3; }

.hamon-brands, .hamon-brands * { box-sizing: border-box; }

/* --- Titre --- */
.hamon-brands__header { width: 100%; padding: 34px 30px 28px; background: #f7f6f3; text-align: center; }

.hamon-brands__heading { margin: 0; color: #181818; line-height: 1.2; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 400 !important; }

.hamon-brands__heading-line { display: block; width: 45px; height: 1px; margin: 14px auto 0; background: #888580; }

/* --- Bandeau --- */
.hamon-brands__banner { position: relative; width: 100%; min-height: 360px; overflow: hidden; border-top: 5px solid #f7f6f3; background: #171817; }

.hamon-brands__background { position: absolute; z-index: 1; top: 0; left: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center center; }

/* Degrade par defaut : noir */
.hamon-brands__gradient { position: absolute; z-index: 2; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(17, 17, 17, 0.98) 0%, rgba(17, 17, 17, 0.96) 18%, rgba(17, 17, 17, 0.88) 30%, rgba(17, 17, 17, 0.68) 42%, rgba(17, 17, 17, 0.4) 53%, rgba(17, 17, 17, 0.16) 65%, rgba(17, 17, 17, 0) 80%); }

/* --- Contenu --- */
.hamon-brands__content { position: relative; z-index: 3; width: 100%; max-width: 560px; min-height: 360px; padding: 40px 30px 38px 80px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; color: #ffffff; }

/* --- Logos : meme taille pour toutes les marques --- */
.hamon-brands__logo { display: block; width: 130px; height: 46px; object-fit: contain; object-position: left center; }

/* Bosch / NEFF / Siemens : 3 logos cote a cote */
.hamon-brands__logos { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }

.hamon-brands__logos i { display: block; width: 1px; height: 28px; background: rgba(255, 255, 255, 0.45); }

.hamon-brands__line { display: block; width: 34px; height: 2px; margin: 18px 0; background: rgba(255, 255, 255, 0.88); }

.hamon-brands__title { width: 100%; max-width: 470px; margin: 0 0 13px; color: #ffffff; line-height: 1.25; font-weight: 400 !important; }

.hamon-brands__text { width: 100%; max-width: 450px; margin: 0; color: rgba(255, 255, 255, 0.91); line-height: 1.55; font-weight: 400 !important; }

.hamon-brands__text p { margin: 0; }

/* --- Bouton (cliquable : hover autorise) --- */
.hamon-brands__button { min-height: 43px; margin-top: 22px; padding: 0 22px; display: inline-flex; align-items: center; justify-content: center; gap: 18px; border: 1px solid rgba(255, 255, 255, 0.7); background: rgba(17, 17, 17, 0.18); color: #ffffff; text-decoration: none; line-height: 1; font-weight: 400 !important; backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); transition: background 0.3s ease, border-color 0.3s ease, color 0.3s ease; }

.hamon-brands__button:hover { background: #ffffff; border-color: #ffffff; color: #181818; }

.hamon-brands__arrow { line-height: 1; }

/* --- Alternance : bandeaux pairs en degrade clair --- */
.hamon-brands__banner:nth-of-type(even) .hamon-brands__gradient { background: linear-gradient(90deg, rgba(247, 246, 243, 0.98) 0%, rgba(247, 246, 243, 0.96) 18%, rgba(247, 246, 243, 0.88) 30%, rgba(247, 246, 243, 0.68) 42%, rgba(247, 246, 243, 0.4) 53%, rgba(247, 246, 243, 0.16) 65%, rgba(247, 246, 243, 0) 80%); }

.hamon-brands__banner:nth-of-type(even) .hamon-brands__content { color: #181818; }

.hamon-brands__banner:nth-of-type(even) .hamon-brands__title { color: #181818; }

.hamon-brands__banner:nth-of-type(even) .hamon-brands__text { color: rgba(24, 24, 24, 0.86); }

.hamon-brands__banner:nth-of-type(even) .hamon-brands__line { background: rgba(24, 24, 24, 0.82); }

.hamon-brands__banner:nth-of-type(even) .hamon-brands__logos i { background: rgba(24, 24, 24, 0.28); }

.hamon-brands__banner:nth-of-type(even) .hamon-brands__button { border: 1px solid rgba(24, 24, 24, 0.45); background: rgba(255, 255, 255, 0.24); color: #181818; }

.hamon-brands__banner:nth-of-type(even) .hamon-brands__button:hover { background: #181818; border-color: #181818; color: #ffffff; }

/* Option : forcer les logos en blanc (bandeaux sombres) ou en noir (bandeaux clairs) si les logos fournis sont d'une seule couleur. A decommenter au besoin. .hamon-brands__banner .hamon-brands__logo { filter: brightness(0) invert(1); } .hamon-brands__banner:nth-of-type(even) .hamon-brands__logo { filter: brightness(0); } */
/* --- Grand ecran --- */
@media (min-width: 1600px) { .hamon-brands__banner { min-height: 410px; } .hamon-brands__content { max-width: 620px; min-height: 410px; padding-left: 110px; } .hamon-brands__text { max-width: 490px; } }

/* --- Tablette --- */
@media (max-width: 1000px) { .hamon-brands__banner { min-height: 340px; } .hamon-brands__content { max-width: 500px; min-height: 340px; padding: 34px; } .hamon-brands__logo { width: 120px; height: 42px; } .hamon-brands__gradient { background: linear-gradient(90deg, rgba(17, 17, 17, 0.98) 0%, rgba(17, 17, 17, 0.94) 26%, rgba(17, 17, 17, 0.75) 45%, rgba(17, 17, 17, 0.35) 65%, rgba(17, 17, 17, 0) 90%); } .hamon-brands__banner:nth-of-type(even) .hamon-brands__gradient { background: linear-gradient(90deg, rgba(247, 246, 243, 0.98) 0%, rgba(247, 246, 243, 0.94) 26%, rgba(247, 246, 243, 0.75) 45%, rgba(247, 246, 243, 0.35) 65%, rgba(247, 246, 243, 0) 90%); } }

/* --- Mobile --- */
@media (max-width: 767px) { .hamon-brands__header { padding: 30px 20px; } .hamon-brands__banner { min-height: 430px; border-top-width: 4px; } .hamon-brands__gradient { background: linear-gradient(90deg, rgba(17, 17, 17, 0.98) 0%, rgba(17, 17, 17, 0.92) 40%, rgba(17, 17, 17, 0.68) 65%, rgba(17, 17, 17, 0.25) 85%, rgba(17, 17, 17, 0.08) 100%); } .hamon-brands__banner:nth-of-type(even) .hamon-brands__gradient { background: linear-gradient(90deg, rgba(247, 246, 243, 0.98) 0%, rgba(247, 246, 243, 0.92) 40%, rgba(247, 246, 243, 0.68) 65%, rgba(247, 246, 243, 0.25) 85%, rgba(247, 246, 243, 0.08) 100%); } .hamon-brands__content { max-width: 480px; min-height: 430px; padding: 32px 22px; } .hamon-brands__logo { width: 100px; height: 38px; } .hamon-brands__logos { gap: 10px; } .hamon-brands__title { max-width: 360px; } .hamon-brands__text { max-width: 390px; } .hamon-brands__button { min-height: 44px; padding: 0 18px; } }

/* --- Petit mobile --- */
@media (max-width: 480px) { .hamon-brands__banner { min-height: 445px; } .hamon-brands__content { min-height: 445px; padding: 28px 18px; } .hamon-brands__logo { width: 90px; height: 34px; } .hamon-brands__logos i { height: 24px; } .hamon-brands__text { line-height: 1.6; } }

/* ============================================================================= MEUBLES DE CUISINE - HAMON AGENCEMENT ============================================================================= */
.hamon-furniture, .hamon-furniture * { box-sizing: border-box; }

.hamon-furniture { width: 100%; padding: 90px 20px; background: #f5f5f4; }

.hamon-furniture__container { width: 100%; max-width: 1380px; margin: 0 auto; }

/* --- En-tête --- */
.hamon-furniture__header { max-width: 900px; margin: 0 auto 55px; text-align: center; }

.hamon-furniture__eyebrow { margin-bottom: 18px; color: #5a5b5d; text-transform: uppercase; letter-spacing: 0.12em; }

.hamon-furniture__heading { margin: 0 0 20px; color: #272829; line-height: 1.15; font-weight: 600; }

.hamon-furniture__intro { max-width: 820px; margin: 0 auto; color: #666666; line-height: 1.7; }

/* --- Cartes --- */
.hamon-furniture__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-bottom: 55px; }

.hamon-furniture__card { min-height: 340px; padding: 44px 28px 38px; display: flex; flex-direction: column; align-items: center; text-align: center; background: #ffffff; border: 1px solid #e4e4e2; }

/* --- Icône --- */
.hamon-furniture__icon { width: 96px; height: 96px; margin-bottom: 28px; display: flex; align-items: center; justify-content: center; color: #272829; background: #f5f5f4; border: 1px solid #dedede; }

.hamon-furniture__icon svg { width: 48px; height: 48px; display: block; }

/* --- Textes --- */
.hamon-furniture__card-title { position: relative; margin-bottom: 22px; padding-bottom: 18px; color: #272829; line-height: 1.25; font-weight: 600; }

/* Petit trait sous le titre */
.hamon-furniture__card-title::after { content: ""; position: absolute; left: 50%; bottom: 0; width: 32px; height: 1px; background: #272829; transform: translateX(-50%); }

.hamon-furniture__card-description { color: #666666; line-height: 1.6; }

/* --- Image + conclusion --- */
.hamon-furniture__bottom { display: grid; grid-template-columns: 1.15fr 0.85fr; min-height: 420px; background: #ffffff; border: 1px solid #e4e4e2; }

.hamon-furniture__image { width: 100%; height: 100%; min-height: 420px; overflow: hidden; }

.hamon-furniture__image img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; }

.hamon-furniture__statement { padding: 55px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }

.hamon-furniture__line { width: 70px; height: 2px; margin-bottom: 25px; background: #5a5b5d; }

.hamon-furniture__statement-title { margin: 0 0 20px; color: #272829; line-height: 1.2; font-weight: 600; }

.hamon-furniture__statement-text { margin: 0; color: #666666; line-height: 1.7; }

/* --- Responsive --- */
@media (max-width: 991px) { .hamon-furniture { padding: 70px 20px; } .hamon-furniture__grid { grid-template-columns: repeat(2, 1fr); } .hamon-furniture__card { min-height: 310px; } .hamon-furniture__bottom { grid-template-columns: 1fr; } .hamon-furniture__image { min-height: 380px; } .hamon-furniture__statement { padding: 45px 40px; } }

@media (max-width: 600px) { .hamon-furniture { padding: 55px 15px; } .hamon-furniture__header { margin-bottom: 35px; } .hamon-furniture__grid { grid-template-columns: 1fr; gap: 12px; margin-bottom: 35px; } .hamon-furniture__card { min-height: 0; padding: 34px 24px 30px; } .hamon-furniture__icon { width: 84px; height: 84px; margin-bottom: 22px; } .hamon-furniture__icon svg { width: 42px; height: 42px; } .hamon-furniture__image { min-height: 280px; } .hamon-furniture__statement { padding: 38px 25px; } }

/* ============================================================================= 15. CARROUSELS TEXTE + IMAGE ============================================================================= */
/* --- Carrousel + texte (mv-intro) --- */
.mv-intro-section { position: relative !important; padding: 80px 0 !important; overflow: hidden !important; background: #ffffff !important; }

.mv-intro-container { width: 100% !important; max-width: 1380px !important; margin: 0 auto !important; padding: 0 20px !important; box-sizing: border-box !important; display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 60px !important; align-items: center !important; }

.mv-intro-carousel { position: relative !important; min-height: 520px !important; border-radius: 0 !important; overflow: hidden !important; background: #5a5b5d !important; box-shadow: 0 20px 50px rgba(0, 0, 0, 0.12) !important; isolation: isolate !important; }

.mv-intro-slide { position: absolute !important; inset: 0 !important; opacity: 0 !important; transform: scale(1.08) !important; transition: opacity 1.1s ease, transform 5.5s ease !important; }

.mv-intro-slide.active { opacity: 1 !important; transform: scale(1) !important; }

.mv-intro-slide img { width: 100% !important; height: 100% !important; display: block !important; object-fit: cover !important; object-position: center !important; }

/* Points de navigation */
.mv-intro-dots { position: absolute !important; left: 30px !important; bottom: 28px !important; z-index: 4 !important; display: flex !important; gap: 10px !important; }

.mv-intro-dots .mv-dot { width: 9px !important; height: 9px !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: #ffffff !important; opacity: 0.5 !important; cursor: pointer !important; transition: width 0.35s ease, opacity 0.35s ease !important; }

.mv-intro-dots .mv-dot.active { width: 32px !important; opacity: 1 !important; }

/* Contenu */
.mv-intro-content { position: relative !important; z-index: 2 !important; }

.mv-intro-kicker { display: inline-flex !important; align-items: center !important; gap: 12px !important; margin-bottom: 18px !important; color: #5a5b5d !important; text-transform: uppercase !important; letter-spacing: 0.12em !important; }

.mv-intro-kicker::before { content: "" !important; width: 38px !important; height: 1px !important; background: #272829 !important; }

.mv-intro-content h2 { margin: 0 0 24px 0 !important; color: #272829 !important; line-height: 1.08 !important; letter-spacing: -0.03em !important; }

.mv-intro-content p { max-width: 620px !important; margin: 0 !important; color: #5a5b5d !important; line-height: 1.8 !important; }

.mv-intro-content p + p { margin-top: 25px !important; }

@media (max-width: 980px) { .mv-intro-section { padding: 60px 0 !important; } .mv-intro-container { grid-template-columns: 1fr !important; gap: 40px !important; } .mv-intro-carousel { min-height: 440px !important; } }

@media (max-width: 760px) { .mv-intro-section { padding: 45px 0 !important; } .mv-intro-container { padding: 0 15px !important; } .mv-intro-carousel { min-height: 360px !important; } .mv-intro-dots { left: 20px !important; bottom: 20px !important; } }

@media (max-width: 420px) { .mv-intro-carousel { min-height: 310px !important; } }

/* --- Bloc electromenager : puces de liste --- */
.phototext-description ul { padding-left: 22px; }

.phototext-description li::marker { color: #ffffff !important; }

.phototext-description li p { margin: 0 !important; }

/* ============================================================================= 16. GALERIE INFINIE + LIGHTBOX ============================================================================= */
.infinite-gallery { position: relative; width: 100%; overflow: hidden; padding: 80px 0; }

.infinite-gallery__title { width: 100%; max-width: 1200px; margin: 0 auto 35px; padding: 0 20px; box-sizing: border-box; text-align: center; }

.infinite-gallery__title h2, .infinite-gallery__title h3, .infinite-gallery__title p { margin: 0 !important; text-align: center !important; }

.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; }

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

@media (hover: hover) and (pointer: fine) { .gallery-track:hover { animation-play-state: paused; } }

/* Bouton */
.infinite-gallery__button { display: flex; justify-content: center; margin-top: 40px; }

.infinite-gallery__btn { display: inline-flex; align-items: center; gap: 12px; padding: 14px 28px; background: #272829; color: #ffffff; text-decoration: none; transition: all 0.3s ease; }

.infinite-gallery__btn:hover { background: #5a5b5d; color: #ffffff; }

.infinite-gallery__btn i { transition: transform 0.3s ease; }

.infinite-gallery__btn:hover i { transform: translateX(4px); }

/* Mobile : grille 2 colonnes, sans defilement */
@media screen and (max-width: 767px) { .infinite-gallery { overflow: visible; padding: 45px 20px; } .infinite-gallery__title { margin: 0 auto 25px; padding: 0; text-align: center; } .gallery-track { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; width: 100%; animation: none; transform: none; } .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; z-index: 9999; width: 100%; height: 100%; padding: 40px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, 0.9); opacity: 0; pointer-events: none; transition: opacity 0.3s ease; }

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

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

.lightbox-close { position: absolute; top: 20px; right: 25px; width: 45px; height: 45px; padding: 0; background: transparent; border: none; color: #ffffff; line-height: 1; cursor: pointer; }

@media (hover: hover) and (pointer: fine) { .lightbox-close:hover { color: #e74f3c; } }

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

/* ============================================================================= 17. ZONE D'INTERVENTION ============================================================================= */
.hamon-zone, .hamon-zone * { box-sizing: border-box; }

.hamon-zone { width: 100%; padding: 70px 20px; background: #ffffff; }

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

.hamon-zone__image { width: 100%; height: 560px; display: flex; align-items: center; justify-content: center; overflow: hidden; }

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

.hamon-zone__content { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }

.hamon-zone__title-small { margin-bottom: 14px; text-transform: uppercase; letter-spacing: 0.12em; color: #5a5b5d; }

.hamon-zone__title-main { position: relative; margin-bottom: 22px; padding-bottom: 15px; line-height: 1.15; color: #272829; }

.hamon-zone__title-main::after { content: ""; position: absolute; left: 0; bottom: 0; width: 90px; height: 2px; background: #272829; }

.hamon-zone__title-second { margin-bottom: 18px; color: #272829; }

.hamon-zone__description { max-width: 620px; color: #5a5b5d; line-height: 1.7; }

@media (max-width: 992px) { .hamon-zone { padding: 55px 18px; } .hamon-zone__container { grid-template-columns: 1fr; gap: 40px; } .hamon-zone__image { height: 450px; } }

@media (max-width: 600px) { .hamon-zone { padding: 40px 15px; } .hamon-zone__image { height: 300px; } .hamon-zone__title-main { margin-bottom: 18px; } }

/* ============================================================================= 18. FAQ ============================================================================= */
.hamon-faq, .hamon-faq * { box-sizing: border-box; }

.hamon-faq p { margin: 0; }

.hamon-faq { width: 100%; padding: 70px 0; background: #ffffff; }

.hamon-faq__container { width: 100%; max-width: 1400px; margin: 0 auto; padding: 0 6%; display: flex; align-items: center; gap: 90px; }

.hamon-faq__visual { width: 42%; aspect-ratio: 0.85; overflow: hidden; }

.hamon-faq__image { width: 100%; height: 100%; display: block; object-fit: cover; }

.hamon-faq__content { width: 58%; }

.hamon-faq__eyebrow { margin-bottom: 14px; text-transform: uppercase; letter-spacing: 0.15em; color: #777777; }

.hamon-faq__title { margin-bottom: 30px; line-height: 1.15; color: #111111; }

/* Accordeon */
.hamon-faq__item { border-bottom: 1px solid #dddddd; }

.hamon-faq__question { width: 100%; padding: 22px 0; display: flex; align-items: center; justify-content: space-between; gap: 20px; background: none; border: 0; cursor: pointer; text-align: left; color: #111111; }

.hamon-faq__question span { line-height: 1.3; }

.hamon-faq__icon { flex-shrink: 0; transition: transform 0.3s ease; }

.hamon-faq__answer { max-height: 0; overflow: hidden; opacity: 0; padding-right: 40px; color: #5A5B5D; line-height: 1.7; transition: max-height 0.35s ease, opacity 0.35s ease, padding-bottom 0.35s ease; }

.hamon-faq__item.active .hamon-faq__answer { max-height: 300px; opacity: 1; padding-bottom: 22px; }

@media (max-width: 991px) { .hamon-faq__container { flex-direction: column; gap: 50px; } .hamon-faq__visual, .hamon-faq__content { width: 100%; } .hamon-faq__visual { aspect-ratio: 1; } }

@media (max-width: 576px) { .hamon-faq { padding: 50px 0; } .hamon-faq__container { padding: 0 22px; } .hamon-faq__question { padding: 18px 0; } }

/* ============================================================================= AVIS GOOGLE ============================================================================= */
/* Aucun arrondi : en-tête, cartes d'avis, avatars et logo */
.googleReviews-div .card, .googleReviews-div .card *, .googleReviews-div img, .googleReviews-div .card-img-top, .googleReviews-div .avatar-google-place, .googleReviews-div .avatar-google-reviews, .googleReviews-div .rounded-3, .googleReviews-div .rounded-circle { border-radius: 0 !important; }

/* Bouton "Voir la fiche" : aucun arrondi (sélecteur par id pour passer devant le CSS du CMS) */
.googleReviews-div #maps-url, #maps-url, #maps-url::before, #maps-url::after { border-radius: 0 !important; }

#maps-url:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

/* Logo de l'en-tête remplacé en CSS (le HTML n'est pas modifiable) : l'image d'origine est poussée hors du cadre, le nouveau logo s'affiche en arrière-plan. */
.googleReviews-div img.avatar-google-place { width: 110px !important; max-width: 100%; height: 48px !important; object-fit: none !important; object-position: 9999px 0 !important; background-image: url("https://storage.googleapis.com/refpro-app-ca244.appspot.com/customers%2Fn8NAUkdk2DaJUvGQV3eRL3vrojI2%2Fimages%2Flogo-3_pzrj.webp"); background-repeat: no-repeat; background-position: center; background-size: contain; }

/* Carrousel d'avis : le 4e avis est masqué sur l'item Owl entier, puis les avis visibles sont centrés quel que soit leur nombre. */
#google-reviews-widget .owl-item:nth-child(4) { display: none !important; }

#google-reviews-widget .owl-stage { display: flex; justify-content: center; justify-content: safe center; width: 100% !important; }

#google-reviews-widget .owl-stage::after { display: none; }

#google-reviews-widget .owl-item { flex: 0 0 auto; }

/* ----------------------------------------------------------------------------- HERO HISTORIQUE HAMON AGENCEMENT ----------------------------------------------------------------------------- */
.hamon-history-hero, .hamon-history-hero * { box-sizing: border-box; }

/* ----------------------------------------------------------------------------- SECTION ----------------------------------------------------------------------------- */
.hamon-history-hero { width: 100%; min-height: 100vh; min-height: 100svh; padding: 24px; background: #ffffff; overflow: hidden; }

/* ----------------------------------------------------------------------------- IMAGE PRINCIPALE ----------------------------------------------------------------------------- */
.hamon-history-hero__visual { position: relative; width: 100%; height: calc(100vh - 48px); height: calc(100svh - 48px); min-height: 600px; background-position: center; background-repeat: no-repeat; background-size: cover; overflow: hidden; }

/* ----------------------------------------------------------------------------- VOILE SOMBRE Plus fort derrière le contenu (logo, médaillon, titre), plus léger sur les bords. Contraste du texte blanc dans le pire cas (pixel de la photo 100 % blanc) : - voile 0.50 -> 3.98:1 (WCAG AA texte large = 3:1, le titre est un texte large) - voile 0.54 -> 4.5:1  (WCAG AA texte normal) - voile 0.60 -> 5.7:1  (ancienne valeur, plus sombre que nécessaire) Zone centrale : 0.50. Bords et coins : 0.22. Si le titre devait descendre sous 24px (ou 19px en gras), passer 0.50 à 0.54. ----------------------------------------------------------------------------- */
.hamon-history-hero__overlay { position: absolute; inset: 0; z-index: 1; background: radial-gradient(ellipse 70% 65% at 50% 50%, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.5) 60%, rgba(0, 0, 0, 0.22) 100%); pointer-events: none; }

/* ----------------------------------------------------------------------------- CONTENU ----------------------------------------------------------------------------- */
.hamon-history-hero__content { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 60px 30px; text-align: center; }

/* ----------------------------------------------------------------------------- LOGO ----------------------------------------------------------------------------- */
.hamon-history-hero__logo { width: 280px; max-width: 55vw; margin-bottom: 30px; display: flex; align-items: center; justify-content: center; }

.hamon-history-hero__logo img { width: 100%; height: auto; max-height: 150px; display: block; object-fit: contain; }

/* ----------------------------------------------------------------------------- MÉDAILLON ----------------------------------------------------------------------------- */
.hamon-history-hero__medallion { width: 165px; height: 165px; margin-bottom: 32px; display: flex; align-items: center; justify-content: center; border: 2px solid rgba(255, 255, 255, 0.9); border-radius: 50%; overflow: hidden; background: #ffffff; }

.hamon-history-hero__medallion img { width: 100%; height: 100%; display: block; object-fit: cover; }

/* ----------------------------------------------------------------------------- TITRE ----------------------------------------------------------------------------- */
.hamon-history-hero__title { max-width: 1050px; color: #ffffff; line-height: 1.08; text-align: center; text-shadow: 0 2px 8px rgba(0, 0, 0, 0.75), 0 0 24px rgba(0, 0, 0, 0.45); }

/* ----------------------------------------------------------------------------- INDICATEUR SCROLL ----------------------------------------------------------------------------- */
.hamon-history-hero__scroll { position: absolute; z-index: 3; left: 50%; bottom: 28px; width: 42px; height: 60px; transform: translateX(-50%); pointer-events: none; }

/* ----------------------------------------------------------------------------- TABLETTE ----------------------------------------------------------------------------- */
@media (max-width: 991px) { .hamon-history-hero { padding: 18px; } .hamon-history-hero__visual { height: calc(100vh - 36px); height: calc(100svh - 36px); min-height: 560px; } /* Le contenu occupe plus de largeur : la zone sombre s'élargit */ .hamon-history-hero__overlay { background: radial-gradient(ellipse 85% 70% at 50% 50%, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.5) 65%, rgba(0, 0, 0, 0.25) 100%); } .hamon-history-hero__logo { width: 240px; margin-bottom: 26px; } .hamon-history-hero__medallion { width: 140px; height: 140px; margin-bottom: 28px; } }

/* ----------------------------------------------------------------------------- MOBILE ----------------------------------------------------------------------------- */
@media (max-width: 767px) { .hamon-history-hero { padding: 12px; } .hamon-history-hero__visual { height: calc(100vh - 24px); height: calc(100svh - 24px); min-height: 520px; } /* Le contenu prend presque toute la largeur : voile uniforme */ .hamon-history-hero__overlay { background: rgba(0, 0, 0, 0.5); } .hamon-history-hero__content { padding: 45px 20px 80px; } .hamon-history-hero__logo { width: 190px; max-width: 70vw; margin-bottom: 22px; } .hamon-history-hero__medallion { width: 115px; height: 115px; margin-bottom: 24px; } .hamon-history-hero__scroll { bottom: 20px; width: 36px; height: 52px; } }

/* ----------------------------------------------------------------------------- PETITS MOBILES ----------------------------------------------------------------------------- */
@media (max-width: 480px) { .hamon-history-hero { padding: 10px; } .hamon-history-hero__visual { height: calc(100vh - 20px); height: calc(100svh - 20px); } .hamon-history-hero__logo { width: 165px; } .hamon-history-hero__medallion { width: 105px; height: 105px; margin-bottom: 20px; } }

/* ----------------------------------------------------------------------------- ACCESSIBILITÉ ----------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) { .hamon-history-hero__scroll { display: none; } }

/* ============================================================================= 20. SUPPRESSION DES ARRONDIS ============================================================================= */
/* Carrousels image + texte */
#carouselImages-textimagebutton-2, #carouselImages-textimagebutton-2 .carousel-inner, #carouselImages-textimagebutton-2 .carousel-item, #carouselImages-textimagebutton-2 img, #carouselImages-textimagebutton-4, #carouselImages-textimagebutton-4 .carousel-inner, #carouselImages-textimagebutton-4 .carousel-item, #carouselImages-textimagebutton-4 img, .phototext-carousel, .phototext-carousel-inner, .phototext-carousel-item, .phototext-carousel-image { border-radius: 0 !important; }

/* Blocs activites */
.first-activity-div, .second-activity-div, .third-activity-div, .first-activity-div *, .second-activity-div *, .third-activity-div * { border-radius: 0 !important; }

.first-activity-div, .second-activity-div, .third-activity-div, .card-cover { --bs-border-radius: 0 !important; --bs-border-radius-sm: 0 !important; --bs-border-radius-lg: 0 !important; --bs-border-radius-xl: 0 !important; --bs-border-radius-xxl: 0 !important; }

/* Cartes et classes Bootstrap */
.card, .card-cover, .card-cover img, .card-cover::before, .card-cover::after, .background-image-div-opacity, .rounded, .rounded-1, .rounded-2, .rounded-3, .rounded-4, .rounded-5, .rounded-circle, .rounded-pill { border-radius: 0 !important; }

/* ============================================================================= 21. ACCESSIBILITE - MOUVEMENT REDUIT ============================================================================= */
@media (prefers-reduced-motion: reduce) { .hamon-hero__content { animation: none !important; opacity: 1; transform: none; } .mv-intro-slide, .mv-intro-dots .mv-dot { animation: none !important; transition: none !important; } /* Galerie : plus de defilement automatique, defilement manuel a la place */ .infinite-gallery { overflow-x: auto; } .gallery-track { animation: none; } }

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