/* RB Couverture – compléments au template Ramayana */

.main-banner .banner-content {
  background-image: url(../images/couverture.jpg);
  background-position: center;
}

.main-banner .banner-content .banner-caption h1 {
  font-size: 38px;
  font-weight: 700;
  color: #31323a;
  letter-spacing: 0.25px;
  margin: 0;
}
@media (max-width: 767px) {
  .main-banner .banner-content .banner-caption h1 { font-size: 28px; }
}

/* En-tête blanc avec logo */
#header { background-color: #fff; border-bottom: 3px solid #D25A42; }
#header .logo { display: flex; align-items: center; justify-content: flex-end; }
#header .logo a { margin-right: 100px; line-height: 0; }
#header .logo img { height: 72px; width: auto; display: block; }
#sidebar .toggle { color: #D25A42; }

/* Bandeau chiffres clés – compact */
.key-figures { margin-top: 30px; }
.key-figures ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  background-color: #fbeeeb;
  border-left: 4px solid #D25A42;
}
.key-figures li {
  flex: 1 1 25%;
  padding: 14px 18px;
  font-size: 14px;
  color: #5a5a5a;
  line-height: 20px;
}
.key-figures li + li { border-left: 1px solid #f0d6d0; }
.key-figures strong {
  color: #B8442E;
  font-size: 18px;
  font-weight: 700;
  margin-right: 4px;
}
@media (max-width: 991px) {
  .key-figures li { flex: 1 1 50%; }
  .key-figures li:nth-child(3) { border-left: none; }
  .key-figures li:nth-child(n+3) { border-top: 1px solid #f0d6d0; }
}

/* Titres de section (h2/h3 stylés comme le template) */
.h-section {
  font-size: 22px;
  font-weight: 700;
  color: #31323a;
  letter-spacing: 0.25px;
}
.top-image .h-section { margin: 30px 0 20px; }
.left-image .h-section { margin: 0 0 20px; }
#contact .h-section, .down-content > h1.h-section { margin-top: 0; }
.services-heading { margin: 0 0 30px -13px; }
.services .service-item h3 {
  font-size: 19px;
  font-weight: 700;
  color: #31323a;
  letter-spacing: 0.25px;
  margin-bottom: 20px;
  transition: all 0.5s;
}
.services .service-item:hover h3 { color: #fff; }
.map-link { color: #B8442E; font-weight: 500; text-decoration: underline; }

/* Listes de prestations */
.prestations { margin-top: 30px; }
.prestations h5 {
  font-size: 17px;
  font-weight: 700;
  color: #B8442E;
  margin: 20px 0 10px;
}
.prestations ul { padding-left: 18px; margin: 0; }
.prestations li {
  font-size: 14px;
  color: #7a7a7a;
  line-height: 26px;
}

/* Interventions */
.interventions { margin-top: 100px; }
.section-heading {
  font-size: 24px;
  font-weight: 700;
  color: #31323a;
  margin-bottom: 10px;
}
.section-intro {
  font-size: 15px;
  color: #7a7a7a;
  line-height: 26px;
  margin-bottom: 40px;
}
.intervention-item {
  background-color: #f6efed;
  margin-bottom: 30px;
  height: calc(100% - 30px);
}
.intervention-item img {
  width: 100%;
  height: 240px;
  object-fit: cover;
  display: block;
}
.intervention-item .text { padding: 30px; }
.intervention-item h3 {
  font-size: 19px;
  font-weight: 700;
  color: #31323a;
  margin: 0 0 12px;
}
.intervention-item p {
  font-size: 14px;
  color: #7a7a7a;
  line-height: 25px;
  margin: 0;
}

.left-image img, .right-image img { width: 100%; object-fit: cover; }

/* FAQ */
.faq { margin-top: 100px; }
.faq details {
  border-bottom: 1px solid #ddd;
  padding: 18px 0;
}
.faq summary {
  cursor: pointer;
  font-size: 17px;
  font-weight: 500;
  color: #31323a;
  list-style: none;
  position: relative;
  padding-right: 30px;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "+";
  position: absolute;
  right: 0;
  top: -2px;
  font-size: 24px;
  color: #D25A42;
}
.faq details[open] summary::after { content: "–"; }
.faq details p {
  font-size: 15px;
  color: #7a7a7a;
  line-height: 26px;
  margin: 14px 0 0;
}

/* Contact */
.contact-block a { color: #B8442E; }
.contact-lines { font-size: 18px; line-height: 34px; color: #31323a; }
.contact-lines strong { display: inline-block; min-width: 110px; font-weight: 500; }

.sidebar-contact { padding: 20px; color: #ccc; font-size: 14px; line-height: 22px; }
.sidebar-contact a { color: #fff; }
.sidebar-badges { font-size: 12px; margin-top: 15px; color: #aaa; }

@media (max-width: 767px) {
  .key-figure strong { font-size: 24px; }
  .intervention-item img { height: 200px; }
  .contact-lines { font-size: 16px; }
  .contact-lines strong { min-width: 0; display: block; line-height: 22px; margin-top: 10px; }
}

/* Alignement des sections ajoutées sur la grille du template */
.key-figures > .container-fluid,
.interventions > .container-fluid,
.faq > .container-fluid { padding-left: 0; padding-right: 0; }
.interventions .section-heading, .interventions .section-intro { padding: 0; }

@media (max-width: 845px) {
  #header .logo a { margin-right: 15px !important; }
  #header .logo img { height: 48px; }
  .main-banner .primary-button a { font-size: 12px; }
}

/* Bandeau collé à la bannière */
section.main-banner { border-bottom: none; padding-bottom: 0; }
section.key-figures { margin-top: 20px; padding-bottom: 60px; }
section.services { margin-top: 60px; }

#main { min-height: 100vh; }

/* Espacement entre sections réduit */
#header { margin-bottom: 50px; }
#main section { margin-top: 50px; padding-bottom: 50px; }
#main section.main-banner { margin-top: 0; padding-bottom: 0; }
#main section.key-figures { margin-top: 20px; padding-bottom: 40px; }
#main section .h-section:first-child,
#main section .section-heading:first-child { margin-top: 0; }
@media (max-width: 767px) {
  #header { margin-bottom: 30px; }
  #main section { margin-top: 35px; padding-bottom: 35px; }
  #main section.key-figures { margin-top: 15px; padding-bottom: 30px; }
}
#main section.top-image img + .down-content > .h-section:first-child { margin-top: 25px; }
#main section.interventions { padding-bottom: 20px; }
#main section#contact { border-bottom: none; padding-bottom: 20px; }

/* Carte zone d'intervention : format carré */
.left-image img.zone-map { display: block; width: 100% !important; max-width: 100% !important; height: auto !important; aspect-ratio: 1 / 1; object-fit: cover; }
.left-image .row { align-items: center; }
@media (max-width: 767px) { .left-image img.zone-map { margin-bottom: 25px; } }

/* Bandeau d'appel fixe en bas d'écran (mobile uniquement) */
.call-bar { display: none; }
@media (max-width: 767px) {
  .call-bar {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9000;
    background-color: #D25A42;
    color: #fff;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-decoration: none;
    padding: 14px 16px calc(14px + env(safe-area-inset-bottom));
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.15);
  }
  .call-bar:hover, .call-bar:focus, .call-bar:active { color: #fff; background-color: #B8442E; text-decoration: none; }
  .call-bar .fa { font-size: 20px; }
  body { padding-bottom: 60px; }
}
