/* ============================================================
   RP CONDUITE — style.css v8
   Valeurs extraites directement du source HTML WP (Ctrl+U)
   Toutes les règles sont des valeurs Divi exactes
   ============================================================ */

@font-face {
  font-family: 'CooperFiveOptiBlack';
  font-display: swap;
  src: url('../fonts/Cooper-Five-Opti-Black.otf') format('opentype');
}
@font-face {
  font-family: 'ETmodules';
  font-display: block;
  src: url('../fonts/modules.woff') format('woff'),
       url('../fonts/modules.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
}

/* ============================================================
   RESET Divi
   ============================================================ */
*,*::before,*::after { box-sizing: border-box; }
a,abbr,acronym,address,applet,b,big,blockquote,body,center,cite,code,
dd,del,dfn,div,dl,dt,em,fieldset,font,form,h1,h2,h3,h4,h5,h6,html,i,
iframe,img,ins,kbd,label,legend,li,object,ol,p,pre,q,s,samp,small,span,
strike,strong,sub,sup,tt,u,ul,var {
  margin:0; padding:0; border:0; outline:0; font-size:100%;
  vertical-align:baseline; background:transparent;
}
ol,ul { list-style:none; }

/* ============================================================
   BODY — fond route fixe comme WP
   body.custom-background { background-image:url(sli-route_02.webp); ... fixed }
   ============================================================ */
body {
  font-family: Open Sans, Arial, sans-serif;
  font-size: 14px;
  color: #666;
  background-color: #fff;
  line-height: 1.7em;
  font-weight: 500;
  /* fond route fixe */
  background-image: url('../images/sli-route_02.webp');
  background-position: left top;
  background-size: auto;
  background-repeat: repeat;
  background-attachment: fixed;
}
/* boxed layout + topbar+header fixes → padding-top:111px */
body.et_fixed_nav.et_show_nav.et_secondary_nav_enabled {
  /* géré via #page-container padding-top */
}
img  { max-width:100%; height:auto; }
a    { color:inherit; text-decoration:none; }
p    { padding-bottom:1em; }
p:last-of-type { padding-bottom:0; }
h1,h2,h3,h4,h5,h6 { color:#333; padding-bottom:10px; line-height:1em; font-weight:500; }
h1 { font-size:30px; }
h2 { font-size:26px; }

/* ============================================================
   PAGE CONTAINER — .et_boxed_layout #page-container
   max-width:1120px; box-shadow:0 0 10px 0 rgba(0,0,0,0.2)
   padding-top:111px (topbar 31px + header 80px fixes)
   ============================================================ */
#page-container {
  max-width: 1120px !important;
  width: 90% !important;
  margin: 0 auto !important;
  background: #fff;
  box-shadow: 0 0 10px 0 rgba(0,0,0,0.2);
  position: relative;
  padding-top: 111px; /* topbar 31px + header 80px */
}

/* .container — width:80%; max-width:1080px */
.container {
  width: 80%;
  max-width: 1080px;
  margin: auto;
  position: relative;
}

/* ============================================================
   #top-header — topbar
   font-size:12px; line-height:13px; color:#fff
   background-color:#c73a40 (via .et_secondary_nav_enabled)
   position:fixed (via .et_fixed_nav)
   ============================================================ */
#top-header {
  background-color: #c73a40 !important;
  font-size: 12px;
  line-height: 13px;
  color: #fff;
  z-index: 100000;
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 90%;
  max-width: 1120px;
}
#top-header .container {
  padding-top: .75em;
  padding-bottom: .75em;
  font-weight: 600;
  line-height: 1em;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
#top-header,
#top-header .container,
#top-header #et-info,
#top-header .et-social-icon a { line-height: 1em; }

#top-header a,
#top-header a:hover { color: #fff; }
#top-header a:hover { opacity: .7; }

/* Téléphone — icône ETmodules \e090 */
#et-info { float: left; }
#et-info-phone { display: inline-block; margin-right: 13px; position: relative; }
#et-info-phone::before {
  font-family: 'ETmodules';
  content: "\e090";
  position: relative;
  top: 2px;
  margin-right: 2px;
}

/* Facebook — ETmodules \e093 */
.et-social-icons { float: right; display: inline-block; }
.et-social-icon  { display: inline-block; }
.et-social-icon a { display: inline-block; font-size: 14px; line-height: 1em; color: #fff; }
.et-social-facebook a.icon::before {
  font-family: 'ETmodules';
  content: "\e093";
}
.et-social-icon span { display: none; }

/* ============================================================
   #main-header — position:fixed top:31px (sous la topbar)
   height ~80px ; logo max-height:54%
   nav padding-top:33px ; liens padding-bottom:33px
   ============================================================ */
#main-header {
  background-color: #fff;
  position: fixed;
  top: 30px; /* valeur WP exacte : body.et_fixed_nav.et_secondary_nav_enabled */
  left: 50%;
  transform: translateX(-50%);
  width: 90%;
  max-width: 1120px;
  height: 104px; /* data-height-onload confirmé sur le site WP */
  z-index: 99999;
  line-height: 23px;
  font-weight: 500;
  box-shadow: 0 1px 0 rgba(0,0,0,.1);
  transition: background-color 0.4s, box-shadow 0.4s ease-in-out;
}
#main-header .container {
  display: block;
  position: relative;
  height: 100%;
  padding-top: 0;
  padding-bottom: 0;
}

/* logo_container — position:absolute height:100% width:100% */
.logo_container {
  position: absolute;
  height: 100%;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  left: 0;
  padding-left: 0;
  transition: all 0.4s ease-in-out;
}
/* logo_helper — inline-block height:100% vertical-align:middle */
span.logo_helper {
  display: inline-block;
  height: 100%;
  vertical-align: middle;
  width: 0;
}
/* #logo — max-height:56px (54% × 104px, valeur WP exacte) */
#logo {
  width: auto;
  max-height: 56px;
  display: inline-block;
  vertical-align: middle;
  transition: all 0.4s ease-in-out;
  margin-bottom: 0;
}

/* #et-top-navigation — padding-top:33px valeur WP exacte */
#et-top-navigation {
  font-weight: 600;
  float: right;
  padding-top: 33px;
  transition: all 0.4s ease-in-out;
}

/* #top-menu */
#top-menu-nav, #top-menu { line-height: 0; float: left; }
#top-menu { display: flex; list-style: none; padding: 0; margin: 0; }
#top-menu > li {
  display: inline-block;
  font-size: 14px;
  padding-right: 22px;
  position: relative;
}
#top-menu > li:last-child { padding-right: 0; }

/* liens nav */
#top-menu a {
  color: rgba(0,0,0,0.6);
  text-decoration: none;
  display: block;
  position: relative;
  padding-bottom: 33px;
  transition: opacity 0.4s ease-in-out;
}
#top-menu a:hover { opacity: 0.7; }

/* item actif */
#top-menu li.current-menu-item > a,
#top-menu li.current-menu-ancestor > a { color: #2EA3F2; }

