/**
 * Theme Name: Blocksy Child
 * Description: Blocksy Child theme
 * Author: Creative Themes
 * Template: blocksy
 * Text Domain: blocksy
 */
/* Cache le retour à la ligne sur mobile (écrans inférieurs à 768px) */
@media (max-width: 768px) {
  .br-pc {
    display: none;
  }
}

/* Isolation des mots-clés SEO en blanc dans le Hero */
.hero-abrp__highlight {
  color: #FFFFFF !important;
  font-weight: 700 !important;
}

/* =========================================
   BOUTONS D'ACTION FLOTTANTS (CONTACT & TEL)
   ========================================= */

.abrp-floating-actions {
  position: fixed !important;
  /* On combine vos 30px avec la zone de sécurité de l'iPhone */
  bottom: calc(10px + env(safe-area-inset-bottom)) !important; 
  right: 30px !important;
  display: flex;
  flex-direction: column;
  gap: 15px;
  z-index: 999 !important; 
  align-items: flex-end;
  font-family: 'Montserrat', sans-serif;
}

.abrp-float-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 0.8rem 1.5rem;
  border-radius: 50px;
  font-weight: 600;
  font-size: 1.05rem;
  text-decoration: none;
  transition: transform 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
}

.abrp-float-mail {
  background-color: #181818;
  color: #ffffff;
  border: 1px solid rgba(164, 216, 169, 0.3);
}

.abrp-float-mail svg {
  color: var(--abrp-green, #a4d8a9);
}

.abrp-float-mail:hover {
  transform: translateY(-3px) scale(1.02);
  background-color: #242424;
  border-color: var(--abrp-green, #a4d8a9);
  box-shadow: 0 15px 30px rgba(0, 0, 0, 0.5);
  color: #ffffff;
}

.abrp-float-phone {
  display: none;
  background-color: var(--abrp-green, #a4d8a9);
  color: #181818;
}

.abrp-float-phone:hover {
  transform: translateY(-3px) scale(1.02);
  background-color: #ffffff;
  box-shadow: 0 15px 30px rgba(164, 216, 169, 0.5);
}

/* =========================================
   NOUVEAU BOUTON FLOTTANT GAUCHE (ESTIMATION)
   ========================================= */

.abrp-float-estimate {
  position: fixed !important;
  bottom: 30px !important; 
  left: 30px !important;
  background-color: #181818;
  color: var(--abrp-green, #a4d8a9);
  border: 1px solid rgba(164, 216, 169, 0.3);
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.8rem 1.5rem;
  border-radius: 50px;
  font-weight: 700;
  font-size: 1.05rem;
  text-decoration: none;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
  z-index: 999 !important; 
  transition: opacity 0.4s ease, visibility 0.4s ease, transform 0.4s ease, background-color 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
  font-family: 'Montserrat', sans-serif;
  
  /* Masqué par défaut (pour l'apparition au scroll) */
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px);
  pointer-events: none;
}

/* État actif déclenché par le Javascript */
.abrp-float-estimate.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
  animation: pulse-abrp-green 2s infinite;
}

.abrp-float-estimate.is-visible:hover {
  transform: translateY(-3px) scale(1.02);
  background-color: #242424;
  border-color: var(--abrp-green, #a4d8a9);
  box-shadow: 0 15px 30px rgba(164, 216, 169, 0.2);
  color: var(--abrp-green, #a4d8a9);
  animation: none;
}

@keyframes pulse-abrp-green {
  0% { box-shadow: 0 0 0 0 rgba(164, 216, 169, 0.5); }
  70% { box-shadow: 0 0 0 15px rgba(164, 216, 169, 0); }
  100% { box-shadow: 0 0 0 0 rgba(164, 216, 169, 0); }
}

/* =========================================
   RESPONSIVE MOBILE
   ========================================= */
@media (max-width: 768px) {
  .abrp-floating-actions {
    bottom: 20px !important;
    right: 20px !important;
    gap: 15px; 
  }
  
  .abrp-float-btn {
    padding: 0;
    width: 60px;
    height: 60px;
    border-radius: 50%;
  }

  .abrp-float-phone {
    display: flex;
  }

  .abrp-float-text {
    display: none;
  }
  
  .abrp-float-btn svg {
    width: 24px;
    height: 24px;
  }

  .abrp-float-estimate {
    bottom: 20px !important;
    left: 20px !important;
    padding: 0.6rem 1rem;
    font-size: 0.9rem;
    gap: 0.3rem;
  }
  
  .abrp-float-estimate svg {
    width: 16px;
    height: 16px;
  }
}

/* ==========================================================================
   HEADER & NAVIGATION ABRP (FULL WIDTH & COMPACT)
   ========================================================================== */

.abrp-header-dark {
  background-color: #121212;
  color: #ffffff;
  font-family: 'Montserrat', sans-serif;
  position: sticky;
  top: 0;
  z-index: 1000;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  /* Forçage pleine largeur */
  width: 100vw !important;
  max-width: 100vw !important;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}

/* Barre supérieure compacte */
.abrp-top-bar {
  background-color: #080808;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  padding: 4px 0;
}

.abrp-top-container {
  width: 100%;
  padding: 0 4%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.75rem;
}

.abrp-top-left {
  display: flex;
  gap: 1.5rem;
  color: rgba(255, 255, 255, 0.6);
}

.abrp-top-right {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.abrp-social-icons {
  display: flex;
  gap: 0.8rem;
  align-items: center;
}

.abrp-social-icons a {
  display: flex;
  align-items: center;
  opacity: 0.8;
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.abrp-social-icons a:hover {
  opacity: 1;
  transform: translateY(-2px);
}

/* Badge Google My Business */
.abrp-google-badge {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: rgba(255, 255, 255, 0.05);
  padding: 0.3rem 0.8rem;
  border-radius: 50px;
  text-decoration: none;
  color: #fff;
  font-weight: 600;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.abrp-gmb-logo { color: #4285F4; font-weight: 800; }
.abrp-gmb-stars { color: #FABB05; letter-spacing: 1px; }

/* Menu principal compact */
.abrp-main-nav {
  height: 65px;
  display: flex;
  align-items: center;
  background-color: #181818;
}

.abrp-nav-container {
  width: 100%;
  padding: 0 4%;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* Logo image */
.abrp-logo-img {
  max-height: 48px;
  width: auto;
  display: block;
}

.abrp-nav-list {
  list-style: none;
  display: flex;
  gap: 2.5rem;
  margin: 0;
  padding: 0;
}

.abrp-nav-item {
  position: relative;
  display: flex;
  align-items: center;
  height: 65px;
}

.abrp-nav-link {
  color: #ffffff;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.9rem;
  transition: color 0.3s ease;
}

.abrp-nav-link:hover {
  color: #a4d8a9; /* Vert ABRP */
}

/* Méga-Menu */
.abrp-mega-menu {
  position: absolute;
  top: 65px;
  left: 50%;
  transform: translateX(-50%) translateY(15px);
  width: max-content;
  min-width: 800px;
  background: #181818;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 0 0 1.5rem 1.5rem;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.6);
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1);
  padding: 2.5rem;
  pointer-events: none;
}

.abrp-nav-item:hover .abrp-mega-menu {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
  pointer-events: auto;
}

.abrp-mega-inner {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.5rem;
}

.abrp-mega-col { display: flex; flex-direction: column; }

.abrp-mega-label {
  color: #a4d8a9;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  margin-bottom: 1rem;
  letter-spacing: 1px;
}

.abrp-mega-big-link {
  color: #ffffff;
  text-decoration: none;
  font-weight: 700;
  font-size: 1rem;
  margin-top: 10px;
}

.abrp-mega-small-link {
  color: #ffffff;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.95rem;
  margin-top: 10px;
}

.abrp-mega-sub {
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.8rem;
  margin-bottom: 4px;
}

.abrp-mega-big-link:hover, .abrp-mega-small-link:hover {
  color: #a4d8a9;
}

/* Bouton CTA Header */
.abrp-btn-header {
  background-color: #a4d8a9;
  color: #181818;
  padding: 0.6rem 1.5rem;
  border-radius: 50px;
  font-weight: 700;
  text-decoration: none;
  font-size: 0.9rem;
  transition: all 0.3s ease;
}

.abrp-btn-header:hover {
  background-color: #ffffff;
  transform: translateY(-2px);
}

@media (max-width: 1100px) {
  .abrp-top-bar, .abrp-nav-list, .abrp-mega-menu { display: none !important; }
}

/* FORMULAIRE FORMS */
.ct-appointment-form .wpforms-submit {
  width: 100%;
}

.ct-subscribe-wpforms {
  --form-field-border-width: 0;
  --theme-button-background-initial-color: var(--theme-palette-color-4);
  --theme-button-text-hover-color: var(--theme-palette-color-4);
  --theme-button-background-hover-color: #fff;
}

/* wrapper pour le scroll mobile */
.table-scroll-wrapper {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin-bottom: 1.5em;
}

/* styles du tableau */
table {
  width: 100%;
  border-collapse: collapse;
  min-width: 600px; 
  font-size: 0.95em;
}

/* cellules */
th, td {
  border: 1px solid #a4d8a9;
  padding: 10px 14px;
  text-align: left;
  vertical-align: top;
}

/* en-têtes */
th {
  background-color: #537960;
  color: #ffffff;
}

td {
  color: #36454f;
}

/* typographie globale */
h2 {
  color: #181818;
  font-weight: 700;
}

h3, h4, h5 {
  color: #537960;
  font-weight: 600;
}

p, li {
  line-height: 1.6;
}

a {
  text-decoration: none;
  font-weight: 600;
  transition: color 0.3s ease;
}

a:hover {
  color: #181818;
  text-decoration: underline;
}

strong, b {
  color: #A4D8A9;
}

:root {
  --abrp-green: #a4d8a9;
  --abrp-dark: #181818;
  --abrp-dark-sec: #21292f;
  --abrp-light: #F3F4F6;
  --abrp-white: #FFFFFF;
}

/* BANDEAU HERO ACCUEIL */
.hero-abrp {
  position: relative;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  font-family: 'Montserrat', sans-serif;
  color: var(--abrp-white);
  overflow: hidden;
  padding: 4rem 2rem;
  box-sizing: border-box;
}

.hero-abrp__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -2;
}

.hero-abrp__bg picture {
  display: block;
  width: 100%;
  height: 100%;
}

.hero-abrp__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.hero-abrp__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(24, 24, 24, 0.75); 
  z-index: 1; 
}

.hero-abrp__content {
  text-align: center;
  max-width: 900px;
  z-index: 1;
  margin-bottom: 4rem;
  margin-top: 4rem;
}

.hero-abrp__title {
  font-family: 'Montserrat', sans-serif;
  color: #FFFFFF;
  font-size: clamp(2.2rem, 5vw, 3.8rem);
  line-height: 1.15;
  margin: 0 auto 20px;
  /* Ces deux lignes forcent un saut de ligne propre au milieu de la phrase */
  max-width: 900px;
  text-wrap: balance;
}

.hero-abrp__title span {
  color: var(--abrp-green);
}

.hero-abrp__location-wrapper {
  display: flex;
  justify-content: center;
  margin-bottom: 1.5rem;
}

.hero-abrp__location {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  background: rgba(24, 24, 24, 0.6);
  padding: 0.5rem 1.5rem;
  border-radius: 20px;
  border: 1px solid rgba(164, 216, 169, 0.4);
}

.hero-abrp__icon-accent {
  color: var(--abrp-green);
  flex-shrink: 0; /* Empêche l'icône de s'écraser si le texte passe sur 2 lignes */
}

/* L'icône est légèrement agrandie par défaut pour anticiper le comportement sur mobile */
.hero-abrp__location > svg.hero-abrp__icon-accent {
  width: 24px;
  height: 24px;
}

.hero-abrp__location-text {
  font-size: 1.125rem;
  font-weight: 500;
  margin: 0;
  color: var(--abrp-light);
  text-align: left; /* Assure un bon alignement si 2 lignes */
}

.hero-abrp__desc {
  font-size: 1.25rem;
  line-height: 1.6;
  color: var(--abrp-light);
  margin-bottom: 2.5rem;
  max-width: 700px;
  margin-inline: auto;
  opacity: 0.95;
}

.hero-abrp__actions {
  display: flex;
  gap: 1.5rem;
  justify-content: center;
  flex-wrap: wrap;
}

.hero-abrp__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 2rem;
  border-radius: 50px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  font-size: 1rem;
}

.hero-abrp__btn--primary {
  background-color: var(--abrp-green);
  color: var(--abrp-dark);
  box-shadow: 0 4px 15px rgba(164, 216, 169, 0.3);
}

.hero-abrp__btn--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(164, 216, 169, 0.4);
}

.hero-abrp__btn--secondary {
  background-color: rgba(255, 255, 255, 0.05);
  color: var(--abrp-white);
  border: 1px solid rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(10px);
}

.hero-abrp__btn--secondary:hover {
  background-color: rgba(255, 255, 255, 0.15);
  border-color: var(--abrp-green);
}

.hero-abrp__stats-container {
  width: 100%;
  max-width: 1000px;
  z-index: 1;
}

.hero-abrp__stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  background: rgba(33, 41, 47, 0.6);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 24px;
  padding: 2rem;
  box-shadow: 0 8px 32px rgba(24, 24, 24, 0.3);
}

.hero-abrp__stat {
  text-align: center;
  border-right: 1px solid rgba(255, 255, 255, 0.15);
  padding: 0 1rem;
}

.hero-abrp__stat--no-border {
  border-right: none;
}

.hero-abrp__stat-num {
  font-size: 2rem;
  font-weight: 700;
  color: var(--abrp-white);
  margin-bottom: 0.5rem;
}

.hero-abrp__stat-label {
  font-size: 0.875rem;
  color: var(--abrp-light);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  opacity: 0.9;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

.hero-abrp__stat-label--accent {
  color: var(--abrp-green);
  opacity: 1;
  font-weight: 600;
}

/* ==========================================================================
   RESPONSIVE (MOBILE)
   ========================================================================== */
@media (max-width: 768px) {
  .hero-abrp {
    min-height: auto;
    /* Remonte le Hero de 40px */
    margin-top: -40px;
    padding-top: 7rem; /* Garde un peu de padding en haut pour compenser */
    padding-bottom: 4rem;
  }
  
  .hero-abrp__title {
    font-size: 2.2rem;
  }

  /* Réduction de la taille de la description de 2px (environ) */
  .hero-abrp__desc {
    font-size: 1.125rem; /* Était 1.25rem */
  }

  /* Modification des statistiques : 1 colonne par ligne, parfaitement centrées */
  .hero-abrp__stats {
    grid-template-columns: 1fr;
    gap: 2rem;
    padding: 2.5rem;
  }
  
  .hero-abrp__stat {
    /* Retire toutes les bordures de séparation sur mobile */
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    padding: 0 0 2rem 0;
  }

  /* On retire la bordure du bas pour le dernier élément */
  .hero-abrp__stat:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }
}

/* SECTION POURQUOI CHOISIR ABRP */
.features-abrp {
  background-color: var(--abrp-light);
  padding: 6rem 2rem;
  font-family: 'Montserrat', sans-serif;
  color: var(--abrp-dark-sec);
  overflow: hidden;
}

.features-abrp__container {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

/* Zone image avec effet premium */
.features-abrp__visual {
  position: relative;
  z-index: 5;
}

.features-abrp__img-wrapper {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(24, 24, 24, 0.08);
  transform: translateZ(0); 
}

.features-abrp__img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4/5;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.features-abrp__img-wrapper:hover .features-abrp__img {
  transform: scale(1.03);
}

/* Badge flottant mis au premier plan */
.features-abrp__badge-float {
  position: absolute;
  bottom: -20px;
  right: -20px;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding: 1.5rem;
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.8);
  box-shadow: 0 15px 35px rgba(24, 24, 24, 0.15);
  display: flex;
  align-items: center;
  gap: 0.75rem;
  z-index: 10;
}

.features-abrp__badge-number {
  font-size: 3rem;
  font-weight: 800;
  color: var(--abrp-green);
  line-height: 1;
}

.features-abrp__badge-text {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--abrp-dark);
  text-transform: uppercase;
  line-height: 1.2;
}

/* Zone contenu texte */
.features-abrp__content {
  display: flex;
  flex-direction: column;
}

.features-abrp__tag {
  display: inline-block;
  align-self: flex-start;
  background-color: rgba(164, 216, 169, 0.2);
  color: #3d6a43;
  padding: 0.5rem 1.2rem;
  border-radius: 30px;
  font-size: 0.875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 1.5rem;
}

.features-abrp__title {
  font-size: clamp(2rem, 3.5vw, 2.75rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--abrp-dark);
  margin-bottom: 1.5rem;
}

/* Coloration du texte H2 */
.features-abrp__highlight {
  color: var(--abrp-green);
}

.features-abrp__intro {
  font-size: 1.125rem;
  line-height: 1.7;
  color: var(--abrp-dark-sec);
  margin-bottom: 3rem;
  opacity: 0.9;
}

/* Grille des arguments */
.features-abrp__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}

.features-abrp__item {
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;
  background: var(--abrp-white);
  padding: 1.5rem;
  border-radius: 20px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03);
  transition: all 0.3s ease;
  border: 1px solid transparent;
}

.features-abrp__item:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.06);
  border-color: rgba(164, 216, 169, 0.3);
}

.features-abrp__icon-box {
  flex-shrink: 0;
  width: 50px;
  height: 50px;
  background-color: var(--abrp-green);
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--abrp-dark);
}

.features-abrp__item-title {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--abrp-dark);
  margin-bottom: 0.5rem;
}

.features-abrp__item-desc {
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--abrp-dark-sec);
  margin: 0;
  opacity: 0.85;
}

/* DÉSACTIVATION DE L'ANIMATION JS - AFFICHAGE IMMÉDIAT */
.fade-up {
  opacity: 1; 
  transform: translateY(0); 
}