/* sous-menus */
.nav li ul, #top-menu .sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  padding: 20px 0;
  z-index: 9999;
  width: 240px;
  background: #fff;
  visibility: hidden;
  opacity: 0;
  border-top: 3px solid #2ea3f2;
  box-shadow: 0 2px 5px rgba(0,0,0,.1);
  text-align: left;
  list-style: none;
}
#top-menu > li:hover > .sub-menu { display: block; opacity: 1; visibility: visible; }
#top-menu .sub-menu > li { display: block; padding: 0 20px; margin: 0; }
#top-menu .sub-menu > li > a { padding: 6px 20px; width: 200px; font-size: 14px; line-height: 2em; }
#top-menu .sub-menu > li > a:hover { background-color: rgba(0,0,0,.03); opacity: .7; }

/* .et-fixed-header au scroll — bandeau réduit */
#main-header.et-fixed-header {
  box-shadow: 0 0 7px rgba(0,0,0,0.1) !important;
  height: 70px;
  transition: height 0.4s ease-in-out;
}
#main-header.et-fixed-header #et-top-navigation { padding-top: 24px; }
#main-header.et-fixed-header #top-menu a { padding-bottom: 24px; }
#main-header.et-fixed-header #logo { max-height: 40px; }
#main-header.et-fixed-header .logo_container { transition: all 0.4s ease-in-out; }

/* menu mobile */
#et_mobile_nav_menu { float: right; display: none; }
.mobile_menu_bar {
  position: relative;
  display: block;
  line-height: 0;
  cursor: pointer;
}
.mobile_menu_bar::before {
  font-family: 'ETmodules';
  content: "\61"; /* hamburger */
  font-size: 32px;
  position: relative;
  left: 0; top: 0;
  cursor: pointer;
  color: rgba(0,0,0,0.6);
}
.mobile_nav.opened .mobile_menu_bar::before { content: "\4d"; }

.et_mobile_menu {
  display: none;
  position: absolute;
  left: 0;
  padding: 5%;
  background: #fff;
  width: 100%;
  z-index: 9999;
  border-top: 3px solid #2ea3f2;
  box-shadow: 0 2px 5px rgba(0,0,0,.1);
}
.et_mobile_menu.open { display: block; }
.et_mobile_menu li a {
  border-bottom: 1px solid rgba(0,0,0,.03);
  color: #666;
  padding: 10px 5%;
  display: block;
  font-size: 14px;
}

/* ============================================================
   HERO — .et_pb_fullwidth_slider_0
   background-color:#c73a40
   h2.et_pb_slide_title : font-size:60px !important (valeur WP exacte)
   voiture : fadeLeft 0.7s delay:0.6s
   description : fadeBottom 0.7s delay:0.9s
   ============================================================ */
.et_pb_slider {
  position: relative;
  overflow: hidden;
  background-color: #c73a40;
}
.et_pb_slide {
  padding: 0 6%;
  background-color: #c73a40;
  position: relative;
  width: 100%;
  text-align: center;
  list-style: none !important;
  background-position: 50%;
  background-size: cover;
}
.et_pb_slides .et_pb_container {
  display: table;
  table-layout: fixed;
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}
.et_pb_slides .et_pb_slider_container_inner {
  display: table-cell;
  width: 100%;
  vertical-align: middle;
}

/* Parallax background — image "Richard Parisot" */
.et_parallax_bg_wrap {
  overflow: hidden;
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
}
.et_parallax_bg {
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  background-image: url('../images/fnd-logo_parisot_4.png');
  background-attachment: scroll;
  position: absolute;
  bottom: 0; left: 0;
  width: 100%;
  height: 100%;
  display: block;
}

/* Image voiture — position:absolute bottom:0 width:47.25% */
.et_pb_slide_image {
  position: absolute;
  bottom: 0;
  width: 47.25%;
  margin-right: 5.5%;
}
/* Animation voiture sur 1er slide */
.et_pb_slide:first-child .et_pb_slide_image img { opacity: 0; }
.et_pb_slide:first-child .et_pb_slide_image img.active {
  opacity: 1;
  animation-duration: .7s;
  animation-delay: .6s;
  animation-timing-function: ease-in-out;
  animation-fill-mode: both;
  animation-name: et_pb_fadeLeft;
}

/* Description — float:right width:47.25% */
.et_pb_slide_description {
  word-wrap: break-word;
  width: 47.25%;
  padding-left: 0;
  padding-right: 0;
  text-align: left;
  float: right;
  padding: 16% 0;
  color: #fff;
}
/* Animation description */
.et-pb-active-slide .et_pb_slide_description {
  animation-duration: .7s;
  animation-delay: .9s;
  animation-timing-function: ease-in-out;
  animation-fill-mode: both;
  animation-name: et_pb_fadeBottom;
}