/* Responsive design pour les features */
@media (max-width: 992px) {
  .features-abrp__container {
    grid-template-columns: 1fr;
    gap: 5rem;
  }

  .features-abrp__visual {
    max-width: 600px;
    margin: 0 auto;
  }
  
  .features-abrp__badge-float {
    bottom: -15px;
    right: 15px;
  }
}

@media (max-width: 768px) {
  .features-abrp {
    padding: 4rem 1.5rem;
  }
  
  .features-abrp__title {
    font-size: 2rem;
  }
  
  .features-abrp__grid {
    gap: 1.25rem;
  }
}

/* SECTION SERVICES EN ONGLETS */
.services-abrp {
  position: relative;
  background-color: #181818;
  padding: 6rem 2rem;
  font-family: 'Montserrat', sans-serif;
  color: var(--abrp-white);
  overflow: hidden;
}

/* Halos lumineux verts */
.services-abrp__halo {
  position: absolute;
  border-radius: 50%;
  filter: blur(100px);
  z-index: 0;
  opacity: 0.15;
  background-color: var(--abrp-green);
}

.services-abrp__halo--1 {
  width: 600px;
  height: 600px;
  top: -200px;
  right: -200px;
}

.services-abrp__halo--2 {
  width: 400px;
  height: 400px;
  bottom: 10%;
  left: -100px;
}

.services-abrp__container {
  position: relative;
  z-index: 2;
  max-width: 1200px;
  margin: 0 auto;
}

/* En-tête de la section */
.services-abrp__header {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 4rem;
  text-align: center;
}

.services-abrp__title-wrapper {
  margin-bottom: 2rem;
}

.services-abrp__title {
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  color: var(--abrp-white);
  line-height: 1.2;
  margin-bottom: 1rem;
}

.services-abrp__highlight {
  color: var(--abrp-green);
}

.services-abrp__subtitle {
  font-size: 1.125rem;
  color: var(--abrp-light);
  opacity: 0.8;
  max-width: 700px;
  margin: 0 auto;
  line-height: 1.6;
}

/* Système d'onglets (Tabs) */
.services-abrp__tabs-container {
  display: flex;
  justify-content: center;
  width: 100%;
}

.services-abrp__tabs {
  display: inline-flex;
  background: rgba(255, 255, 255, 0.05);
  padding: 0.5rem;
  border-radius: 50px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(10px);
}

.services-abrp__tab {
  background: transparent;
  border: none;
  padding: 0.75rem 2rem;
  border-radius: 40px;
  color: var(--abrp-white);
  font-weight: 600;
  font-size: 1rem;
  cursor: pointer;
  transition: all 0.3s ease;
  font-family: inherit;
  opacity: 0.7;
}

.services-abrp__tab:hover {
  opacity: 1;
}

.services-abrp__tab--active {
  background-color: var(--abrp-green);
  color: #181818;
  opacity: 1;
  box-shadow: 0 4px 15px rgba(164, 216, 169, 0.2);
}

/* Contenu des onglets */
.services-abrp__content {
  display: none;
  animation: fadeIn 0.5s ease;
}

.services-abrp__content--active {
  display: block;
}

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

/* Grille des cartes services */
.services-abrp__grid {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 1.5rem;
  margin-bottom: 3rem;
}

@media (min-width: 640px) {
  .services-abrp__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .services-abrp__grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Carte service individuelle */
.service-card-classic {
  position: relative;
  background: var(--abrp-dark-sec);
  border-radius: 20px;
  padding: 1.5rem;
  padding-top: 180px; 
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.05);
  transition: transform 0.3s ease, border-color 0.3s ease;
}

.service-card-classic:hover {
  transform: translateY(-5px);
  border-color: rgba(164, 216, 169, 0.3);
}

.service-card-classic__image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 160px;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.service-card-classic:hover .service-card-classic__image {
  transform: scale(1.05);
}

/* Icône superposée */
.service-card-classic__icon {
  position: absolute;
  top: 135px; 
  left: 1.5rem;
  width: 50px;
  height: 50px;
  background-color: var(--abrp-green);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #181818;
  z-index: 2;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}

.service-card-classic__title {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--abrp-white);
  margin-top: 1rem;
  margin-bottom: 0.5rem;
}

.service-card-classic__desc {
  font-size: 0.9rem;
  color: var(--abrp-light);
  opacity: 0.8;
  line-height: 1.5;
  margin: 0;
}

/* Bouton CTA Global */
.services-abrp__cta-wrapper {
  display: flex;
  justify-content: center;
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.services-abrp__btn-global {
  display: inline-flex;
  align-items: center;
  background-color: transparent;
  color: var(--abrp-green);
  border: 2px solid var(--abrp-green);
  padding: 1rem 2.5rem;
  border-radius: 50px;
  font-weight: 600;
  font-size: 1.125rem;
  text-decoration: none;
  transition: all 0.3s ease;
}

.services-abrp__btn-global:hover {
  background-color: var(--abrp-green);
  color: #181818;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(164, 216, 169, 0.3);
}

/* Responsive ajustements */
@media (max-width: 768px) {
  .services-abrp {
    padding: 4rem 1.5rem;
  }
  
  .services-abrp__tabs {
    flex-direction: column;
    width: 100%;
    border-radius: 20px;
  }
  
  .services-abrp__tab {
    width: 100%;
    text-align: center;
  }
}

/* =========================================
   1. SECTION RÉASSURANCE
   ========================================= */
.reassurance-abrp {
  background-color: var(--abrp-light);
  padding: 6rem 2rem;
  font-family: 'Montserrat', sans-serif;
  color: #181818;
  position: relative;
  overflow: hidden;
}

.reassurance-abrp__container {
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

.reassurance-abrp__header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
  margin-bottom: 5rem;
}

.reassurance-abrp__title {
  font-size: clamp(2rem, 3.5vw, 3rem);
  font-weight: 700;
  line-height: 1.2;
  color: #181818;
  margin-bottom: 1.5rem;
}

.reassurance-abrp__highlight {
  color: var(--abrp-green);
}

.reassurance-abrp__subtitle {
  font-size: 1.125rem;
  line-height: 1.7;
  color: var(--abrp-dark-sec);
  margin-bottom: 2.5rem;
  opacity: 0.9;
}

.reassurance-abrp__btn {
  display: inline-block;
  background-color: #181818;
  color: var(--abrp-white);
  padding: 1rem 2.5rem;
  border-radius: 50px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s ease;
  box-shadow: 0 4px 15px rgba(24, 24, 24, 0.2);
}

.reassurance-abrp__btn:hover {
  background-color: var(--abrp-green);
  color: #181818;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(164, 216, 169, 0.4);
}

.reassurance-abrp__visual {
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(24, 24, 24, 0.08);
}

.reassurance-abrp__img {
  width: 100%;
  height: auto;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}

.reassurance-abrp__visual:hover .reassurance-abrp__img {
  transform: scale(1.03);
}

.reassurance-abrp__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.reassurance-card {
  background: var(--abrp-white);
  padding: 2.5rem 2rem;
  border-radius: 20px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  border: 1px solid transparent;
}

.reassurance-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
  border-color: rgba(164, 216, 169, 0.3);
}

.reassurance-card__icon {
  width: 56px;
  height: 56px;
  background-color: rgba(164, 216, 169, 0.2);
  color: #181818;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.5rem;
}

.reassurance-card__title {
  font-size: 1.125rem;
  font-weight: 700;
  color: #181818;
  margin-bottom: 0.75rem;
}

.reassurance-card__desc {
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--abrp-dark-sec);
  opacity: 0.85;
  margin: 0;
}

/* Responsive Réassurance */
@media (max-width: 992px) {
  .reassurance-abrp__header {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .reassurance-abrp__visual {
    order: -1;
  }
  .reassurance-abrp__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .reassurance-abrp {
    padding: 4rem 1.5rem;
  }
  .reassurance-abrp__title {
    font-size: 2.25rem;
  }
  .reassurance-abrp__grid {
    grid-template-columns: 1fr;
  }
}

/* =========================================
   BLOC 1 : RÉASSURANCE
   ========================================= */
.reassurance-abrp {
  background-color: var(--abrp-light);
  padding: 6rem 2rem;
  font-family: 'Montserrat', sans-serif;
  color: #181818;
  position: relative;
  overflow: hidden;
}

.reassurance-abrp__container {
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

.reassurance-abrp__header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
  margin-bottom: 5rem;
}

.reassurance-abrp__title {
  font-size: clamp(2rem, 3.5vw, 3rem);
  font-weight: 700;
  line-height: 1.2;
  color: #181818;
  margin-bottom: 1.5rem;
}

.reassurance-abrp__highlight {
  color: var(--abrp-green);
}

.reassurance-abrp__subtitle {
  font-size: 1.125rem;
  line-height: 1.7;
  color: var(--abrp-dark-sec);
  margin-bottom: 2.5rem;
  opacity: 0.9;
}

.reassurance-abrp__btn {
  display: inline-block;
  background-color: #181818;
  color: var(--abrp-white);
  padding: 1rem 2.5rem;
  border-radius: 50px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s ease;
  box-shadow: 0 4px 15px rgba(24, 24, 24, 0.2);
}

.reassurance-abrp__btn:hover {
  background-color: var(--abrp-green);
  color: #181818;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(164, 216, 169, 0.4);
}

.reassurance-abrp__visual {
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(24, 24, 24, 0.08);
}

.reassurance-abrp__img {
  width: 100%;
  height: auto;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}

.reassurance-abrp__visual:hover .reassurance-abrp__img {
  transform: scale(1.03);
}

.reassurance-abrp__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.reassurance-card {
  background: var(--abrp-white);
  padding: 2.5rem 2rem;
  border-radius: 20px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  border: 1px solid transparent;
}

.reassurance-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
  border-color: rgba(164, 216, 169, 0.3);
}

.reassurance-card__icon {
  width: 56px;
  height: 56px;
  background-color: rgba(164, 216, 169, 0.2);
  color: #181818;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.5rem;
}

.reassurance-card__title {
  font-size: 1.125rem;
  font-weight: 700;
  color: #181818;
  margin-bottom: 0.75rem;
}

.reassurance-card__desc {
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--abrp-dark-sec);
  opacity: 0.85;
  margin: 0;
}

@media (max-width: 992px) {
  .reassurance-abrp__header {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .reassurance-abrp__visual {
    order: -1;
  }
  .reassurance-abrp__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .reassurance-abrp {
    padding: 4rem 1.5rem;
  }
  .reassurance-abrp__title {
    font-size: 2.25rem;
  }
  .reassurance-abrp__grid {
    grid-template-columns: 1fr;
  }
}

/* =========================================
   SECTION VIDEOS (Bento Asymetrique Natif - DARK MODE)
   ========================================= */
.abrp-video-showcase {
  position: relative;
  padding: 8rem 2rem;
  background-color: #181818; /* Dark Mode */
  color: var(--abrp-white);
  overflow: hidden;
  font-family: 'Montserrat', sans-serif;
}

.abrp-vs-actions {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}

/* Halos verts pour la profondeur */
.abrp-halo-deep {
  position: absolute;
  border-radius: 50%;
  filter: blur(120px);
  z-index: 0;
  opacity: 0.15;
  background-color: var(--abrp-green);
}

.abrp-halo--left {
  width: 600px;
  height: 600px;
  top: -100px;
  left: -200px;
}

.abrp-halo--right {
  width: 500px;
  height: 500px;
  bottom: -150px;
  right: -100px;
}

.abrp-vs-container {
  max-width: 1300px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 60px;
  position: relative;
  z-index: 10;
}

@media (min-width: 1024px) {
  .abrp-vs-container {
    grid-template-columns: 1fr 1.6fr;
    align-items: center;
  }
}

/* --- Colonne Texte --- */
.abrp-vs-text-col {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.abrp-vs-title {
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  font-weight: 700;
  line-height: 1.1;
  margin: 0 0 1.5rem 0;
  color: var(--abrp-white); /* Dark Mode */
}

.abrp-green-text {
  color: var(--abrp-green);
}

.abrp-vs-desc {
  font-size: 1.125rem;
  line-height: 1.7;
  color: var(--abrp-light); /* Dark Mode */
  margin: 0 0 2.5rem 0;
  max-width: 500px;
  opacity: 0.8;
}

/* Actions & Boutons */
.abrp-btn {
  display: inline-block;
  padding: 1rem 2.5rem;
  border-radius: 50px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s ease;
  font-size: 1rem;
}

.abrp-btn-primary {
  background-color: var(--abrp-green); /* Inversion Dark Mode */
  color: #181818;
  box-shadow: 0 4px 15px rgba(164, 216, 169, 0.2);
}

.abrp-btn-primary:hover {
  background-color: var(--abrp-white);
  color: #181818;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(255, 255, 255, 0.2);
}

/* --- Grille Videos (Asymetrique) --- */
.abrp-vs-grid-col {
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
}

@media (min-width: 768px) {
  .abrp-vs-grid-col {
    grid-template-columns: 1fr 1.2fr;
  }
}

.abrp-vs-landscape-stack {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

/* Cartes Video */
.abrp-vs-card {
  background: #242424; /* Dark Mode */
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.4);
  transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
  border: 1px solid rgba(255, 255, 255, 0.05); /* Ligne subtile claire */
  display: flex;
  flex-direction: column;
}

.abrp-vs-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.6);
  border-color: rgba(164, 216, 169, 0.3);
}

/* Ratios des conteneurs video */
.abrp-video-wrapper {
  position: relative;
  width: 100%;
  overflow: hidden;
  border-radius: 24px 24px 0 0;
  background-color: #000000;
}

.portrait-ratio {
  padding-bottom: 177.77%;
}

.landscape-ratio {
  padding-bottom: 56.25%;
}

/* Parametrage de la balise native */
.abrp-native-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
}

/* Legendes sous les videos */
.abrp-vs-caption {
  padding: 1.5rem;
  background-color: transparent;
  flex-grow: 1;
}

.abrp-vs-caption h3 {
  margin: 0 0 5px 0;
  font-size: 1.15rem;
  color: var(--abrp-white); /* Dark Mode */
  font-weight: 700;
}

.abrp-vs-caption p {
  margin: 0;
  font-size: 0.95rem;
  color: var(--abrp-light); /* Dark Mode */
  opacity: 0.7;
}

/* =========================================
   SECTION MUR D'AVIS GOOGLE (LIGHT MODE)
   ========================================= */
.abrp-reviews-section {
  position: relative;
  background-color: var(--abrp-light); /* Fond clair du Light Mode */
  padding: 4rem 2rem;
  overflow: hidden;
  font-family: 'Montserrat', sans-serif;
}

/* Halo vert pour la profondeur au niveau du mur */
.abrp-halo--reviews {
  position: absolute;
  width: 800px;
  height: 800px;
  top: 50%;
  right: -10%;
  transform: translateY(-50%);
  border-radius: 50%;
  background-color: var(--abrp-green);
  filter: blur(150px);
  opacity: 0.15;
  z-index: 0;
  pointer-events: none;
}

.abrp-reviews-container {
  max-width: 1300px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

.abrp-reviews-split {
  display: grid;
  grid-template-columns: 1fr 1.5fr; /* Donne plus d'espace au mur d'avis */
  gap: 4rem;
  align-items: center;
}

/* --- Colonne Texte Gauche --- */
.abrp-reviews-text-col {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.abrp-reviews-title {
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  font-weight: 700;
  line-height: 1.1;
  margin: 0 0 1.5rem 0;
  color: #181818;
}

.abrp-reviews-desc {
  font-size: 1.125rem;
  line-height: 1.7;
  color: var(--abrp-dark-sec);
  margin: 0 0 2.5rem 0;
  opacity: 0.9;
}

/* Bloc Google Premium */
.abrp-google-box {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  background: var(--abrp-white);
  border: 1px solid rgba(164, 216, 169, 0.4); /* Bordure verte subtile */
  padding: 1.5rem;
  border-radius: 1rem;
  margin-bottom: 2.5rem;
  box-shadow: 0 10px 30px rgba(24, 24, 24, 0.05);
}

.abrp-google-icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.abrp-google-info {
  display: flex;
  flex-direction: column;
}

.abrp-google-score {
  font-size: 1.5rem;
  font-weight: 800;
  color: #181818;
  line-height: 1;
}

.abrp-stars {
  color: #FABB05; /* Jaune Google */
  font-size: 1.1rem;
  letter-spacing: 2px;
  margin: 0.25rem 0;
}

/* --- Mur d'avis en CSS Pur (Marquee) --- */
.abrp-reviews-wall {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  height: 600px;
  position: relative;
  /* Effet de fondu en haut et en bas adapté au fond clair */
  -webkit-mask-image: linear-gradient(to bottom, transparent, black 5%, black 95%, transparent);
  mask-image: linear-gradient(to bottom, transparent, black 5%, black 95%, transparent);
}

.abrp-marquee-col {
  display: flex;
  overflow: hidden;
}

.abrp-marquee-track {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  width: 100%;
}

/* Animations de défilement */
.abrp-scroll-up .abrp-marquee-track {
  animation: scrollVerticalUp 45s linear infinite;
}

.abrp-scroll-down .abrp-marquee-track {
  animation: scrollVerticalDown 45s linear infinite;
  transform: translateY(-50%);
}

/* Pause au survol */
.abrp-reviews-wall:hover .abrp-marquee-track {
  animation-play-state: paused;
}

/* Design des Cartes Avis (Light Mode) */
.abrp-review-card {
  background: var(--abrp-white);
  border: 1px solid rgba(0, 0, 0, 0.05);
  border-radius: 1.25rem;
  padding: 1.5rem;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.04);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.abrp-review-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.08);
}

.abrp-review-head {
  display: flex;
  flex-direction: column;
  margin-bottom: 0.75rem;
}

.abrp-review-name {
  color: #181818;
  font-weight: 700;
  font-size: 1rem;
}

.abrp-review-comment {
  color: var(--abrp-dark-sec);
  font-size: 0.95rem;
  line-height: 1.6;
}

/* --- Animations Keyframes --- */
@keyframes scrollVerticalUp {
  0% { transform: translateY(0); }
  100% { transform: translateY(-50%); } 
}

@keyframes scrollVerticalDown {
  0% { transform: translateY(-50%); }
  100% { transform: translateY(0); }
}

/* --- Mode Responsive --- */
@media (max-width: 1024px) {
  .abrp-reviews-split {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .abrp-reviews-text-col {
    align-items: center;
    text-align: center;
  }
  .abrp-reviews-desc {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
  }
  .abrp-reviews-wall {
    height: 450px;
    grid-template-columns: repeat(2, 1fr); /* 2 colonnes sur tablette */
  }
  .abrp-marquee-col:nth-child(3) {
    display: none; /* Cache la 3e colonne */
  }
}

@media (max-width: 640px) {
  .abrp-reviews-wall {
    grid-template-columns: 1fr; /* 1 colonne sur mobile */
  }
  .abrp-marquee-col:nth-child(2) {
    display: none; /* Cache la 2e colonne */
  }
  .abrp-google-box {
    flex-direction: column;
    gap: 1rem;
    text-align: center;
  }
}

/* Accélération du défilement x2 sur mobile */
@media (max-width: 768px) {
  .abrp-scroll-up .abrp-marquee-track,
  .abrp-scroll-down .abrp-marquee-track {
    animation-duration: 20s;
  }
}

/* ==========================================================================
   SECTION CTA FINAL : DISPOSITION OVERLAP (MODE CLAIR)
   ========================================================================== */

.abrp-cta-overlap {
  background-color: #FAFAFA; /* Gris extrêmement clair pour faire ressortir la carte blanche */
  padding: 8rem 2rem;
  position: relative;
  overflow: hidden;
  font-family: 'Montserrat', sans-serif;
}

/* Le halo lumineux décentré sur la droite */
.abrp-bg-halo-green-right {
  position: absolute;
  top: 20%;
  right: -10%;
  width: 800px;
  height: 800px;
  background: radial-gradient(circle, rgba(164, 216, 169, 0.2) 0%, transparent 65%);
  z-index: 0;
  pointer-events: none;
}

.abrp-container {
  position: relative;
  max-width: 1300px;
  margin: 0 auto;
  z-index: 1;
}

/* --- La Grille Asymétrique --- */
.abrp-overlap-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  align-items: center;
}
/* La carte texte (flotte au premier plan) */
.abrp-text-card {
  grid-column: 1 / 8;
  grid-row: 1;
  z-index: 2; /* Passe au-dessus de l'image */
  
  /* Modification Glassmorphism */
  background: rgba(255, 255, 255, 0.85); /* Légère transparence obligatoire pour le flou */
  backdrop-filter: blur(12px); /* L'effet de flou demandé */
  -webkit-backdrop-filter: blur(12px); /* Support pour Safari */
  
  padding: 4rem 7rem 4rem 4rem;
  border-radius: 2rem;
  box-shadow: 0 40px 80px rgba(0, 0, 0, 0.08), 0 10px 20px rgba(164, 216, 169, 0.05);
  border: 1px solid rgba(164, 216, 169, 0.2);
}

/* L'image (en arrière-plan avec chevauchement) */
.abrp-image-card {
  grid-column: 6 / 13;
  grid-row: 1;
  z-index: 1;
  height: 650px; /* Force une belle hauteur d'image */
  border-radius: 2rem;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(0,0,0,0.1);
}

.abrp-image-card picture {
  display: block;
  width: 100%;
  height: 100%;
}

.abrp-img-overlap {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Animation luxueuse de l'image au survol de la section */
.abrp-overlap-grid:hover .abrp-img-overlap {
  transform: scale(1.04);
}

/* --- Contenu & Typographies --- */
.abrp-title {
  font-size: clamp(2.2rem, 4vw, 3rem);
  line-height: 1.1;
  font-weight: 700;
  color: #181818;
  margin-bottom: 1.5rem;
}

.abrp-green-text {
  color: var(--abrp-green);
}

.abrp-subtitle {
  font-size: 1.125rem;
  line-height: 1.6;
  color: var(--abrp-dark-sec);
  margin-bottom: 2.5rem;
  opacity: 0.9;
}

/* --- Liste à puces des avantages --- */
.abrp-list {
  list-style: none;
  padding: 0;
  margin: 0 0 3.5rem 0;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.abrp-list li {
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;
}

.abrp-list-icon {
  width: 44px;
  height: 44px;
  background: rgba(164, 216, 169, 0.15);
  color: #181818;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 10px;
  margin-top: 2px;
}

.abrp-list-icon svg {
  width: 100%;
  height: 100%;
}

.abrp-list-text {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.abrp-list-text strong {
  color: #181818;
  font-size: 1.15rem;
  font-weight: 700;
}

.abrp-list-text span {
  color: var(--abrp-dark-sec);
  font-size: 0.95rem;
  line-height: 1.5;
  opacity: 0.85;
}

/* Bouton */
.abrp-btn-large {
  padding: 1.25rem 3rem;
  font-size: 1.125rem;
  border-radius: 50px;
}

/* --- Responsive Design --- */
@media (max-width: 1199px) {
  .abrp-text-card { padding: 3rem; }
}

@media (max-width: 991px) {
  /* Sur tablette et mobile, on annule le chevauchement et on empile classiquement */
  .abrp-overlap-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .abrp-text-card {
    grid-column: 1 / -1;
    grid-row: auto;
  }
  .abrp-image-card {
    grid-column: 1 / -1;
    grid-row: auto;
    height: 450px;
  }
}

@media (max-width: 767px) {
  .abrp-cta-overlap { padding: 5rem 1.5rem; }
  .abrp-text-card { padding: 2rem; }
  /* L'image passe au-dessus du texte sur mobile pour un meilleur flow visuel */
  .abrp-image-card { 
    order: -1; 
    height: 350px; 
  }
}

/* ==========================================================================
   SECTION ZONES D'INTERVENTION (DARK MODE)
   ========================================================================== */

.abrp-locations-wrapper {
  position: relative;
  background-color: #0a0a0a; /* Fond noir profond */
  padding: 8rem 2rem;
  overflow: hidden;
  color: var(--abrp-white);
  font-family: 'Montserrat', sans-serif;
}

/* --- HALOS D'AMBIANCE --- */
.abrp-halo {
  position: absolute;
  width: 600px;
  height: 600px;
  border-radius: 50%;
  filter: blur(140px);
  opacity: 0.25;
  z-index: 0;
  pointer-events: none;
}

.abrp-halo-green-top {
  background-color: var(--abrp-green);
  top: 10%;
  left: -10%;
}

.abrp-halo-white-bottom {
  background-color: #ffffff;
  bottom: -15%;
  right: -10%;
  opacity: 0.08;
}

/* --- EN-TÊTE --- */
.abrp-container-header {
  text-align: center;
  max-width: 900px;
  margin: 0 auto 4rem auto;
  position: relative;
  z-index: 2;
}

.abrp-subtitle {
  font-size: 0.95rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--abrp-green);
  margin-bottom: 1rem;
  display: block;
}

.abrp-main-title {
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  font-weight: 700;
  line-height: 1.1;
  margin-bottom: 1.5rem;
  color: var(--abrp-white);
}

.abrp-gradient {
  background: linear-gradient(135deg, #ffffff 0%, var(--abrp-green) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.abrp-description {
  color: var(--abrp-light);
  font-size: 1.125rem;
  line-height: 1.7;
  max-width: 800px;
  margin: 0 auto;
  opacity: 0.85;
}

/* --- GRILLE ET CARTES GLASSMORPHISM --- */
.abrp-grid {
  max-width: 1300px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
  gap: 2.5rem;
  position: relative;
  z-index: 2;
}

.abrp-glass-card {
  background: rgba(255, 255, 255, 0.03);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 2rem;
  padding: 2.5rem;
  display: flex;
  flex-direction: column;
  gap: 2rem;
  transition: all 0.4s cubic-bezier(0.23, 1, 0.32, 1);
}

@media (min-width: 992px) {
  .abrp-glass-card { 
    flex-direction: row; 
    align-items: stretch;
  }
  .abrp-card-col { 
    width: 50%; 
    display: flex;
    flex-direction: column;
  }
}

.abrp-glass-card:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(164, 216, 169, 0.3); /* Bordure verte au survol */
  transform: translateY(-8px);
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.6);
}

/* --- BADGES & INFOS --- */
.abrp-info-col {
  justify-content: space-between;
}

.abrp-badge-container {
  margin-bottom: 1.5rem;
}

.abrp-badge {
  font-size: 0.75rem;
  font-weight: 700;
  padding: 6px 14px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 50px;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--abrp-white);
}

.abrp-status {
  display: flex;
  align-items: center;
  margin-bottom: 1rem;
}

.abrp-glow-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  margin-right: 10px;
  animation: abrpPulse 2s infinite;
}

.abrp-glow-green {
  background-color: var(--abrp-green);
  box-shadow: 0 0 12px rgba(164, 216, 169, 0.8);
}

.abrp-status-text {
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.abrp-text-green {
  color: var(--abrp-green);
}

.abrp-city-title {
  font-size: 1.7rem;
  font-weight: 700;
  margin: 0 0 1rem 0;
  color: var(--abrp-white);
  line-height: 1.2;
}

.abrp-city-text {
  color: var(--abrp-light);
  font-size: 0.95rem;
  line-height: 1.6;
  margin-bottom: 2rem;
  opacity: 0.8;
}

/* --- CARTE GOOGLE MAPS INTEGREE --- */
.abrp-map-box {
  margin-top: auto;
  height: 250px;
  width: 100%;
  border-radius: 1.5rem;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(0,0,0,0.4);
  position: relative;
  background-color: #111; /* Fond noir pendant chargement */
}

/* Le filtre CSS magique pour passer la carte Google Maps en mode sombre chic */
.abrp-map-iframe {
  width: 100%;
  height: 100%;
  border: 0;
  filter: grayscale(1) invert(0.9) contrast(1.2) opacity(0.7);
  transition: all 0.6s ease;
}

.abrp-glass-card:hover .abrp-map-iframe {
  filter: grayscale(0) invert(0) contrast(1) opacity(1);
}

/* --- BOUTONS --- */
.abrp-btn-maps {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  padding: 1rem;
  border-radius: 50px;
  text-align: center;
  font-weight: 700;
  font-size: 0.9rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  color: var(--abrp-white);
  text-decoration: none;
  transition: all 0.3s ease;
  margin-top: auto;
}

.abrp-btn-maps:hover {
  background: var(--abrp-white);
  color: #181818;
  transform: translateY(-2px);
}

.btn-action-green {
  background: rgba(164, 216, 169, 0.1);
  border-color: rgba(164, 216, 169, 0.3);
  color: var(--abrp-green);
}

.btn-action-green:hover {
  background: var(--abrp-green);
  color: #181818;
  border-color: var(--abrp-green);
  box-shadow: 0 5px 20px rgba(164, 216, 169, 0.4);
}

/* --- ANIMATIONS & RESPONSIVE --- */
@keyframes abrpPulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.5); opacity: 0.5; }
}

@media (max-width: 768px) {
  .abrp-locations-wrapper { padding: 5rem 1.5rem; }
  .abrp-grid { grid-template-columns: 1fr; gap: 2rem; }
  .abrp-glass-card { padding: 2rem; border-radius: 1.5rem; }
  .abrp-main-title { font-size: 2rem; }
  .abrp-map-box { height: 200px; }
}

/* ==========================================================================
   SECTION BLOG (MODE CLAIR)
   ========================================================================== */

.abrp-blog-section {
  position: relative;
  background-color: var(--abrp-light); /* Fond clair du Light Mode */
  padding: 8rem 2rem;
  overflow: hidden;
  font-family: 'Montserrat', sans-serif;
}

/* Halos lumineux verts en fond */
.abrp-blog-halo {
  position: absolute;
  border-radius: 50%;
  filter: blur(120px);
  z-index: 0;
  opacity: 0.15;
  background-color: var(--abrp-green);
  pointer-events: none;
}

.abrp-blog-halo-1 {
  width: 600px;
  height: 600px;
  top: -150px;
  left: -200px;
}

.abrp-blog-halo-2 {
  width: 500px;
  height: 500px;
  bottom: -100px;
  right: -150px;
}

.abrp-blog-container {
  max-width: 1300px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

/* En-tête */
.abrp-blog-header {
  text-align: center;
  max-width: 800px;
  margin: 0 auto 4rem auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.abrp-blog-title {
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  font-weight: 700;
  line-height: 1.1;
  margin: 0 0 1.5rem 0;
  color: #181818;
}

.abrp-green-text {
  color: var(--abrp-green);
}

.abrp-blog-desc {
  font-size: 1.125rem;
  line-height: 1.7;
  color: var(--abrp-dark-sec);
  margin: 0;
  opacity: 0.9;
}

/* Conteneur des articles (Blocksy) */
.abrp-blog-content {
  margin-bottom: 4rem;
  position: relative;
  z-index: 2;
}

/* * NOTE : Si tu as besoin de cibler spécifiquement les cartes d'articles générées 
 * par Blocksy dans ce conteneur pour affiner les ombres en mode clair, 
 * tu peux utiliser un code comme celui-ci :
 */
.abrp-blog-content .ct-grid .entry-card {
  background: var(--abrp-white);
  border: 1px solid rgba(0, 0, 0, 0.05);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04);
  border-radius: 1.5rem;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.abrp-blog-content .ct-grid .entry-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.08);
}

/* Actions & Bouton CTA */
.abrp-blog-actions {
  text-align: center;
  margin-top: 3rem;
  position: relative;
  z-index: 2;
}

.abrp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 2.5rem;
  border-radius: 50px;
  font-weight: 600;
  font-size: 1.05rem;
  text-decoration: none;
  transition: all 0.3s ease;
  cursor: pointer;
}

/* Bouton au contour sombre qui devient vert au survol */
.abrp-btn-outline {
  background-color: transparent;
  color: #181818;
  border: 2px solid #181818;
}

.abrp-btn-outline:hover {
  background-color: var(--abrp-green);
  color: #181818;
  border-color: var(--abrp-green);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(164, 216, 169, 0.4);
}

/* Responsive */
@media (max-width: 768px) {
  .abrp-blog-section {
    padding: 5rem 1.5rem;
  }
}

/* ==========================================================================
   SECTION FAQ (DARK MODE - 2 COLONNES)
   ========================================================================== */

.abrp-faq-section {
  position: relative;
  background-color: #181818;
  padding: 8rem 2rem;
  color: var(--abrp-white);
  font-family: 'Montserrat', sans-serif;
  overflow: hidden;
}

/* Halo vert en arrière-plan */
.abrp-halo--faq {
  position: absolute;
  width: 800px;
  height: 800px;
  top: 30%;
  left: 50%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background-color: var(--abrp-green);
  filter: blur(150px);
  opacity: 0.1;
  z-index: 0;
  pointer-events: none;
}

.abrp-faq-container {
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

/* --- En-tête --- */
.abrp-faq-header {
  text-align: center;
  max-width: 800px;
  margin: 0 auto 4rem auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.abrp-faq-title {
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  font-weight: 700;
  line-height: 1.1;
  margin: 0 0 1.5rem 0;
  color: var(--abrp-white);
}

.abrp-green-text {
  color: var(--abrp-green);
}

.abrp-faq-desc {
  font-size: 1.125rem;
  line-height: 1.7;
  color: var(--abrp-light);
  margin: 0;
  opacity: 0.8;
}

/* --- Grille sur 2 colonnes --- */
.abrp-faq-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}

@media (min-width: 992px) {
  .abrp-faq-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
    align-items: start;
  }
}