/* h2 titre hero — Helvetica comme sur le WP (Cooper bloqué HTTPS) */
h2.et_pb_slide_title,
.et_pb_slide_title {
  font-family: Helvetica, Arial, Lucida, sans-serif;
  font-size: 60px !important;
  font-weight: 700;
  color: #fff !important;
  line-height: 1em;
  margin-top: 0;
  padding-bottom: 10px;
  text-shadow: none;
}
/* Sous-titre */
.et_pb_slide_content {
  font-size: 14px;
  font-weight: 400;
  color: #fff;
  line-height: 1.7em;
}
.et_pb_slide_content p { padding-bottom: 0; color: #fff; }
/* Description padding-bottom:30px sur fullwidth_slider_0 */
.et_pb_fullwidth_slider_0 .et_pb_slide_description { padding-bottom: 30px; }

/* Keyframes animations Divi */
@keyframes et_pb_fadeLeft {
  0%   { opacity: 0; transform: translate3d(-100%,0,0); }
  to   { opacity: 1; transform: none; }
}
@keyframes et_pb_fadeBottom {
  0%   { opacity: 0; transform: translate3d(0,100%,0); }
  to   { opacity: 1; transform: none; }
}

/* ============================================================
   FULLWIDTH HEADER — titres sections
   "Nos agences" etc. : 1120×123px
   h1 CooperFiveOptiBlack 35px text-shadow
   padding Divi : 50px 0 par défaut
   .et_pb_fullwidth_header_0 : padding-top:30px; padding-bottom:28px
   ============================================================ */
.et_pb_fullwidth_header {
  padding: 50px 0;
  position: relative;
  background-color: #c73a40;
  background-position: 50%;
  background-size: cover;
}
.et_pb_fullwidth_header_0 {
  padding-top: 30px !important;
  padding-bottom: 28px !important;
  /* background transparent car c'est le slider qui gère le fond */
  background-color: rgba(255,255,255,0) !important;
}
.et_pb_fullwidth_header .et_pb_fullwidth_header_container {
  position: relative;
  z-index: 3;
  width: 80%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}
.et_pb_fullwidth_header .et_pb_fullwidth_header_container.left {
  display: flex;
  flex-flow: row;
}
.et_pb_fullwidth_header .header-content-container { width: 100%; }
.et_pb_fullwidth_header .header-content { padding: 10px 10px 10px 0; text-align: left; }

/* h1/h2 dans fullwidth_header — CooperFiveOptiBlack 35px text-shadow */
.et_pb_fullwidth_header_0 .header-content h1,
.et_pb_fullwidth_header_0 .header-content h2.et_pb_module_header,
h1.et_pb_module_header,
h2.et_pb_module_header {
  font-family: 'CooperFiveOptiBlack', Helvetica, Arial, Lucida, sans-serif !important;
  font-size: 35px !important;
  font-weight: 400;
  color: #fff !important;
  padding-bottom: 0;
  text-shadow: 0em 0.1em 0.1em rgba(0,0,0,0.4);
  line-height: 1.3em;
}

/* ============================================================
   SECTIONS — .et_pb_section
   ≥1200px : padding:48px 0
   ============================================================ */
.et_pb_section {
  position: relative;
  background-color: #fff;
  background-position: 50%;
  background-size: cover;
}
.et_pb_fullwidth_section { padding: 0; }
@media only screen and (min-width: 1200px) {
  .et_pb_section { padding: 48px 0; }
  .et_pb_row    { padding: 24px 0; }
  .et_pb_fullwidth_section { padding: 0; }
}
@media only screen and (max-width: 980px) {
  .et_pb_section { padding: 50px 0; }
  .et_pb_row { padding: 30px 0; }
}

/* .et_pb_row — width:90% max-width:1200px */
.et_pb_row {
  width: 90%;
  max-width: 1200px;
  margin: auto;
  position: relative;
}
.et_pb_row::after {
  content: ""; display: block; clear: both;
  visibility: hidden; line-height: 0; height: 0; width: 0;
}

/* ============================================================
   SECTION INTRO — .et_pb_section_3
   padding-top:7px; padding-bottom:4px
   ============================================================ */
.et_pb_section_3.et_pb_section {
  padding-top: 7px !important;
  padding-bottom: 4px !important;
  background: #fff;
}
.intro-grid {
  display: flex;
  align-items: flex-start;
  gap: 30px;
}
/* .et_pb_image_0 — max-width:250px; text-align:left; margin-left:0 */
.et_pb_image_0 {
  max-width: 250px;
  flex: 0 0 250px;
  text-align: left;
  margin-left: 0;
}
/* .et_pb_image_0 .et_pb_image_wrap — border-radius:30px; overflow:hidden */
.et_pb_image_0 .et_pb_image_wrap {
  border-radius: 30px 30px 30px 30px;
  overflow: hidden;
  display: inline-block;
}
.et_pb_image_0 .et_pb_image_wrap img { width: 100%; display: block; }
.intro-text { flex: 1; }
.intro-text p { font-size: 14px; color: #666; line-height: 1.7em; }
.intro-text p:first-child { font-size: 18px; }

/* ============================================================
   AGENCES — .et_pb_section_3 (section après intro)
   images border-radius:30px
   titres : .et_pb_text_1 .et_pb_text_3 — Cooper 26px rouge
   ============================================================ */
.agences-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
}
/* .et_pb_image_1 .et_pb_image_wrap, .et_pb_image_2 .et_pb_image_wrap */
.et_pb_image_1 .et_pb_image_wrap,
.et_pb_image_2 .et_pb_image_wrap {
  border-radius: 30px 30px 30px 30px;
  overflow: hidden;
  display: block;
  margin-bottom: 14px;
}
.et_pb_image_1 .et_pb_image_wrap img,
.et_pb_image_2 .et_pb_image_wrap img { width: 100%; display: block; }
.et_pb_image_1 { text-align: left; margin-left: 0; }
.et_pb_image_2 { text-align: left; margin-left: 0; }

/* .et_pb_text_1, .et_pb_text_3 — Cooper 26px #c73a40 */
.et_pb_text_1, .et_pb_text_3 {
  font-family: 'CooperFiveOptiBlack', Helvetica, Arial, Lucida, sans-serif;
  font-size: 26px;
  font-weight: 400;
  line-height: 1.3em;
}
.et_pb_text_1.et_pb_text,
.et_pb_text_3.et_pb_text { color: #c73a40 !important; }
.et_pb_text_1 .et_pb_text_inner p,
.et_pb_text_3 .et_pb_text_inner p {
  font-family: 'CooperFiveOptiBlack', Helvetica, Arial, Lucida, sans-serif;
  font-size: 26px;
  padding-bottom: 0;
  line-height: 1.3em;
}
.agence-adresse {
  font-style: normal;
  font-size: 14px;
  color: #666;
  line-height: 1.7em;
  display: block;
}
.agence-tel { font-size: 14px; color: #666; line-height: 1.7em; padding-bottom: 0; }

/* ============================================================
   SERVICES — blurb Divi
   icône 32×32px, h4 14px, texte 14px
   ============================================================ */
.et_pb_row_services {
  display: flex;
  gap: 30px;
  align-items: flex-start;
}
.et_pb_column_services { flex: 1; }
.et_pb_blurb_content { max-width: 550px; margin: 0 auto; }
.et_pb_blurb_position_left .et_pb_blurb_content { display: table; text-align: left; }
.et_pb_main_blurb_image {
  width: 40px;
  display: table-cell;
  line-height: 0;
  vertical-align: middle;
}
.et_pb_main_blurb_image svg {
  display: block;
  width: 40px;
  height: 40px;
}
.et_pb_main_blurb_image .et-pb-icon {
  font-family: 'ETmodules';
  font-size: 32px;
  color: #7EBEC5;
  display: block;
  line-height: 1;
}
.et_pb_blurb_container {
  display: table-cell;
  vertical-align: top;
  padding-left: 15px;
}
h4.et_pb_module_header {
  font-family: Helvetica, Arial, Lucida, sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: #c73a40;
  padding-bottom: 5px;
  line-height: 1.7em;
}
h4.et_pb_module_header a { color: inherit; }
h4.et_pb_module_header a:hover { opacity: .7; }
.et_pb_blurb_description p { font-size: 14px; color: #666; line-height: 1.7em; padding-bottom: 0; }

/* Testimonial */
.et_pb_testimonial {
  position: relative;
  padding: 30px;
  line-height: 1.5;
  border: 1px solid #e0e0e0;
  border-radius: 3px;
}
.et_pb_testimonial::before {
  font-family: 'ETmodules';
  content: "|";
  font-size: 32px;
  left: 50%;
  position: absolute;
  top: -16px;
  background: #fff;
  margin-left: -16px;
  border-radius: 31px;
  z-index: 2;
}
.et_pb_testimonial_description_inner p {
  font-size: 14px;
  color: #666;
  line-height: 1.7em;
  font-style: italic;
  padding-bottom: 0;
}

/* Qualité Ediser */
.et_pb_code_inner { text-align: center; }
.et_pb_code_inner iframe { border: none; max-width: 100%; }

/* ============================================================
   CTA — .et_pb_section_8 — 1120×240px
   .et_pb_promo
   ============================================================ */
.et_pb_section_8 {
  background-color: #c73a40 !important;
  padding: 0;
}
.et_pb_row_cta {
  min-height: 149px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  text-align: center;
}
.et_pb_promo { text-align: center; padding: 40px 60px; }
.et_pb_promo_description { padding-bottom: 20px; position: relative; }
.et_pb_promo_description p,
.et_pb_promo_description p span {
  font-size: 24px;
  color: #fff;
  font-weight: 400;
  padding-bottom: 0;
}
/* bouton CTA */
a.et_pb_promo_button,
a.et_pb_button.et_pb_promo_button {
  font-size: 20px;
  font-weight: 500;
  padding: .3em 1em;
  line-height: 1.7em !important;
  background-color: transparent;
  border: 2px solid #fff;
  border-radius: 3px;
  color: #fff;
  display: inline-block;
  text-decoration: none;
  letter-spacing: 0.05em;
  transition: all 0.4s ease-in-out;
  position: relative;
}
a.et_pb_promo_button::after {
  content: "›";
  font-family: Arial, sans-serif;
  font-size: 28px;
  line-height: 1em;
  color: #c73a40;
  opacity: 0;
  position: absolute;
  right: 0.7em;
  top: 50%;
  transform: translateY(-50%);
  transition: opacity 0.4s ease-in-out;
}
a.et_pb_promo_button:hover {
  background: #fff;
  color: #c73a40;
  padding: .3em 2em .3em .7em;
}
a.et_pb_promo_button:hover::after {
  opacity: 1;
}

/* ============================================================
   AVIS GOOGLE
   ============================================================ */
.avis-inner { max-width: 960px; margin: 0 auto; }
.avis-brand { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.avis-brand-logo { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.avis-brand-name { font-size: 14px; font-weight: 700; color: #333; }
.avis-brand-note { font-size: 1.2rem; font-weight: 700; color: #333; }
.avis-brand-note span { color: #f39c12; }
.avis-brand-powered { font-size: 11px; color: #666; }
.avis-brand-powered a { color: #4285F4; }
.avis-notez-btn {
  display: inline-block; margin-bottom: 20px;
  background: #4285F4; color: #fff;
  font-size: 12px; font-weight: 600;
  padding: 5px 14px; border-radius: 20px;
}
#avis-liste { display: flex; flex-direction: column; }
.avis-item { padding: 14px 0; border-bottom: 1px solid #eee; }
.avis-item:last-child { border-bottom: none; }
.avis-auteur { display: flex; align-items: center; gap: 10px; margin-bottom: 5px; }
.avis-avatar { width: 40px; height: 40px; border-radius: 50%; overflow: hidden; flex-shrink: 0; }
.avis-avatar img { width: 100%; height: 100%; object-fit: cover; }
.avis-initiale { width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-weight:700; font-size:1rem; }
.avis-nom { font-size: 14px; font-weight: 700; color: #4285F4; }
.avis-date { font-size: 11px; color: #666; }
.etoiles { color: #EA4335; font-size: 13px; margin-bottom: 4px; letter-spacing: 1px; }
.avis-texte { font-size: 14px; color: #666; line-height: 1.7em; }
.voir-tous { display: block; text-align: center; margin-top: 16px; font-size: 14px; color: #4285F4; font-weight: 600; }
.voir-tous:hover { text-decoration: underline; }

/* ============================================================
   #main-footer — #footer-bottom
   background:rgba(0,0,0,0.32) sur #1f1f1f
   padding:15px 0 5px ; height ~54px
   ============================================================ */
#main-footer { background-color: #1f1f1f; }
#footer-bottom {
  background-color: rgba(0,0,0,0.32);
  padding: 15px 0 5px;
}
#footer-bottom .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
#footer-info { float: left; color: #666; padding-bottom: 10px; }
#footer-info p { color: #666; font-size: 14px; line-height: 1.7em; padding-bottom: 0; }
#footer-info a { color: #666; font-weight: 700; transition: opacity 0.4s ease-in-out; }
#footer-info a:hover { opacity: 0.7; }

/* Facebook footer */
#footer-bottom .et-social-facebook a.icon::before {
  font-family: 'ETmodules';
  content: "\e093";
  font-size: 16px;
  color: #666;
}
#footer-bottom .et-social-icons { float: right; padding-bottom: 10px; }
#footer-bottom .et-social-icon a { color: #666; }
#footer-bottom .et-social-icon a:hover { opacity: 0.7; }

/* ============================================================
   SCROLL TOP — .et_pb_scroll_top.et-pb-icon
   content:'2' ; bottom:125px; right:0px
   border-radius gauche 5px; font-size:30px; padding:5px
   .et-visible : fadeInRight ; .et-hidden : fadeOutRight
   ============================================================ */
.et_pb_scroll_top.et-pb-icon {
  font-family: 'ETmodules';
  text-align: center;
  background: rgba(0,0,0,0.4);
  text-decoration: none;
  position: fixed;
  z-index: 99999;
  bottom: 125px;
  right: 0;
  border-top-left-radius: 5px;
  border-bottom-left-radius: 5px;
  display: none;
  cursor: pointer;
  font-size: 30px;
  padding: 5px;
  color: #fff;
  line-height: 1;
}
.et_pb_scroll_top::before { content: '2'; font-family: 'ETmodules'; }
.et_pb_scroll_top.et-visible {
  display: block;
  opacity: 1;
  animation: fadeInRight 1s 1 cubic-bezier(0.77, 0, 0.175, 1);
}
.et_pb_scroll_top.et-hidden {
  opacity: 0;
  animation: fadeOutRight 1s 1 cubic-bezier(0.77, 0, 0.175, 1);
}
@keyframes fadeInRight {
  0%   { opacity:0; transform:translateX(100%); }
  100% { opacity:1; transform:translateX(0); }
}
@keyframes fadeOutRight {
  0%   { opacity:1; transform:translateX(0); }
  100% { opacity:0; transform:translateX(100%); }
}

/* ============================================================
   ANIMATION TITRES SECTIONS — fadeLeft au scroll
   Déclenché par IntersectionObserver via JS
   ============================================================ */
.section-title-animate {
  opacity: 0;
  transform: translate3d(-60px, 0, 0);
  transition: opacity 0.7s ease-in-out, transform 0.7s ease-in-out;
}
.section-title-animate.animated {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* ============================================================
   PAGES INTÉRIEURES
   ============================================================ */
.et_pb_fullwidth_image img { width: 100%; height: auto; display: block; margin-top: 20px; }
.page-content { max-width: 1008px; margin: 0 auto; padding: 0px 30px 48px; }
.page-content h2 { font-family: 'CooperFiveOptiBlack', Helvetica, Arial, Lucida, sans-serif; font-size: 26px; font-weight: 400; color: #c73a40; margin-bottom: 16px; line-height: 1.3em; }
.page-content h3 { font-size: 14px; font-weight: 700; color: #333; margin: 20px 0 8px; padding-bottom: 0; }
.page-content p { color: #666; line-height: 1.7em; font-size: 14px; }
.page-content strong { color: #333; font-weight: 700; }
.page-content ul { list-style: disc; padding-left: 22px; margin-bottom: 14px; }
.page-content ul li { color: #666; margin-bottom: 5px; line-height: 1.7em; font-size: 14px; }

.page-content .encart {
  background: #f9f9f9;
  border-left: 4px solid #c73a40;
  padding: 20px 24px;
  margin: 20px 0;
  border-radius: 0 3px 3px 0;
}
.page-content .encart p { margin-bottom: 10px; }
.page-content .encart ul { list-style: disc; padding-left: 22px; margin-bottom: 10px; }
.page-content .encart ul li { color: #666; margin-bottom: 5px; line-height: 1.7em; font-size: 14px; }


/* ============================================================
   TARIFS — système theme-rouge / theme-blanc
   Inverser une formule = changer 1 mot dans le HTML
   ============================================================ */

/* Structure commune */
.tarif-section { padding:48px 30px; scroll-margin-top:160px; }
.tarif-full-section { padding:48px 30px; scroll-margin-top:160px; }
.tarif-section .ts-inner { max-width:1008px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
.tarif-fiche { text-align:center; }
.tarif-full-inner { max-width:1008px; margin:0 auto; text-align:center; }
.accordion { margin-top:14px; }
.accordion-item { margin-bottom:4px; }

/* NAV ANCRES */
.tarif-nav { background:#fff; border-bottom:2px solid #f5f5f5; position:sticky; top:134px; z-index:900; box-shadow:0 2px 4px rgba(0,0,0,.06); }
.tarif-nav ul { max-width:1080px; margin:0 auto; padding:0 20px; display:flex; overflow-x:auto; list-style:none; }
.tarif-nav ul li a { display:block; padding:12px 14px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:#333; border-bottom:3px solid transparent; white-space:nowrap; transition:color .4s,border-color .4s; text-decoration:none; }
.tarif-nav ul li a:hover,.tarif-nav ul li a.active { color:#c73a40; border-bottom-color:#c73a40; }

/* ---- THEME ROUGE — fond #c73a40, tout en blanc ---- */
.theme-rouge { background-color:#c73a40; }
.theme-rouge .tarif-label { font-family:'CooperFiveOptiBlack',Helvetica,Arial,Lucida,sans-serif; font-size:26px; font-weight:400; display:block; margin-bottom:4px; color:#fff; }
.theme-rouge .tarif-fiche h2 { font-family:'CooperFiveOptiBlack',Helvetica,Arial,Lucida,sans-serif; font-size:24px; font-weight:700; text-transform:uppercase; margin-bottom:6px; color:#fff; padding-bottom:0; line-height:1.2em; }
.theme-rouge .tarif-agences { font-size:12px; margin-bottom:14px; text-transform:uppercase; letter-spacing:.06em; color:rgba(255,255,255,.85); }
.theme-rouge .logo-tarif { margin:0 auto 14px; width:170px; background:#fff; border-radius:20px; padding:8px 12px; }
.theme-rouge .logo-tarif img { width:100%; display:block; }
.theme-rouge .prix { font-family:'CooperFiveOptiBlack',Helvetica,Arial,Lucida,sans-serif; font-size:46px; font-weight:400; line-height:1; margin-bottom:12px; color:#fff; }
.theme-rouge .comprenant { font-size:14px; line-height:1.7em; text-align:center; margin-bottom:10px; color:#fff; }
.theme-rouge .option { font-size:13px; font-style:italic; margin-bottom:10px; color:rgba(255,255,255,.9); }
.theme-rouge .evaluation { font-size:14px; font-weight:700; margin-bottom:18px; color:#fff; }
.theme-rouge .et_pb_button { border:2px solid #fff; color:#fff; border-radius:3px; padding:.3em 1em; font-size:16px; font-weight:500; background:transparent; display:inline-block; cursor:pointer; text-decoration:none; transition:all .4s; margin-top:10px; position:relative; }
.theme-rouge .et_pb_button:hover { background:#fff; color:#c73a40; padding:.3em 2em .3em .7em; }
.theme-rouge .tarif-desc .desc-label { font-size:11px; text-transform:uppercase; letter-spacing:.08em; font-weight:700; margin-bottom:6px; color:rgba(255,255,255,.7); }
.theme-rouge .tarif-desc p { font-size:14px; line-height:1.7em; margin-bottom:10px; color:#fff; }
.theme-rouge .tarif-desc ul { list-style:disc; padding-left:20px; margin-bottom:10px; }
.theme-rouge .tarif-desc ul li { font-size:14px; margin-bottom:4px; line-height:1.7em; color:#fff; }
.theme-rouge .accordion-toggle { width:100%; text-align:left; background:transparent; border:1px solid rgba(255,255,255,.5); border-radius:3px; padding:10px 14px; font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; cursor:pointer; display:flex; justify-content:space-between; align-items:center; color:#fff; transition:background .4s; }
.theme-rouge .accordion-toggle::after { content:'−'; color:#fff; font-size:20px; line-height:1; }
.theme-rouge .accordion-toggle.open { background:rgba(0,0,0,.15); }
.theme-rouge .accordion-content { display:none; padding:10px 14px; background:rgba(0,0,0,.1); border:1px solid rgba(255,255,255,.25); border-top:none; border-radius:0 0 3px 3px; }
.theme-rouge .accordion-content.open { display:block; }
.theme-rouge .accordion-content ul { list-style:disc; padding-left:18px; }
.theme-rouge .accordion-content ul li { font-size:13px; color:#fff; margin-bottom:4px; line-height:1.6em; }
.theme-rouge .accordion-content p { font-size:13px; color:#fff; line-height:1.6em; padding-bottom:0; }
.theme-rouge .tarif-full-inner h2 { font-family:'CooperFiveOptiBlack',Helvetica,Arial,Lucida,sans-serif; font-size:26px; font-weight:400; text-transform:uppercase; margin-bottom:3px; color:#fff; padding-bottom:0; }
.theme-rouge .tarif-date { font-size:12px; color:rgba(255,255,255,.8); margin-bottom:6px; display:block; }
.theme-rouge .tarif-full-inner table { width:100%; border-collapse:collapse; margin-top:18px; font-size:14px; text-align:left; }
.theme-rouge .tarif-full-inner table td { padding:8px 12px; border:1px solid rgba(255,255,255,.25); color:#fff; }
.theme-rouge .tarif-full-inner table td:last-child { text-align:right; font-weight:700; white-space:nowrap; }
.theme-rouge .tarif-full-inner table tr:nth-child(even) td { background:rgba(0,0,0,.1); }

/* ---- THEME BLANC — fond #fff, accents #c73a40 ---- */
.theme-blanc { background-color:#fff; }
.theme-blanc .tarif-label { font-family:'CooperFiveOptiBlack',Helvetica,Arial,Lucida,sans-serif; font-size:26px; font-weight:400; display:block; margin-bottom:4px; color:#c73a40; }
.theme-blanc .tarif-fiche h2 { font-family:'CooperFiveOptiBlack',Helvetica,Arial,Lucida,sans-serif; font-size:24px; font-weight:700; text-transform:uppercase; margin-bottom:6px; color:#c73a40; padding-bottom:0; line-height:1.2em; }
.theme-blanc .tarif-agences { font-size:12px; margin-bottom:14px; text-transform:uppercase; letter-spacing:.06em; color:#666; }
.theme-blanc .logo-tarif { margin:0 auto 14px; width:170px; background:#fff; border-radius:20px; padding:8px 12px; border:1px solid #e0e0e0; }
.theme-blanc .logo-tarif img { width:100%; display:block; }
.theme-blanc .prix { font-family:'CooperFiveOptiBlack',Helvetica,Arial,Lucida,sans-serif; font-size:46px; font-weight:400; line-height:1; margin-bottom:12px; color:#c73a40; }
.theme-blanc .comprenant { font-size:14px; line-height:1.7em; text-align:center; margin-bottom:10px; color:#666; }
.theme-blanc .option { font-size:13px; font-style:italic; margin-bottom:10px; color:#666; }
.theme-blanc .evaluation { font-size:14px; font-weight:700; margin-bottom:18px; color:#333; }
.theme-blanc .et_pb_button { border:2px solid #c73a40; color:#c73a40; border-radius:3px; padding:.3em 1em; font-size:16px; font-weight:500; background:transparent; display:inline-block; cursor:pointer; text-decoration:none; transition:all .4s; margin-top:10px; position:relative; }
.theme-blanc .et_pb_button:hover { background:#c73a40; color:#fff; padding:.3em 2em .3em .7em; }
.theme-blanc .tarif-desc .desc-label { font-size:11px; text-transform:uppercase; letter-spacing:.08em; font-weight:700; margin-bottom:6px; color:#c73a40; }
.theme-blanc .tarif-desc p { font-size:14px; line-height:1.7em; margin-bottom:10px; color:#666; }
.theme-blanc .tarif-desc ul { list-style:disc; padding-left:20px; margin-bottom:10px; }
.theme-blanc .tarif-desc ul li { font-size:14px; margin-bottom:4px; line-height:1.7em; color:#666; }
.theme-blanc .accordion-toggle { width:100%; text-align:left; background:#f5f5f5; border:none; border-radius:3px; padding:10px 14px; font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; cursor:pointer; display:flex; justify-content:space-between; align-items:center; color:#333; transition:background .4s; }
.theme-blanc .accordion-toggle::after { content:'−'; color:#c73a40; font-size:20px; line-height:1; }
.theme-blanc .accordion-toggle.open { background:#e8e8e8; }
.theme-blanc .accordion-content { display:none; padding:10px 14px; background:#fff; border:1px solid #e0e0e0; border-top:none; border-radius:0 0 3px 3px; }
.theme-blanc .accordion-content.open { display:block; }
.theme-blanc .accordion-content ul { list-style:disc; padding-left:18px; }
.theme-blanc .accordion-content ul li { font-size:13px; color:#666; margin-bottom:4px; line-height:1.6em; }
.theme-blanc .accordion-content p { font-size:13px; color:#666; line-height:1.6em; padding-bottom:0; }
.theme-blanc .tarif-full-inner h2 { font-family:'CooperFiveOptiBlack',Helvetica,Arial,Lucida,sans-serif; font-size:26px; font-weight:400; text-transform:uppercase; margin-bottom:3px; color:#c73a40; padding-bottom:0; }
.theme-blanc .tarif-date { font-size:12px; color:#666; margin-bottom:6px; display:block; }
.theme-blanc .tarif-full-inner table { width:100%; border-collapse:collapse; margin-top:18px; font-size:14px; text-align:left; }
.theme-blanc .tarif-full-inner table td { padding:8px 12px; border:1px solid #e0e0e0; color:#666; }
.theme-blanc .tarif-full-inner table td:last-child { text-align:right; font-weight:700; white-space:nowrap; color:#c73a40; }
.theme-blanc .tarif-full-inner table tr:nth-child(even) td { background:rgba(0,0,0,.03); }

/* Responsive */
@media only screen and (max-width:980px) {
  .tarif-section .ts-inner { grid-template-columns:1fr; }
}

/* Contacts */
.contacts-intro { background:#c73a40; padding:20px 30px; }
.contacts-intro h2 { font-family:'CooperFiveOptiBlack',Helvetica,Arial,Lucida,sans-serif; font-size:26px; font-weight:400; color:#fff; margin-bottom:5px; padding-bottom:0; }
.contacts-intro p { font-size:14px; color:rgba(255,255,255,.9); line-height:1.7em; padding-bottom:0; }
.contacts-grid { max-width:1008px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:24px; padding:24px 30px; }
.contact-agence img { width:100%; height:200px; object-fit:cover; border-radius:30px; margin-bottom:12px; }
.contact-agence h3 { font-family:'CooperFiveOptiBlack',Helvetica,Arial,Lucida,sans-serif; font-size:26px; font-weight:400; color:#c73a40; margin-bottom:6px; padding-bottom:0; }
.contact-agence address { font-style:normal; font-size:14px; color:#666; line-height:1.7em; }
.contact-agence .horaires { margin-top:8px; font-size:13px; color:#666; line-height:1.7em; }
#map-container { width:calc(100% - 60px); margin:0 30px 24px; height:380px; border-radius:3px; overflow:hidden; }
.contact-form { max-width:1008px; margin:0 auto; padding:0 30px 48px; }
.contact-form h2 { font-size:18px; font-weight:600; color:#333; margin-bottom:10px; padding-bottom:0; }
.contact-form .form-legal-notice { font-size:12px; color:#666; line-height:1.6em; margin-bottom:18px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.form-group { display:flex; flex-direction:column; }
.form-group.full { grid-column:1/-1; }
.form-group input,.form-group textarea { border:1px solid #bbb; border-radius:0; padding:2px 8px; font-size:14px; color:#4e4e4e; background:#fff; transition:border-color .4s; }
.form-group input:focus,.form-group textarea:focus { outline:none; border-color:#2d3940; }
.form-group textarea { min-height:120px; resize:vertical; padding:4px 8px; }
.form-checkbox { display:flex; align-items:flex-start; gap:8px; grid-column:1/-1; }
.form-checkbox input { width:15px; height:15px; margin-top:3px; }
.form-checkbox label { font-size:13px; color:#666; }
.form-captcha { grid-column:1/-1; display:flex; align-items:center; gap:10px; justify-content:flex-end; font-size:14px; color:#666; }
.form-captcha input { width:50px; border:1px solid #bbb; padding:2px 6px; font-size:14px; text-align:center; }
.form-submit { grid-column:1/-1; text-align:right; margin-top:8px; }
.form-message { display:none; grid-column:1/-1; padding:10px 14px; font-size:14px; font-weight:600; text-align:center; margin-top:8px; }
.form-message.success { background:#d4edda; color:#155724; border:1px solid #c3e6cb; }
.form-message.error   { background:#f8d7da; color:#721c24; border:1px solid #f5c6cb; }

/* Actualités */
.actu-section { padding:30px 30px 48px; background:#fff; max-width:1008px; margin:0 auto; }
.actu-grid { display:flex; flex-direction:column; gap:30px; }
.actu-card { display:grid; grid-template-columns:340px 1fr; border-bottom:1px solid #e0e0e0; padding-bottom:24px; }
.actu-card img { width:100%; height:220px; object-fit:cover; border-radius:30px; }
.actu-card .actu-body { padding:0 0 0 20px; }
.actu-card .actu-meta { font-size:12px; color:#666; margin-bottom:8px; }
.actu-card h3 { font-size:20px; font-weight:700; color:#333; margin-bottom:8px; line-height:1.3em; padding-bottom:0; }
.actu-card h3 a { color:inherit; }
.actu-card h3 a:hover { color:#c73a40; }
.actu-card .actu-extrait { font-size:14px; color:#666; line-height:1.7em; }
.article-wrap { max-width:1008px; margin:0 auto; padding:24px 30px 48px; }
.article-wrap h1 { font-size:26px; font-weight:700; color:#333; margin-bottom:16px; padding-bottom:0; }
.article-wrap .article-img { width:100%; max-height:380px; object-fit:cover; border-radius:30px; margin-bottom:24px; }
.article-wrap .article-corps p { color:#666; line-height:1.7em; margin-bottom:14px; font-size:14px; }
.article-wrap .retour { display:inline-block; margin-top:24px; font-size:14px; color:#c73a40; font-weight:700; }
.article-wrap .retour:hover { text-decoration:underline; }

/* Mentions */
.mentions-wrap { max-width:1008px; margin:0 auto; padding:30px 30px 48px; }
.mentions-wrap h1 { font-family:'CooperFiveOptiBlack',Helvetica,Arial,Lucida,sans-serif; font-size:26px; color:#c73a40; margin-bottom:24px; font-weight:400; padding-bottom:0; }
.mentions-wrap h2 { font-size:14px; font-weight:700; color:#333; margin:20px 0 8px; text-transform:uppercase; letter-spacing:.05em; border-bottom:1px solid #e0e0e0; padding-bottom:5px; }
.mentions-wrap p { font-size:14px; color:#666; line-height:1.7em; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media only screen and (max-width: 980px) {
  body { font-size: 16px; }
  #top-header { position: fixed; }
  #main-header { position: fixed; top: 30px; }
  #page-container { padding-top: 111px; }
  .et_pb_section { padding: 50px 0; }
  .et_pb_row { padding: 30px 0; }
  #top-menu { display: none; }
  #et_mobile_nav_menu { display: block; }
  .agences-grid { grid-template-columns: 1fr; }
  .contacts-grid { grid-template-columns: 1fr; }
  .tarif-section .ts-inner { grid-template-columns: 1fr; }
  .actu-card { grid-template-columns: 1fr; }
  .actu-card .actu-body { padding: 14px 0 0; }
  .et_pb_row_services { flex-direction: column; }
  /* slider mobile */
  .et_pb_slide_image { display: none !important; }
  .et_pb_slide_description { float: none; width: 100%; text-align: center; }
}
@media only screen and (max-width: 767px) {
  .form-grid { grid-template-columns: 1fr; }
  #map-container { width: calc(100% - 40px); margin: 0 20px 20px; height: 260px; }
  h2.et_pb_slide_title, .et_pb_slide_title { font-size: 24px !important; }
}

/* ============================================================
   CORRECTIONS MOBILE — Samsung S8+ et petits écrans
   ============================================================ */
@media only screen and (max-width: 980px) {
  /* Empêcher tout débordement horizontal */
  body, html { overflow-x: hidden; max-width: 100%; }
  * { box-sizing: border-box; }

  /* Header : masquer "Sélectionner une page" qui déborde */
  .mobile_nav .select_page { display: none !important; }

  /* Logo : ne pas déborder sur le menu */
  .logo_container { width: auto !important; max-width: 60% !important; }
  #logo { max-height: 50px !important; width: auto !important; }

  /* Image de fond hero : ne pas déborder */
  .et_pb_fullwidth_slider_0,
  .et_pb_slide,
  .et_pb_slides { overflow: hidden !important; max-width: 100% !important; }

  /* Section intro : passer en colonne unique */
  .intro-grid { flex-direction: column !important; }
  .intro-img { width: 100% !important; max-width: 100% !important; }
  .intro-text { width: 100% !important; }

  /* Images : ne jamais déborder */
  img { max-width: 100% !important; height: auto !important; }

  /* Sections agences accueil */
  .agences-grid { grid-template-columns: 1fr !important; }
  .contacts-agences-inner { grid-template-columns: 1fr !important; }
}

@media only screen and (max-width: 480px) {
  /* Header encore plus compact */
  #logo { max-height: 40px !important; }
  #page-container { padding-top: 155px !important; }
  /* Bandeau : pas de tronquage */
  .et_pb_fullwidth_section { margin-top: 0 !important; }
  /* Réduire l'espace après le bandeau sur mobile */
  .et_pb_fullwidth_section + .et_section_regular { padding-top: 20px !important; }
}

/* ============================================================
   ACTUALITÉS — mini CSS style ADETH
   ============================================================ */
/* Bandeau rouge */
.actu-bandeau-rouge { background:#c73a40; padding:24px 30px; }
.actu-bandeau-inner { max-width:1008px; margin:0 auto; }
.actu-bandeau-rouge h1 { font-family:'CooperFiveOptiBlack',Helvetica,Arial,Lucida,sans-serif; font-size:28px; color:#fff; margin:0; padding:0; }
/* Liste */
.actu-page { background:#f5f5f5; padding:30px 30px 60px; }
.actu-inner { max-width:1008px; margin:0 auto; }
.actu-card { display:grid; grid-template-columns:280px 1fr; gap:0; background:#fff; border-radius:4px; overflow:hidden; margin-bottom:24px; box-shadow:0 2px 6px rgba(0,0,0,.07); }
.actu-img { overflow:hidden; }
.actu-img img { width:100%; height:100%; object-fit:cover; display:block; }
.actu-body { padding:24px 28px; }
.actu-date { font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:#c73a40; font-weight:700; display:block; margin-bottom:8px; }
.actu-body h2 { font-size:18px; font-weight:700; margin-bottom:10px; padding-bottom:0; line-height:1.3em; }
.actu-body h2 a { color:#333; text-decoration:none; transition:color .3s; }
.actu-body h2 a:hover { color:#c73a40; }
.actu-body p { font-size:14px; color:#666; line-height:1.7em; margin-bottom:14px; }
.actu-lire { display:inline-block; font-size:13px; font-weight:700; color:#c73a40; text-decoration:none; text-transform:uppercase; letter-spacing:.05em; border-bottom:2px solid #c73a40; padding-bottom:2px; transition:opacity .3s; }
.actu-lire:hover { opacity:.7; }
/* Page article */
.article-page { background:#fff; padding:48px 30px 70px; }
.article-inner { max-width:800px; margin:0 auto; }
.article-retour { display:inline-block; font-size:13px; color:#c73a40; text-decoration:none; margin-bottom:30px; font-weight:700; letter-spacing:.04em; }
.article-retour:hover { opacity:.7; }
.article-header { margin-bottom:28px; }
.article-header .actu-date { display:block; margin-bottom:10px; }
.article-titre { font-family:'CooperFiveOptiBlack',Helvetica,Arial,Lucida,sans-serif; font-size:28px; color:#333; padding-bottom:0; line-height:1.3em; margin:0; }
.article-photo { margin-bottom:36px; border-radius:10px; overflow:hidden; box-shadow:0 3px 12px rgba(0,0,0,.1); }
.article-photo img { width:100%; height:auto; display:block; }
.article-contenu { font-size:15px; color:#444; line-height:1.9em; }
.article-contenu br { display:block; content:""; margin-bottom:4px; }
@media (max-width:980px) {
  .actu-card { grid-template-columns:1fr; }
  .actu-img { height:200px; }
  .actu-body { padding:20px; }
}

/* ============================================================
   CONTACTS
   ============================================================ */
/* Bandeau rouge intro */
.contacts-intro { background:#c73a40; padding:30px 30px; }
.contacts-intro-inner { max-width:1008px; margin:0 auto; }
.contacts-intro h1 { font-family:'CooperFiveOptiBlack',Helvetica,Arial,Lucida,sans-serif; font-size:28px; color:#fff; margin-bottom:8px; padding-bottom:0; }
.contacts-intro p { font-size:14px; color:rgba(255,255,255,.9); line-height:1.7em; }
/* Agences */
.contacts-agences { background:#fff; padding:40px 30px; }
.contacts-agences-inner { max-width:1008px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.agence-item { }
.agence-photo { overflow:hidden; border-radius:14px; margin-bottom:18px; }
.agence-photo img { width:100%; height:auto; display:block; }
.agence-item h2 { font-family:'CooperFiveOptiBlack',Helvetica,Arial,Lucida,sans-serif; font-size:22px; color:#c73a40; margin-bottom:8px; padding-bottom:0; }
.agence-item address { font-style:normal; font-size:14px; color:#333; line-height:1.8em; margin-bottom:8px; }
.agence-horaires { font-size:13px; color:#666; line-height:1.7em; }
.agence-horaires strong { color:#333; }
/* Carte */
#contacts-map { width:100%; height:400px; display:block; }
.map-info { font-size:13px; line-height:1.6em; }
.map-info strong { display:block; margin-bottom:4px; color:#c73a40; }
.map-info a { color:#c73a40; text-decoration:none; }
/* Formulaire */
.contacts-form-wrap { background:#fff; padding:50px 30px 60px; }
.contacts-form-inner { max-width:780px; margin:0 auto; }
.contacts-form-inner h2 { font-family:'CooperFiveOptiBlack',Helvetica,Arial,Lucida,sans-serif; font-size:24px; color:#c73a40; margin-bottom:24px; padding-bottom:0; }
.form-row-2 { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.form-group { display:flex; flex-direction:column; margin-bottom:16px; }
.form-group label { font-size:13px; color:#666; margin-bottom:4px; }
.form-group input, .form-group textarea { border:1px solid #ddd; border-radius:2px; padding:10px 14px; font-size:14px; color:#333; font-family:inherit; transition:border-color .3s; background:#fff; }
.form-group input:focus, .form-group textarea:focus { border-color:#c73a40; outline:none; }
.form-group textarea { resize:vertical; }
.form-rgpd { display:flex; align-items:flex-start; gap:10px; margin-bottom:20px; font-size:13px; color:#666; }
.form-rgpd input[type=checkbox] { margin-top:3px; flex-shrink:0; accent-color:#c73a40; }
.form-rgpd label { cursor:pointer; }
.form-rgpd a { color:#c73a40; }
.form-submit { text-align:left; margin-bottom:20px; }
.contact-form .et_pb_button { border:2px solid #c73a40; color:#c73a40; border-radius:3px; padding:.4em 1.8em; font-size:16px; font-weight:600; background:transparent; cursor:pointer; transition:all .3s; }
.contact-form .et_pb_button:hover { background:#c73a40; color:#fff; }
.form-legal-notice { font-size:12px; color:#999; line-height:1.6em; font-style:italic; }
.form-success { background:#e8f5e9; border-left:4px solid #4caf50; padding:16px 20px; border-radius:3px; color:#2e7d32; font-size:15px; margin-bottom:20px; }
.form-error { background:#fdecea; border-left:4px solid #c73a40; padding:16px 20px; border-radius:3px; color:#c73a40; font-size:15px; margin-bottom:20px; }
@media (max-width:980px) {
  .contacts-agences-inner { grid-template-columns:1fr; }
  .form-row-2 { grid-template-columns:1fr; }
  #contacts-map { height:300px; }
}

/* ============================================================
   MENTIONS LÉGALES
   ============================================================ */
.mentions-page { background:#fff; padding:40px 30px 60px; }
.mentions-inner { max-width:800px; margin:0 auto; }
.mentions-inner h1 { font-family:'CooperFiveOptiBlack',Helvetica,Arial,Lucida,sans-serif; font-size:28px; color:#c73a40; margin-bottom:30px; padding-bottom:0; }
.mentions-section { margin-bottom:36px; }
.mentions-section h2 { font-size:18px; font-weight:700; color:#333; margin-bottom:12px; padding-bottom:8px; border-bottom:2px solid #f0f0f0; }
.mentions-section p { font-size:14px; color:#666; line-height:1.8em; margin-bottom:12px; }
.mentions-section ul { list-style:none; padding:0; }
.mentions-section ul li { font-size:14px; color:#666; line-height:1.8em; padding:8px 0 8px 16px; border-bottom:1px solid #f5f5f5; position:relative; }
.mentions-section ul li::before { content:'–'; position:absolute; left:0; color:#c73a40; }
.mentions-section a { color:#c73a40; }

/* ============================================================
   AVIS GOOGLE — Places API
   ============================================================ */
.avis-liste { margin:20px 0 16px; display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:14px; }
.avis-card { background:#f9f9f9; border-radius:6px; padding:14px; font-size:13px; }
.avis-card-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:4px; }
.avis-card-auteur { font-weight:700; color:#333; font-size:13px; }
.avis-card-stars { color:#f5a623; font-size:13px; letter-spacing:1px; }
.avis-card-date { font-size:11px; color:#999; margin-bottom:6px; }
.avis-card-texte { font-size:13px; color:#555; line-height:1.6em; margin:0; padding:0; }
.gr-star { font-size:16px; }
.gr-full, .gr-half { color:#f5a623; }
.gr-empty { color:#ddd; }
.avis-brand-note .gr-star { font-size:18px; }
@media (max-width:980px) {
  .avis-liste { grid-template-columns:1fr 1fr; }
}
@media (max-width:600px) {
  .avis-liste { grid-template-columns:1fr; }
}

/* ============================================================
   VIDÉOS YOUTUBE — pleine largeur responsive
   ============================================================ */
/* Dans le flux texte (dans page-content) */
.yt-embed { position:relative; width:100%; padding-top:56.25%; margin:28px 0; background:#000; }
.yt-embed iframe { position:absolute; top:0; left:0; width:100%; height:100%; border:0; }
/* Pleine largeur (dans et_pb_fullwidth_section) */
.yt-embed-full { position:relative; width:100%; padding-top:56.25%; background:#000; }
.yt-embed-full iframe { position:absolute; top:0; left:0; width:100%; height:100%; border:0; }

/* ============================================================
   CAPTCHA — Case à cocher native
   ============================================================ */
:root { --captcha-color: #c73a40; }
.captcha-wrap { display:flex; align-items:center; justify-content:space-between; background:#f9f9f9; border:1px solid #ddd; border-radius:6px; padding:14px 16px; margin-bottom:16px; max-width:300px; transition:border-color .2s; }
.captcha-wrap:hover { border-color:#bbb; }
.captcha-wrap.captcha-checked { border-color:var(--captcha-color); background:#fff; }
.captcha-label { display:flex; align-items:center; gap:12px; cursor:pointer; }
/* Checkbox native cachée — remplacée visuellement */
.captcha-native input[type="checkbox"] { position:absolute; opacity:0; width:0; height:0; }
.captcha-box-native { width:24px; height:24px; border:2px solid #ccc; border-radius:4px; background:#fff; display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:all .2s; }
.captcha-native input[type="checkbox"]:checked ~ .captcha-box-native,
.captcha-wrap.captcha-checked .captcha-box-native { background:var(--captcha-color); border-color:var(--captcha-color); }
.captcha-check-icon { display:none; width:6px; height:11px; border:2px solid #fff; border-top:none; border-left:none; transform:rotate(45deg) translate(-1px,-1px); }
.captcha-native input[type="checkbox"]:checked ~ .captcha-box-native .captcha-check-icon,
.captcha-wrap.captcha-checked .captcha-check-icon { display:block; }
.captcha-text { font-size:14px; color:#333; font-weight:500; }
.captcha-logo { font-size:22px; opacity:.4; flex-shrink:0; }
.captcha-wrap.captcha-checked .captcha-logo { opacity:.8; }