.abrp-faq-column {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

/* --- Items FAQ (Accordéon) --- */
.abrp-faq-item {
  background: #242424;
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 1.25rem;
  overflow: hidden;
  transition: background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

.abrp-faq-item:hover {
  border-color: rgba(164, 216, 169, 0.3);
}

.abrp-faq-question {
  width: 100%;
  text-align: left;
  padding: 1.5rem 2rem;
  background: transparent;
  border: none;
  color: var(--abrp-white);
  font-size: 1.1rem;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  transition: color 0.3s ease;
}

.abrp-faq-question:hover {
  color: var(--abrp-green);
}

/* Icône Croix/Moins animée */
.abrp-faq-icon {
  position: relative;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.abrp-faq-icon::before,
.abrp-faq-icon::after {
  content: '';
  position: absolute;
  background-color: currentColor;
  border-radius: 2px;
  transition: transform 0.3s ease;
}

.abrp-faq-icon::before {
  top: 9px;
  left: 0;
  width: 100%;
  height: 2px;
}

.abrp-faq-icon::after {
  top: 0;
  left: 9px;
  width: 2px;
  height: 100%;
}

.abrp-faq-question[aria-expanded="true"] .abrp-faq-icon::after {
  transform: rotate(90deg);
}

.abrp-faq-question[aria-expanded="true"] {
  color: var(--abrp-green);
}

/* Réponse */
.abrp-faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s cubic-bezier(0.23, 1, 0.32, 1);
}

.abrp-faq-answer p {
  padding: 0 2rem 1.5rem 2rem;
  margin: 0;
  color: var(--abrp-light);
  font-size: 0.95rem;
  line-height: 1.6;
  opacity: 0.8;
}

/* ==========================================================================
   FOOTER ABRP (DARK MODE & FULL WIDTH)
   ========================================================================== */

.abrp-footer-dark {
  background-color: #121212;
  color: #ffffff;
  font-family: 'Montserrat', sans-serif;
  position: relative;
  overflow: hidden;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  
  /* Forçage pleine largeur absolue */
  width: 100vw !important;
  max-width: 100vw !important;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}

/* Halo vert d'ambiance */
.abrp-footer-halo {
  position: absolute;
  width: 600px;
  height: 600px;
  bottom: -400px;
  left: -200px;
  background-color: var(--abrp-green, #a4d8a9);
  border-radius: 50%;
  filter: blur(150px);
  opacity: 0.1;
  pointer-events: none;
  z-index: 0;
}

.abrp-footer-container {
  max-width: 1300px;
  margin: 0 auto;
  padding: 6rem 2rem 4rem 2rem;
  position: relative;
  z-index: 1;
}

.abrp-footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 4rem;
}

/* --- Colonne 1 : Marque --- */
.abrp-footer-logo {
  display: block;
  margin-bottom: 1.5rem;
  text-decoration: none;
}

.abrp-footer-logo img {
  max-height: 50px;
  width: auto;
  display: block;
}

.abrp-footer-desc {
  font-size: 0.95rem;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 2rem;
  max-width: 350px;
}

.abrp-footer-socials {
  display: flex;
  gap: 1rem;
}

.abrp-footer-socials a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 50%;
  color: #ffffff;
  transition: all 0.3s ease;
}

.abrp-footer-socials a:hover {
  background: var(--abrp-green, #a4d8a9);
  border-color: var(--abrp-green, #a4d8a9);
  color: #121212;
  transform: translateY(-3px);
}

/* --- Colonnes Liens & Contact --- */
.abrp-footer-heading {
  font-size: 1.1rem;
  font-weight: 700;
  color: #ffffff;
  margin-bottom: 2rem;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.abrp-footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.abrp-footer-links li {
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.95rem;
  line-height: 1.5;
}

.abrp-footer-links a {
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
  transition: color 0.3s ease;
}

.abrp-footer-links a:hover {
  color: var(--abrp-green, #a4d8a9);
}

.abrp-footer-contact-list li strong {
  color: var(--abrp-green, #a4d8a9);
  font-size: 1.1rem;
}

/* --- Barre du bas --- */
.abrp-footer-bottom {
  background-color: #080808;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  padding: 1.5rem 0;
  position: relative;
  z-index: 1;
}

.abrp-footer-bottom-container {
  max-width: 1300px;
  margin: 0 auto;
  padding: 0 2rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
}

.abrp-footer-copyright p,
.abrp-footer-copyright a {
  margin: 0;
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.5);
  text-decoration: none;
}

.abrp-footer-copyright a {
  color: rgba(255, 255, 255, 0.7);
  transition: color 0.3s ease;
}

.abrp-footer-copyright a:hover {
  color: var(--abrp-green, #a4d8a9);
}

.abrp-footer-legals {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.abrp-footer-legals a {
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.5);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  transition: color 0.3s ease;
}

.abrp-footer-legals a:hover {
  color: var(--abrp-green, #a4d8a9);
}

.abrp-separator {
  color: rgba(255, 255, 255, 0.2);
}

/* --- RESPONSIVE --- */
@media (max-width: 1024px) {
  .abrp-footer-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 3rem;
  }
}

@media (max-width: 768px) {
  .abrp-footer-container {
    padding: 4rem 1.5rem 3rem 1.5rem;
  }
  .abrp-footer-grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  .abrp-footer-bottom-container {
    flex-direction: column;
    text-align: center;
    justify-content: center;
  }
  .abrp-footer-legals {
    justify-content: center;
  }
}

/* =========================================
   MISE EN PAGE ET EFFET STICKY (FEATURES)
   ========================================= */

/* On débloque l'effet sticky si le thème le coupe par défaut */
.features-abrp {
  overflow: visible !important;
}

/* --- VERSION ORDINATEUR (CÔTE À CÔTE + STICKY) --- */
@media (min-width: 992px) {
  .features-abrp__container {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important; /* CRUCIAL : permet au texte de continuer de descendre pendant que l'image s'arrête */
    justify-content: space-between;
    gap: 5rem !important;
  }

  .features-abrp__visual {
    width: 45% !important; /* Largeur fixe de l'image */
    flex-shrink: 0; /* Empêche le navigateur d'écraser l'image */
    
    /* Le cœur du Sticky */
    position: -webkit-sticky !important; /* Pour les navigateurs Apple */
    position: sticky !important;
    top: 120px !important; /* Distance avec le haut de l'écran (le menu) */
    z-index: 10;
  }

  .features-abrp__content {
    width: 55% !important; /* Largeur fixe du texte */
  }
}

/* --- VERSION MOBILE / TABLETTE (EMPILÉ) --- */
@media (max-width: 991px) {
  .features-abrp__container {
    display: flex !important;
    flex-direction: column !important;
    gap: 3rem !important;
  }
  
  .features-abrp__visual, 
  .features-abrp__content {
    width: 100% !important; /* Prend toute la largeur sur petit écran */
  }
}

/* =========================================
   HERO ESTIMATION - HALO VERT CLAIR & MOBILE SANS IMAGE
   ========================================= */

.hero-abrp {
  position: relative !important;
  overflow: hidden !important; 
  z-index: 1; 
  background-color: #121212; /* Fond sombre par défaut (essentiel pour le mobile) */
}

/* Création du Halo Vert clair et lumineux */
.hero-abrp::before {
  content: "";
  position: absolute;
  top: -30vh; 
  right: -20vw;
  width: 100vw;
  height: 100vh;
  /* Halo vert clair plus opaque et vibrant */
  background: radial-gradient(circle, rgba(164, 216, 169, 0.35) 0%, rgba(164, 216, 169, 0) 70%);
  filter: blur(80px); 
  z-index: -1; 
  opacity: 1;
  pointer-events: none; 
}

/* Gestion de l'image (PC uniquement) */
.hero-abrp__bg {
  z-index: -2 !important; 
}

.hero-abrp__img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important; 
  object-position: center !important;
}

/* Halo secondaire sur PC pour intensifier la lumière au centre */
@media (min-width: 992px) {
  .hero-abrp__overlay::after {
    content: "";
    position: absolute;
    bottom: 50%;
    left: 30%;
    width: 200vw;
    height: 200vh;
    background: radial-gradient(circle, rgba(164, 216, 169, 0.9) 0%, rgba(164, 216, 169, 0) 70%);
    filter: blur(60px);
    z-index: -1; 
    pointer-events: none;
  }
}

/* --- COMPORTEMENT SUR MOBILE --- */
@media (max-width: 768px) {
  /* On supprime totalement l'image et l'overlay sur mobile */
  .hero-abrp__bg {
    display: none !important;
  }
  
  /* On recentre le halo vert clair pour bien habiller le fond noir du mobile */
  .hero-abrp::before {
    top: -10vh;
    right: -50vw;
    width: 200vw;
    height: 100vh;
    background: radial-gradient(circle, rgba(164, 216, 169, 0.25) 0%, rgba(164, 216, 169, 0) 70%);
  }
}

/* Ajustement des textes Highlight */
.hero-abrp__highlight {
  color: #FFFFFF !important;
  font-weight: 700 !important;
}

/* Style barre floutée - Apple Glass */
.hero-abrp__location {
  background: rgba(255, 255, 255, 0.03) !important; 
  backdrop-filter: blur(12px) !important; 
  -webkit-backdrop-filter: blur(12px) !important;
  border: 1px solid rgba(164, 216, 169, 0.15) !important; /* Contour vert clair */
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2), inset 0 0 10px rgba(164, 216, 169, 0.08) !important;
}

/* =========================================
   BANDEAU EXPERTISE (4 COLONNES DARK)
   ========================================= */

.expertise-abrp {
  background-color: #121212; /* Fond très sombre pour le contraste */
  padding: 80px 20px;
  border-top: 1px solid rgba(164, 216, 169, 0.1);
  border-bottom: 1px solid rgba(164, 216, 169, 0.1);
  font-family: 'Montserrat', sans-serif;
}

.expertise-abrp__container {
  max-width: 1200px;
  margin: 0 auto;
}

.expertise-abrp__header {
  text-align: center;
  margin-bottom: 60px;
}

.expertise-abrp__title {
  color: #FFFFFF;
  font-size: clamp(2rem, 4vw, 2.8rem);
  font-weight: 700;
  margin-bottom: 15px;
}

.expertise-abrp__subtitle {
  color: var(--abrp-green, #a4d8a9);
  font-size: 1.15rem;
  font-weight: 500;
  max-width: 700px;
  margin: 0 auto;
}

/* Grille 4 colonnes */
.expertise-abrp__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
}

/* Style de chaque carte/colonne */
.expertise-abrp__col {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 16px;
  padding: 30px 25px;
  transition: transform 0.3s ease, background 0.3s ease, border-color 0.3s ease;
}

.expertise-abrp__col:hover {
  transform: translateY(-5px);
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(164, 216, 169, 0.3);
}

.expertise-abrp__icon {
  color: var(--abrp-green, #a4d8a9);
  margin-bottom: 20px;
  display: inline-flex;
  padding: 12px;
  background: rgba(164, 216, 169, 0.1);
  border-radius: 12px;
}

.expertise-abrp__col-title {
  color: #FFFFFF;
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 20px;
  padding-bottom: 15px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

/* Liste des métiers */
.expertise-abrp__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.expertise-abrp__list li {
  position: relative;
  color: #d1d5db;
  font-size: 0.95rem;
  line-height: 1.5;
  margin-bottom: 15px;
  padding-left: 18px; /* Espace pour la puce */
}

.expertise-abrp__list li:last-child {
  margin-bottom: 0;
}

/* Puce verte personnalisée */
.expertise-abrp__list li::before {
  content: "•";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--abrp-green, #a4d8a9);
  font-size: 1.2rem;
  line-height: 1.3;
}

.expertise-abrp__list strong {
  color: #FFFFFF;
  font-weight: 600;
}

/* --- RESPONSIVE --- */

/* Tablette : on passe à 2 colonnes */
@media (max-width: 1024px) {
  .expertise-abrp__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Mobile : on passe à 1 colonne */
@media (max-width: 768px) {
  .expertise-abrp__grid {
    grid-template-columns: 1fr;
  }
  .expertise-abrp {
    padding: 60px 15px;
  }
}

/* --- CSS GUIDE PRIX ABRP (Basé sur le modèle imposé) --- */

:root {
  --abrp-green: #a4d8a9;
  --abrp-dark: #181818;
  --abrp-dark-sec: #21292f;
  --abrp-light: #F3F4F6;
  --abrp-white: #FFFFFF;
}

/* 1. CONTENEUR PRINCIPAL */
.glb-box {
    padding: 60px 50px;
    max-width: 900px;
    margin: 40px auto;
    border-radius: 24px;
    width: 100%;
    box-sizing: border-box;
    background: var(--abrp-white); 
    box-shadow: 0 10px 40px rgba(0,0,0,0.08); 
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; 
    color: var(--abrp-dark-sec); 
    line-height: 1.6; 
    border: 1px solid #e2e8f0;
}

/* 6. MOBILE RESPONSIVE */
@media (max-width: 768px) {
    .glb-box { padding: 30px 15px; border-radius: 0; box-shadow: none; border: none; margin: 0; }
    .glb-title-main { font-size: 2rem !important; line-height: 1.2 !important; }
}

/* ============================================================
   PAGE PILIER : TRAVAUX DE RÉNOVATION INTÉRIEURE (ABRP)
   ============================================================ */

:root {
  --abrp-green: #a4d8a9;
  --abrp-dark: #181818;
  --abrp-dark-sec: #21292f;
  --abrp-light: #F3F4F6;
  --abrp-white: #FFFFFF;
}

/* --- HERO RÉNOVATION --- */
.hero-reno { 
    position: relative; 
    width: 100%;
    min-height: 100vh; 
    display: flex; 
    flex-direction: column; 
    justify-content: center; 
    background: var(--abrp-dark); 
    overflow: hidden; 
    padding-top: 6rem; 
    padding-bottom: 2rem; 
    font-family: 'Montserrat', sans-serif;
}

@media (min-width: 1024px) { 
    .hero-reno { padding-top: 8rem; padding-bottom: 8rem; } 
}

.hero-reno__bg { 
    position: absolute; 
    top: 0; left: 0; right: 0; bottom: 0; 
    z-index: 0; 
}

.hero-reno__picture, .hero-reno__picture img { 
    display: block; 
    width: 100%; 
    height: 100%; 
    object-fit: cover; 
    object-position: center right; 
}

.hero-reno__overlay { 
    position: absolute; 
    top: 0; left: 0; right: 0; bottom: 0; 
    z-index: 1;
    background: linear-gradient(90deg, var(--abrp-dark) 0%, rgba(24,24,24,0.9) 60%, rgba(24,24,24,0.4) 100%);
}

@media (min-width: 1024px) {
    .hero-reno__overlay {
        background: linear-gradient(90deg, var(--abrp-dark) 0%, var(--abrp-dark) 10%, rgba(24,24,24,0.8) 60%, transparent 100%);
    }
}

.hero-reno__container {
    position: relative;
    z-index: 10;
    max-width: 1300px;
    margin: 0 auto;
    width: 100%;
    padding: 0 1.5rem;
}

/* --- GRILLE HERO --- */
.hero-reno__grid {
    display: flex;
    flex-direction: column;
    gap: 3rem;
}

@media (min-width: 1024px) {
    .hero-reno__grid {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 2rem;
    }
}

/* --- COLONNE GAUCHE (TEXTE) --- */
.hero-reno__content { 
    display: flex; 
    flex-direction: column; 
    align-items: flex-start; 
    text-align: left; 
    gap: 1.25rem; 
    flex: 1;
    max-width: 650px; 
}

.hero-reno__badge { 
    display: inline-flex; 
    align-items: center; 
    gap: 0.75rem; 
    padding: 0.4rem 1rem; 
    border-radius: 9999px; 
    background: rgba(255,255,255,0.05); 
    border: 1px solid rgba(255,255,255,0.1); 
    backdrop-filter: blur(12px); 
    font-weight: 700; 
    text-transform: uppercase; 
    letter-spacing: 0.2em; 
    color: var(--abrp-green); 
    font-size: 0.65rem; 
}

.hero-reno__title { 
    font-size: 2rem; 
    color: var(--abrp-white); 
    font-weight: 800; 
    line-height: 1.1; 
    margin: 0; 
}
@media (min-width: 768px) { .hero-reno__title { font-size: 2.5rem; } }
@media (min-width: 1024px) { .hero-reno__title { font-size: 3.5rem; } }

.hero-reno__location { 
    display: inline-flex; 
    align-items: center; 
    gap: 0.5rem; 
    padding: 0.7rem 1rem; 
    border-radius: 1rem; 
    background: rgba(0,0,0,0.4); 
    border: 1px solid rgba(255,255,255,0.05); 
    backdrop-filter: blur(5px); 
}

.hero-reno__location-text { 
    font-size: 0.85rem; 
    color: var(--abrp-white); 
    font-weight: 700; 
    text-transform: uppercase; 
    letter-spacing: 0.1em; 
    margin: 0;
}
@media (min-width: 1024px) { .hero-reno__location-text { font-size: 1rem; } }

.hero-reno__desc { 
    font-size: 1rem; 
    color: #e5e7eb; 
    line-height: 1.6; 
    margin: 0; 
}
@media (min-width: 1024px) { .hero-reno__desc { font-size: 1.1rem; } }

/* --- BOUTON ACTION --- */
.hero-reno__btn { 
    display: inline-flex; 
    align-items: center; 
    justify-content: center; 
    gap: 0.75rem; 
    padding: 1rem 1.5rem; 
    border-radius: 50px; 
    font-weight: 700; 
    text-transform: uppercase; 
    letter-spacing: 0.05em; 
    transition: all 0.3s ease; 
    text-decoration: none; 
    background: var(--abrp-green); 
    color: var(--abrp-dark); 
    box-shadow: 0 10px 25px rgba(164, 216, 169, 0.2);
    font-size: 0.85rem;
}
.hero-reno__btn:hover { 
    background: var(--abrp-white); 
    transform: translateY(-2px);
}

/* --- COLONNE DROITE (STATS) --- */
.hero-reno__stats-side {
    flex: 0 0 auto;
    width: 100%;
    max-width: 380px;
    background: rgba(0,0,0,0.2); 
    border: 1px solid rgba(255,255,255,0.05); 
    backdrop-filter: blur(2px); 
    border-radius: 1.5rem; 
    padding: 2rem; 
    display: flex; 
    flex-direction: column; 
    gap: 1.5rem; 
    margin: 0 auto;
    color: var(--abrp-white);
}

@media (min-width: 1024px) { .hero-reno__stats-side { margin: 0; } }

.hero-reno__stat { 
    text-align: center; 
    display: flex; 
    flex-direction: column; 
    gap: 0.25rem; 
    padding-bottom: 1.5rem;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}
.hero-reno__stat:last-child { border-bottom: none; padding-bottom: 0; }

.hero-reno__stat-num { 
    font-size: 2.2rem; 
    font-weight: 800; 
    color: var(--abrp-green);
}
.hero-reno__stat-label { 
    font-weight: 600; 
    text-transform: uppercase; 
    letter-spacing: 0.05em; 
    font-size: 0.75rem; 
}

/* ============================================================
   TIMELINE PROTOCOLE ABRP (DARK THEME)
   ============================================================ */

.abrp-timeline-section {
  background-color: var(--abrp-dark);
  padding: 80px 20px;
  color: var(--abrp-white);
  overflow: hidden;
}

.abrp-timeline-container {
  max-width: 1200px;
  margin: 0 auto;
}

.abrp-timeline-header {
  text-align: center;
  margin-bottom: 60px;
}

.abrp-timeline-title {
  font-size: 2.2rem;
  font-weight: 800;
  line-height: 1.2;
  margin-bottom: 20px;
  color: var(--abrp-white);
}

.abrp-timeline-subtitle {
  font-size: 1.1rem;
  color: #9ca3af;
  max-width: 700px;
  margin: 0 auto;
  line-height: 1.6;
}

.abrp-timeline-wrapper {
  position: relative;
  padding: 40px 0;
}

/* Ligne centrale (Fond) */
.abrp-timeline-line {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 4px;
  background-color: var(--abrp-dark-sec);
  left: 20px; /* Sur mobile : à gauche */
  border-radius: 4px;
}

/* Ligne de progression (Animée en JS) */
.abrp-timeline-progress {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  background-color: var(--abrp-green);
  height: 0%; /* JS va modifier cette valeur */
  border-radius: 4px;
}

.abrp-timeline-inner {
  position: relative;
  z-index: 2;
}

.abrp-step {
  position: relative;
  margin-bottom: 50px;
  padding-left: 60px; /* Sur mobile : on décale le texte à droite */
  width: 100%;
}
.abrp-step:last-child {
  margin-bottom: 0;
}

/* Bulle Chiffre */
.abrp-step-indicator {
  position: absolute;
  left: 0;
  top: 0;
  width: 44px;
  height: 44px;
  background-color: var(--abrp-dark-sec);
  border: 3px solid var(--abrp-dark);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 1.2rem;
  color: var(--abrp-green);
  z-index: 3;
  transition: all 0.4s ease;
}

/* Contenu de la carte */
.abrp-step-content {
  background: var(--abrp-dark-sec);
  padding: 30px;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,0.05);
  box-shadow: 0 10px 30px rgba(0,0,0,0.3);
}

.abrp-step-title {
  color: var(--abrp-white);
  font-size: 1.3rem;
  font-weight: 800;
  margin-top: 0;
  margin-bottom: 15px;
}

.abrp-step-desc {
  color: #d1d5db;
  line-height: 1.6;
  margin: 0;
  font-size: 0.95rem;
}

/* Animations d'apparition */
.abrp-fade-scroll {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.abrp-fade-scroll.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.abrp-step.is-visible .abrp-step-indicator {
  background-color: var(--abrp-green);
  color: var(--abrp-dark);
  box-shadow: 0 0 15px rgba(164, 216, 169, 0.5);
}

/* ====== RESPONSIVE DESKTOP (Ligne au centre) ====== */
@media (min-width: 768px) {
  .abrp-timeline-line {
    left: 50%;
    transform: translateX(-50%);
  }

  .abrp-step {
    width: 50%;
    margin-bottom: 30px;
    padding-left: 0;
  }

  .abrp-step-left {
    padding-right: 50px;
    left: 0;
  }
  .abrp-step-left .abrp-step-indicator {
    left: auto;
    right: -22px; /* Centre exact */
  }

  .abrp-step-right {
    padding-left: 50px;
    left: 50%;
  }
  .abrp-step-right .abrp-step-indicator {
    left: -22px; /* Centre exact */
  }
}

/* ============================================================
   FINAL CTA (ESTIMATION)
   ============================================================ */

.abrp-final-cta {
  padding: 60px 20px;
  max-width: 1200px;
  margin: 0 auto;
}

@media (min-width: 1024px) {
  .abrp-final-cta {
    padding: 100px 20px;
  }
}

.abrp-final-cta__container {
  position: relative;
  background-color: var(--abrp-dark-sec);
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.05);
  box-shadow: 0 20px 40px rgba(0,0,0,0.3);
  text-align: center;
  padding: 50px 20px;
}

@media (min-width: 768px) {
  .abrp-final-cta__container {
    padding: 80px 40px;
  }
}

/* Effet de lumière en fond */
.abrp-final-cta__bg {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 0;
  overflow: hidden;
  border-radius: 24px;
}

.abrp-final-cta__halo {
  position: absolute;
  top: -50%;
  left: 50%;
  transform: translateX(-50%);
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgba(164,216,169,0.15) 0%, transparent 70%);
  z-index: 1;
}

.abrp-final-cta__content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.abrp-final-cta__badge {
  display: inline-block;
  padding: 8px 16px;
  background: rgba(164,216,169,0.1);
  color: var(--abrp-green);
  border: 1px solid rgba(164,216,169,0.2);
  border-radius: 50px;
  font-size: 0.8rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 25px;
}

.abrp-final-cta__title {
  font-size: 2rem;
  color: var(--abrp-white);
  font-weight: 800;
  line-height: 1.2;
  margin-top: 0;
  margin-bottom: 20px;
}

@media (min-width: 768px) {
  .abrp-final-cta__title {
    font-size: 3rem;
  }
}

.abrp-final-cta__desc {
  font-size: 1.1rem;
  color: #9ca3af;
  max-width: 600px;
  line-height: 1.6;
  margin-top: 0;
  margin-bottom: 35px;
}

.abrp-final-cta__actions {
  display: flex;
  justify-content: center;
}

/* ============================================================
   SECTION AVANTAGES FISCAUX (LIGHT MODE)
   ============================================================ */

.abrp-tax-section {
  background-color: var(--abrp-white);
  padding: 80px 20px;
  color: var(--abrp-dark);
}

.abrp-tax-container {
  max-width: 1200px;
  margin: 0 auto;
}

.abrp-tax-header {
  text-align: center;
  margin-bottom: 50px;
}

.abrp-tax-badge {
  display: inline-block;
  background: var(--abrp-light);
  color: var(--abrp-dark-sec);
  padding: 6px 16px;
  border-radius: 50px;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1px;
  border: 1px solid #e5e7eb;
  margin-bottom: 20px;
}

.abrp-tax-title {
  font-size: 2.2rem;
  font-weight: 800;
  line-height: 1.2;
  margin-top: 0;
  margin-bottom: 20px;
  color: var(--abrp-dark);
}

@media (min-width: 768px) {
  .abrp-tax-title {
    font-size: 2.8rem;
  }
}

.abrp-tax-desc {
  font-size: 1.1rem;
  color: #4b5563; /* Gris neutre pour lisibilité parfaite sur blanc */
  max-width: 750px;
  margin: 0 auto;
  line-height: 1.6;
}

.abrp-tax-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  margin-bottom: 50px;
}

@media (min-width: 768px) {
  .abrp-tax-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
  }
}

@media (min-width: 1024px) {
  .abrp-tax-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.abrp-tax-card {
  background: var(--abrp-light);
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  padding: 30px 25px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.abrp-tax-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 15px 30px rgba(0,0,0,0.05);
  border-color: #10b981; /* Vert ABRP */
}

.abrp-tax-icon {
  width: 56px;
  height: 56px;
  background: var(--abrp-white);
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #10b981; /* Vert ABRP */
  margin-bottom: 20px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.abrp-tax-card-title {
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--abrp-dark);
  margin-top: 0;
  margin-bottom: 10px;
}

.abrp-tax-card-desc {
  font-size: 0.95rem;
  color: #4b5563;
  line-height: 1.6;
  margin: 0;
}

.abrp-tax-cta {
  text-align: center;
}

/* Bouton Outline (Transparent avec bordure) */
.abrp-btn-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 15px 35px;
  background: transparent;
  color: var(--abrp-dark);
  border: 2px solid #e5e7eb;
  border-radius: 50px;
  font-weight: 800;
  font-size: 1.05rem;
  text-decoration: none;
  transition: all 0.3s ease;
}

.abrp-btn-outline:hover {
  background: var(--abrp-dark);
  color: var(--abrp-white);
  border-color: var(--abrp-dark);
}

/* ============================================================
   HERO CLUSTER RÉNOVATION ABRP (DESIGN APPLE LIGHT & GLASS)
   ============================================================ */

.hero-cluster {
    position: relative;
    background-color: #f8f9fa; /* Fond gris très clair Apple */
    padding-top: 8rem;
    padding-bottom: 4rem;
    overflow: hidden;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

@media (min-width: 1024px) {
    .hero-cluster { padding-top: 12rem; padding-bottom: 6rem; }
}

/* --- EFFETS DE FOND (LOSANGES RADIANS & HALO SOMBRE) --- */
.hero-cluster__bg-pattern {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image: 
        repeating-linear-gradient(45deg, rgba(164, 216, 169, 0.15) 0, rgba(164, 216, 169, 0.15) 1px, transparent 1px, transparent 60px),
        repeating-linear-gradient(-45deg, rgba(164, 216, 169, 0.15) 0, rgba(164, 216, 169, 0.15) 1px, transparent 1px, transparent 60px);
    /* Le masque radial : 100% visible au centre, s'estompe vers les bords */
    -webkit-mask-image: radial-gradient(circle at center, black 10%, transparent 80%);
    mask-image: radial-gradient(circle at center, black 10%, transparent 80%);
}

/* Halo vert discret en arrière-plan */
.hero-cluster__dark-halo {
    position: absolute;
    width: 60vw;
    height: 60vw;
    background: radial-gradient(circle, rgba(164, 216, 169, 0.08) 0%, transparent 60%);
    top: 50%;
    left: 25%;
    transform: translate(-50%, -50%);
    z-index: 0;
    pointer-events: none;
    filter: blur(80px);
}

.hero-cluster__container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 1.5rem;
    position: relative;
    z-index: 2;
}

.hero-cluster__grid {
    display: grid;
    gap: 4rem;
    align-items: center;
}

@media (min-width: 1024px) {
    .hero-cluster__grid { grid-template-columns: 1fr 1fr; gap: 3rem; }
}

/* --- COLONNE GAUCHE (TEXTE) --- */
.hero-cluster__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    max-width: 600px;
}

.hero-cluster__badge {
    display: inline-block;
    padding: 0.4rem 1.2rem;
    background: #ffffff;
    border: 1px solid rgba(164, 216, 169, 0.6);
    border-radius: 50px;
    color: #8abf8f; /* Légèrement plus foncé pour la lisibilité sur fond clair */
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 1.5rem;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}

.hero-cluster__title {
    font-size: clamp(2.1rem, 4vw, 4rem);
    font-weight: 800;
    line-height: 1.1;
    color: #1d1d1f;
    margin: 0 0 1.5rem 0;
    letter-spacing: -0.02em;
}

.abrp-green-text {
    color: #A4D8A9;
}

.hero-cluster__desc {
    font-size: 1.1rem;
    line-height: 1.6;
    color: #515154;
    margin: 0 0 2.5rem 0;
    max-width: 550px;
}

/* --- BOUTON ABRP --- */
.abrp-btn-prime {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 1rem 2rem;
    border-radius: 50px;
    font-weight: 700;
    text-decoration: none;
    transition: all 0.3s ease;
}

.abrp-btn-prime--green {
    background-color: #A4D8A9;
    color: #1d1d1f; /* Texte foncé pour contraster avec le vert pastel */
    box-shadow: 0 4px 15px rgba(164, 216, 169, 0.4);
}

.abrp-btn-prime--green:hover {
    background-color: #8ec393; /* Teinte légèrement plus soutenue au survol */
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(164, 216, 169, 0.5);
}

/* --- COLONNE DROITE (IMAGE + STATS) --- */
.hero-cluster__visual {
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 2rem; 
}

@media (min-width: 1024px) {
    .hero-cluster__visual {
        flex-direction: row;
        justify-content: flex-end;
        margin-bottom: 0;
    }
}

.hero-cluster__image-wrapper {
    width: 100%;
    max-width: 6500px;
    border-radius: 2rem;
    overflow: hidden;
    box-shadow: 0 25px 50px -12px rgba(0,0,0,0.15);
}

.hero-cluster__img {
    width: 100%;
    height: 400px;
    object-fit: cover;
    display: block;
}

@media (min-width: 768px) { .hero-cluster__img { height: 500px; } }
@media (min-width: 1024px) { .hero-cluster__img { height: 650px; } }

/* --- LA CARTE STATS "DARK GLASS" --- */
.hero-cluster__stats-card {
    position: relative; 
    margin: -10rem auto 0 auto;
    z-index: 10;
    
    background: rgba(22, 23, 24, 0.85);
    backdrop-filter: blur(2px) saturate(180%);
    -webkit-backdrop-filter: blur(2px) saturate(180%);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 1.5rem;
    padding: 2.5rem 2rem;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    box-shadow: 0 20px 40px rgba(0,0,0,0.5);
    width: 90%; 
    max-width: 400px;
}

@media (min-width: 1024px) {
    .hero-cluster__stats-card {
        position: absolute;
        top: 50%;
        left: -10%;
        transform: translateY(-50%);
        margin: 0;
        padding: 2.5rem 3.5rem;
        width: 350px;
        max-width: none;
        box-shadow: 0 30px 60px rgba(0,0,0,0.4);
    }
}

.hc-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.5rem;
}

.hc-stat-num {
    color: #ffffff;
    font-size: 2.5rem;
    font-weight: 900;
    line-height: 1;
    text-shadow: 0 2px 10px rgba(0,0,0,0.3);
}

@media (min-width: 1024px) {
    .hc-stat-num { font-size: 2.8rem; }
}

.hc-stat-label {
    color: #ffffff;
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    opacity: 0.9;
}

@media (min-width: 1024px) {
    .hc-stat-label { font-size: 0.85rem; }
}

.hc-stat-divider {
    width: 100%;
    height: 1px;
    background: rgba(255, 255, 255, 0.2);
    margin: 0.25rem 0;
}

.hc-stat-rge {
    margin-top: 0.5rem;
}

.hc-green {
    color: #A4D8A9;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.05em;
}

@media (min-width: 1024px) {
    .hc-green { font-size: 0.8rem; }
}

/* Sur très petit mobile */
@media (max-width: 380px) {
    .hero-cluster__stats-card { padding: 2rem 1.5rem; width: 95%; margin-top: -8rem; }
    .hc-stat-num { font-size: 2.2rem; }
    .hc-stat-label { font-size: 0.7rem; }
}

/* ============================================================
   SECTION COMPÉTENCES ABRP - DARK MODE (COULEURS OFFICIELLES)
   ============================================================ */

.skills-abrp-dark {
    padding: 5rem 0;
    background-color: var(--abrp-dark);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.skills-abrp-dark__container {
    max-width: 1200px; /* Légèrement réduit pour une lecture optimale de la grille unique */
    margin: 0 auto;
    padding: 0 1.5rem;
}

.skills-abrp-dark__header {
    text-align: center;
    margin-bottom: 4rem;
}

.skills-abrp-dark__title {
    font-size: clamp(2rem, 3vw, 2.5rem);
    font-weight: 800;
    color: var(--abrp-white);
    margin-bottom: 1rem;
    line-height: 1.2;
}

.skills-abrp-dark__highlight {
    color: var(--abrp-green);
}

.skills-abrp-dark__subtitle {
    font-size: 1.1rem;
    color: var(--abrp-light);
    opacity: 0.8;
    max-width: 800px;
    margin: 0 auto;
    line-height: 1.6;
}

/* Carte principale regroupant tout le contenu */
.skills-abrp-dark__card {
    background-color: var(--abrp-dark-sec);
    padding: 3rem;
    border-radius: 16px;
    border: 1px solid rgba(243, 244, 246, 0.05); /* rgba du --abrp-light */
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
}

.skills-abrp-dark__card-title {
    font-size: 1.8rem;
    font-weight: 800;
    color: var(--abrp-white);
    margin-top: 0;
    margin-bottom: 3rem;
    text-align: center;
}

/* Grille des métiers (2 colonnes) */
.skills-abrp-dark__list {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

@media (min-width: 768px) {
    .skills-abrp-dark__list--cols-2 {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        column-gap: 3rem;
        row-gap: 2.5rem;
    }
}

.skills-abrp-dark__item {
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
}

.skills-abrp-dark__icon-box {
    background-color: rgba(164, 216, 169, 0.1); /* rgba du --abrp-green */
    color: var(--abrp-green);
    padding: 1rem;
    border-radius: 12px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.skills-abrp-dark__item-title {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--abrp-white);
    margin: 0 0 0.4rem 0;
}

.skills-abrp-dark__item-desc {
    font-size: 0.95rem;
    color: var(--abrp-light);
    opacity: 0.7;
    margin: 0;
    line-height: 1.5;
}

/* Layus spécifique Cuisines & Salles de bains */
.skills-abrp-dark__rooms {
    margin-top: 3.5rem;
    padding-top: 3rem;
    border-top: 1px solid rgba(243, 244, 246, 0.1);
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}

@media (min-width: 768px) {
    .skills-abrp-dark__rooms {
        grid-template-columns: repeat(2, 1fr);
        column-gap: 3rem;
    }
}

.skills-abrp-dark__room-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    background-color: rgba(0, 0, 0, 0.2);
    padding: 2rem;
    border-radius: 12px;
}

.skills-abrp-dark__room-icon {
    color: var(--abrp-green);
    margin-bottom: 1rem;
}

.skills-abrp-dark__room-title {
    font-size: 1.3rem;
    font-weight: 800;
    color: var(--abrp-white);
    margin: 0 0 0.5rem 0;
}

.skills-abrp-dark__room-desc {
    font-size: 1rem;
    color: var(--abrp-light);
    opacity: 0.8;
    margin: 0;
    line-height: 1.5;
}

/* Bouton d'action */
.skills-abrp-dark__cta-wrapper {
    text-align: center;
    margin-top: 4rem;
}

.skills-abrp-dark__btn {
    display: inline-block;
    background-color: var(--abrp-green);
    color: var(--abrp-dark);
    padding: 14px 35px;
    border-radius: 50px;
    font-weight: 800;
    font-size: 1.1rem;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(164, 216, 169, 0.2);
}

.skills-abrp-dark__btn:hover {
    filter: brightness(0.95);
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(164, 216, 169, 0.35);
}

/* ============================================================
   PRIX EN COLONNES (STYLE ABRP DARK GLASS)
   ============================================================ */

.abrp-pricing-dark {
    position: relative;
    background-color: var(--abrp-dark); /* Utilisation de la variable ABRP */
    padding: 6rem 1.5rem;
    overflow: hidden;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

@media (min-width: 1024px) {
    .abrp-pricing-dark { padding: 8rem 2rem; }
}

/* --- HALOS DE PROFONDEUR --- */
.abrp-pricing-halo {
    position: absolute;
    border-radius: 50%;
    filter: blur(120px);
    pointer-events: none;
    z-index: 0;
}

.abrp-pricing-halo-green {
    width: 600px;
    height: 600px;
    background: rgba(164, 216, 169, 0.15); /* Vert ABRP en transparence */
    top: -10%;
    right: -10%;
}

.abrp-pricing-halo-white {
    width: 500px;
    height: 500px;
    background: rgba(255, 255, 255, 0.03);
    bottom: -10%;
    left: -10%;
}

/* --- CONTENEUR & EN-TÊTE --- */
.abrp-pricing-container {
    position: relative;
    z-index: 2;
    max-width: 1200px; /* Légèrement réduit pour 3 cartes */
    margin: 0 auto;
}

.abrp-pricing-header {
    text-align: center;
    margin-bottom: 4rem;
}

.abrp-pricing-title {
    font-size: clamp(2rem, 3.5vw, 3rem);
    font-weight: 800;
    color: var(--abrp-white);
    line-height: 1.2;
    margin: 0 0 1rem 0;
    letter-spacing: -0.02em;
}

.abrp-pricing-desc {
    font-size: 1.1rem;
    color: var(--abrp-light);
    opacity: 0.8;
    line-height: 1.6;
    max-width: 700px;
    margin: 0 auto;
}

.abrp-pricing-link {
    color: var(--abrp-green);
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
    font-weight: 600;
    transition: color 0.2s ease;
}

.abrp-pricing-link:hover {
    color: #ffffff;
}

/* --- GRILLE DES PRIX --- */
.abrp-pricing-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

@media (min-width: 768px) {
    /* Adaptation pour 3 colonnes au lieu de 4 */
    .abrp-pricing-grid { grid-template-columns: repeat(3, 1fr); gap: 2rem; }
}

/* --- CARTES TARIFAIRES (GLASSMORPHISM) --- */
.abrp-price-card {
    background: rgba(255, 255, 255, 0.03);
    backdrop-filter: blur(24px) saturate(180%);
    -webkit-backdrop-filter: blur(24px) saturate(180%);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 1.5rem;
    padding: 2.5rem 2rem;
    display: flex;
    flex-direction: column;
    text-align: center;
    transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1), border-color 0.4s ease, box-shadow 0.4s ease;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2);
    height: 100%;
}

.abrp-price-card:hover {
    transform: translateY(-8px);
    border-color: rgba(164, 216, 169, 0.5); /* Bordure Vert ABRP au survol */
    box-shadow: 0 25px 50px rgba(0, 0, 0, 0.4);
    background: rgba(255, 255, 255, 0.05);
}

/* Mise en évidence de la carte "Populaire" */
.abrp-price-card--popular {
    border-color: rgba(164, 216, 169, 0.3);
    background: rgba(164, 216, 169, 0.05);
}

.abrp-price-card__header {
    margin-bottom: 2rem;
    flex-grow: 1;
}

.abrp-price-card__title {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--abrp-white);
    margin: 0;
    line-height: 1.4;
}

.abrp-price-card__amount {
    margin-bottom: 2.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.abrp-price-card__value {
    font-size: 1.8rem;
    font-weight: 900;
    color: var(--abrp-green); /* Couleur texte montant */
    line-height: 1.1;
    letter-spacing: -0.02em;
}

.abrp-price-card__unit {
    font-size: 0.9rem;
    color: var(--abrp-light);
    opacity: 0.7;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.abrp-price-card__footer {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

.abrp-price-card__complexity {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
}

.abrp-complexity-label {
    font-size: 0.75rem;
    color: var(--abrp-light);
    opacity: 0.9;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.abrp-price-card__note {
    font-size: 0.85rem;
    color: var(--abrp-light);
    opacity: 0.7;
    margin: 0;
    line-height: 1.5;
    font-style: italic;
}

/* ============================================================
   TIMELINE ÉTAPES - ABRP DARK MODE
   ============================================================ */

.abrp-steps-dark {
    background-color: var(--abrp-dark);
    padding: 6rem 1.5rem;
    position: relative;
    overflow: hidden;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.abrp-steps-container {
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
    z-index: 2;
}

.abrp-steps-header {
    text-align: center;
    margin-bottom: 5rem;
}

.abrp-steps-title {
    font-size: clamp(2rem, 3.5vw, 3rem);
    font-weight: 800;
    color: var(--abrp-white);
    margin-bottom: 1.5rem;
    line-height: 1.2;
}

.abrp-green-text {
    color: var(--abrp-green);
}

.abrp-steps-subtitle {
    font-size: 1.1rem;
    color: var(--abrp-light);
    opacity: 0.8;
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.6;
}

/* --- WRAPPER TIMELINE --- */
.abrp-timeline-wrapper {
    position: relative;
    padding: 2rem 0;
}

/* --- LIGNE CENTRALE --- */
.abrp-timeline-line {
    position: absolute;
    left: 20px; /* Aligné à gauche sur mobile */
    top: 0;
    bottom: 0;
    width: 4px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 4px;
    transform: translateX(-50%);
}

@media (min-width: 768px) {
    .abrp-timeline-line {
        left: 50%; /* Centré sur Desktop */
    }
}

/* --- LIGNE DE PROGRESSION ANIMÉE --- */
.abrp-timeline-progress {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 0%; /* Sera mis à jour par le JS */
    background: var(--abrp-green);
    border-radius: 4px;
    transition: height 0.1s ease-out;
    box-shadow: 0 0 15px rgba(164, 216, 169, 0.5);
}

.abrp-steps-container-inner {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 3rem;
}

@media (min-width: 768px) {
    .abrp-steps-container-inner {
        gap: 0; /* Espacement géré par les marges des steps sur Desktop */
    }
}

/* --- UN ÉLÉMENT ÉTAPE --- */
.abrp-step {
    position: relative;
    display: flex;
    align-items: flex-start;
    padding-left: 50px; /* Espace pour le numéro sur mobile */
    opacity: 0.3;
    transform: translateY(30px);
    transition: all 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

.abrp-step.is-active {
    opacity: 1;
    transform: translateY(0);
}

@media (min-width: 768px) {
    .abrp-step {
        width: 50%;
        padding-left: 0;
        margin-bottom: -3rem; /* Chevauchement pour l'effet zigzag */
    }
    
    .abrp-step-left {
        justify-content: flex-end;
        padding-right: 3rem;
        left: 0;
        text-align: right;
    }
    
    .abrp-step-right {
        justify-content: flex-start;
        padding-left: 3rem;
        left: 50%;
        text-align: left;
    }
    
    /* Annule le margin négatif du dernier élément */
    .abrp-step:last-child {
        margin-bottom: 0;
    }
}

/* --- LE NUMÉRO (INDICATEUR) --- */
.abrp-step-indicator {
    position: absolute;
    left: 20px;
    top: 0;
    transform: translateX(-50%); /* Centrage sur le point de repère 'left' */
    width: 40px;
    height: 40px;
    background: var(--abrp-dark-sec);
    border: 2px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 1.2rem;
    color: var(--abrp-white);
    z-index: 10;
    transition: all 0.4s ease;
    box-shadow: 0 0 0 4px var(--abrp-dark);
}

@media (min-width: 768px) {
    /* CORRECTION ICI : On utilise right: 0 et left: 0 avec un transformX pour centrer pile poil sur le bord */
    .abrp-step-left .abrp-step-indicator {
        left: auto;
        right: 0;
        transform: translateX(50%); /* Décale la moitié de la bulle vers la droite */
    }
    .abrp-step-right .abrp-step-indicator {
        left: 0;
        right: auto;
        transform: translateX(-50%); /* Décale la moitié de la bulle vers la gauche */
    }
}

/* État actif du numéro */
.abrp-step.is-active .abrp-step-indicator {
    background: var(--abrp-green);
    border-color: var(--abrp-green);
    color: var(--abrp-dark);
    box-shadow: 0 0 0 6px rgba(164, 216, 169, 0.2), 0 0 0 4px var(--abrp-dark);
}

/* --- LE CONTENU (CARTE) --- */
.abrp-step-content {
    background: var(--abrp-dark-sec);
    padding: 2rem;
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.05);
    box-shadow: 0 10px 30px rgba(0,0,0,0.2);
    width: 100%;
}

@media (min-width: 768px) {
    .abrp-step-content {
        max-width: 450px;
    }
}

.abrp-step-title {
    font-size: 1.3rem;
    font-weight: 800;
    color: var(--abrp-white);
    margin-top: 0;
    margin-bottom: 1rem;
}

.abrp-step-desc {
    font-size: 1rem;
    color: var(--abrp-light);
    opacity: 0.8;
    line-height: 1.6;
    margin: 0;
}

.abrp-step-desc strong {
    color: var(--abrp-green);
    font-weight: 600;
}

/* ============================================================
   BANDEAU CALCULATEUR (ABRP LIGHT MODE)
   ============================================================ */

.e85-calculator-section.e85-light {
    padding: 5rem 1.5rem;
    text-align: center;
    background-color: var(--abrp-light); /* Fond clair ABRP */
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.abrp-calc-container {
    max-width: 800px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.abrp-calc-title {
    font-size: clamp(2rem, 3.5vw, 2.5rem);
    font-weight: 800;
    margin-top: 0;
    margin-bottom: 1.5rem;
    color: var(--abrp-dark); /* Texte sombre sur fond clair */
    letter-spacing: -0.02em;
    line-height: 1.2;
}

.abrp-calc-highlight {
    color: var(--abrp-green);
}

.abrp-calc-desc {
    font-size: 1.1rem;
    color: var(--abrp-dark-sec); /* Texte secondaire sombre */
    opacity: 0.9;
    margin-bottom: 2.5rem;
    line-height: 1.6;
}

.abrp-calc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background-color: var(--abrp-green);
    color: var(--abrp-dark);
    padding: 16px 32px;
    border-radius: 50px;
    font-weight: 800;
    font-size: 1.05rem;
    text-decoration: none;
    box-shadow: 0 4px 15px rgba(164, 216, 169, 0.4);
    transition: all 0.3s ease;
}

.abrp-calc-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(164, 216, 169, 0.6);
    filter: brightness(0.95);
}

/* Utilitaire de saut de ligne desktop uniquement */
@media (max-width: 768px) {
    .br-pc {
        display: none;
    }
}

/* ============================================================
   MAILLAGE INTERNE (CROSS-LINKING) - ABRP DARK MODE
   ============================================================ */

.abrp-crosslinks-dark {
    background-color: var(--abrp-dark);
    padding: 6rem 1.5rem;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.abrp-crosslinks-container {
    max-width: 1200px;
    margin: 0 auto;
}

.abrp-crosslinks-header {
    text-align: center;
    margin-bottom: 4rem;
}

.abrp-crosslinks-title {
    font-size: clamp(2rem, 3.5vw, 2.5rem);
    font-weight: 800;
    color: var(--abrp-white);
    margin-top: 0;
    margin-bottom: 1.5rem;
    line-height: 1.2;
}

.abrp-green-text {
    color: var(--abrp-green);
}

.abrp-crosslinks-desc {
    font-size: 1.1rem;
    color: var(--abrp-light);
    opacity: 0.8;
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.6;
}

/* Grille des liens */
.abrp-crosslinks-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

@media (min-width: 768px) {
    .abrp-crosslinks-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 2rem;
    }
}

@media (min-width: 1024px) {
    .abrp-crosslinks-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* Style des cartes / liens */
.abrp-crosslink-card {
    display: flex;
    align-items: center;
    background-color: var(--abrp-dark-sec);
    padding: 2rem 1.5rem;
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.05);
    text-decoration: none;
    transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

.abrp-crosslink-card:hover {
    transform: translateY(-5px);
    background-color: #2a333a; /* Ajustement visuel pour le survol */
    border-color: rgba(164, 216, 169, 0.4); /* Bordure vert ABRP */
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.3);
}

.abrp-crosslink-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    background-color: rgba(164, 216, 169, 0.1);
    color: var(--abrp-green);
    border-radius: 12px;
    flex-shrink: 0;
    margin-right: 1.25rem;
    transition: all 0.3s ease;
}

.abrp-crosslink-card:hover .abrp-crosslink-icon {
    background-color: var(--abrp-green);
    color: var(--abrp-dark);
}

.abrp-crosslink-content {
    flex-grow: 1;
}

.abrp-crosslink-name {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--abrp-white);
    margin: 0 0 0.25rem 0;
    transition: color 0.3s ease;
}

.abrp-crosslink-card:hover .abrp-crosslink-name {
    color: var(--abrp-green);
}

.abrp-crosslink-text {
    font-size: 0.9rem;
    color: var(--abrp-light);
    opacity: 0.7;
    margin: 0;
    line-height: 1.4;
}

.abrp-crosslink-arrow {
    color: rgba(255, 255, 255, 0.2);
    margin-left: 1rem;
    transition: all 0.3s ease;
}

.abrp-crosslink-card:hover .abrp-crosslink-arrow {
    color: var(--abrp-green);
    transform: translateX(5px);
}

/* =========================================
   STYLE DU SIMULATEUR
   ========================================= */
.simulateur-container {
  position: relative;
  width: 100%;
  margin: 0px auto; /* Marge externe de 20px en haut et en bas sur PC */
  padding: 0; /* Supprimé pour être 100% full width */
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 200px; 
}

#simulateur-iframe {
  transition: height 0.3s ease-in-out;
  width: 100%;
}

@media (max-width: 768px) {
  .simulateur-container {
    margin: 0 auto; /* On retire la marge de 20px sur mobile */
    min-height: 200px;
  }
}

/* =========================================
   ANIMATION ZOOM BACKGROUND (Ken Burns)
   ========================================= */

/* On s'assure que le conteneur masque tout ce qui dépasse pendant le zoom */
.hero-abrp__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden; /* Crucial pour ne pas agrandir la page */
  z-index: 1; /* Derrière le contenu */
}

/* L'image elle-même */
.hero-abrp__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* L'animation : nom, durée (15s pour un effet lent), courbe, et infini */
  animation: zoomBackground 15s ease-in-out infinite alternate;
  /* Optionnel : transformer l'origine pour que le zoom se fasse vers le centre */
  transform-origin: center center;
  /* Empêche les petits tremblements sur certains navigateurs pendant le zoom */
  will-change: transform;
}

/* Les étapes de l'animation */
@keyframes zoomBackground {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.1); /* Zoom de 10% - Augmentez à 1.15 si vous voulez plus marqué */
  }
}

/* ============================================================================
   BLOC FUSIONNÉ DEPUIS LE CUSTOMIZER (post custom_css #5) — 2026-07-10, Web'up.
   Le CSS personnalisé du Customizer a été rapatrié ici pour n'avoir qu'UNE source.
   Placé en fin de fichier : il conserve sa priorité sur les règles du thème ci-dessus.
   La police Inter/IBM Plex Mono (jadis chargee par regle d'import) est desormais enqueue dans functions.php.
   ============================================================================ */
/* =====================================================================
   ABRP — Entreprise de rénovation de l'habitat · Versailles / Yvelines (78)
   CSS article éditorial (guide des prix). Tout est scopé .abrp-page pour
   ne rien percuter du thème WordPress. Grammaire de section inspirée du
   modèle "guide expert" (hero → points clés → sommaire → sections métier
   → cas concret → avis → FAQ → CTA → auteur).
   À coller dans le child theme, sous ton marqueur habituel.
   ===================================================================== */

.abrp-page {
  /* Marque */
  --abrp-dark: #181818;          /* titres, fonds sombres, bouton primaire */
  --abrp-dark-2: #21292f;        /* fin de dégradé sombre, texte secondaire fort */
  --abrp-green: #a4d8a9;         /* vert marque (sage) : accents sur fond sombre, tints */
  --abrp-green-500: #10b981;     /* émeraude : icônes, bordures, prix, gros accents */
  --abrp-green-700: #0a7d5a;     /* émeraude profonde : liens + petit texte gras (AA sur blanc) */

  /* Neutres */
  --abrp-ink: #181818;
  --abrp-text: #3d444c;          /* corps */
  --abrp-muted: #6b7280;         /* sous-textes */
  --abrp-line: #e2e8f0;          /* bordures */
  --abrp-surface: #f3f4f6;       /* fonds doux */
  --abrp-surface-2: #f8fafc;     /* fond hero */
  --abrp-white: #ffffff;
  --abrp-on-dark-muted: #b9c2c9; /* sous-texte lisible sur #181818 */

  /* Formes / ombres / motion */
  --abrp-radius: 16px;
  --abrp-radius-lg: 24px;
  --abrp-radius-sm: 10px;
  --abrp-pill: 999px;
  --abrp-shadow-sm: 0 4px 16px rgba(24,24,24,0.06);
  --abrp-shadow: 0 10px 40px rgba(24,24,24,0.08);
  --abrp-shadow-hover: 0 20px 50px rgba(24,24,24,0.14);
  --abrp-ease: cubic-bezier(0.22,0.61,0.36,1);
  --abrp-transition: 180ms var(--abrp-ease);

  font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  color: var(--abrp-text);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
.abrp-page *, .abrp-page *::before, .abrp-page *::after { box-sizing: border-box; }
.abrp-page h1, .abrp-page h2, .abrp-page h3, .abrp-page h4 { color: var(--abrp-ink); text-wrap: balance; }
.abrp-page p { text-wrap: pretty; }
.abrp-page a { color: var(--abrp-green-700); text-decoration: none; transition: color var(--abrp-transition); }
.abrp-page a:hover { color: var(--abrp-dark); }
.abrp-page img { max-width: 100%; }

/* =====================================================================
   BLINDAGE WORDPRESS — sortir de la colonne du thème + couper l'héritage
   (à garder tout en HAUT du CSS ABRP)
   ===================================================================== */

/* 1 · Breakout : l'article occupe toute la largeur de la fenêtre, quelle que
      soit la colonne dans laquelle le thème l'enferme. Les .art__wrap
      re-centrent le contenu à 860px — donc les fonds pleine largeur (hero
      sombre, CTA) vont bord à bord, le texte reste lisible.
      ⚠ Suppose un article en pleine largeur (sans sidebar). */
/* Specificite montee a 0,1,1 (body .abrp-page) : fusionne dans style.css, ce breakout charge
   AVANT le CSS inline de Blocksy (.is-layout-constrained > :where(...), 0,1,0, meme cible).
   A egalite l'ordre tranchait pour le Customizer (imprime en dernier) ; en style.css il perdait. */
body .abrp-page {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 0;
  overflow-x: clip;                 /* garde-fou anti-scroll horizontal du 100vw */
}
.abrp-page .art,
.abrp-page section { width: auto; max-width: none; float: none; }
/* Garde-fou anti-scroll horizontal : le 100vw inclut la barre de défilement
   (~8-15px), ce qui déborde à droite. On neutralise ce dépassement sur le
   body qui contient le gabarit (sans toucher au reste du thème). Si votre
   navigateur ne gère pas :has, ajoutez `body{overflow-x:hidden}` à la main. */
body:has(> .abrp-page), body:has(.abrp-page) { overflow-x: hidden; }

/* 2 · Typo : le thème repeint p/li/h… via une règle DIRECTE (ex. .entry-content
      p{font-family}) qui bat notre héritage. On réimpose Inter sur les éléments
      eux-mêmes. !important seulement ici : tout le gabarit est en Inter. */
.abrp-page, .abrp-page p, .abrp-page span, .abrp-page a, .abrp-page li,
.abrp-page h1, .abrp-page h2, .abrp-page h3, .abrp-page h4, .abrp-page h5, .abrp-page h6,
.abrp-page b, .abrp-page strong, .abrp-page em, .abrp-page div,
.abrp-page ul, .abrp-page ol, .abrp-page figure, .abrp-page figcaption,
.abrp-page blockquote, .abrp-page button, .abrp-page input, .abrp-page label, .abrp-page td, .abrp-page th {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
}

/* 3 · Couleurs : idem, on pose la couleur DIRECTEMENT (sans !important) pour
      battre l'héritage tout en laissant nos règles composant (plus spécifiques)
      imposer le blanc sur fonds sombres, l'émeraude sur les prix, etc. */
.abrp-page p, .abrp-page li, .abrp-page td, .abrp-page th,
.abrp-page dd, .abrp-page dt, .abrp-page blockquote, .abrp-page figcaption { color: var(--abrp-text); }
.abrp-page h1, .abrp-page h2, .abrp-page h3, .abrp-page h4, .abrp-page h5, .abrp-page h6 { color: var(--abrp-ink); }

/* 4 · Marges : on remet à zéro les marges par défaut des blocs (le thème en
      ajoute souvent). Nos règles composant (sélecteurs à classe, plus
      spécifiques) réappliquent l'espacement voulu. Pas de !important pour ne
      pas écraser cet espacement. */
.abrp-page p, .abrp-page ul, .abrp-page ol, .abrp-page li,
.abrp-page h1, .abrp-page h2, .abrp-page h3, .abrp-page h4, .abrp-page h5, .abrp-page h6,
.abrp-page figure, .abrp-page blockquote, .abrp-page dl, .abrp-page dd, .abrp-page dt { margin: 0; padding: 0; }
.abrp-page ul, .abrp-page ol { list-style: none; }
.abrp-page p, .abrp-page li { line-height: 1.6; }

/* ---- largeur article ---- */
.abrp-page .art { display: block; }
.abrp-page .art__wrap { max-width: 860px; margin-inline: auto; padding-inline: clamp(18px,4vw,28px); }

/* ---- Boutons ---- */
.abrp-page .abrp-btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; font-family:inherit; font-size:1rem; font-weight:700; line-height:1; text-decoration:none; cursor:pointer; padding:15px 26px; border-radius:var(--abrp-pill); border:2px solid transparent; transition:all var(--abrp-transition); }
.abrp-page .abrp-btn svg { width:18px; height:18px; }
.abrp-page .abrp-btn:hover { text-decoration:none; }
.abrp-page .abrp-btn--primary { background:var(--abrp-dark); color:#fff; }
.abrp-page .abrp-btn--primary:hover { background:var(--abrp-green-700); color:#fff; transform:translateY(-1px); box-shadow:var(--abrp-shadow-sm); }
.abrp-page .abrp-btn--green { background:linear-gradient(150deg,var(--abrp-green-500),var(--abrp-green-700)); color:#fff; box-shadow:0 10px 26px rgba(16,185,129,.32); }
.abrp-page .abrp-btn--green:hover { transform:translateY(-1px); box-shadow:0 14px 32px rgba(16,185,129,.42); color:#fff; }
.abrp-page .abrp-btn--secondary { background:#fff; color:var(--abrp-dark); border-color:var(--abrp-line); }
.abrp-page .abrp-btn--secondary:hover { border-color:var(--abrp-green-500); color:var(--abrp-green-700); background:var(--abrp-surface); }
.abrp-page .abrp-btn--outline-light { background:transparent; color:#fff; border-color:rgba(255,255,255,.4); }
.abrp-page .abrp-btn--outline-light:hover { border-color:#fff; background:rgba(255,255,255,.1); color:#fff; }

/* =====================================================================
   En-têtes de section réutilisables
   ===================================================================== */
.abrp-page .sec-head { max-width:56rem; margin:0 0 clamp(22px,2.4vw,34px); }
.abrp-page .sec-eyebrow { display:inline-flex; align-items:center; gap:9px; font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--abrp-green-700); font-weight:600; margin:0; }
.abrp-page .sec-eyebrow .sp { width:22px; height:22px; border-radius:7px; background:linear-gradient(135deg,var(--abrp-green-500),var(--abrp-green-700)); color:#fff; display:grid; place-items:center; flex:none; }
.abrp-page .sec-eyebrow .sp svg { width:12px; height:12px; }
.abrp-page .sec-hype { font-size:clamp(1.7rem,1.3rem + 1.9vw,2.5rem); font-weight:800; line-height:1.1; letter-spacing:-.022em; color:var(--abrp-ink); margin:15px 0 0; }
.abrp-page .sec-hype em { font-style:normal; background:linear-gradient(100deg,var(--abrp-green-500),var(--abrp-green-700)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.abrp-page h2.sec-seo { display:inline-block; font-size:clamp(1rem,.94rem + .45vw,1.2rem); font-weight:600; line-height:1.35; color:var(--abrp-dark-2); margin:13px 0 0; }
.abrp-page h2.sec-seo span { color:var(--abrp-green-700); font-weight:700; }

/* =====================================================================
   HERO
   ===================================================================== */
.abrp-page .art-hero { position:relative; overflow:hidden; background:linear-gradient(180deg,var(--abrp-surface-2) 0%,#fbfcfd 45%,#fff 100%); padding-block:clamp(38px,26px + 3vw,60px) clamp(2.2rem,1.6rem + 2.6vw,3.4rem); }
.abrp-page .art-hero::before { content:""; position:absolute; top:-32%; left:50%; transform:translateX(-50%); width:min(720px,120%); height:70%; background:radial-gradient(closest-side,rgba(16,185,129,.13),rgba(16,185,129,0) 72%); pointer-events:none; }
.abrp-page .art-hero__grid { position:relative; z-index:1; display:grid; grid-template-columns:1fr; gap:clamp(22px,3vw,34px); }
.abrp-page .art-hero__media { position:relative; border-radius:var(--abrp-radius-lg); overflow:hidden; border:1px solid var(--abrp-line); box-shadow:0 30px 70px rgba(24,24,24,.16); width:100%; aspect-ratio:24/9; background:var(--abrp-surface); }
.abrp-page .art-hero__media img { width:100%; height:100%; object-fit:cover; display:block; }
.abrp-page h1.art-h1 { font-size:clamp(1.9rem,1.4rem + 2.4vw,2.9rem); font-weight:800; line-height:1.08; letter-spacing:-.022em; color:var(--abrp-ink); margin:15px 0 0; }
.abrp-page h1.art-h1 span { background:linear-gradient(100deg,var(--abrp-green-500),var(--abrp-green-700)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.abrp-page .art-intro { font-size:1.12rem; line-height:1.6; color:var(--abrp-text); margin:18px 0 0; max-width:40em; }
.abrp-page .art-hero__cta { display:flex; flex-wrap:wrap; align-items:center; gap:14px 18px; margin-top:24px; }
.abrp-page .art-hero__cta .note { font-size:.84rem; color:var(--abrp-muted); margin:0; }
.abrp-page .art-hero__read { display:inline-flex; align-items:center; gap:8px; margin:16px 0 0; font-size:.82rem; color:var(--abrp-muted); }
.abrp-page .art-hero__read b { color:var(--abrp-ink); font-weight:700; }
@media(max-width:820px){ .abrp-page .art-hero__media{ aspect-ratio:16/10; } }

/* ---- Widget note Google ---- */
.abrp-page .art-gnote { margin-top:22px; display:flex; align-items:center; gap:16px; text-decoration:none; border:1px solid var(--abrp-line); border-radius:var(--abrp-radius-lg); background:#fff; padding:14px 18px; box-shadow:var(--abrp-shadow-sm); transition:box-shadow .3s ease,transform .3s ease,border-color .3s ease; max-width:540px; }
.abrp-page .art-gnote:hover { box-shadow:0 16px 40px rgba(24,24,24,.12); transform:translateY(-2px); border-color:rgba(16,185,129,.4); }
.abrp-page .art-gnote__logo { flex:none; width:44px; height:44px; display:grid; place-items:center; border-radius:12px; background:var(--abrp-surface); border:1px solid var(--abrp-line); }
.abrp-page .art-gnote__body { display:flex; flex-direction:column; gap:2px; flex:1; min-width:0; }
.abrp-page .art-gnote__top { display:inline-flex; align-items:center; gap:9px; line-height:1; }
.abrp-page .art-gnote__top b { font-size:1.3rem; font-weight:800; color:var(--abrp-ink); letter-spacing:-.02em; }
.abrp-page .art-gnote__stars { display:inline-flex; gap:2px; color:#f5a623; }
.abrp-page .art-gnote__stars svg { width:16px; height:16px; fill:currentColor; }
.abrp-page .art-gnote__sub { font-size:.83rem; color:var(--abrp-muted); line-height:1.4; }
.abrp-page .art-gnote__sub strong { color:var(--abrp-ink); font-weight:700; }
.abrp-page .art-gnote__cta { flex:none; display:inline-flex; align-items:center; gap:7px; font-weight:700; font-size:.9rem; color:var(--abrp-green-700); }
.abrp-page .art-gnote__cta svg { width:16px; height:16px; transition:transform .3s ease; }
.abrp-page .art-gnote:hover .art-gnote__cta svg { transform:translateX(4px); }
@media(max-width:560px){ .abrp-page .art-gnote{ flex-wrap:wrap; gap:12px; } .abrp-page .art-gnote__cta{ width:100%; justify-content:center; padding-top:10px; border-top:1px solid var(--abrp-line); } }

/* =====================================================================
   CORPS DE TEXTE
   ===================================================================== */
.abrp-page .art-body { padding-block:clamp(2.2rem,1.6rem + 2.4vw,3.4rem); }
.abrp-page .art-body > * { margin-block:0; }
.abrp-page .art-body p { font-size:1.0625rem; line-height:1.72; color:var(--abrp-text); margin:18px 0 0; }
.abrp-page .art-body p strong { color:var(--abrp-ink); font-weight:700; }
.abrp-page .art-body a:not(.abrp-btn) { color:var(--abrp-green-700); font-weight:600; text-decoration:underline; text-underline-offset:2px; text-decoration-color:rgba(16,185,129,.45); }
.abrp-page .art-body a:not(.abrp-btn):hover { text-decoration-color:var(--abrp-green-700); }
.abrp-page .art-sec { margin-top:clamp(2.4rem,1.8rem + 2.6vw,3.6rem); scroll-margin-top:90px; }
.abrp-page .art-sec > .sec-head { margin-bottom:clamp(16px,2vw,24px); }

/* ---- Points clés (TL;DR) ---- */
.abrp-page .art-tldr { margin-top:28px; border:1px solid var(--abrp-line); border-radius:var(--abrp-radius-lg); background:linear-gradient(160deg,#f2faf6,#fff 62%); box-shadow:var(--abrp-shadow-sm); padding:28px clamp(22px,3vw,32px) 30px; }
.abrp-page .art-tldr__lbl { display:flex; align-items:center; justify-content:center; gap:10px; font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--abrp-green-700); margin:0 0 24px; }
.abrp-page .art-tldr__lbl svg { width:16px; height:16px; }
.abrp-page .art-tldr__lbl > span { height:1px; flex:1; max-width:70px; background:linear-gradient(90deg,transparent,var(--abrp-line)); }
.abrp-page .art-tldr__lbl > span:last-child { background:linear-gradient(90deg,var(--abrp-line),transparent); }
.abrp-page .art-tldr ul { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.abrp-page .art-tldr li { display:flex; align-items:flex-start; gap:14px; font-size:.97rem; line-height:1.52; color:var(--abrp-text); background:#fff; border:1px solid var(--abrp-line); border-radius:var(--abrp-radius); padding:16px 18px; box-shadow:0 1px 2px rgba(24,24,24,.04); }
.abrp-page .art-tldr__ck { flex:none; width:26px; height:26px; border-radius:50%; display:grid; place-items:center; background:linear-gradient(150deg,var(--abrp-green-500),var(--abrp-green-700)); box-shadow:0 4px 10px rgba(16,185,129,.3); margin-top:1px; }
.abrp-page .art-tldr__ck svg { width:14px; height:14px; color:#fff; }
.abrp-page .art-tldr li strong { color:var(--abrp-ink); font-weight:700; }
@media(max-width:640px){ .abrp-page .art-tldr ul{ grid-template-columns:1fr; } }

/* ---- Sommaire ---- */
.abrp-page .art-toc { margin-top:26px; border:1px solid var(--abrp-line); border-radius:var(--abrp-radius); background:#fff; padding:22px 24px; }
.abrp-page .art-toc__lbl { display:flex; align-items:center; gap:9px; font-size:.86rem; font-weight:800; color:var(--abrp-ink); margin:0 0 12px; }
.abrp-page .art-toc__lbl svg { width:18px; height:18px; color:var(--abrp-green-700); }
.abrp-page .art-toc ol { margin:0; padding:0; list-style:none; counter-reset:toc; display:grid; grid-template-columns:1fr 1fr; gap:2px 24px; }
.abrp-page .art-toc li { counter-increment:toc; }
.abrp-page .art-toc a { display:flex; gap:12px; align-items:baseline; padding:9px 10px; border-radius:10px; color:var(--abrp-text); text-decoration:none; font-size:.94rem; font-weight:500; transition:background .18s ease,color .18s ease; }
.abrp-page .art-toc a::before { content:counter(toc,decimal-leading-zero); font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:.78rem; font-weight:600; color:var(--abrp-green-700); flex:none; }
.abrp-page .art-toc a:hover { background:var(--abrp-surface); color:var(--abrp-ink); }
@media(max-width:640px){ .abrp-page .art-toc ol{ grid-template-columns:1fr; } }

/* ---- Tableau ---- */
/* Wrapper à défilement horizontal sur mobile (iOS + Android) : le tableau
   garde sa largeur mini et défile au doigt au lieu d'être écrasé.
   - overflow-x:auto              → scroll horizontal quand ça déborde
   - -webkit-overflow-scrolling   → inertie/momentum sur iOS Safari
   - overscroll-behavior-x:contain→ empêche le swipe de déclencher le
                                     « retour page » du navigateur
   - touch-action:pan-x pan-y     → gestes tactiles fluides
   overflow-y reste hidden pour que le border-radius clippe toujours. */
.abrp-page .abrp-table-wrap {
  border:1px solid var(--abrp-line); border-radius:var(--abrp-radius-lg);
  overflow-x:auto; overflow-y:hidden;
  -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain;
  touch-action:pan-x pan-y;
  box-shadow:var(--abrp-shadow-sm); margin-top:24px;
  scrollbar-width:thin;
}
.abrp-page .abrp-table-wrap::-webkit-scrollbar { height:8px; }
.abrp-page .abrp-table-wrap::-webkit-scrollbar-thumb { background:var(--abrp-line); border-radius:999px; }
.abrp-page .abrp-table { width:100%; min-width:34rem; border-collapse:collapse; font-size:1rem; }

/* Repère « glisser » : visible uniquement sur mobile (là où le tableau
   déborde). Ne défile pas — il est placé au-dessus du wrapper. */
.abrp-page .abrp-table-hint { display:none; }
@media (max-width:640px) {
  .abrp-page .abrp-table-hint {
    display:inline-flex; align-items:center; gap:8px;
    margin:0 0 10px; padding:7px 14px 7px 12px;
    background:var(--abrp-surface); border:1px solid var(--abrp-line);
    border-radius:var(--abrp-pill);
    font-family:'IBM Plex Mono',ui-monospace,monospace;
    font-size:.72rem; letter-spacing:.04em; font-weight:600;
    color:var(--abrp-green-700);
  }
  .abrp-page .abrp-table-hint svg {
    width:17px; height:17px; flex:none;
    animation:abrp-swipe 1.5s var(--abrp-ease) infinite;
  }
}
@keyframes abrp-swipe {
  0%,100% { transform:translateX(0); opacity:.65; }
  50%     { transform:translateX(3px); opacity:1; }
}
@media (prefers-reduced-motion:reduce) {
  .abrp-page .abrp-table-hint svg { animation:none; }
}
.abrp-page .abrp-table thead th { background:var(--abrp-dark); color:#fff; text-align:left; font-weight:700; padding:14px 18px; font-size:.9rem; }
.abrp-page .abrp-table td, .abrp-page .abrp-table tbody th { padding:14px 18px; border-top:1px solid var(--abrp-line); text-align:left; vertical-align:top; }
.abrp-page .abrp-table tbody tr:nth-child(even) { background:var(--abrp-surface-2); }
.abrp-page .abrp-table .price { font-weight:800; color:var(--abrp-green-700); white-space:nowrap; }
.abrp-page .abrp-table__note { margin-top:12px; font-size:.85rem; color:var(--abrp-muted); }
.abrp-page .abrp-table tr.is-abrp { background:linear-gradient(120deg,#f2faf6,#fff)!important; }
.abrp-page .abrp-table tr.is-abrp td { font-weight:700; color:var(--abrp-ink); }
.abrp-page .abrp-table tr.is-abrp .tag { display:inline-flex; align-items:center; gap:6px; color:var(--abrp-green-700); font-weight:800; }

/* =====================================================================
   Cartes de budget (3 niveaux)
   ===================================================================== */
.abrp-page .art-pricing { margin-top:26px; display:grid; grid-template-columns:repeat(2,1fr); gap:16px; align-items:stretch; }
.abrp-page .art-price--feat { grid-column:1 / -1; order:1; }
.abrp-page .art-price { position:relative; display:flex; flex-direction:column; border:1px solid var(--abrp-line); border-radius:var(--abrp-radius-lg); background:#fff; padding:28px 24px; box-shadow:var(--abrp-shadow-sm); }
.abrp-page .art-price--feat { background:radial-gradient(circle at top right,var(--abrp-dark-2),var(--abrp-dark)); border-color:transparent; box-shadow:0 26px 60px rgba(24,24,24,.28); }
.abrp-page .art-price__badge { position:absolute; top:-12px; left:50%; transform:translateX(-50%); display:inline-flex; align-items:center; gap:6px; font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:#fff; background:linear-gradient(150deg,var(--abrp-green-500),var(--abrp-green-700)); padding:7px 15px; border-radius:999px; box-shadow:0 8px 18px rgba(16,185,129,.42); white-space:nowrap; }
.abrp-page .art-price__badge svg { width:12px; height:12px; }
.abrp-page .art-price__mat { font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; font-family:'IBM Plex Mono',ui-monospace,monospace; color:var(--abrp-green-700); margin:0 0 6px; }
.abrp-page .art-price--feat .art-price__mat { color:var(--abrp-green); }
.abrp-page .art-price__name { font-size:1.18rem; font-weight:800; color:var(--abrp-ink); margin:0 0 12px; }
.abrp-page .art-price--feat .art-price__name { color:#fff; }
.abrp-page .art-price__val { display:flex; align-items:baseline; gap:5px; margin:0 0 4px; flex-wrap:wrap; }
.abrp-page .art-price__val b { font-size:1.7rem; font-weight:800; letter-spacing:-.02em; color:var(--abrp-ink); white-space:nowrap; }
.abrp-page .art-price--feat .art-price__val b { color:#fff; }
.abrp-page .art-price__val span { font-size:.86rem; color:var(--abrp-muted); }
.abrp-page .art-price--feat .art-price__val span { color:var(--abrp-on-dark-muted); }
.abrp-page .art-price__sub { font-size:.86rem; line-height:1.45; color:var(--abrp-muted); margin:0 0 18px; }
.abrp-page .art-price--feat .art-price__sub { color:var(--abrp-on-dark-muted); }
.abrp-page .art-price__list { list-style:none; margin:0 0 22px; padding:18px 0 0; display:grid; gap:11px; border-top:1px solid var(--abrp-line); }
.abrp-page .art-price--feat .art-price__list { border-top-color:rgba(255,255,255,.16); }
.abrp-page .art-price__list li { display:flex; gap:10px; align-items:flex-start; font-size:.92rem; line-height:1.45; color:var(--abrp-text); }
.abrp-page .art-price--feat .art-price__list li { color:#e6ebf0; }
.abrp-page .art-price__list svg { flex:none; width:17px; height:17px; color:var(--abrp-green-700); margin-top:2px; }
.abrp-page .art-price--feat .art-price__list svg { color:var(--abrp-green); }
.abrp-page .art-price .abrp-btn { margin-top:auto; width:100%; justify-content:center; }
@media(max-width:560px){ .abrp-page .art-pricing{ grid-template-columns:1fr; } .abrp-page .art-price--feat{ order:0; } }

/* =====================================================================
   Sections métier (intro + repères de prix + lien vers sous-guide)
   ===================================================================== */
.abrp-page .abrp-trade { margin-top:26px; border:1px solid var(--abrp-line); border-radius:var(--abrp-radius-lg); background:var(--abrp-surface); padding:26px clamp(20px,2.6vw,30px) 24px; }
.abrp-page .abrp-trade__intro { margin:0 0 18px; color:var(--abrp-text); font-size:1.0125rem; line-height:1.65; }
.abrp-page .abrp-trade__points { list-style:none; margin:0 0 18px; padding:0; display:grid; gap:0; border:1px solid var(--abrp-line); border-radius:var(--abrp-radius); background:#fff; overflow:hidden; }
.abrp-page .abrp-trade__points li { display:flex; align-items:baseline; justify-content:space-between; gap:16px; padding:13px 18px; border-top:1px solid var(--abrp-line); font-size:.95rem; }
.abrp-page .abrp-trade__points li:first-child { border-top:0; }
.abrp-page .abrp-trade__points .lbl { color:var(--abrp-text); }
.abrp-page .abrp-trade__points .val { font-weight:800; color:var(--abrp-green-700); white-space:nowrap; font-variant-numeric:tabular-nums; }
.abrp-page .abrp-trade__link { display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:.95rem; color:var(--abrp-green-700); }
.abrp-page .abrp-trade__link svg { width:17px; height:17px; transition:transform .2s var(--abrp-ease); }
.abrp-page .abrp-trade__link:hover svg { transform:translateX(4px); }

/* ---- Mini-stats "en bref" ---- */
.abrp-page .art-stats { margin-top:26px; display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.abrp-page .art-stat { border:1px solid var(--abrp-line); border-radius:var(--abrp-radius); background:#fff; padding:20px 18px; box-shadow:0 1px 2px rgba(24,24,24,.04); }
.abrp-page .art-stat__ico { width:36px; height:36px; border-radius:10px; display:grid; place-items:center; background:var(--abrp-surface); color:var(--abrp-green-700); margin-bottom:12px; }
.abrp-page .art-stat__ico svg { width:20px; height:20px; }
.abrp-page .art-stat__val { font-size:1.5rem; font-weight:800; letter-spacing:-.02em; color:var(--abrp-ink); line-height:1; margin:0; }
.abrp-page .art-stat__lbl { font-size:.85rem; color:var(--abrp-muted); margin:7px 0 0; line-height:1.4; }
@media(max-width:480px){ .abrp-page .art-stats{ grid-template-columns:1fr; } }

/* =====================================================================
   Cas concret (objection → réponse → bénéfice)
   ===================================================================== */
.abrp-page .art-case3 { margin-top:26px; display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.abrp-page .art-case3__card { position:relative; border:1px solid var(--abrp-line); border-radius:var(--abrp-radius-lg); background:#fff; padding:22px 22px 24px; box-shadow:var(--abrp-shadow-sm); }
.abrp-page .art-case3__card--benef { background:radial-gradient(circle at top right,var(--abrp-dark-2),var(--abrp-dark)); border-color:transparent; }
.abrp-page .art-case3__tag { display:inline-flex; align-items:center; gap:8px; font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; font-weight:600; margin:0 0 12px; }
.abrp-page .art-case3__card--obj .art-case3__tag { color:#b45309; }
.abrp-page .art-case3__card--rep .art-case3__tag { color:var(--abrp-green-700); }
.abrp-page .art-case3__card--benef .art-case3__tag { color:var(--abrp-green); }
.abrp-page .art-case3__ico { width:34px; height:34px; border-radius:10px; display:grid; place-items:center; margin-bottom:12px; }
.abrp-page .art-case3__card--obj .art-case3__ico { background:#fff5e8; color:#c2610c; }
.abrp-page .art-case3__card--rep .art-case3__ico { background:#e9f8f1; color:var(--abrp-green-700); }
.abrp-page .art-case3__card--benef .art-case3__ico { background:rgba(255,255,255,.14); color:var(--abrp-green); }
.abrp-page .art-case3__card p { margin:0; font-size:.96rem; line-height:1.58; color:var(--abrp-text); }
.abrp-page .art-case3__card--benef p { color:#e6ebf0; }
.abrp-page .art-case3__card p strong { color:var(--abrp-ink); font-weight:700; }
.abrp-page .art-case3__card--benef p strong { color:#fff; }
.abrp-page .art-case3__quote { margin-top:24px; display:flex; gap:14px; align-items:center; padding:18px 22px; border:1px solid var(--abrp-line); border-radius:var(--abrp-radius); background:var(--abrp-surface); font-size:.96rem; color:var(--abrp-text); }
.abrp-page .art-case3__quote b { color:var(--abrp-ink); }
@media(max-width:820px){ .abrp-page .art-case3{ grid-template-columns:1fr; } }

/* =====================================================================
   Avis du pro
   ===================================================================== */
.abrp-page .art-pro { position:relative; overflow:hidden; margin:26px 0 0; padding:40px 44px 34px; border-radius:var(--abrp-radius-lg); background:radial-gradient(120% 140% at 100% 0%, #12332a 0%, #181818 58%); color:#fff; box-shadow:0 24px 60px -22px rgba(10,125,90,.55); }
.abrp-page .art-pro::before { content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:linear-gradient(180deg,var(--abrp-green),var(--abrp-green-700)); }
.abrp-page .art-pro__quote { position:absolute; top:-18px; right:24px; font-family:Georgia,'Times New Roman',serif; font-size:190px; line-height:1; color:var(--abrp-green); opacity:.16; pointer-events:none; user-select:none; }
.abrp-page .art-pro .art-pro__lbl { position:relative; display:inline-flex; align-items:center; gap:7px; font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:#fff; margin:0 0 18px; }
.abrp-page .art-pro blockquote { position:relative; margin:0; font-size:1.32rem; line-height:1.5; color:#f4f8f6; font-weight:600; letter-spacing:-.015em; max-width:44ch; }
.abrp-page .art-pro blockquote em { font-style:normal; color:#fff; box-shadow:inset 0 -.5em 0 rgba(10,125,90,.42); padding:0 .05em; }
.abrp-page .art-pro__foot { display:flex; align-items:center; gap:14px; margin-top:26px; padding-top:22px; border-top:1px solid rgba(255,255,255,.14); }
.abrp-page .art-pro__ph { width:52px; height:52px; border-radius:14px; object-fit:contain; padding:9px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.16); flex:none; }
.abrp-page .art-pro .art-pro__name { margin:0; font-size:1rem; font-weight:700; color:#fff; letter-spacing:.2px; }
.abrp-page .art-pro .art-pro__role { margin:3px 0 0; font-size:.85rem; color:rgba(255,255,255,.72); }
@media(max-width:560px){ .abrp-page .art-pro{ padding:32px 24px 26px; } .abrp-page .art-pro blockquote{ font-size:1.15rem; } .abrp-page .art-pro__quote{ font-size:140px; right:12px; } }

/* =====================================================================
   FAQ (details)
   ===================================================================== */
.abrp-page .abrp-faq { margin-top:8px; }
.abrp-page .abrp-faq-item { border:1px solid var(--abrp-line); border-radius:var(--abrp-radius); background:#fff; margin-bottom:12px; overflow:hidden; }
.abrp-page .abrp-faq-summary { list-style:none; cursor:pointer; padding:18px 22px; font-weight:700; color:var(--abrp-ink); display:flex; justify-content:space-between; align-items:center; gap:16px; }
.abrp-page .abrp-faq-summary::-webkit-details-marker { display:none; }
.abrp-page .abrp-faq-summary::after { content:"+"; font-size:1.4rem; font-weight:400; color:var(--abrp-green-500); line-height:1; transition:transform var(--abrp-transition); flex:none; }
.abrp-page details[open] .abrp-faq-summary::after { transform:rotate(45deg); }
.abrp-page .abrp-faq-text { padding:0 22px 20px; color:var(--abrp-text); }
.abrp-page .abrp-faq-text p { margin:0; line-height:1.66; }
.abrp-page .abrp-faq-text strong { color:var(--abrp-ink); font-weight:700; }

/* =====================================================================
   Gros CTA (bandeau sombre)
   ===================================================================== */
.abrp-page .art-cta { margin-top:clamp(2.4rem,1.8rem + 2.6vw,3.6rem); }
.abrp-page .abrp-cta-band { border-radius:var(--abrp-radius-lg); padding:clamp(2rem,1.2rem + 3.5vw,3.2rem) clamp(1.4rem,1rem + 3vw,2.6rem); background:radial-gradient(circle at top right,var(--abrp-dark-2) 0%,var(--abrp-dark) 100%); box-shadow:0 20px 50px rgba(24,24,24,.4); text-align:center; }
.abrp-page .abrp-cta-band__eyebrow { display:inline-flex; align-items:center; gap:8px; font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--abrp-green); font-weight:600; margin:0 0 14px; }
.abrp-page .abrp-cta-band__eyebrow svg { width:15px; height:15px; }
.abrp-page .abrp-cta-band h2 { color:#fff; margin:0 0 10px; font-size:clamp(1.5rem,1.2rem + 1.4vw,2rem); font-weight:800; letter-spacing:-.02em; }
.abrp-page .abrp-cta-band p { color:var(--abrp-on-dark-muted); margin:0 auto 24px; max-width:36em; font-size:.98rem; line-height:1.6; }
.abrp-page .abrp-cta-band p strong { color:#fff; }
.abrp-page .abrp-cta-band__actions { display:flex; flex-wrap:wrap; gap:14px; justify-content:center; }
.abrp-page .abrp-cta-band__note { margin-top:20px; font-size:.78rem; color:var(--abrp-on-dark-muted); opacity:.85; }

/* =====================================================================
   Bloc auteur
   ===================================================================== */
.abrp-page .art-author { margin-top:clamp(2.4rem,1.8rem + 2.6vw,3.6rem); display:grid; grid-template-columns:auto 1fr; gap:20px; align-items:center; border-top:1px solid var(--abrp-line); padding-top:30px; }
.abrp-page .art-author__ph { width:76px; height:76px; border-radius:18px; object-fit:contain; background:var(--abrp-dark); border:1px solid var(--abrp-dark); padding:12px; }
.abrp-page .art-author__eyebrow { font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--abrp-muted); margin:0; }
.abrp-page .art-author__name { font-size:1.1rem; font-weight:800; color:var(--abrp-ink); margin:4px 0 6px; }
.abrp-page .art-author p { font-size:.92rem; line-height:1.55; color:var(--abrp-text); margin:0; }
.abrp-page .art-author__social { display:flex; gap:10px; margin-top:14px; }
.abrp-page .art-author__social a { width:38px; height:38px; border-radius:10px; display:grid; place-items:center; background:var(--abrp-surface); border:1px solid var(--abrp-line); color:var(--abrp-dark); transition:all var(--abrp-transition); }
.abrp-page .art-author__social a svg { width:19px; height:19px; }
.abrp-page .art-author__social a:hover { background:var(--abrp-dark); border-color:var(--abrp-dark); color:#fff; transform:translateY(-2px); }
@media(max-width:560px){ .abrp-page .art-author{ grid-template-columns:1fr; } }

/* ==========================================================================
   Fil d'Ariane global (.abrp-bc) - mu-plugin abrp-breadcrumb.php
   Rendu calque sur Groupe Delaud, palette ABRP.
   Systeme UNIQUE : pages, articles et archives. Pas de fil dans le contenu.

   CONTRAINTE DU SITE : le header (.abrp-header-dark, element HTML du builder Blocksy)
   vit dans un .ct-header en position:fixed. Le contenu demarre donc SOUS lui, et chaque
   gabarit compense a sa maniere : les heros avec un padding-top de 192px, les pages sans
   hero avec rien. Le bandeau est donc pose EN FLUX, decale de la hauteur du header :
   sur partout, rien n'est jamais masque ni recouvert.

   Il est emis sur le hook blocksy:content:top, donc enfant direct de main : pleine largeur,
   sans hack 100vw (qui debordait de la barre de defilement).

   Cout : sur les pages a hero, le padding-top de 192px du hero s'ajoute et cree du blanc.
   Pour l'eliminer au nettoyage de style.css : reduire ce padding-top des heros.

   Decalage = hauteur du header : 102px, et 65px sous 1100px ou .abrp-top-bar passe en
   display:none (style.css l.403). A transformer en variable au nettoyage.

   Pas de balises dans ce commentaire : il est imprime tel quel dans le style du head.
   ========================================================================== */
.abrp-bc {
  margin-top:102px; margin-bottom:0;
  width:100%; background:#181818; font-family:inherit;
}
.abrp-bc__inner {
  max-width:1200px; margin:0 auto; padding:11px 20px;
  font-size:.82rem; line-height:1.4; color:#b9c2c9;
  display:flex; flex-wrap:wrap; align-items:center; gap:6px;
}
.abrp-bc__link { color:#b9c2c9; text-decoration:none; transition:color .2s; }
.abrp-bc__link:hover { color:#a4d8a9; }
.abrp-bc__sep { color:#6f7a80; }
.abrp-bc__current { color:#ffffff; font-weight:600; }

@media (max-width:1100px) { .abrp-bc { margin-top:65px; } }
@media (max-width:560px)  { .abrp-bc__inner { font-size:.76rem; padding:9px 16px; } }

/* --------------------------------------------------------------------------
   Rattrapage du double espace en haut de page.
   Les heros portaient un padding-top qui servait a passer sous le header fixe.
   Ce role est desormais tenu par le bandeau : on retire des heros la part qui
   correspond a la hauteur du header (102px), et on garde leur respiration.

   Scope : ".abrp-bc ~ X" = uniquement quand le bandeau precede le hero.
   L'accueil n'a pas de bandeau, donc ses heros gardent leur padding d'origine.
   -------------------------------------------------------------------------- */
.abrp-bc ~ .hero-cluster { padding-top:2.5rem; }              /* base : 8rem */

@media (min-width:1024px) {
  .abrp-bc ~ .hero-cluster { padding-top:5.5rem; }            /* etait 12rem */
  .abrp-bc ~ .hero-reno    { padding-top:3rem; }              /* etait 8rem  */
}



/* ============================================================
   Fix responsive listes abrp-trade__points — 2026-08-11
   Les .val longs (white-space:nowrap) etaient tronques sur
   mobile par l'overflow:hidden de la liste. On autorise le
   passage a la ligne ; les valeurs courtes (prix) restent
   inchangees sur desktop.
   ============================================================ */
.abrp-page .abrp-trade__points li{ flex-wrap:wrap; min-width:0; }
.abrp-page .abrp-trade__points .lbl,
.abrp-page .abrp-trade__points .val{ min-width:0; overflow-wrap:anywhere; }
@media (max-width:640px){
  .abrp-page .abrp-trade__points .val{ white-space:normal; }
}
