
/* =========================================================
   V3.1 — TYPOGRAPHIE SÉCURISÉE
   Priorité 1 : polices installées localement
   Priorité 2 : Google Fonts via les liens HTML
   Priorité 3 : polices système de secours
   ========================================================= */

@font-face {
  font-family: "GAS18 Nunito";
  src:
    local("Nunito ExtraBold"),
    local("Nunito-ExtraBold"),
    local("Nunito 800"),
    local("Nunito");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "GAS18 Lato";
  src:
    local("Lato Regular"),
    local("Lato-Regular"),
    local("Lato");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}


:root{
  --violet:#993366;
  --violet-dark:#663366;
  --blue:#3399CC;
  --blue-soft:#EAF6FC;
  --anthracite:#333333;
  --white:#FFFFFF;
  --paper:#F7F4F8;
  --paper-2:#FBFAFC;
  --line:#E9DDE8;
  --shadow:0 18px 42px rgba(51,51,51,.12);
  --shadow-soft:0 10px 26px rgba(51,51,51,.08);
  --radius-xl:30px;
  --radius-lg:22px;
  --radius-md:16px;
  --max:1180px;
}

/* ==============================
   CHARTE TYPOGRAPHIQUE GAS18
   Titres : Nunito ExtraBold
   Textes : Lato Regular
   ============================== */

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"GAS18 Lato", "Lato", Arial, Helvetica, sans-serif;
  font-weight:400;
  color:var(--anthracite);
  background:var(--white);
  line-height:1.68;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
p{margin:0 0 1rem}
strong{font-weight:800}
.container{max-width:var(--max);margin:0 auto;padding:0 24px}

h1,h2,h3,h4,h5,h6,
.logo,.btn,.menu a,.eyebrow,.kpi strong,.badge,.section-title,.service-code{
  font-family:"GAS18 Nunito", "Nunito", Arial, Helvetica, sans-serif;
  font-weight:800;
}
h1,h2,h3{letter-spacing:-.035em;color:var(--violet)}
h1{font-size:clamp(2.45rem,6vw,4.9rem);line-height:1.02;margin:18px 0 18px}
h2{font-size:clamp(2rem,4vw,3.15rem);line-height:1.08;margin:0 0 14px}
h3{font-size:1.42rem;line-height:1.18;margin:0 0 10px}

.skip-link{position:absolute;left:-999px;top:auto}
.skip-link:focus{left:20px;top:20px;background:#fff;color:#000;padding:10px 14px;z-index:9999;border-radius:10px}

/* TOPBAR + HEADER */
.topbar{
  background:linear-gradient(90deg,var(--violet-dark),var(--violet));
  color:#fff;
  font-size:.92rem;
}
.topbar .container{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:center;
  padding-top:8px;
  padding-bottom:8px;
}
.topbar a{text-decoration:underline;text-underline-offset:3px}

.site-header{
  position:sticky;
  top:0;
  z-index:1000;
  background:rgba(255,255,255,.95);
  backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--line);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:15px 24px;
}
.logo{
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--violet);
  font-size:1.25rem;
  line-height:1.02;
}
.logo small{
  color:var(--anthracite);
  font-size:.86rem;
  font-family:"GAS18 Lato", "Lato", Arial, Helvetica, sans-serif;
  font-weight:400;
}
.logo-mark{
  display:grid;
  place-items:center;
  width:56px;
  height:56px;
  border-radius:20px;
  background:linear-gradient(135deg,var(--violet),var(--violet-dark));
  color:#fff;
  box-shadow:0 8px 20px rgba(153,51,102,.22);
}
.nav-toggle{
  display:none;
  border:0;
  background:var(--violet);
  color:#fff;
  border-radius:14px;
  padding:10px 13px;
  font-family:"GAS18 Nunito", "Nunito", Arial, Helvetica, sans-serif;
  font-weight:800;
}
.main-nav ul{list-style:none;margin:0;padding:0}
.menu{display:flex;align-items:center;gap:4px}
.menu>li{position:relative}
.menu a{
  display:flex;
  align-items:center;
  gap:7px;
  padding:12px 13px;
  border-radius:15px;
  color:var(--anthracite);
  font-size:.96rem;
}
.menu a:hover,.menu a.active{
  background:var(--paper);
  color:var(--violet);
}
.submenu{
  display:none;
  position:absolute;
  min-width:250px;
  left:0;
  top:100%;
  padding:10px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:var(--shadow);
}
.has-submenu:hover .submenu,.has-submenu:focus-within .submenu{display:block}
.submenu a{padding:10px 12px}
.header-cta{display:flex;gap:10px;align-items:center}

/* BUTTONS */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  border-radius:999px;
  padding:12px 19px;
  border:2px solid transparent;
  transition:.2s ease;
  cursor:pointer;
}
.btn-primary{background:var(--violet);color:#fff}
.btn-primary:hover{background:var(--violet-dark);transform:translateY(-1px)}
.btn-outline{border-color:var(--violet);color:var(--violet);background:#fff}
.btn-outline:hover{background:var(--paper)}
.btn-blue{background:var(--blue);color:#fff}
.btn-blue:hover{filter:brightness(.95);transform:translateY(-1px)}

/* HERO */
.hero{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 88% 16%, rgba(51,153,204,.22), transparent 30%),
    radial-gradient(circle at 12% 74%, rgba(153,51,102,.14), transparent 32%),
    linear-gradient(135deg,#fff 0%,#fbf7fb 48%,#eaf6fc 100%);
}
.hero:before{
  content:"";
  position:absolute;
  inset:auto -80px -90px auto;
  width:330px;
  height:330px;
  border-radius:50%;
  border:42px solid rgba(153,51,102,.08);
}
.hero .container{
  display:grid;
  grid-template-columns:1.04fr .96fr;
  gap:44px;
  align-items:center;
  padding-top:64px;
  padding-bottom:76px;
}
.eyebrow{
  display:inline-flex;
  gap:10px;
  align-items:center;
  background:#fff;
  border:1px solid var(--line);
  border-radius:999px;
  padding:8px 13px;
  color:var(--violet);
  box-shadow:0 6px 18px rgba(0,0,0,.04);
}
.hero p.lead,.page-hero p{
  font-size:1.18rem;
  color:#555;
  max-width:700px;
}
.hero-actions{display:flex;gap:13px;flex-wrap:wrap;margin-top:24px}
.hero-card{
  border-radius:var(--radius-xl);
  min-height:470px;
  background:
    linear-gradient(180deg,rgba(153,51,102,.06),rgba(51,153,204,.10)),
    url("../img/hero-mobility.svg") center/cover no-repeat;
  box-shadow:var(--shadow);
  position:relative;
  overflow:hidden;
  border:8px solid #fff;
}
.hero-card .floating{
  position:absolute;
  left:24px;
  right:24px;
  bottom:24px;
  background:rgba(255,255,255,.94);
  padding:20px;
  border-radius:24px;
  box-shadow:0 10px 25px rgba(0,0,0,.12);
  border-left:7px solid var(--blue);
}
.hero-card .floating strong{color:var(--violet);font-family:"GAS18 Nunito", "Nunito", Arial, Helvetica, sans-serif;font-weight:800}

/* KPI */
.kpis{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  margin-top:-40px;
  position:relative;
  z-index:2;
}
.kpi{
  background:#fff;
  border:1px solid var(--line);
  border-radius:24px;
  padding:23px 18px;
  text-align:center;
  box-shadow:var(--shadow-soft);
}
.kpi strong{
  display:block;
  color:var(--violet);
  font-size:2.25rem;
  line-height:1;
}
.kpi span{font-weight:400;color:#555;font-size:.95rem}

/* SECTIONS */
.section{padding:78px 0}
.section.soft{background:var(--paper)}
.section.blue{background:var(--blue-soft)}
.section-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  margin-bottom:34px;
}
.section-title{margin:0}
.section-text{color:#555;max-width:670px;margin:12px 0 0}
.grid{display:grid;gap:24px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}

.card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius-xl);
  padding:28px;
  box-shadow:var(--shadow-soft);
}
.card h3{color:var(--violet)}
.card p{color:#555}

.icon{
  width:56px;
  height:56px;
  border-radius:20px;
  display:grid;
  place-items:center;
  background:var(--paper);
  color:var(--violet);
  font-size:1.35rem;
  margin-bottom:16px;
}
.service-code{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:62px;
  height:62px;
  border-radius:22px;
  background:#fff;
  color:var(--violet);
  font-size:1.1rem;
  margin-bottom:18px;
  box-shadow:0 10px 22px rgba(51,51,51,.13);
}
.service-card{
  min-height:305px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  position:relative;
  overflow:hidden;
  color:#fff;
  background:linear-gradient(135deg,var(--violet),var(--violet-dark));
  border:0;
}
.service-card:nth-child(even){
  background:linear-gradient(135deg,var(--blue),var(--violet-dark));
}
.service-card:before{
  content:"";
  position:absolute;
  inset:0;
  background:url("../img/service-pattern.svg") center/cover;
  opacity:.16;
}
.service-card>*{position:relative}
.service-card h3{color:#fff;font-size:1.55rem}
.service-card p{color:rgba(255,255,255,.92)}
.service-card .btn{
  align-self:flex-start;
  margin-top:12px;
  background:#fff;
  color:var(--violet);
}

.banner{
  background:linear-gradient(135deg,var(--violet),var(--violet-dark));
  color:#fff;
  border-radius:var(--radius-xl);
  padding:40px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:24px;
  align-items:center;
  box-shadow:var(--shadow);
}
.banner h2{margin:0;color:#fff;font-size:2rem}
.banner p{margin:8px 0 0;color:rgba(255,255,255,.88)}

.timeline{display:grid;gap:18px}
.timeline-item{
  display:grid;
  grid-template-columns:130px 1fr;
  gap:20px;
  align-items:start;
}
.timeline-item time{
  font-family:"GAS18 Nunito", "Nunito", Arial, Helvetica, sans-serif;
  font-weight:800;
  color:var(--violet);
  background:#fff;
  border-radius:999px;
  padding:8px 12px;
  text-align:center;
  border:1px solid var(--line);
}

/* PARTNERS */
.partners-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:18px;
}
.partner{
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  height:112px;
  display:grid;
  place-items:center;
  padding:16px;
  filter: none !important;
  opacity:.78;
  transition:.25s;
}
.partner:hover{
  filter:none;
  opacity:1;
  transform:translateY(-3px);
  box-shadow:0 12px 28px rgba(51,51,51,.1);
}

/* PAGE HERO */
.page-hero{
  background:
    radial-gradient(circle at 86% 12%, rgba(51,153,204,.22), transparent 28%),
    linear-gradient(135deg,#fff,var(--paper));
  padding:58px 0;
  border-bottom:1px solid var(--line);
}
.breadcrumb{
  font-family:"GAS18 Nunito", "Nunito", Arial, Helvetica, sans-serif;
  font-weight:800;
  color:var(--violet);
  margin-bottom:12px;
}
.page-hero h1{margin:0 0 14px}

/* LISTS / FORMS */
.list-check{padding:0;margin:18px 0 0;list-style:none}
.list-check li{
  padding-left:32px;
  position:relative;
  margin:10px 0;
}
.list-check li:before{
  content:"✓";
  position:absolute;
  left:0;
  top:0;
  color:var(--blue);
  font-family:"GAS18 Nunito", "Nunito", Arial, Helvetica, sans-serif;
  font-weight:800;
}

.contact-layout{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:28px;
}
.form{display:grid;gap:14px}
.input,textarea,select{
  width:100%;
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px 16px;
  font:inherit;
  background:#fff;
}
.input:focus,textarea:focus,select:focus{
  outline:3px solid rgba(51,153,204,.25);
  border-color:var(--blue);
}
textarea{min-height:150px}
.notice{
  background:#eef8fd;
  border:1px solid rgba(51,153,204,.35);
  border-radius:20px;
  padding:18px;
  color:var(--anthracite);
}
.badge{
  display:inline-flex;
  background:var(--paper);
  color:var(--violet);
  border-radius:999px;
  padding:6px 12px;
  font-size:.86rem;
}
.event-date{
  font-family:"GAS18 Nunito", "Nunito", Arial, Helvetica, sans-serif;
  font-weight:800;
  color:var(--blue);
}
.map-placeholder{
  height:330px;
  border-radius:24px;
  background:linear-gradient(135deg,#e8f4f9,#f9edf6);
  display:grid;
  place-items:center;
  color:var(--violet);
  font-family:"GAS18 Nunito", "Nunito", Arial, Helvetica, sans-serif;
  font-weight:800;
  text-align:center;
  padding:20px;
}

/* FOOTER */
.site-footer{background:var(--anthracite);color:#fff}
.footer-main{
  display:grid;
  grid-template-columns:1.2fr .8fr .8fr .8fr;
  gap:28px;
  padding:54px 24px;
}
.site-footer h3{margin:0 0 14px;color:#fff}
.site-footer p,.site-footer a{color:rgba(255,255,255,.82)}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.12);
  padding:18px 24px;
  text-align:center;
  color:rgba(255,255,255,.7);
}

/* RESPONSIVE */
@media(max-width:980px){
  .nav-toggle{display:inline-flex}
  .main-nav{
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:100%;
    background:#fff;
    border-bottom:1px solid var(--line);
    padding:12px 24px;
  }
  .main-nav.open{display:block}
  .menu{display:block}
  .submenu{position:static;box-shadow:none;border:0;padding-left:18px}
  .has-submenu .submenu{display:block}
  .header-cta{display:none}
  .hero .container,.contact-layout{grid-template-columns:1fr}
  .hero-card{min-height:350px}
  .kpis,.grid-3,.grid-2,.partners-grid,.footer-main{grid-template-columns:1fr 1fr}
  .section-head,.banner{display:block}
  .banner .btn{margin-top:18px}
}
@media(max-width:640px){
  .topbar .container{display:block}
  .kpis,.grid-3,.grid-2,.partners-grid,.footer-main{grid-template-columns:1fr}
  .timeline-item{grid-template-columns:1fr}
  .header-inner{padding:12px 18px}
  .logo-mark{width:46px;height:46px}
  .container{padding:0 18px}
  .section{padding:54px 0}
  .hero .container{padding-top:44px;padding-bottom:58px}
}


/* =========================================================
   Vérrouillage final des polices de la charte
   ========================================================= */

body,
p,
li,
input,
textarea,
select,
small,
.card p,
.section-text,
.hero p.lead,
.page-hero p {
  font-family: "GAS18 Lato", "Lato", Arial, Helvetica, sans-serif !important;
  font-weight: 400 !important;
}

h1, h2, h3, h4, h5, h6,
.logo,
.btn,
.menu a,
.eyebrow,
.kpi strong,
.badge,
.section-title,
.service-code,
.breadcrumb,
.event-date,
.timeline-item time,
.map-placeholder {
  font-family: "GAS18 Nunito", "Nunito", Arial, Helvetica, sans-serif !important;
  font-weight: 800 !important;
}



/* V3.2 — Logos partenaires réels */
.partner img {
  max-width: 100%;
  max-height: 82px;
  object-fit: contain;
}

.partners-grid-color .partner {
  filter: none;
  opacity: 1;
}

.partners-grid-color .partner:hover {
  transform: translateY(-3px);
}


/* V3.3 — Logos partenaires alignés sur une même ligne */
.partners-single-line {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 22px;
  flex-wrap: nowrap;
}

.partners-single-line .partner {
  flex: 1 1 0;
  min-width: 0;
  height: 112px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.partners-single-line .partner img {
  max-width: 100%;
  max-height: 64px;
  width: auto;
  height: auto;
  object-fit: contain;
}

/* Légère priorité visuelle aux financeurs institutionnels */
.partners-single-line .partner:nth-child(-n+3) img {
  max-height: 72px;
}

@media (max-width: 1100px) {
  .partners-single-line {
    flex-wrap: wrap;
    justify-content: center;
  }

  .partners-single-line .partner {
    flex: 0 1 calc(25% - 22px);
  }
}

@media (max-width: 760px) {
  .partners-single-line .partner {
    flex: 0 1 calc(50% - 18px);
  }
}

@media (max-width: 440px) {
  .partners-single-line .partner {
    flex: 0 1 100%;
  }
}


/* V3.7 — Footer logo blanc optimisé */
.footer-logo img {
  height: 90px;
  margin-bottom: 20px;
  filter: drop-shadow(0 3px 8px rgba(0,0,0,0.35));
}


/* FIX FINAL LOGO FOOTER */
.footer-logo img {
  height: 85px;
  display:block;
}


/* =========================================================
   V4+ — Cartes services premium avec photos
   ========================================================= */

.service-card {
  min-height: 330px;
  border-radius: var(--radius-xl);
  overflow: hidden;
  background-color: var(--violet-dark);
  background-size: cover !important;
  background-position: center !important;
  box-shadow: 0 18px 44px rgba(51, 51, 51, .18);
  transform: translateY(0);
  transition:
    transform .35s ease,
    box-shadow .35s ease,
    filter .35s ease;
}

/* Overlay violet + dégradé lisibilité */
.service-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      180deg,
      rgba(51, 51, 51, .08) 0%,
      rgba(102, 51, 102, .42) 46%,
      rgba(102, 51, 102, .88) 100%
    );
  opacity: 1;
  z-index: 0;
  transition: background .35s ease, opacity .35s ease;
}

/* Léger voile bleu/violet au survol */
.service-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 80% 20%, rgba(51, 153, 204, .24), transparent 34%),
    linear-gradient(135deg, rgba(153, 51, 102, .18), rgba(102, 51, 102, .35));
  opacity: 0;
  z-index: 0;
  transition: opacity .35s ease;
}

.service-card > * {
  position: relative;
  z-index: 1;
}

.service-card h3 {
  text-shadow: 0 3px 14px rgba(0,0,0,.34);
}

.service-card p {
  color: rgba(255,255,255,.96);
  text-shadow: 0 2px 10px rgba(0,0,0,.30);
}

.service-code {
  background: rgba(255,255,255,.95);
  color: var(--violet);
  box-shadow: 0 12px 28px rgba(0,0,0,.22);
}

.service-card .btn {
  box-shadow: 0 10px 24px rgba(0,0,0,.18);
}

.service-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 26px 58px rgba(51, 51, 51, .26);
}

.service-card:hover::before {
  background:
    linear-gradient(
      180deg,
      rgba(51, 51, 51, .04) 0%,
      rgba(153, 51, 102, .38) 42%,
      rgba(102, 51, 102, .92) 100%
    );
}

.service-card:hover::after {
  opacity: 1;
}

.service-card:hover .service-code {
  transform: scale(1.04);
}

.service-card .service-code,
.service-card h3,
.service-card p,
.service-card .btn {
  transition: transform .35s ease;
}

.service-card:hover h3,
.service-card:hover p,
.service-card:hover .btn {
  transform: translateY(-3px);
}

@media (prefers-reduced-motion: reduce) {
  .service-card,
  .service-card::before,
  .service-card::after,
  .service-card .service-code,
  .service-card h3,
  .service-card p,
  .service-card .btn {
    transition: none;
  }

  .service-card:hover,
  .service-card:hover h3,
  .service-card:hover p,
  .service-card:hover .btn {
    transform: none;
  }
}



/* =========================================================
   V4.1 — Correction menu desktop sur une ligne
   ========================================================= */

.header-inner {
  gap: 18px;
}

.logo img {
  height: 58px !important;
  width: auto;
  max-width: 175px;
}

.main-nav {
  flex: 1;
  display: flex;
  justify-content: center;
  min-width: 0;
}

.menu {
  gap: 6px;
  flex-wrap: nowrap;
}

.menu a {
  white-space: nowrap;
  padding: 11px 12px;
  font-size: .94rem;
  line-height: 1.2;
}

.header-cta {
  flex-shrink: 0;
}

.header-cta .btn {
  white-space: nowrap;
  padding: 11px 17px;
}

/* Ajustement entre desktop large et tablette */
@media (max-width: 1180px) {
  .logo img {
    max-width: 155px;
  }

  .menu a {
    font-size: .88rem;
    padding: 10px 9px;
  }

  .header-cta .btn {
    font-size: .9rem;
    padding: 10px 14px;
  }
}

/* À partir de cette largeur, on bascule en menu mobile pour éviter les retours à la ligne */
@media (max-width: 1040px) {
  .nav-toggle {
    display: inline-flex;
  }

  .main-nav {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    background: #fff;
    border-bottom: 1px solid var(--line);
    padding: 12px 24px;
  }

  .main-nav.open {
    display: block;
  }

  .menu {
    display: block;
  }

  .menu a {
    white-space: normal;
    font-size: 1rem;
    padding: 12px 13px;
  }

  .submenu {
    position: static;
    box-shadow: none;
    border: 0;
    padding-left: 18px;
  }

  .has-submenu .submenu {
    display: block;
  }

  .header-cta {
    display: none;
  }
}



/* V4.2 — Icônes globales */
.btn i {
  width:18px;
  height:18px;
  margin-right:6px;
}

.menu a i {
  width:16px;
  height:16px;
}



/* V4.3 — Alignement menu avec icônes */
.header-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.main-nav {
  flex:1;
  display:flex;
  justify-content:center;
}

.menu {
  display:flex;
  align-items:center;
  gap:18px;
}

.menu a {
  display:flex;
  align-items:center;
  gap:6px;
}

/* Empêche le décalage vertical */
.menu li {
  display:flex;
  align-items:center;
}



/* =========================================================
   V4.4 — Header corrigé + sticky premium + animations menu
   ========================================================= */

/* Header premium */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(255,255,255,.94);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  box-shadow: 0 8px 28px rgba(51,51,51,.06);
  transition: box-shadow .25s ease, background .25s ease, border-color .25s ease;
}

/* Grille stable : logo / menu / boutons */
.header-inner {
  display: grid !important;
  grid-template-columns: 185px minmax(0, 1fr) auto;
  align-items: center !important;
  gap: 22px !important;
  padding-top: 12px !important;
  padding-bottom: 12px !important;
}

/* Logo : largeur réservée pour éviter tout chevauchement */
.logo {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: 185px !important;
  min-width: 185px !important;
  max-width: 185px !important;
  overflow: visible !important;
  position: relative !important;
  z-index: 2 !important;
}

.logo img {
  height: 62px !important;
  width: auto !important;
  max-width: 180px !important;
  object-fit: contain !important;
  display: block !important;
}

/* Navigation parfaitement centrée */
.main-nav {
  min-width: 0 !important;
  width: 100% !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

.menu {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 18px !important;
  flex-wrap: nowrap !important;
  width: auto !important;
}

.menu > li {
  display: flex !important;
  align-items: center !important;
  position: relative !important;
  margin: 0 !important;
  padding: 0 !important;
}

.menu a {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: nowrap !important;
  padding: 10px 4px !important;
  line-height: 1.1 !important;
  border-radius: 0 !important;
  background: transparent !important;
  transition: color .22s ease, transform .22s ease !important;
}

/* Animation premium : soulignement progressif */
.menu > li > a::after {
  content: "";
  position: absolute;
  left: 4px;
  right: 4px;
  bottom: 2px;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--violet), var(--blue));
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .25s ease;
}

.menu > li > a:hover,
.menu > li > a.active {
  color: var(--violet) !important;
  transform: translateY(-1px);
}

.menu > li > a:hover::after,
.menu > li > a.active::after {
  transform: scaleX(1);
}

/* Sous-menu animé */
.submenu {
  top: calc(100% + 8px) !important;
  border-radius: 22px !important;
  transform: translateY(8px) scale(.98);
  opacity: 0;
  pointer-events: none;
  display: block !important;
  transition: opacity .22s ease, transform .22s ease;
}

.has-submenu:hover .submenu,
.has-submenu:focus-within .submenu {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

.submenu a {
  border-radius: 14px !important;
  padding: 11px 13px !important;
  justify-content: flex-start !important;
}

.submenu a:hover {
  background: var(--paper) !important;
}

/* Boutons header */
.header-cta {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 12px !important;
  flex-shrink: 0 !important;
}

.header-cta .btn {
  white-space: nowrap !important;
  min-height: 54px;
  padding: 12px 22px !important;
  box-shadow: 0 10px 24px rgba(153,51,102,.10);
  transition: transform .22s ease, box-shadow .22s ease, background .22s ease;
}

.header-cta .btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 34px rgba(153,51,102,.18);
}

.header-cta .btn i {
  width: 21px;
  height: 21px;
}

/* Réduction progressive avant menu mobile */
@media (max-width: 1260px) {
  .header-inner {
    grid-template-columns: 165px minmax(0, 1fr) auto;
    gap: 16px !important;
  }

  .logo,
  .logo img {
    max-width: 160px !important;
  }

  .logo {
    width: 165px !important;
    min-width: 165px !important;
  }

  .menu {
    gap: 13px !important;
  }

  .menu a {
    font-size: .9rem !important;
  }

  .header-cta .btn {
    padding: 11px 17px !important;
  }
}

/* Passage en menu mobile AVANT que ça chevauche */
@media (max-width: 1120px) {
  .header-inner {
    display: flex !important;
    justify-content: space-between !important;
  }

  .logo {
    width: auto !important;
    min-width: 0 !important;
    max-width: 180px !important;
  }

  .logo img {
    max-width: 175px !important;
  }

  .nav-toggle {
    display: inline-flex !important;
  }

  .main-nav {
    display: none !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    top: 100% !important;
    background: rgba(255,255,255,.98) !important;
    border-bottom: 1px solid var(--line) !important;
    padding: 14px 24px 18px !important;
    box-shadow: 0 20px 34px rgba(51,51,51,.10);
  }

  .main-nav.open {
    display: block !important;
    animation: menuDrop .22s ease both;
  }

  .menu {
    display: grid !important;
    gap: 4px !important;
    justify-content: stretch !important;
  }

  .menu a {
    justify-content: flex-start !important;
    padding: 13px 14px !important;
    border-radius: 15px !important;
    font-size: 1rem !important;
    white-space: normal !important;
  }

  .menu > li > a::after {
    display: none;
  }

  .menu a:hover,
  .menu a.active {
    background: var(--paper) !important;
    transform: none;
  }

  .submenu {
    position: static !important;
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto !important;
    display: block !important;
    box-shadow: none !important;
    border: 0 !important;
    padding: 4px 0 6px 18px !important;
  }

  .header-cta {
    display: none !important;
  }
}

@keyframes menuDrop {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-header,
  .menu a,
  .menu > li > a::after,
  .submenu,
  .header-cta .btn,
  .main-nav.open {
    transition: none !important;
    animation: none !important;
    transform: none !important;
  }
}



/* =========================================================
   V4.5 — Correction définitive chevauchement header
   Cause : largeur max du container trop étroite pour logo + menu + CTA.
   Solution : header pleine largeur contrôlée, contenu du site inchangé.
   ========================================================= */

.site-header .container.header-inner {
  max-width: 1480px !important;
  width: 100% !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
}

/* Répartition plus confortable */
.header-inner {
  grid-template-columns: 190px minmax(620px, 1fr) auto !important;
  column-gap: 28px !important;
}

/* Logo bien contenu */
.logo {
  width: 190px !important;
  min-width: 190px !important;
  max-width: 190px !important;
}

.logo img {
  max-width: 185px !important;
  height: 60px !important;
}

/* Menu compact mais lisible */
.menu {
  gap: 24px !important;
}

.menu a {
  font-size: .96rem !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Les boutons restent dans leur colonne, sans chevaucher le menu */
.header-cta {
  min-width: 390px !important;
}

.header-cta .btn {
  padding-left: 22px !important;
  padding-right: 22px !important;
}

/* Ajustement pour écrans intermédiaires */
@media (max-width: 1380px) {
  .site-header .container.header-inner {
    max-width: 100% !important;
  }

  .header-inner {
    grid-template-columns: 170px minmax(560px, 1fr) auto !important;
    column-gap: 18px !important;
  }

  .logo {
    width: 170px !important;
    min-width: 170px !important;
    max-width: 170px !important;
  }

  .logo img {
    max-width: 165px !important;
    height: 56px !important;
  }

  .menu {
    gap: 18px !important;
  }

  .menu a {
    font-size: .92rem !important;
  }

  .header-cta {
    min-width: 360px !important;
  }

  .header-cta .btn {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }
}

/* Passage mobile avant toute compression excessive */
@media (max-width: 1220px) {
  .header-inner {
    display: flex !important;
  }

  .main-nav {
    display: none !important;
  }

  .main-nav.open {
    display: block !important;
  }

  .nav-toggle {
    display: inline-flex !important;
  }

  .header-cta {
    display: none !important;
    min-width: 0 !important;
  }
}



/* =========================================================
   V4.6 — Menu déroulant premium ++
   ========================================================= */

.submenu {
  min-width: 300px !important;
  padding: 16px !important;
  border-radius: 26px !important;
  border: 1px solid rgba(153, 51, 102, .14) !important;
  background: rgba(255, 255, 255, .98) !important;
  box-shadow: 0 24px 55px rgba(51, 51, 51, .15) !important;
  backdrop-filter: blur(14px) saturate(150%);
  -webkit-backdrop-filter: blur(14px) saturate(150%);
}

.submenu li {
  display: block !important;
  width: 100% !important;
}

.submenu a {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: 100% !important;
  padding: 13px 18px !important;
  margin: 0 0 6px 0 !important;
  border-radius: 16px !important;
  color: var(--anthracite) !important;
  line-height: 1.25 !important;
  white-space: nowrap !important;
  background: transparent !important;
  transition:
    background .22s ease,
    color .22s ease,
    transform .22s ease,
    padding-left .22s ease !important;
}

.submenu li:last-child a {
  margin-bottom: 0 !important;
}

.submenu a::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--blue);
  opacity: 0;
  transform: scale(.5);
  margin-right: 0;
  transition:
    opacity .22s ease,
    transform .22s ease,
    margin-right .22s ease;
}

.submenu a:hover,
.submenu a:focus {
  background: linear-gradient(90deg, rgba(153,51,102,.10), rgba(51,153,204,.08)) !important;
  color: var(--violet) !important;
  transform: translateX(4px);
  padding-left: 20px !important;
}

.submenu a:hover::before,
.submenu a:focus::before {
  opacity: 1;
  transform: scale(1);
  margin-right: 10px;
}

/* Mobile : sous-menu aéré, sans boîte flottante */
@media (max-width: 1220px) {
  .submenu {
    min-width: 0 !important;
    padding: 6px 0 8px 16px !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    backdrop-filter: none !important;
  }

  .submenu a {
    white-space: normal !important;
    padding: 11px 14px !important;
    margin-bottom: 4px !important;
    border-radius: 14px !important;
  }

  .submenu a:hover,
  .submenu a:focus {
    transform: none;
    padding-left: 14px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .submenu a,
  .submenu a::before {
    transition: none !important;
    transform: none !important;
  }
}



/* V4.7 — Antennes mises à jour */
#contenu .card h3 {
  overflow-wrap: anywhere;
}

.card a[href^="tel:"],
.card a[href^="mailto:"] {
  color: var(--violet);
  font-weight: 800;
}


/* =========================================================
   V4.8 — Google Maps antennes
   ========================================================= */

.map-feature {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 26px;
  align-items: stretch;
  margin-bottom: 30px;
}

.map-feature-text,
.map-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-soft);
  overflow: hidden;
}

.map-feature-text {
  padding: 30px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.map-feature-text h3,
.map-card-content h3 {
  color: var(--violet);
}

.map-feature-frame,
.map-card-media {
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-soft);
  background: #fff;
}

.map-feature-frame iframe,
.map-card-media iframe {
  display: block;
}

.maps-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

.map-card-content {
  padding: 22px;
}

.map-card-content p {
  color: #555;
}

@media (max-width: 900px) {
  .map-feature,
  .maps-grid {
    grid-template-columns: 1fr;
  }
}



/* =========================================================
   V4.9 — Une seule carte pour toutes les antennes
   ========================================================= */

.all-antennas-map-wrap {
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: 0 24px 55px rgba(51,51,51,.16);
  border: 1px solid var(--line);
  background: #fff;
}

#all-antennas-map {
  width: 100%;
  height: 520px;
  min-height: 420px;
}

.gas18-map-marker {
  width: 28px !important;
  height: 28px !important;
  border-radius: 50%;
  background: var(--violet);
  border: 4px solid #fff;
  box-shadow: 0 8px 22px rgba(153, 51, 102, .38);
}

.gas18-map-marker span {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: var(--blue);
  transform: scale(.38);
}

.leaflet-popup-content-wrapper {
  border-radius: 18px;
}

.leaflet-popup-content strong {
  color: var(--violet);
  font-family: "GAS18 Nunito", "Nunito", Arial, Helvetica, sans-serif;
}

.leaflet-popup-content a {
  color: var(--violet);
  font-weight: 800;
}

.map-legend {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}

.map-legend article {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 18px;
  box-shadow: var(--shadow-soft);
}

.map-legend strong {
  display: block;
  color: var(--violet);
  font-family: "GAS18 Nunito", "Nunito", Arial, Helvetica, sans-serif;
  font-weight: 800;
  margin-bottom: 6px;
}

.map-legend span {
  color: #555;
}

@media (max-width: 760px) {
  #all-antennas-map {
    height: 430px;
  }

  .map-legend {
    grid-template-columns: 1fr;
  }
}



/* V5 — Carte corrigée : fond CARTO au lieu du serveur OSM direct */
.map-note {
  background: #fff;
  border: 1px solid var(--line);
  border-left: 6px solid var(--blue);
  border-radius: 18px;
  padding: 14px 18px;
  margin: 0 0 20px;
  color: #555;
}

/* V5.4 — Suppression DEFINITIVE du fond avec cercle */

.hero,
.section-hero {
  background: none !important;
  background-image: none !important;
}

/* Fond propre */
.hero {
  background: linear-gradient(
    135deg,
    #ffffff 0%,
    #f7f4f7 50%,
    #eaf6fc 100%
  ) !important;
}

/* sécurité totale */
.hero::before,
.hero::after,
.section-hero::before,
.section-hero::after {
  display: none !important;
  content: none !important;
}


/* =========================================================
   V5.6 — Hero avec photo réelle
   ========================================================= */

.hero-card {
  background:
    linear-gradient(180deg, rgba(51,51,51,.05), rgba(102,51,102,.55)),
    url("../img/hero-accompagnement.jpg") center / cover no-repeat !important;
  border: 8px solid #fff;
  box-shadow: 0 24px 60px rgba(51,51,51,.18);
}

/* Supprime les anciens pictogrammes/décors du hero */
.hero-card::before,
.hero-card::after {
  display: none !important;
  content: none !important;
}

/* Effet premium + lisibilité */
.hero-card .floating {
  left: 26px;
  right: 26px;
  bottom: 26px;
  background: rgba(255,255,255,.94);
  border-left: 7px solid var(--violet);
  box-shadow: 0 18px 40px rgba(51,51,51,.22);
  backdrop-filter: blur(10px) saturate(140%);
  -webkit-backdrop-filter: blur(10px) saturate(140%);
}

.hero-card .floating strong {
  color: var(--violet);
}

.hero-card::selection {
  background: var(--violet);
  color: #fff;
}

@media (max-width: 760px) {
  .hero-card {
    min-height: 390px;
  }

  .hero-card .floating {
    left: 18px;
    right: 18px;
    bottom: 18px;
  }
}



/* =========================================================
   V6 — Vidéo TF1 dans le hero uniquement
   ========================================================= */

.hero-video-card {
  display: block;
  position: relative;
  cursor: pointer;
  background:
    linear-gradient(180deg, rgba(51,51,51,.05), rgba(102,51,102,.58)),
    url("../img/hero-video-preview.jpg") center / cover no-repeat !important;
  transition: transform .28s ease, box-shadow .28s ease;
}

.hero-video-card::before,
.hero-video-card::after {
  display: none !important;
  content: none !important;
}

.hero-video-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 30px 70px rgba(51,51,51,.24);
}

.hero-video-play {
  position: absolute;
  top: 28px;
  right: 28px;
  z-index: 3;
  width: 78px;
  height: 78px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--violet);
  color: #fff;
  font-size: 1.8rem;
  box-shadow: 0 18px 40px rgba(153,51,102,.38);
  transition: transform .25s ease, background .25s ease;
}

.hero-video-card:hover .hero-video-play {
  transform: scale(1.06);
  background: var(--violet-dark);
}

.hero-video-card .floating {
  border-left-color: var(--blue);
}

.hero-video-card .floating strong {
  color: var(--violet);
}

@media (prefers-reduced-motion: reduce) {
  .hero-video-card,
  .hero-video-play {
    transition: none;
  }

  .hero-video-card:hover,
  .hero-video-card:hover .hero-video-play {
    transform: none;
  }
}



/* =========================================================
   V6.2 — Vidéo TF1 directe dans le hero, sans popup
   ========================================================= */

.hero-video-direct {
  position: relative;
  overflow: hidden;
  padding: 0 !important;
  background: #111 !important;
  border: 8px solid #fff;
  box-shadow: 0 24px 60px rgba(51,51,51,.18);
  display: flex;
  flex-direction: column;
}

.hero-video-direct::before,
.hero-video-direct::after {
  display: none !important;
  content: none !important;
}

.hero-video-direct iframe {
  width: 100%;
  min-height: 390px;
  height: 100%;
  flex: 1;
  border: 0;
  display: block;
  background: #111;
}

.hero-video-fallback {
  position: absolute;
  left: 20px;
  right: 20px;
  bottom: 20px;
  background: rgba(255,255,255,.94);
  border-left: 7px solid var(--violet);
  border-radius: 20px;
  padding: 14px 16px;
  box-shadow: 0 16px 34px rgba(51,51,51,.22);
  backdrop-filter: blur(10px) saturate(140%);
  -webkit-backdrop-filter: blur(10px) saturate(140%);
}

.hero-video-fallback strong {
  display: block;
  color: var(--violet);
  font-family: "GAS18 Nunito", "Nunito", Arial, Helvetica, sans-serif;
  font-weight: 800;
  margin-bottom: 2px;
}

.hero-video-fallback span {
  display: block;
  color: #555;
  font-size: .94rem;
}

.hero-video-fallback a {
  color: var(--violet);
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (max-width: 760px) {
  .hero-video-direct iframe {
    min-height: 330px;
  }

  .hero-video-fallback {
    position: static;
    margin: 0;
    border-radius: 0;
    border-left: 0;
    border-top: 6px solid var(--violet);
  }
}



/* =========================================================
   V6.3 — Vidéo Vimeo dans le hero
   ========================================================= */

.hero-vimeo {
  position: relative;
  overflow: hidden;
  padding: 0 !important;
  background: #111 !important;
  border: 8px solid #fff;
  box-shadow: 0 24px 60px rgba(51,51,51,.18);
}

.hero-vimeo::before,
.hero-vimeo::after {
  display: none !important;
  content: none !important;
}

.hero-vimeo iframe {
  width: 100%;
  height: 100%;
  min-height: 430px;
  border: 0;
  display: block;
  background: #111;
}

.hero-vimeo .hero-video-fallback {
  position: absolute;
  left: 20px;
  right: 20px;
  bottom: 20px;
  background: rgba(255,255,255,.94);
  border-left: 7px solid var(--violet);
  border-radius: 20px;
  padding: 14px 16px;
  box-shadow: 0 16px 34px rgba(51,51,51,.22);
  backdrop-filter: blur(10px) saturate(140%);
  -webkit-backdrop-filter: blur(10px) saturate(140%);
  opacity: .94;
  transform: translateY(0);
  transition: opacity .25s ease, transform .25s ease;
}

.hero-vimeo:hover .hero-video-fallback {
  opacity: .18;
  transform: translateY(8px);
}

.hero-vimeo .hero-video-fallback:hover {
  opacity: 1;
  transform: translateY(0);
}

.hero-vimeo .hero-video-fallback strong {
  display: block;
  color: var(--violet);
  font-family: "GAS18 Nunito", "Nunito", Arial, Helvetica, sans-serif;
  font-weight: 800;
  margin-bottom: 2px;
}

.hero-vimeo .hero-video-fallback span {
  display: block;
  color: #555;
  font-size: .94rem;
}

.hero-vimeo .hero-video-fallback a {
  color: var(--violet);
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (max-width: 760px) {
  .hero-vimeo iframe {
    min-height: 330px;
  }

  .hero-vimeo .hero-video-fallback,
  .hero-vimeo:hover .hero-video-fallback {
    position: static;
    opacity: 1;
    transform: none;
    border-radius: 0;
    border-left: 0;
    border-top: 6px solid var(--violet);
  }
}



/* =========================================================
   V6.4 — Vimeo autoplay propre dans le hero
   ========================================================= */

.hero-vimeo {
  position: relative;
  overflow: hidden;
  padding: 0 !important;
  background: #111 !important;
  border: 8px solid #fff;
  border-radius: var(--radius-xl);
  box-shadow: 0 24px 60px rgba(51,51,51,.18);
  aspect-ratio: 16 / 9;
  min-height: 0 !important;
}

.hero-vimeo iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100% !important;
  min-height: 0 !important;
  border: 0;
  display: block;
  background: #111;
}

/* Nettoyage : plus de cartouche/titre au-dessus de la vidéo */
.hero-vimeo .hero-video-fallback,
.hero-vimeo .floating,
.hero-vimeo .hero-video-play {
  display: none !important;
}

/* Le cadre épouse proprement la vidéo */
.hero-card.hero-vimeo {
  min-height: auto !important;
}

/* Sur petits écrans, conserver un vrai ratio vidéo */
@media (max-width: 760px) {
  .hero-vimeo {
    aspect-ratio: 16 / 9;
    min-height: 0 !important;
  }

  .hero-vimeo iframe {
    min-height: 0 !important;
  }
}



/* =========================================================
   V6.5 — Vimeo avec activation du son
   ========================================================= */

.hero-vimeo-sound-note {
  display: none;
}

/* Les contrôles Vimeo sont visibles : l’utilisateur peut activer le son.
   L’autoplay reste muet pour respecter les règles des navigateurs. */
.hero-vimeo iframe {
  pointer-events: auto;
}



/* =========================================================
   V6.6 — Bordure vidéo propre sans bandes noires
   ========================================================= */

.hero-vimeo {
  padding: 0 !important;
  overflow: hidden !important;
  border-radius: 34px !important;
  background: transparent !important;
  line-height: 0;
}

/* Le player remplit réellement tout le cadre */
.hero-vimeo iframe {
  position: absolute;
  inset: -2px; /* supprime les micro-bords noirs */
  width: calc(100% + 4px);
  height: calc(100% + 4px) !important;
  border: 0 !important;
  border-radius: 28px !important;
  background: transparent !important;
  display: block;
}

/* Nettoyage de tout fond potentiel */
.hero-card.hero-vimeo,
.hero-card.hero-vimeo::before,
.hero-card.hero-vimeo::after {
  background: transparent !important;
}

/* Ombre plus premium */
.hero-vimeo {
  box-shadow:
    0 28px 60px rgba(51,51,51,.18),
    0 8px 18px rgba(153,51,102,.08);
}


/* =========================================================
   V6.9 — Logos dans les cadres services existants
   ========================================================= */

.service-code.service-code-logo {
  padding: 0 !important;
  overflow: hidden;
  background: rgba(255,255,255,.96);
}

.service-code.service-code-logo img {
  width: 44px;
  height: 44px;
  object-fit: contain;
  display: block;
}

.service-code.service-code-placeholder {
  background: rgba(255,255,255,.94);
  color: var(--violet);
}

.service-card:hover .service-code.service-code-logo img {
  transform: scale(1.06);
}

.service-code.service-code-logo img {
  transition: transform .25s ease;
}

@media (max-width: 760px) {
  .service-code.service-code-logo img {
    width: 40px;
    height: 40px;
  }
}

/* =========================================================
   V6.10 — Équilibrage des cadres logos services
   ========================================================= */

.service-card .service-code {
  width: 76px !important;
  height: 76px !important;
  min-width: 76px !important;
  min-height: 76px !important;
  max-width: 76px !important;
  max-height: 76px !important;
  padding: 0 !important;
  border-radius: 22px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  box-sizing: border-box !important;
  flex: 0 0 76px !important;
}

/* Normalisation visuelle des pictogrammes SVG */
.service-card .service-code.service-code-logo img {
  width: 50px !important;
  height: 50px !important;
  max-width: 50px !important;
  max-height: 50px !important;
  object-fit: contain !important;
  display: block !important;
}

/* Normalisation des cadres qui restent temporairement en texte */
.service-card .service-code-placeholder,
.service-card .service-code:not(.service-code-logo) {
  font-size: 1rem !important;
  text-align: center !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Positionnement homogène dans les cartes photo */
.service-card .service-code {
  margin-bottom: 22px !important;
}

@media (max-width: 760px) {
  .service-card .service-code {
    width: 68px !important;
    height: 68px !important;
    min-width: 68px !important;
    min-height: 68px !important;
    max-width: 68px !important;
    max-height: 68px !important;
    flex-basis: 68px !important;
  }

  .service-card .service-code.service-code-logo img {
    width: 44px !important;
    height: 44px !important;
    max-width: 44px !important;
    max-height: 44px !important;
  }
}


/* =========================================================
   V6.11 — Cartes services alignées façon aperçu
   ========================================================= */

.service-card {
  min-height: 330px !important;
  padding: 30px 30px 32px !important;
  justify-content: flex-start !important;
  align-items: flex-start !important;
  display: flex !important;
  flex-direction: column !important;
}

/* Cadres icônes strictement identiques et alignés */
.service-card .service-code {
  width: 78px !important;
  height: 78px !important;
  min-width: 78px !important;
  min-height: 78px !important;
  max-width: 78px !important;
  max-height: 78px !important;
  flex: 0 0 78px !important;
  margin: 0 0 28px 0 !important;
  border-radius: 24px !important;
  background: rgba(255,255,255,.96) !important;
  box-shadow: 0 16px 32px rgba(0,0,0,.18) !important;
  display: grid !important;
  place-items: center !important;
  align-self: flex-start !important;
}

/* Les SVG sont calés au centre, dans une zone visuelle commune */
.service-card .service-code.service-code-logo img {
  width: 50px !important;
  height: 50px !important;
  max-width: 50px !important;
  max-height: 50px !important;
  object-fit: contain !important;
  display: block !important;
}

/* Textes alignés de façon homogène */
.service-card h3 {
  margin: 0 0 14px 0 !important;
  min-height: 2.4em;
  display: flex;
  align-items: flex-end;
}

.service-card p {
  margin: 0 !important;
  max-width: 92%;
  min-height: 4.8em;
}

/* Le bouton descend au même niveau dans chaque carte */
.service-card .btn {
  margin-top: auto !important;
  min-height: 56px;
  padding: 14px 24px !important;
  border-radius: 999px !important;
  gap: 14px;
}

.service-card .btn-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  line-height: 1;
  transform: translateX(0);
  transition: transform .22s ease;
}

.service-card .btn:hover .btn-arrow {
  transform: translateX(4px);
}

/* Photo + overlay : rendu plus propre et plus proche de l’aperçu */
.service-card::before {
  background:
    linear-gradient(
      180deg,
      rgba(51,51,51,.06) 0%,
      rgba(102,51,102,.38) 44%,
      rgba(102,51,102,.92) 100%
    ) !important;
}

.service-card:hover::before {
  background:
    linear-gradient(
      180deg,
      rgba(51,51,51,.04) 0%,
      rgba(153,51,102,.34) 42%,
      rgba(102,51,102,.94) 100%
    ) !important;
}

/* Pour les cadres temporairement en texte (Formation / Vente) */
.service-card .service-code-placeholder,
.service-card .service-code:not(.service-code-logo) {
  font-size: 1.18rem !important;
  text-align: center !important;
  color: var(--violet) !important;
  font-family: "GAS18 Nunito", "Nunito", Arial, Helvetica, sans-serif !important;
  font-weight: 800 !important;
}

/* Responsive */
@media (max-width: 760px) {
  .service-card {
    min-height: 310px !important;
    padding: 26px !important;
  }

  .service-card .service-code {
    width: 70px !important;
    height: 70px !important;
    min-width: 70px !important;
    min-height: 70px !important;
    max-width: 70px !important;
    max-height: 70px !important;
    flex-basis: 70px !important;
    margin-bottom: 22px !important;
  }

  .service-card .service-code.service-code-logo img {
    width: 44px !important;
    height: 44px !important;
    max-width: 44px !important;
    max-height: 44px !important;
  }

  .service-card h3,
  .service-card p {
    min-height: auto;
  }
}



/* =========================================================
   V6.12 — Équilibrage visuel manuel des logos services
   ========================================================= */

/* Cadres parfaitement identiques */
.service-card .service-code {
  width: 82px !important;
  height: 82px !important;
  min-width: 82px !important;
  min-height: 82px !important;
  max-width: 82px !important;
  max-height: 82px !important;
  border-radius: 24px !important;
  display: grid !important;
  place-items: center !important;
  overflow: hidden !important;
}

/* Base commune */
.service-card .service-code.service-code-logo img {
  object-fit: contain !important;
  display: block !important;
  transform-origin: center center;
}

/* Garage : dessin dense, légèrement réduit */
.service-card .service-code.service-code-logo img[src*="garage"] {
  width: 48px !important;
  height: 48px !important;
}

/* DAD : dessin fin/horizontal, légèrement agrandi */
.service-card .service-code.service-code-logo img[src*="dad"] {
  width: 58px !important;
  height: 58px !important;
}

/* VLS : pictogramme compact, taille intermédiaire */
.service-card .service-code.service-code-logo img[src*="vls"] {
  width: 54px !important;
  height: 54px !important;
}

/* CeMI : étoile/repère assez large, taille équilibrée */
.service-card .service-code.service-code-logo img[src*="cemi"] {
  width: 52px !important;
  height: 52px !important;
}

/* Textes temporaires CIP / VLS : même présence visuelle */
.service-card .service-code-placeholder,
.service-card .service-code:not(.service-code-logo) {
  font-size: 1.15rem !important;
  letter-spacing: .02em;
}

/* Alignement vertical légèrement renforcé */
.service-card .service-code {
  margin-bottom: 26px !important;
}

@media (max-width: 760px) {
  .service-card .service-code {
    width: 72px !important;
    height: 72px !important;
    min-width: 72px !important;
    min-height: 72px !important;
    max-width: 72px !important;
    max-height: 72px !important;
  }

  .service-card .service-code.service-code-logo img[src*="garage"] {
    width: 42px !important;
    height: 42px !important;
  }

  .service-card .service-code.service-code-logo img[src*="dad"] {
    width: 50px !important;
    height: 50px !important;
  }

  .service-card .service-code.service-code-logo img[src*="vls"] {
    width: 47px !important;
    height: 47px !important;
  }

  .service-card .service-code.service-code-logo img[src*="cemi"] {
    width: 46px !important;
    height: 46px !important;
  }
}



/* =========================================================
   V6.13 — Logo vente véhicules
   ========================================================= */

.service-card .service-code.service-code-logo img[src*="vente"] {
  width: 52px !important;
  height: 52px !important;
}

@media (max-width: 760px) {
  .service-card .service-code.service-code-logo img[src*="vente"] {
    width: 46px !important;
    height: 46px !important;
  }
}



/* =========================================================
   V6.14 — Logo formation
   ========================================================= */

.service-card .service-code.service-code-logo img[src*="formation"] {
  width: 54px !important;
  height: 54px !important;
}

@media (max-width: 760px) {
  .service-card .service-code.service-code-logo img[src*="formation"] {
    width: 47px !important;
    height: 47px !important;
  }
}



/* =========================================================
   V6.15 — Logos blancs sans cadre
   ========================================================= */

/* Suppression du cadre */
.service-card .service-code {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  padding: 0 !important;
  margin: 0 0 24px 0 !important;
  border-radius: 0 !important;
  overflow: visible !important;
}

/* Logos directement intégrés dans le visuel */
.service-card .service-code.service-code-logo img {
  width: 58px !important;
  height: 58px !important;
  object-fit: contain !important;
  display: block !important;

  /* Transformation en blanc */
  filter:
    brightness(0)
    invert(1)
    drop-shadow(0 4px 14px rgba(0,0,0,.28));

  opacity: .98;
}

/* Équilibrage individuel */
.service-card .service-code.service-code-logo img[src*="garage"] {
  width: 54px !important;
  height: 54px !important;
}

.service-card .service-code.service-code-logo img[src*="dad"] {
  width: 66px !important;
  height: 66px !important;
}

.service-card .service-code.service-code-logo img[src*="vls"] {
  width: 60px !important;
  height: 60px !important;
}

.service-card .service-code.service-code-logo img[src*="cemi"] {
  width: 58px !important;
  height: 58px !important;
}

.service-card .service-code.service-code-logo img[src*="vente"] {
  width: 60px !important;
  height: 60px !important;
}

.service-card .service-code.service-code-logo img[src*="formation"] {
  width: 62px !important;
  height: 62px !important;
}

/* Texte placeholder éventuel */
.service-card .service-code-placeholder,
.service-card .service-code:not(.service-code-logo) {
  color: #fff !important;
  background: transparent !important;
  text-shadow: 0 4px 14px rgba(0,0,0,.30);
  font-size: 1.1rem !important;
}

/* Léger effet premium */
.service-card:hover .service-code.service-code-logo img {
  transform: translateY(-2px) scale(1.03);
}

.service-card .service-code.service-code-logo img {
  transition:
    transform .24s ease,
    opacity .24s ease;
}

@media (max-width: 760px) {

  .service-card .service-code {
    margin-bottom: 20px !important;
  }

  .service-card .service-code.service-code-logo img {
    width: 48px !important;
    height: 48px !important;
  }

  .service-card .service-code.service-code-logo img[src*="dad"] {
    width: 56px !important;
    height: 56px !important;
  }

  .service-card .service-code.service-code-logo img[src*="formation"] {
    width: 52px !important;
    height: 52px !important;
  }
}



/* =========================================================
   V6.16 — Logos agrandis et rapprochés du texte
   ========================================================= */

/* Descend les logos dans les cartes */
.service-card .service-code {
  margin: 18px 0 12px 0 !important;
}

/* Taille globale augmentée */
.service-card .service-code.service-code-logo img {
  width: 70px !important;
  height: 70px !important;
}

/* Ajustements visuels individuels */
.service-card .service-code.service-code-logo img[src*="garage"] {
  width: 66px !important;
  height: 66px !important;
}

.service-card .service-code.service-code-logo img[src*="dad"] {
  width: 78px !important;
  height: 78px !important;
}

.service-card .service-code.service-code-logo img[src*="vls"] {
  width: 72px !important;
  height: 72px !important;
}

.service-card .service-code.service-code-logo img[src*="cemi"] {
  width: 70px !important;
  height: 70px !important;
}

.service-card .service-code.service-code-logo img[src*="vente"] {
  width: 72px !important;
  height: 72px !important;
}

.service-card .service-code.service-code-logo img[src*="formation"] {
  width: 74px !important;
  height: 74px !important;
}

/* Le titre remonte légèrement */
.service-card h3 {
  margin-top: 0 !important;
}

/* Mobile */
@media (max-width: 760px) {

  .service-card .service-code {
    margin: 14px 0 10px 0 !important;
  }

  .service-card .service-code.service-code-logo img {
    width: 58px !important;
    height: 58px !important;
  }

  .service-card .service-code.service-code-logo img[src*="dad"] {
    width: 66px !important;
    height: 66px !important;
  }

  .service-card .service-code.service-code-logo img[src*="formation"] {
    width: 62px !important;
    height: 62px !important;
  }
}



/* =========================================================
   V6.17 — Logos HERO plus imposants
   ========================================================= */

/* Descente beaucoup plus marquée */
.service-card .service-code {
  margin: 42px 0 8px 0 !important;
}

/* Taille globale fortement augmentée */
.service-card .service-code.service-code-logo img {
  width: 92px !important;
  height: 92px !important;
}

/* Équilibrage manuel par logo */
.service-card .service-code.service-code-logo img[src*="garage"] {
  width: 88px !important;
  height: 88px !important;
}

/* DAD : beaucoup plus visible */
.service-card .service-code.service-code-logo img[src*="dad"] {
  width: 112px !important;
  height: 112px !important;
}

/* VLS */
.service-card .service-code.service-code-logo img[src*="vls"] {
  width: 98px !important;
  height: 98px !important;
}

/* CeMI */
.service-card .service-code.service-code-logo img[src*="cemi"] {
  width: 96px !important;
  height: 96px !important;
}

/* Vente */
.service-card .service-code.service-code-logo img[src*="vente"] {
  width: 100px !important;
  height: 100px !important;
}

/* Formation */
.service-card .service-code.service-code-logo img[src*="formation"] {
  width: 104px !important;
  height: 104px !important;
}

/* Les titres remontent légèrement */
.service-card h3 {
  margin-top: 0 !important;
}

/* Mobile */
@media (max-width: 760px) {

  .service-card .service-code {
    margin: 30px 0 6px 0 !important;
  }

  .service-card .service-code.service-code-logo img {
    width: 72px !important;
    height: 72px !important;
  }

  .service-card .service-code.service-code-logo img[src*="dad"] {
    width: 88px !important;
    height: 88px !important;
  }

  .service-card .service-code.service-code-logo img[src*="formation"] {
    width: 82px !important;
    height: 82px !important;
  }

  .service-card .service-code.service-code-logo img[src*="vente"] {
    width: 78px !important;
    height: 78px !important;
  }
}



/* =========================================================
   V6.18 — Logos ultra visibles
   ========================================================= */

.service-card .service-code {
  margin: 56px 0 4px 0 !important;
}

/* Présence générale beaucoup plus forte */
.service-card .service-code.service-code-logo img {
  width: 118px !important;
  height: 118px !important;

  filter:
    brightness(0)
    invert(1)
    drop-shadow(0 8px 24px rgba(0,0,0,.42))
    drop-shadow(0 2px 8px rgba(255,255,255,.08));

  opacity: 1 !important;
}

/* Ajustements individuels */

/* Garage */
.service-card .service-code.service-code-logo img[src*="garage"] {
  width: 112px !important;
  height: 112px !important;
}

/* DAD → énormément agrandi */
.service-card .service-code.service-code-logo img[src*="dad"] {
  width: 146px !important;
  height: 146px !important;
}

/* VLS */
.service-card .service-code.service-code-logo img[src*="vls"] {
  width: 126px !important;
  height: 126px !important;
}

/* CeMI */
.service-card .service-code.service-code-logo img[src*="cemi"] {
  width: 122px !important;
  height: 122px !important;
}

/* Vente */
.service-card .service-code.service-code-logo img[src*="vente"] {
  width: 128px !important;
  height: 128px !important;
}

/* Formation */
.service-card .service-code.service-code-logo img[src*="formation"] {
  width: 132px !important;
  height: 132px !important;
}

/* Mobile */
@media (max-width: 760px) {

  .service-card .service-code {
    margin: 42px 0 2px 0 !important;
  }

  .service-card .service-code.service-code-logo img {
    width: 86px !important;
    height: 86px !important;
  }

  .service-card .service-code.service-code-logo img[src*="dad"] {
    width: 110px !important;
    height: 110px !important;
  }

  .service-card .service-code.service-code-logo img[src*="formation"] {
    width: 96px !important;
    height: 96px !important;
  }

  .service-card .service-code.service-code-logo img[src*="vente"] {
    width: 94px !important;
    height: 94px !important;
  }
}



/* =========================================================
   V6.19 — Logos directement dans les titres
   ========================================================= */

/* Suppression des anciens blocs logos */
.service-card .service-code {
  display: none !important;
}

/* Nouveau titre inline */
.service-title-inline {
  display: flex !important;
  align-items: center !important;
  gap: 14px;
  margin: 18px 0 14px 0 !important;
  line-height: 1.2;
}

/* Icônes directement intégrées */
.service-title-icon {
  flex: 0 0 auto;
  object-fit: contain;
  display: block;

  filter:
    brightness(0)
    invert(1)
    drop-shadow(0 4px 14px rgba(0,0,0,.28));

  opacity: .98;
}

/* Taille de base */
.service-title-icon {
  width: 44px;
  height: 44px;
}

/* Ajustements individuels */
.service-title-icon[src*="garage"] {
  width: 42px;
  height: 42px;
}

.service-title-icon[src*="dad"] {
  width: 58px;
  height: 58px;
}

.service-title-icon[src*="vls"] {
  width: 48px;
  height: 48px;
}

.service-title-icon[src*="cemi"] {
  width: 46px;
  height: 46px;
}

.service-title-icon[src*="vente"] {
  width: 50px;
  height: 50px;
}

.service-title-icon[src*="formation"] {
  width: 52px;
  height: 52px;
}

/* Alignement du texte */
.service-title-inline span {
  display: inline-block;
}

/* Responsive */
@media (max-width: 760px) {

  .service-title-inline {
    gap: 12px;
  }

  .service-title-icon {
    width: 36px;
    height: 36px;
  }

  .service-title-icon[src*="dad"] {
    width: 48px;
    height: 48px;
  }

  .service-title-icon[src*="formation"] {
    width: 44px;
    height: 44px;
  }
}



/* =========================================================
   V6.20 — Overlay premium pour meilleure lisibilité
   ========================================================= */

/* Dégradé renforcé mais élégant : photo visible + texte lisible */
.service-card::before {
  background:
    linear-gradient(
      180deg,
      rgba(51, 51, 51, .10) 0%,
      rgba(51, 51, 51, .20) 26%,
      rgba(102, 51, 102, .72) 62%,
      rgba(51, 31, 61, .94) 100%
    ) !important;
  opacity: 1 !important;
}

/* Voile subtil complémentaire pour homogénéiser les photos */
.service-card::after {
  background:
    radial-gradient(circle at 18% 18%, rgba(51,153,204,.18), transparent 34%),
    linear-gradient(135deg, rgba(153,51,102,.18), rgba(51,51,51,.20)) !important;
  opacity: .72 !important;
}

/* Au survol : un peu plus de profondeur, pas moins de lisibilité */
.service-card:hover::before {
  background:
    linear-gradient(
      180deg,
      rgba(51, 51, 51, .08) 0%,
      rgba(51, 51, 51, .18) 24%,
      rgba(153, 51, 102, .74) 58%,
      rgba(51, 31, 61, .96) 100%
    ) !important;
}

.service-card:hover::after {
  opacity: .82 !important;
}

/* Titre + logo beaucoup plus lisibles */
.service-title-inline {
  text-shadow:
    0 3px 12px rgba(0,0,0,.55),
    0 1px 2px rgba(0,0,0,.45);
}

.service-title-icon {
  filter:
    brightness(0)
    invert(1)
    drop-shadow(0 5px 16px rgba(0,0,0,.58))
    drop-shadow(0 1px 3px rgba(0,0,0,.44)) !important;
}

/* Texte descriptif plus lisible */
.service-card p {
  color: rgba(255,255,255,.98) !important;
  text-shadow:
    0 3px 12px rgba(0,0,0,.50),
    0 1px 2px rgba(0,0,0,.35);
}

/* Bouton plus détaché du fond */
.service-card .btn {
  background: rgba(255,255,255,.98) !important;
  color: var(--violet) !important;
  box-shadow:
    0 14px 30px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,255,255,.85);
}

.service-card .btn:hover {
  background: #fff !important;
  color: var(--violet-dark) !important;
}

/* Léger panneau de lecture invisible mais efficace derrière texte */
.service-card h3,
.service-card p,
.service-card .btn {
  position: relative;
  z-index: 2;
}

/* Ajoute de la profondeur en bas sans effet boîte visible */
.service-card {
  box-shadow:
    0 20px 48px rgba(51,51,51,.18),
    inset 0 -90px 120px rgba(51,31,61,.18);
}



/* =========================================================
   V6.21 — Descente du contenu dans les cartes services
   ========================================================= */

/* Le contenu descend davantage dans l’image */
.service-card {
  justify-content: flex-end !important;
  padding-top: 72px !important;
  padding-bottom: 34px !important;
}

/* Le bloc titre démarre plus bas */
.service-title-inline {
  margin-top: 34px !important;
}

/* Le texte gagne un peu d’air */
.service-card p {
  margin-top: 8px !important;
}

/* Le bouton reste bien aligné visuellement */
.service-card .btn {
  margin-top: 22px !important;
}

/* Mobile */
@media (max-width: 760px) {

  .service-card {
    padding-top: 56px !important;
    padding-bottom: 26px !important;
  }

  .service-title-inline {
    margin-top: 24px !important;
  }
}



/* =========================================================
   V6.22 — Correction saut de ligne section partenaires
   ========================================================= */

/* Évite que les textes courts de section soient contraints inutilement */
.partners-band .section-text,
.partners-section .section-text,
.partners-band p,
.partners-section p {
  max-width: none !important;
  width: 100% !important;
}

/* Permet au titre + texte de prendre toute la largeur utile */
.partners-band .section-head,
.partners-section .section-head {
  align-items: center !important;
}

@media (min-width: 900px) {
  .partners-band .section-text,
  .partners-section .section-text {
    white-space: nowrap;
  }
}

@media (max-width: 899px) {
  .partners-band .section-text,
  .partners-section .section-text {
    white-space: normal;
  }
}



/* =========================================================
   V6.23 — Correction directe du texte partenaires
   ========================================================= */

.partners-intro-text {
  display: block !important;
  max-width: none !important;
  width: 100% !important;
  white-space: nowrap !important;
  line-height: 1.5 !important;
}

/* Le bloc parent prend toute la largeur utile */
.section-head:has(.partners-intro-text) {
  display: block !important;
}

.section-head:has(.partners-intro-text) > div {
  max-width: none !important;
  width: 100% !important;
}

/* Repli propre sur petits écrans */
@media (max-width: 980px) {
  .partners-intro-text {
    white-space: normal !important;
  }
}



/* =========================================================
   V6.24 — Réseaux sociaux footer
   ========================================================= */

.footer-socials {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 22px;
}

.footer-social {
  width: 48px;
  height: 48px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;

  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.10);

  color: #fff;

  transition:
    transform .22s ease,
    background .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

.footer-social svg {
  width: 22px;
  height: 22px;
  display: block;
}

.footer-social:hover {
  transform: translateY(-2px);
  background: rgba(255,255,255,.14);
  border-color: rgba(255,255,255,.22);
  box-shadow: 0 10px 24px rgba(0,0,0,.18);
}



/* =========================================================
   V6.25 — Réseaux sociaux sous "Agir avec nous"
   ========================================================= */

.footer-follow {
  margin-top: 22px;
}

.footer-follow-title {
  margin: 0 0 14px 0;
  font-size: 1rem;
  color: rgba(255,255,255,.82);
  font-family: "GAS18 Nunito", "Nunito", Arial, Helvetica, sans-serif;
  font-weight: 800;
}

.footer-follow .footer-socials {
  justify-content: flex-start;
  margin-top: 0;
}

.footer-follow .footer-social {
  width: 44px;
  height: 44px;
}

.footer-follow .footer-social svg {
  width: 20px;
  height: 20px;
}



/* =========================================================
   V6.26 — Fix réseaux sociaux footer
   ========================================================= */

.footer-follow {
  margin-top: 24px;
}

.footer-follow-title {
  margin: 0 0 12px 0;
  color: rgba(255,255,255,.84);
  font-size: .98rem;
  font-family: "GAS18 Nunito", "Nunito", Arial, Helvetica, sans-serif;
  font-weight: 800;
}

.footer-follow .footer-socials {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
  margin-top: 0;
}

.footer-follow .footer-social {
  width: 44px;
  height: 44px;
  border-radius: 999px;

  display: flex;
  align-items: center;
  justify-content: center;

  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.10);

  color: #fff;

  transition:
    transform .22s ease,
    background .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

.footer-follow .footer-social:hover {
  transform: translateY(-2px);
  background: rgba(255,255,255,.14);
  border-color: rgba(255,255,255,.22);
  box-shadow: 0 10px 24px rgba(0,0,0,.18);
}

.footer-follow .footer-social svg {
  width: 20px;
  height: 20px;
}



/* =========================================================
   V6.27 — Réseaux sociaux visibles sous Agir avec nous
   ========================================================= */

.footer-follow {
  margin-top: 26px;
}

.footer-follow-title {
  margin: 0 0 12px 0;
  color: rgba(255,255,255,.9);
  font-size: 1rem;
  font-family: "GAS18 Nunito", "Nunito", Arial, Helvetica, sans-serif;
  font-weight: 800;
}

.footer-follow .footer-socials {
  display: flex !important;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
  margin: 0 !important;
}

.footer-follow .footer-social {
  width: 44px;
  height: 44px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
  color: #fff;
  transition: transform .22s ease, background .22s ease, border-color .22s ease;
}

.footer-follow .footer-social:hover {
  transform: translateY(-2px);
  background: rgba(255,255,255,.16);
  border-color: rgba(255,255,255,.26);
}

.footer-follow .footer-social svg {
  width: 20px;
  height: 20px;
  display: block;
}



/* =========================================================
   V6.28 — Réseaux sociaux réellement intégrés sous Agir avec nous
   ========================================================= */

.footer-main > div .footer-follow {
  margin-top: 22px;
}

.footer-follow-title {
  margin: 0 0 12px 0;
  color: rgba(255,255,255,.92);
  font-size: 1rem;
  font-family: "GAS18 Nunito", "Nunito", Arial, Helvetica, sans-serif;
  font-weight: 800;
}

.footer-follow .footer-socials {
  display: flex !important;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
  margin: 0 !important;
}

.footer-follow .footer-social {
  width: 44px;
  height: 44px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.14);
  color: #fff;
}

.footer-follow .footer-social:hover {
  transform: translateY(-2px);
  background: rgba(255,255,255,.16);
  border-color: rgba(255,255,255,.28);
}

.footer-follow .footer-social svg {
  width: 20px;
  height: 20px;
  display: block;
}



/* =========================================================
   V6.29 — Ajustement visuel icône LinkedIn
   ========================================================= */

/* Le logo LinkedIn paraît naturellement décalé :
   correction optique légère */
.footer-social[aria-label="LinkedIn"] svg {
  transform: translateX(1px) translateY(-0.5px);
}



/* =========================================================
   V6.30 — Équilibrage visuel Facebook
   ========================================================= */

/* Facebook paraît naturellement plus petit :
   agrandissement optique */
.footer-social[aria-label="Facebook"] svg {
  width: 24px !important;
  height: 24px !important;
  transform: translateY(-0.5px);
}



/* V6.42 — Correction fichier logo footer uniquement */
.footer-logo img {
  object-fit: contain;
}


/* =========================================================
   V6.45 — Ajustement final alignement footer
   ========================================================= */

/* Remonte légèrement le texte sous le logo */
.site-footer .footer-brand p,
.site-footer .footer-main > div:first-child p {
  margin-top: -18px !important;
  line-height: 1.62 !important;
}

/* Garde un espace élégant entre logo et texte */
.site-footer .footer-logo {
  margin-bottom: 12px !important;
}

/* Harmonisation générale */
.site-footer .footer-main {
  align-items: start !important;
}



/* =========================================================
   V6.48 — Qui sommes-nous : Notre histoire enrichie
   ========================================================= */

.history-section .section-head.center {
  text-align: center;
  justify-content: center;
}

.history-timeline {
  margin-top: 42px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
}

.history-card {
  position: relative;
  background: rgba(255,255,255,.94);
  border-radius: 28px;
  padding: 32px;
  border: 1px solid rgba(153,51,102,.12);
  box-shadow: 0 18px 42px rgba(51,51,51,.08);
  overflow: hidden;
}

.history-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 92% 12%, rgba(51,153,204,.10), transparent 30%),
    linear-gradient(135deg, rgba(153,51,102,.04), rgba(51,153,204,.04));
  pointer-events: none;
}

.history-card > * {
  position: relative;
  z-index: 1;
}

.history-year {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 18px;
  border-radius: 999px;
  background: var(--violet);
  color: #fff;
  font-family: "GAS18 Nunito", "Nunito", Arial, Helvetica, sans-serif;
  font-weight: 800;
  margin-bottom: 18px;
  box-shadow: 0 12px 28px rgba(153,51,102,.20);
}

.history-card h3 {
  margin: 0 0 14px;
  color: var(--violet);
}

.history-card p {
  color: #555;
  line-height: 1.7;
  margin-bottom: 12px;
}

.history-card p:last-child {
  margin-bottom: 0;
}

.history-card-highlight {
  background:
    linear-gradient(135deg, rgba(153,51,102,.10), rgba(51,153,204,.08)),
    #fff;
  border-color: rgba(153,51,102,.22);
}

@media (max-width: 860px) {
  .history-timeline {
    grid-template-columns: 1fr;
  }

  .history-card {
    padding: 24px;
  }
}



/* =========================================================
   V6.49 — Icônes dans la page Nos services
   ========================================================= */

.service-inline-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 10px;
  font-size: 1.15em;
  vertical-align: middle;
}



/* =========================================================
   V6.50 — Vraies icônes services
   ========================================================= */

.service-real-icon {
  width: 30px;
  height: 30px;
  object-fit: contain;
  vertical-align: -7px;
  margin-right: 12px;
  filter: none !important;
}



/* =========================================================
   V6.52 — Page Nos services réparée avec vraies icônes
   ========================================================= */

.services-list-section .section-head.center {
  text-align: center;
  justify-content: center;
}

.services-page-grid {
  margin-top: 34px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}

.service-page-card {
  background: #fff;
  border: 1px solid rgba(153,51,102,.14);
  border-radius: 28px;
  padding: 34px;
  box-shadow: 0 18px 42px rgba(51,51,51,.08);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-height: 310px;
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}

.service-page-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 26px 56px rgba(51,51,51,.13);
  border-color: rgba(153,51,102,.28);
}

.service-page-icon {
  width: 58px;
  height: 58px;
  object-fit: contain;
  margin-bottom: 18px;
  filter: none !important;
}

.service-page-card h3 {
  color: var(--violet);
  margin: 0 0 14px;
}

.service-page-card p {
  color: #555;
  line-height: 1.65;
  margin: 0 0 22px;
}

.service-page-card .btn {
  margin-top: auto;
}

.service-page-card img[src*="dad"] {
  width: 72px;
  height: 72px;
  margin-bottom: 4px;
}

@media (max-width: 980px) {
  .services-page-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .services-page-grid {
    grid-template-columns: 1fr;
  }

  .service-page-card {
    min-height: auto;
  }
}



/* =========================================================
   V6.53 — Bandeau accueil : titre sur une ligne
   ========================================================= */

/* Titre du bandeau espace pro sur une ligne en desktop */
.home-pro-banner h2,
.pro-banner h2,
.cta-pro h2,
.section-cta h2 {
  white-space: nowrap !important;
  font-size: clamp(1.9rem, 2.6vw, 2.65rem) !important;
  line-height: 1.12 !important;
}

/* Donne plus de place au texte dans le bandeau */
.home-pro-banner,
.pro-banner,
.cta-pro,
.section-cta {
  overflow: hidden;
}

.home-pro-banner .container,
.pro-banner .container,
.cta-pro .container,
.section-cta .container {
  max-width: 1320px !important;
}

/* Sur tablette/mobile, on autorise de nouveau le retour à la ligne */
@media (max-width: 980px) {
  .home-pro-banner h2,
  .pro-banner h2,
  .cta-pro h2,
  .section-cta h2 {
    white-space: normal !important;
    font-size: clamp(1.75rem, 6vw, 2.3rem) !important;
  }
}



/* =========================================================
   V6.54 — Bandeau accueil : MobilitéS en fin de ligne
   ========================================================= */

.home-pro-banner h2,
.pro-banner h2,
.cta-pro h2,
.section-cta h2 {
  max-width: 980px !important;
  font-size: clamp(1.78rem, 2.35vw, 2.45rem) !important;
  letter-spacing: -0.02em !important;
}

/* Plus de place au texte, bouton légèrement réduit */
.home-pro-banner .btn,
.pro-banner .btn,
.cta-pro .btn,
.section-cta .btn {
  padding-inline: 26px !important;
  font-size: 1rem !important;
}



/* =========================================================
   V6.55 — Correction définitive phrase bandeau
   ========================================================= */

.home-pro-banner .content,
.pro-banner .content,
.section-cta .content {
  max-width: 1040px !important;
}

.home-pro-banner h2,
.pro-banner h2,
.section-cta h2 {
  font-size: clamp(1.72rem, 2.2vw, 2.35rem) !important;
  line-height: 1.14 !important;
}



/* =========================================================
   V6.56 — Page Véhicules à vendre
   ========================================================= */

.vehicle-sale-section .section-head.center {
  text-align: center;
  justify-content: center;
}

.vehicles-grid {
  margin-top: 36px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
}

.vehicle-card {
  display: grid;
  grid-template-columns: minmax(280px, .9fr) 1.2fr;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(153,51,102,.14);
  border-radius: 32px;
  box-shadow: 0 22px 52px rgba(51,51,51,.10);
}

.vehicle-image {
  position: relative;
  min-height: 360px;
  background: #f7f4f7;
  overflow: hidden;
}

.vehicle-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: none !important;
}

.vehicle-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(51,51,51,.02), rgba(102,51,102,.35));
}

.vehicle-status {
  position: absolute;
  top: 22px;
  left: 22px;
  z-index: 2;
  background: var(--violet);
  color: #fff;
  border-radius: 999px;
  padding: 9px 16px;
  font-weight: 800;
  box-shadow: 0 12px 28px rgba(153,51,102,.24);
}

.vehicle-content {
  padding: 34px;
}

.vehicle-heading {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: flex-start;
  margin-bottom: 20px;
}

.vehicle-heading h3 {
  color: var(--violet);
  margin: 0 0 6px;
  font-size: clamp(1.6rem, 3vw, 2.1rem);
}

.vehicle-subtitle {
  margin: 0;
  color: #666;
}

.vehicle-price {
  color: var(--violet);
  font-size: 1.8rem;
  white-space: nowrap;
}

.vehicle-specs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 22px;
}

.vehicle-specs span {
  background: rgba(153,51,102,.08);
  color: var(--violet);
  border-radius: 999px;
  padding: 8px 13px;
  font-weight: 800;
  font-size: .94rem;
}

.vehicle-description {
  color: #555;
  line-height: 1.7;
  margin-bottom: 18px;
}

.vehicle-list {
  margin: 0 0 26px;
  padding-left: 20px;
  color: #555;
  line-height: 1.7;
}

.vehicle-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.vehicle-note {
  margin-top: 24px;
  padding: 18px 22px;
  border-radius: 22px;
  background: rgba(51,153,204,.08);
  color: #555;
  border: 1px solid rgba(51,153,204,.16);
}

@media (max-width: 880px) {
  .vehicle-card {
    grid-template-columns: 1fr;
  }

  .vehicle-image {
    min-height: 280px;
  }

  .vehicle-heading {
    flex-direction: column;
  }
}



/* =========================================================
   V6.57 — Page On parle de nous enrichie
   ========================================================= */

.press-feature-card {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(153,51,102,.14);
  border-radius: 34px;
  box-shadow: 0 24px 58px rgba(51,51,51,.12);
}

.press-feature-media {
  position: relative;
  min-height: 420px;
  overflow: hidden;
}

.press-feature-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: none !important;
  display: block;
}

.press-feature-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(51,51,51,.04), rgba(102,51,102,.48));
}

.press-badge {
  position: absolute;
  z-index: 2;
  top: 24px;
  left: 24px;
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 0 18px;
  border-radius: 999px;
  background: var(--violet);
  color: #fff;
  font-weight: 800;
  box-shadow: 0 12px 28px rgba(153,51,102,.22);
}

.press-feature-content {
  padding: 42px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.press-source,
.press-card-source {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  min-height: 34px;
  padding: 0 14px;
  border-radius: 999px;
  background: rgba(153,51,102,.08);
  color: var(--violet);
  font-family: "GAS18 Nunito", "Nunito", Arial, Helvetica, sans-serif;
  font-weight: 800;
  margin-bottom: 18px;
}

.press-feature-content h2 {
  color: var(--violet);
  margin: 0 0 18px;
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.08;
}

.press-feature-content p,
.press-card p {
  color: #555;
  line-height: 1.72;
}

.press-list-section .section-head.center {
  text-align: center;
  justify-content: center;
}

.press-grid {
  margin-top: 34px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}

.press-card {
  background: #fff;
  border: 1px solid rgba(153,51,102,.12);
  border-radius: 28px;
  padding: 30px;
  box-shadow: 0 18px 42px rgba(51,51,51,.08);
  display: flex;
  flex-direction: column;
  min-height: 340px;
  transition: transform .24s ease, box-shadow .24s ease;
}

.press-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 26px 56px rgba(51,51,51,.13);
}

.press-card h3 {
  color: var(--violet);
  margin: 0 0 14px;
}

.press-card .btn {
  margin-top: auto;
}

@media (max-width: 980px) {
  .press-feature-card {
    grid-template-columns: 1fr;
  }

  .press-grid {
    grid-template-columns: 1fr;
  }

  .press-feature-media {
    min-height: 300px;
  }
}



/* =========================================================
   V6.58 — Illustration Sept à Huit
   ========================================================= */

.press-feature-media img {
  filter: none !important;
  object-fit: cover !important;
}



/* =========================================================
   V6.59 — Accueil : cartes services premium
   ========================================================= */

/* Cartes plus homogènes */
.home-services .service-card,
.services-preview .service-card,
section .service-card {
  min-height: 390px !important;
  isolation: isolate;
}

/* Zone titre + icône plus lisible */
.service-title-inline {
  min-height: 72px;
  align-items: center !important;
  margin-bottom: 18px !important;
}

.service-title-inline span {
  line-height: 1.12;
}

/* Descriptions alignées et plus régulières */
.service-card p {
  min-height: 76px !important;
  max-width: 95%;
}

/* Boutons alignés en bas */
.service-card .btn {
  margin-top: auto !important;
}

/* Effet premium : zoom doux de l’image */
.service-card {
  transform: translateY(0);
  transition:
    transform .32s ease,
    box-shadow .32s ease,
    filter .32s ease;
}

.service-card:hover {
  transform: translateY(-8px);
  box-shadow:
    0 34px 70px rgba(51,51,51,.22),
    0 12px 26px rgba(153,51,102,.16) !important;
}

/* Image légèrement plus vivante au survol */
.service-card[style*="background-image"] {
  background-size: 108% !important;
  background-position: center !important;
  transition:
    transform .32s ease,
    box-shadow .32s ease,
    background-size .65s ease,
    background-position .65s ease;
}

.service-card[style*="background-image"]:hover {
  background-size: 114% !important;
}

/* Overlay plus raffiné */
.service-card::before {
  background:
    linear-gradient(
      180deg,
      rgba(51,51,51,.12) 0%,
      rgba(51,51,51,.18) 24%,
      rgba(102,51,102,.58) 58%,
      rgba(45,26,55,.96) 100%
    ) !important;
}

.service-card:hover::before {
  background:
    linear-gradient(
      180deg,
      rgba(51,51,51,.06) 0%,
      rgba(153,51,102,.22) 28%,
      rgba(153,51,102,.66) 58%,
      rgba(45,26,55,.98) 100%
    ) !important;
}

/* Icônes plus nettes */
.service-title-icon {
  filter:
    brightness(0)
    invert(1)
    drop-shadow(0 5px 16px rgba(0,0,0,.55))
    drop-shadow(0 0 1px rgba(255,255,255,.55)) !important;
  transition: transform .28s ease, filter .28s ease;
}

.service-card:hover .service-title-icon {
  transform: translateY(-2px) scale(1.08);
  filter:
    brightness(0)
    invert(1)
    drop-shadow(0 8px 22px rgba(0,0,0,.62))
    drop-shadow(0 0 3px rgba(255,255,255,.55)) !important;
}

/* Bouton plus premium */
.service-card .btn {
  position: relative;
  overflow: hidden;
  transition:
    transform .25s ease,
    box-shadow .25s ease,
    background .25s ease;
}

.service-card .btn:hover {
  transform: translateY(-2px);
  box-shadow:
    0 18px 38px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,255,255,.9);
}

/* Flèche plus élégante */
.service-card .btn-arrow {
  margin-left: 8px;
}

/* Responsive : on évite les hauteurs forcées trop grandes */
@media (max-width: 760px) {
  .home-services .service-card,
  .services-preview .service-card,
  section .service-card {
    min-height: 340px !important;
  }

  .service-title-inline {
    min-height: auto;
  }

  .service-card p {
    min-height: auto !important;
  }
}



/* =========================================================
   V6.60 — Correction barre noire images services
   ========================================================= */

/* Correction du débordement noir */
.service-card {
  overflow: hidden !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

/* Zoom plus subtil et plus propre */
.service-card[style*="background-image"] {
  background-size: 102% !important;
  background-position: center center !important;
  transition:
    transform .32s ease,
    box-shadow .32s ease,
    background-size .45s ease;
}

.service-card[style*="background-image"]:hover {
  background-size: 106% !important;
  background-position: center center !important;
}

/* Empêche les bandes visibles */
.service-card::before,
.service-card::after {
  border-radius: inherit;
}

/* Léger raffinement visuel */
.service-card:hover {
  transform: translateY(-6px);
}



/* =========================================================
   V6.61 — Suppression barre haute cartes accueil
   ========================================================= */

/* Suppression définitive de la barre haute */
.service-card::after {
  display: none !important;
  content: none !important;
}

/* Overlay premium plus naturel */
.service-card::before {
  background:
    linear-gradient(
      180deg,
      rgba(25,18,28,.08) 0%,
      rgba(45,26,55,.18) 22%,
      rgba(102,51,102,.54) 56%,
      rgba(35,20,42,.94) 100%
    ) !important;
}

/* Hover plus élégant et discret */
.service-card:hover::before {
  background:
    linear-gradient(
      180deg,
      rgba(25,18,28,.05) 0%,
      rgba(102,51,102,.22) 24%,
      rgba(102,51,102,.62) 58%,
      rgba(35,20,42,.96) 100%
    ) !important;
}

/* Zoom plus subtil */
.service-card[style*="background-image"] {
  background-size: 100% !important;
}

.service-card[style*="background-image"]:hover {
  background-size: 104% !important;
}

/* Cartes plus premium */
.service-card {
  border: 1px solid rgba(255,255,255,.05);
  box-shadow:
    0 24px 54px rgba(20,12,28,.18),
    0 10px 22px rgba(153,51,102,.08) !important;
}



/* =========================================================
   V6.62 — Suppression définitive barres hautes cartes
   ========================================================= */

/* La barre venait du fond de carte visible derrière le background-image.
   On force les photos à remplir toute la carte. */
.service-card[style*="background-image"] {
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-color: transparent !important;
}

/* Hover sans faire apparaître de bande */
.service-card[style*="background-image"]:hover {
  background-size: cover !important;
  background-position: center center !important;
}

/* Neutralisation de toute décoration haute parasite */
.service-card::after,
.service-card::marker {
  display: none !important;
  content: none !important;
  background: none !important;
  border: 0 !important;
  height: 0 !important;
}

/* Pas de bordure haute colorée */
.service-card {
  border-top: 0 !important;
  background-color: transparent !important;
  overflow: hidden !important;
}

/* L’overlay recouvre toute la carte, sans bande pleine */
.service-card::before {
  inset: 0 !important;
  top: 0 !important;
  height: auto !important;
  border-radius: inherit !important;
  background:
    linear-gradient(
      180deg,
      rgba(25,18,28,.10) 0%,
      rgba(45,26,55,.22) 24%,
      rgba(102,51,102,.56) 58%,
      rgba(35,20,42,.94) 100%
    ) !important;
}

/* Sécurité : aucun pseudo-élément ne doit dessiner une bande en haut */
.service-card > *::before,
.service-card > *::after {
  border-top-color: transparent !important;
}



/* =========================================================
   V6.63 — Lisibilité premium cartes accueil
   ========================================================= */

/* Overlay plus intelligent :
   photo visible en haut,
   profondeur sombre progressive vers le texte */
.service-card::before {
  background:
    linear-gradient(
      180deg,
      rgba(18,12,24,.10) 0%,
      rgba(25,16,30,.16) 18%,
      rgba(48,28,58,.34) 42%,
      rgba(74,36,82,.68) 68%,
      rgba(28,16,36,.96) 100%
    ) !important;
}

/* Hover légèrement plus lumineux */
.service-card:hover::before {
  background:
    linear-gradient(
      180deg,
      rgba(18,12,24,.08) 0%,
      rgba(35,18,42,.18) 20%,
      rgba(74,36,82,.38) 42%,
      rgba(102,51,102,.72) 68%,
      rgba(28,16,36,.98) 100%
    ) !important;
}

/* Titre ultra lisible */
.service-card h3,
.service-title-inline span {
  text-shadow:
    0 2px 10px rgba(0,0,0,.68),
    0 1px 2px rgba(0,0,0,.82);
}

/* Texte plus confortable à lire */
.service-card p {
  text-shadow:
    0 2px 8px rgba(0,0,0,.58);
  color: rgba(255,255,255,.98) !important;
}

/* Icônes mieux intégrées */
.service-title-icon {
  filter:
    brightness(0)
    invert(1)
    drop-shadow(0 4px 12px rgba(0,0,0,.60))
    drop-shadow(0 1px 2px rgba(0,0,0,.85)) !important;
}

/* Bouton légèrement détaché du fond */
.service-card .btn {
  box-shadow:
    0 14px 28px rgba(0,0,0,.24),
    0 2px 6px rgba(0,0,0,.18);
}

/* Petit voile subtil uniquement derrière le texte */
.service-card-content {
  position: relative;
}

.service-card-content::before {
  content: "";
  position: absolute;
  inset: -12px -14px -14px -14px;
  background:
    linear-gradient(
      180deg,
      rgba(28,16,36,.00),
      rgba(28,16,36,.10),
      rgba(28,16,36,.22)
    );
  border-radius: 24px;
  pointer-events: none;
}

.service-card-content > * {
  position: relative;
  z-index: 1;
}



/* =========================================================
   V6.64 — Icônes accueil légèrement agrandies
   ========================================================= */

.service-title-icon {
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  min-height: 42px !important;
  margin-right: 14px !important;
}

/* DAD légèrement plus visible */
.service-card img[src*="dad"],
.service-title-icon[src*="dad"] {
  width: 48px !important;
  height: 48px !important;
}

/* Meilleur alignement vertical */
.service-title-inline {
  align-items: center !important;
  gap: 2px !important;
}



/* =========================================================
   V6.65 — Icônes accueil encore agrandies
   ========================================================= */

.service-title-icon {
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  min-height: 48px !important;
  margin-right: 15px !important;
}

/* DAD renforcé pour compenser le vide du SVG */
.service-card img[src*="dad"],
.service-title-icon[src*="dad"] {
  width: 62px !important;
  height: 62px !important;
  min-width: 62px !important;
  min-height: 62px !important;
  margin-right: 10px !important;
}

/* Alignement vertical premium */
.service-title-inline {
  align-items: center !important;
  gap: 4px !important;
}



/* =========================================================
   V6.66 — Icônes accueil premium max
   ========================================================= */

.service-title-icon {
  width: 56px !important;
  height: 56px !important;
  min-width: 56px !important;
  min-height: 56px !important;
  margin-right: 16px !important;
}

/* DAD encore plus présent */
.service-card img[src*="dad"],
.service-title-icon[src*="dad"] {
  width: 76px !important;
  height: 76px !important;
  min-width: 76px !important;
  min-height: 76px !important;
  margin-right: 8px !important;
}

/* Alignement raffiné */
.service-title-inline {
  align-items: center !important;
  gap: 6px !important;
}



/* =========================================================
   V6.67 — Mentions légales premium
   ========================================================= */

.legal-container {
  display: flex;
  flex-direction: column;
  gap: 26px;
  max-width: 980px;
}

.legal-block {
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(153,51,102,.10);
  border-radius: 28px;
  padding: 34px;
  box-shadow: 0 18px 42px rgba(51,51,51,.08);
}

.legal-block h2 {
  margin: 0 0 18px;
  color: var(--violet);
}

.legal-block p {
  color: #555;
  line-height: 1.75;
  margin-bottom: 16px;
}

.legal-block p:last-child {
  margin-bottom: 0;
}



/* =========================================================
   V6.68 — Icônes agrandies page Nos services
   ========================================================= */

.service-page-icon,
.service-real-icon {
  width: 72px !important;
  height: 72px !important;
  object-fit: contain !important;
  margin-bottom: 22px !important;
}

/* DAD plus visible */
.service-page-icon[src*="dad"],
.service-real-icon[src*="dad"] {
  width: 92px !important;
  height: 92px !important;
  margin-bottom: 10px !important;
}

/* Harmonisation des titres */
.service-page-card h3 {
  margin-top: 2px !important;
}

/* Plus d'air dans les cartes */
.service-page-card {
  padding-top: 38px !important;
}



/* =========================================================
   V6.69 — DAD encore plus visible sur Nos Services
   ========================================================= */

.service-page-icon[src*="dad"],
.service-real-icon[src*="dad"] {
  width: 112px !important;
  height: 112px !important;
  min-width: 112px !important;
  min-height: 112px !important;
  margin-bottom: 2px !important;
  transform: translateY(-4px);
}



/* =========================================================
   V6.71 — Photos antennes + conservation carte et coordonnées
   ========================================================= */

.antennas-photo-section .section-head.center {
  text-align: center;
  justify-content: center;
}

.antennas-photo-grid {
  margin-top: 36px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.antenna-photo-card {
  background: #fff;
  border: 1px solid rgba(153,51,102,.12);
  border-radius: 28px;
  overflow: hidden;
  box-shadow: 0 18px 44px rgba(51,51,51,.08);
  display: flex;
  flex-direction: column;
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}

.antenna-photo-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 28px 58px rgba(51,51,51,.14);
  border-color: rgba(153,51,102,.24);
}

.antenna-photo {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #f4f1f4;
}

.antenna-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform .45s ease;
}

.antenna-photo-card:hover .antenna-photo img {
  transform: scale(1.04);
}

.antenna-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(51,51,51,0) 48%, rgba(102,51,102,.20) 100%);
  pointer-events: none;
}

.antenna-photo-content {
  padding: 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.antenna-tag {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  min-height: 32px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(153,51,102,.08);
  color: var(--violet);
  font-size: .86rem;
  font-weight: 800;
  margin-bottom: 14px;
}

.antenna-photo-content h3 {
  color: var(--violet);
  margin: 0 0 10px;
}

.antenna-photo-content p {
  color: #555;
  line-height: 1.6;
  margin: 0;
}

@media (max-width: 1180px) {
  .antennas-photo-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .antennas-photo-grid {
    grid-template-columns: 1fr;
  }
}



/* =========================================================
   V6.72 — Antennes : cartes fusionnées photos + coordonnées
   ========================================================= */

.antennas-merged-section .section-head.center {
  text-align: center;
  justify-content: center;
}

.antennas-merged-grid {
  margin-top: 36px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.antenna-merged-card {
  background: #fff;
  border: 1px solid rgba(153,51,102,.12);
  border-radius: 30px;
  overflow: hidden;
  box-shadow: 0 18px 44px rgba(51,51,51,.08);
  display: flex;
  flex-direction: column;
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}

.antenna-merged-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 28px 58px rgba(51,51,51,.14);
  border-color: rgba(153,51,102,.24);
}

.antenna-merged-photo {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #f4f1f4;
}

.antenna-merged-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform .45s ease;
}

.antenna-merged-card:hover .antenna-merged-photo img {
  transform: scale(1.04);
}

.antenna-merged-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(51,51,51,0) 45%, rgba(102,51,102,.28) 100%);
  pointer-events: none;
}

.antenna-merged-photo .antenna-tag {
  position: absolute;
  left: 18px;
  bottom: 18px;
  z-index: 2;
  background: rgba(255,255,255,.94);
  box-shadow: 0 12px 28px rgba(51,51,51,.14);
}

.antenna-merged-content {
  padding: 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.antenna-merged-content h3 {
  color: var(--violet);
  margin: 0 0 12px;
}

.antenna-address {
  color: #444;
  font-weight: 800;
  line-height: 1.55;
  margin: 0 0 12px;
}

.antenna-info {
  color: #666;
  line-height: 1.62;
  margin: 0 0 22px;
}

.antenna-merged-content .btn {
  margin-top: auto;
  width: fit-content;
}

@media (max-width: 1180px) {
  .antennas-merged-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .antennas-merged-grid {
    grid-template-columns: 1fr;
  }
}



/* =========================================================
   V6.73 — Antennes : adresses renseignées
   ========================================================= */

.antenna-address {
  min-height: 54px;
}



/* =========================================================
   V6.78 — Offre d'emploi Agent de conduite
   ========================================================= */

.jobs-list-section .section-head.center,
.job-detail-section .section-head.center {
  text-align: center;
  justify-content: center;
}

.jobs-grid {
  margin-top: 34px;
  display: grid;
  grid-template-columns: minmax(280px, 520px);
  justify-content: center;
}

.job-card,
.job-detail-card {
  background: #fff;
  border: 1px solid rgba(153,51,102,.14);
  border-radius: 30px;
  box-shadow: 0 20px 50px rgba(51,51,51,.10);
}

.job-card {
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.job-card h3 {
  color: var(--violet);
  margin: 0;
  font-size: 1.7rem;
}

.job-card p {
  color: #555;
  line-height: 1.65;
  margin: 0;
}

.job-badge {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  min-height: 34px;
  padding: 0 14px;
  border-radius: 999px;
  background: rgba(153,51,102,.08);
  color: var(--violet);
  font-weight: 800;
}

.job-tags,
.job-quick-info {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.job-tags span,
.job-quick-info span {
  background: rgba(51,153,204,.08);
  color: #444;
  border-radius: 999px;
  padding: 8px 13px;
  font-weight: 800;
  font-size: .94rem;
}

.job-note {
  max-width: 760px;
  margin: 28px auto 0;
  padding: 18px 22px;
  border-radius: 22px;
  background: rgba(51,153,204,.08);
  border: 1px solid rgba(51,153,204,.16);
  color: #555;
}

.job-detail-card {
  overflow: hidden;
}

.job-detail-header {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 30px;
  padding: 40px;
  background:
    linear-gradient(135deg, rgba(153,51,102,.10), rgba(51,153,204,.08)),
    #fff;
  border-bottom: 1px solid rgba(153,51,102,.12);
}

.job-detail-header h2 {
  color: var(--violet);
  margin: 16px 0 12px;
  font-size: clamp(2rem, 4vw, 3rem);
}

.job-detail-header p {
  color: #555;
  line-height: 1.7;
  margin: 0;
}

.job-quick-info {
  align-content: start;
  justify-content: flex-start;
}

.job-sections-grid {
  padding: 34px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

.job-section-box {
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(153,51,102,.10);
  border-radius: 24px;
  padding: 26px;
  box-shadow: 0 12px 30px rgba(51,51,51,.06);
}

.job-section-box h3 {
  color: var(--violet);
  margin: 0 0 16px;
}

.job-section-box p,
.job-section-box li {
  color: #555;
  line-height: 1.7;
}

.job-section-highlight {
  background:
    linear-gradient(135deg, rgba(153,51,102,.08), rgba(51,153,204,.08)),
    #fff;
}

.job-apply-box {
  margin: 0 34px 34px;
  padding: 30px;
  border-radius: 26px;
  background: #303030;
  color: #fff;
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
}

.job-apply-box h3 {
  margin: 0 0 12px;
  color: #fff;
}

.job-apply-box p,
.job-apply-box a:not(.btn) {
  color: rgba(255,255,255,.82);
}

@media (max-width: 860px) {
  .job-detail-header,
  .job-sections-grid {
    grid-template-columns: 1fr;
  }

  .job-apply-box {
    flex-direction: column;
    align-items: flex-start;
  }
}



/* =========================================================
   V6.80 — Réintégration sous-menu Qui sommes-nous + Notre équipe
   ========================================================= */

.team-section .section-head.center {
  text-align: center;
  justify-content: center;
}

.org-chart {
  margin-top: 40px;
}

.org-level {
  display: grid;
  gap: 22px;
  justify-content: center;
  margin: 22px 0;
}

.org-level-top {
  grid-template-columns: minmax(260px, 360px);
}

.org-level-three {
  grid-template-columns: repeat(3, minmax(220px, 1fr));
}

.org-level-two {
  grid-template-columns: repeat(2, minmax(220px, 360px));
}

.org-connector {
  width: 2px;
  height: 34px;
  background: linear-gradient(180deg, rgba(153,51,102,.35), rgba(51,153,204,.25));
  margin: 4px auto 2px;
  border-radius: 999px;
}

.org-card {
  position: relative;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(153,51,102,.12);
  border-radius: 28px;
  padding: 26px;
  text-align: center;
  box-shadow: 0 18px 42px rgba(51,51,51,.08);
  overflow: hidden;
}

.org-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 90% 10%, rgba(51,153,204,.10), transparent 32%),
    linear-gradient(135deg, rgba(153,51,102,.04), rgba(51,153,204,.04));
  pointer-events: none;
}

.org-card > * {
  position: relative;
  z-index: 1;
}

.org-card-director {
  background:
    linear-gradient(135deg, rgba(153,51,102,.12), rgba(51,153,204,.08)),
    #fff;
  border-color: rgba(153,51,102,.24);
}

.org-card-light {
  background: rgba(255,255,255,.88);
}

.org-card-field {
  background:
    linear-gradient(135deg, rgba(51,153,204,.08), rgba(153,51,102,.06)),
    #fff;
}

.org-icon {
  display: inline-grid;
  place-items: center;
  width: 58px;
  height: 58px;
  margin: 0 auto 14px;
  border-radius: 18px;
  background: rgba(153,51,102,.08);
  font-size: 1.75rem;
}

.org-role {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(153,51,102,.08);
  color: var(--violet);
  font-weight: 800;
  font-size: .86rem;
  margin-bottom: 12px;
}

.org-card h3 {
  margin: 0 0 10px;
  color: var(--violet);
}

.org-card p {
  margin: 0;
  color: #555;
  line-height: 1.65;
}

.mission-cards {
  margin-top: 44px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
}

.mission-card {
  background: #fff;
  border: 1px solid rgba(153,51,102,.12);
  border-radius: 24px;
  padding: 24px;
  box-shadow: 0 14px 34px rgba(51,51,51,.07);
}

.mission-card h3 {
  margin: 0 0 10px;
  color: var(--violet);
}

.mission-card p {
  margin: 0;
  color: #555;
  line-height: 1.65;
}

@media (max-width: 980px) {
  .org-level-three,
  .mission-cards {
    grid-template-columns: repeat(2, 1fr);
  }

  .org-level-two {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 640px) {
  .org-level-three,
  .org-level-two,
  .mission-cards {
    grid-template-columns: 1fr;
  }
}



/* V6.86 - Logo header agrandi */
.site-logo img,
.logo img,
.header-logo img,
.navbar-brand img,
.brand img {
    max-height: 90px !important;
    width: auto !important;
}

@media (max-width: 768px){
    .site-logo img,
    .logo img,
    .header-logo img,
    .navbar-brand img,
    .brand img {
        max-height: 70px !important;
    }
}


/* V6.87 - Agrandissement réel du logo du header */
.header .logo img,
.header-brand img,
.brand img,
.logo img,
.site-header img[alt*="GAS"],
.site-header .container img:first-child {
    height: 95px !important;
    max-height: 95px !important;
    width: auto !important;
}

.header .logo,
.header-brand,
.brand,
.logo {
    flex: 0 0 auto !important;
}

@media (max-width:768px){
    .header .logo img,
    .header-brand img,
    .brand img,
    .logo img{
        height: 75px !important;
        max-height: 75px !important;
    }
}


/* =========================================================
   V6.88 — Menu déroulant plus stable
   ========================================================= */

/* Le parent reste une zone de survol large */
.main-nav .has-submenu {
  position: relative;
  padding-bottom: 14px;
}

/* Pont invisible entre le lien principal et le sous-menu :
   évite que le menu disparaisse quand on descend la souris */
.main-nav .has-submenu::after {
  content: "";
  position: absolute;
  left: -12px;
  right: -12px;
  top: 100%;
  height: 18px;
  background: transparent;
  pointer-events: auto;
}

/* Sous-menu légèrement remonté pour supprimer le “trou” */
.main-nav .submenu {
  margin-top: 0 !important;
  top: calc(100% - 4px) !important;
  z-index: 9999 !important;
}

/* Maintien de l’ouverture au survol du parent OU du sous-menu */
.main-nav .has-submenu:hover > .submenu,
.main-nav .has-submenu:focus-within > .submenu,
.main-nav .submenu:hover {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateY(0) !important;
}

/* Transition plus douce, moins brutale */
.main-nav .submenu {
  transition:
    opacity .18s ease,
    visibility .18s ease,
    transform .18s ease !important;
}

/* Zone cliquable confortable dans les sous-rubriques */
.main-nav .submenu a {
  display: block !important;
  padding: 12px 18px !important;
  white-space: nowrap !important;
}



/* V6.89 - Espace visuel entre menu et sous-menu */
.main-nav .submenu{
    top: calc(100% + 8px) !important;
}

.main-nav .has-submenu::after{
    height: 12px !important;
}


/* V8.01 - Logos partenaires couleur harmonisés */
.partners-grid img,
.partner-logo img,
.partners img{
    max-height: 90px;
    width: auto;
    object-fit: contain;
}


/* V8.02 - Logos partenaires toujours en couleur */
.partners img,
.partner-logo img,
.partners-grid img,
.partner-card img {
    filter: none !important;
    -webkit-filter: none !important;
    opacity: 1 !important;
}

.partners img:hover,
.partner-logo img:hover,
.partners-grid img:hover,
.partner-card img:hover {
    filter: none !important;
    -webkit-filter: none !important;
}


/* V8.03 — Correction définitive : partenaires toujours en couleur */
.site-footer img[src*="partners"],
main img[src*="partners"],
img[src*="assets/img/partners"],
img[src*="/partners/"],
.partners-band img,
.partners-section img,
.partners-grid img,
.partner-logo img,
.partner-card img,
.logo-strip img {
  filter: none !important;
  -webkit-filter: none !important;
  opacity: 1 !important;
  mix-blend-mode: normal !important;
}

/* Même au repos, au survol, au focus et dans les liens */
a img[src*="partners"],
a:hover img[src*="partners"],
a:focus img[src*="partners"],
.partners-band a img,
.partners-band a:hover img,
.partners-section a img,
.partners-section a:hover img {
  filter: none !important;
  -webkit-filter: none !important;
  opacity: 1 !important;
  mix-blend-mode: normal !important;
}


/* V8.04 — Logos partenaires cliquables */
.partner-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  line-height: 0;
  border-radius: 16px;
}

.partner-link img {
  transition: transform .22s ease, opacity .22s ease;
}

.partner-link:hover img,
.partner-link:focus-visible img {
  transform: translateY(-2px) scale(1.03);
  opacity: .95;
}

.partner-link:focus-visible {
  outline: 3px solid rgba(153,51,102,.28);
  outline-offset: 6px;
}


/* V8.05 — Fils d’Ariane cliquables */
.breadcrumb a {
  color: inherit;
  text-decoration: none;
  font-weight: inherit;
}

.breadcrumb a:hover,
.breadcrumb a:focus-visible {
  color: var(--violet);
  text-decoration: underline;
  text-underline-offset: 4px;
}

.breadcrumb a:focus-visible {
  outline: 2px solid rgba(153,51,102,.28);
  outline-offset: 4px;
  border-radius: 6px;
}


/* V8.06 — Correction largeur menu header */
.header-inner,
.site-header .header-inner,
.site-header .container {
  max-width: 1460px !important;
}

.main-nav {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

.main-nav .menu {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  flex-wrap: nowrap !important;
  gap: clamp(18px, 1.65vw, 30px) !important;
}

.main-nav .menu > li {
  flex: 0 0 auto !important;
}

.main-nav .menu > li > a {
  white-space: nowrap !important;
  font-size: clamp(.98rem, 1vw, 1.08rem) !important;
}

/* Le logo garde sa belle présence, mais libère un peu d'espace au menu */
.site-header .logo img,
.logo img {
  max-height: 84px !important;
  height: 84px !important;
  width: auto !important;
}

/* Sur écrans intermédiaires, on compacte encore légèrement */
@media (max-width: 1180px) {
  .main-nav .menu {
    gap: 14px !important;
  }

  .main-nav .menu > li > a {
    font-size: .96rem !important;
  }

  .site-header .logo img,
  .logo img {
    max-height: 74px !important;
    height: 74px !important;
  }
}



/* V8.07 — Menu complet avec Offres d’emploi */
.main-nav .menu {
  gap: clamp(14px, 1.25vw, 24px) !important;
}

.main-nav .menu > li > a {
  white-space: nowrap !important;
  font-size: clamp(.94rem, .95vw, 1.04rem) !important;
}

.site-header .logo img,
.logo img {
  height: 78px !important;
  max-height: 78px !important;
  width: auto !important;
}

@media (max-width: 1220px) {
  .main-nav .menu {
    gap: 12px !important;
  }

  .main-nav .menu > li > a {
    font-size: .92rem !important;
  }

  .site-header .logo img,
  .logo img {
    height: 70px !important;
    max-height: 70px !important;
  }
}


/* V8.09 — Marqueurs antennes logo GAS18 */
.leaflet-marker-icon {
  filter: drop-shadow(0 6px 12px rgba(0,0,0,.25));
}


/* V8.10 — Recentrage marqueurs carte */
.leaflet-marker-icon {
  transform-origin: center center !important;
}


/* V9.8 — Etiquettes carte sans masquer la carte */
.antenna-map-label {
  background: #fff !important;
  color: var(--violet) !important;
  border: 1px solid rgba(153,51,102,.14) !important;
  border-radius: 999px !important;
  padding: 7px 13px !important;
  font-weight: 800 !important;
  box-shadow: 0 8px 18px rgba(0,0,0,.16) !important;
}

.antenna-map-label::before {
  display: none !important;
}


/* V9.14 — Carte antennes conteneur réparé */
.antennas-map-section {
  padding-top: 32px;
}

.map-card {
  background: #fff;
  border-radius: 30px;
  overflow: hidden;
  box-shadow: 0 20px 50px rgba(51,51,51,.10);
  border: 1px solid rgba(153,51,102,.12);
}

#all-antennas-map,
.antenna-map {
  width: 100% !important;
  height: 620px !important;
  min-height: 620px !important;
  display: block !important;
}

.antenna-map-label {
  background: #fff !important;
  color: var(--violet) !important;
  border: 1px solid rgba(153,51,102,.14) !important;
  border-radius: 999px !important;
  padding: 7px 13px !important;
  font-weight: 800 !important;
  box-shadow: 0 8px 18px rgba(0,0,0,.16) !important;
}

.antenna-map-label::before {
  display: none !important;
}


/* V10.10 — Garage solidaire étapes professionnelles */
.garage-steps {
  margin: 28px 0 30px;
  display: grid;
  gap: 0;
}

.garage-step {
  display: grid;
  grid-template-columns: 82px 1fr;
  align-items: center;
  gap: 18px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(51,51,51,.10);
  color: #3f3f3f;
  font-weight: 800;
  line-height: 1.45;
}

.garage-step:last-child {
  border-bottom: 0;
}

.step-number {
  display: inline-grid;
  place-items: center;
  width: 62px;
  height: 48px;
  border-radius: 15px;
  font-size: 1.25rem;
  font-weight: 900;
  letter-spacing: .04em;
  box-shadow: 0 10px 24px rgba(51,51,51,.08);
}

.step-1 {
  color: #8f45d8;
  background: linear-gradient(135deg, rgba(143,69,216,.18), rgba(143,69,216,.08));
}

.step-2 {
  color: #229bd2;
  background: linear-gradient(135deg, rgba(34,155,210,.18), rgba(34,155,210,.08));
}

.step-3 {
  color: #39a935;
  background: linear-gradient(135deg, rgba(57,169,53,.18), rgba(57,169,53,.08));
}

.step-4 {
  color: #f39a18;
  background: linear-gradient(135deg, rgba(243,154,24,.20), rgba(243,154,24,.08));
}

.step-5 {
  color: #d93682;
  background: linear-gradient(135deg, rgba(217,54,130,.18), rgba(217,54,130,.08));
}

@media (max-width: 640px) {
  .garage-step {
    grid-template-columns: 66px 1fr;
    gap: 14px;
  }

  .step-number {
    width: 54px;
    height: 44px;
    font-size: 1.05rem;
  }
}


/* V10.11 - Version compacte des étapes Garage Solidaire */
.garage-steps{
  margin:18px 0 20px !important;
}

.garage-step{
  grid-template-columns:52px 1fr !important;
  gap:12px !important;
  padding:8px 0 !important;
  border-bottom:none !important;
}

.step-number{
  width:40px !important;
  height:40px !important;
  border-radius:12px !important;
  font-size:1rem !important;
  box-shadow:none !important;
}


/* V10.12 — Bouton tarifs garage */
.tarifs-action {
  margin-top: 20px;
}

.tarifs-toggle {
  cursor: pointer;
}

.tarifs-panel {
  margin-top: 20px;
  padding: 24px;
  border-radius: 24px;
  background: rgba(153,51,102,.06);
  border: 1px solid rgba(153,51,102,.14);
  box-shadow: 0 12px 30px rgba(51,51,51,.06);
}

.tarifs-panel h3 {
  margin: 0 0 12px;
  color: var(--violet);
}

.tarifs-panel p {
  color: #555;
  line-height: 1.65;
  margin-bottom: 14px;
}

.tarifs-panel ul {
  margin: 0;
  padding-left: 20px;
  color: #555;
  line-height: 1.75;
}


/* V10.13 — Tarifs et étapes services */
.garage-steps {
  margin: 18px 0 20px !important;
  display: grid;
  gap: 0;
}

.garage-step {
  display: grid;
  grid-template-columns: 52px 1fr !important;
  align-items: center;
  gap: 12px !important;
  padding: 8px 0 !important;
  border-bottom: none !important;
  color: #3f3f3f;
  font-weight: 800;
  line-height: 1.42;
}

.step-number {
  display: inline-grid;
  place-items: center;
  width: 40px !important;
  height: 40px !important;
  border-radius: 12px !important;
  font-size: 1rem !important;
  font-weight: 900;
  letter-spacing: .04em;
  box-shadow: none !important;
}

.step-1 { color: #8f45d8; background: linear-gradient(135deg, rgba(143,69,216,.18), rgba(143,69,216,.08)); }
.step-2 { color: #229bd2; background: linear-gradient(135deg, rgba(34,155,210,.18), rgba(34,155,210,.08)); }
.step-3 { color: #39a935; background: linear-gradient(135deg, rgba(57,169,53,.18), rgba(57,169,53,.08)); }
.step-4 { color: #f39a18; background: linear-gradient(135deg, rgba(243,154,24,.20), rgba(243,154,24,.08)); }
.step-5 { color: #d93682; background: linear-gradient(135deg, rgba(217,54,130,.18), rgba(217,54,130,.08)); }

.tarifs-action { margin-top: 20px; }
.tarifs-toggle { cursor: pointer; }

.tarifs-panel {
  margin-top: 20px;
  padding: 24px;
  border-radius: 24px;
  background: rgba(153,51,102,.06);
  border: 1px solid rgba(153,51,102,.14);
  box-shadow: 0 12px 30px rgba(51,51,51,.06);
}

.tarifs-panel h3 {
  margin: 0 0 12px;
  color: var(--violet);
}

.tarifs-panel p {
  color: #555;
  line-height: 1.65;
  margin-bottom: 14px;
}

.tarifs-panel ul {
  margin: 0;
  padding-left: 20px;
  color: #555;
  line-height: 1.75;
}

@media (max-width: 640px) {
  .garage-step { grid-template-columns: 48px 1fr !important; }
  .step-number { width: 36px !important; height: 36px !important; font-size: .92rem !important; }
}


/* V10.21 - Correction ciblée bouton page Déplacement à la demande */
.deplacement-page .card > a.btn.btn-primary,
body .card > a.btn.btn-primary[href="contact.html"] {
  display: inline-flex !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: max-content !important;
  aspect-ratio: auto !important;
  padding: 14px 28px !important;
  border-radius: 999px !important;
  align-self: flex-start !important;
  justify-self: start !important;
  flex: 0 0 auto !important;
  line-height: 1.2 !important;
}


/* V10.23 — Correction bouton Location solidaire */
.location-page .card > a.btn.btn-primary,
.location-page a.btn.btn-primary[href="contact.html"] {
  display: inline-flex !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: max-content !important;
  aspect-ratio: auto !important;
  padding: 14px 28px !important;
  border-radius: 999px !important;
  align-self: flex-start !important;
  justify-self: start !important;
  flex: 0 0 auto !important;
  line-height: 1.2 !important;
}


/* V10.24 — Correction bouton Conseil mobilité */
.conseil-page .card > a.btn.btn-primary,
.conseil-page a.btn.btn-primary[href="contact.html"] {
  display: inline-flex !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: max-content !important;
  aspect-ratio: auto !important;
  padding: 14px 28px !important;
  border-radius: 999px !important;
  align-self: flex-start !important;
  justify-self: start !important;
  flex: 0 0 auto !important;
  line-height: 1.2 !important;
}


/* V10.26 — Boutons Conseil mobilité */
.pdf-action {
  margin-top: 20px;
}

.btn-pdf {
  width: auto !important;
  height: auto !important;
  max-width: max-content !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}


/* V10.31 Bandeaux photos services */
.service-banner{
 margin:24px 0 32px;
}
.service-banner img{
 width:100%;
 height:340px;
 object-fit:cover;
 border-radius:24px;
 display:block;
 box-shadow:0 12px 30px rgba(0,0,0,.10);
}
@media(max-width:768px){
 .service-banner img{height:220px;}
}


/* V10.31 — Pages Qui sommes-nous */
.about-pages-section {
  background:
    radial-gradient(circle at 15% 0%, rgba(153,51,102,.07), transparent 30%),
    radial-gradient(circle at 85% 15%, rgba(51,153,204,.08), transparent 32%);
}

.about-page-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 26px;
}

.about-content-card {
  background: #fff;
  border: 1px solid rgba(153,51,102,.12);
  border-radius: 28px;
  padding: 30px;
  box-shadow: 0 18px 42px rgba(51,51,51,.07);
}

.about-content-card h2 {
  margin: 0 0 14px;
  color: var(--violet);
}

.about-content-card p {
  margin: 0 0 12px;
  color: #555;
  line-height: 1.7;
}

.about-content-card p:last-child {
  margin-bottom: 0;
}

.about-next-links {
  margin-top: 34px;
  display: flex;
  justify-content: center;
}

@media (max-width: 820px) {
  .about-page-grid {
    grid-template-columns: 1fr;
  }

  .about-content-card {
    padding: 24px;
  }
}


/* V10.32 - Photos Qui sommes-nous */
.about-photo-banner {
  margin: 28px 0 0;
}

.about-photo-banner img {
  width: 100%;
  height: 340px;
  object-fit: cover;
  object-position: center;
  display: block;
  border-radius: 28px;
  box-shadow: 0 16px 38px rgba(51,51,51,.12);
  border: 1px solid rgba(153,51,102,.10);
}

@media (max-width: 760px) {
  .about-photo-banner img {
    height: 230px;
  }
}


/* V10.35 - Photos Qui sommes-nous corrigees */
.about-photo-banner {
  margin: 28px 0 0;
}

.about-photo-banner img {
  width: 100%;
  height: 340px;
  object-fit: cover;
  object-position: center;
  display: block;
  border-radius: 28px;
  box-shadow: 0 16px 38px rgba(51,51,51,.12);
  border: 1px solid rgba(153,51,102,.10);
}

@media (max-width: 760px) {
  .about-photo-banner img {
    height: 230px;
  }
}


/* V10.36 - Notre histoire premium */
.history-hero-premium {
  padding: 54px 0 34px;
  background:
    radial-gradient(circle at 12% 12%, rgba(153,51,102,.10), transparent 34%),
    radial-gradient(circle at 88% 20%, rgba(51,153,204,.10), transparent 32%),
    linear-gradient(180deg, #fff, rgba(153,51,102,.035));
}

.history-hero-grid {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  align-items: center;
  gap: 34px;
}

.history-hero-text h1 {
  font-size: clamp(2.4rem, 5vw, 4.7rem);
  margin: 18px 0 18px;
  color: var(--violet);
  line-height: .95;
}

.history-hero-text p {
  font-size: 1.24rem;
  color: #555;
  line-height: 1.65;
  max-width: 680px;
}

.history-hero-photo img {
  width: 100%;
  height: 430px;
  object-fit: cover;
  object-position: center;
  display: block;
  border-radius: 34px;
  box-shadow: 0 24px 60px rgba(51,51,51,.16);
  border: 1px solid rgba(153,51,102,.12);
}

.history-intro-card {
  max-width: 980px;
  margin: 0 auto;
  padding: 32px;
  border-radius: 30px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(51,51,51,.08);
  border: 1px solid rgba(153,51,102,.12);
}

.history-intro-card p {
  margin: 0 0 12px;
  color: #555;
  line-height: 1.75;
  font-size: 1.07rem;
}

.history-intro-card p:last-child {
  margin-bottom: 0;
}

.premium-timeline {
  position: relative;
  max-width: 980px;
  margin: 38px auto 0;
  display: grid;
  gap: 24px;
}

.premium-timeline::before {
  content: "";
  position: absolute;
  left: 42px;
  top: 12px;
  bottom: 12px;
  width: 4px;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--violet), #3399cc, #39a935);
  opacity: .35;
}

.premium-timeline-item {
  position: relative;
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 24px;
  align-items: stretch;
}

.timeline-year {
  position: relative;
  z-index: 1;
  width: 86px;
  height: 86px;
  border-radius: 24px;
  display: grid;
  place-items: center;
  background: #fff;
  color: var(--violet);
  font-family: "Nunito", sans-serif;
  font-weight: 900;
  box-shadow: 0 14px 32px rgba(51,51,51,.10);
  border: 1px solid rgba(153,51,102,.14);
  text-align: center;
  padding: 8px;
}

.timeline-content {
  background: #fff;
  border-radius: 28px;
  padding: 26px 28px;
  box-shadow: 0 16px 40px rgba(51,51,51,.08);
  border: 1px solid rgba(153,51,102,.10);
}

.timeline-content h3 {
  margin: 0 0 10px;
  color: var(--violet);
}

.timeline-content p {
  margin: 0;
  color: #555;
  line-height: 1.7;
}

.premium-timeline-highlight .timeline-year,
.premium-timeline-highlight .timeline-content {
  background: linear-gradient(135deg, rgba(153,51,102,.10), rgba(51,153,204,.08));
}

.history-keyfigures {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
}

.keyfigure-card {
  background: #fff;
  border-radius: 28px;
  padding: 28px;
  text-align: center;
  box-shadow: 0 16px 40px rgba(51,51,51,.08);
  border: 1px solid rgba(153,51,102,.12);
}

.keyfigure-card strong {
  display: block;
  color: var(--violet);
  font-family: "Nunito", sans-serif;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  line-height: 1;
  margin-bottom: 10px;
}

.keyfigure-card span {
  color: #555;
  line-height: 1.45;
}

.history-quote {
  margin: 0;
  padding: 36px;
  border-radius: 32px;
  background: linear-gradient(135deg, rgba(153,51,102,.10), rgba(51,153,204,.08));
  border: 1px solid rgba(153,51,102,.14);
  box-shadow: 0 16px 42px rgba(51,51,51,.07);
}

.history-quote p {
  margin: 0;
  color: var(--violet);
  font-family: "Nunito", sans-serif;
  font-size: clamp(1.35rem, 2.7vw, 2.2rem);
  line-height: 1.25;
  text-align: center;
}

.about-discovery-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
}

.about-discovery-card {
  display: block;
  background: #fff;
  border-radius: 26px;
  padding: 24px;
  text-decoration: none;
  color: inherit;
  border: 1px solid rgba(153,51,102,.12);
  box-shadow: 0 14px 34px rgba(51,51,51,.07);
  transition: transform .22s ease, box-shadow .22s ease;
}

.about-discovery-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 22px 46px rgba(51,51,51,.12);
}

.about-discovery-card span {
  display: block;
  color: var(--violet);
  font-family: "Nunito", sans-serif;
  font-weight: 900;
  font-size: 1.18rem;
  margin-bottom: 8px;
}

.about-discovery-card p {
  margin: 0;
  color: #555;
  line-height: 1.55;
}

@media (max-width: 920px) {
  .history-hero-grid {
    grid-template-columns: 1fr;
  }

  .history-hero-photo img {
    height: 300px;
  }

  .history-keyfigures,
  .about-discovery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .premium-timeline::before {
    left: 28px;
  }

  .premium-timeline-item {
    grid-template-columns: 72px 1fr;
    gap: 14px;
  }

  .timeline-year {
    width: 58px;
    height: 58px;
    border-radius: 18px;
    font-size: .86rem;
  }

  .timeline-content {
    padding: 22px;
  }

  .history-keyfigures,
  .about-discovery-grid {
    grid-template-columns: 1fr;
  }

  .history-quote {
    padding: 28px 22px;
  }
}


/* V10.37 - Ajustement agencement Notre histoire */
.history-timeline-premium-section {
  padding-bottom: 54px !important;
}

.history-keyfigures-section {
  padding-top: 54px !important;
}

.premium-timeline {
  margin-bottom: 0 !important;
}

.premium-timeline::before {
  bottom: 44px !important;
}

.premium-timeline-item:last-child {
  margin-bottom: 0 !important;
}

.history-keyfigures {
  align-items: stretch;
}

.keyfigure-card {
  min-height: 190px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.keyfigure-card strong {
  word-break: normal;
}

@media (max-width: 920px) {
  .history-timeline-premium-section {
    padding-bottom: 40px !important;
  }

  .history-keyfigures-section {
    padding-top: 40px !important;
  }

  .keyfigure-card {
    min-height: 150px;
  }
}

@media (max-width: 640px) {
  .premium-timeline::before {
    bottom: 32px !important;
  }
}


/* V10.38 - Correction ligne frise histoire */
.premium-timeline::before {
  z-index: 0 !important;
  left: 43px !important;
  top: 44px !important;
  bottom: 44px !important;
}

.premium-timeline-item {
  position: relative !important;
  z-index: 1 !important;
}

.timeline-year {
  background: #fff !important;
  position: relative !important;
  z-index: 3 !important;
  overflow: hidden !important;
}

.premium-timeline-highlight .timeline-year {
  background: #fff !important;
  color: var(--violet) !important;
}

.timeline-year::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #fff;
  z-index: -1;
  border-radius: inherit;
}

@media (max-width: 640px) {
  .premium-timeline::before {
    left: 29px !important;
    top: 34px !important;
    bottom: 34px !important;
  }
}


/* V10.39 - Correction finale frise et chiffres Notre histoire */

/* Badge des années : plus de texte tronqué */
.timeline-year {
  width: auto !important;
  min-width: 96px !important;
  height: auto !important;
  min-height: 74px !important;
  padding: 16px 18px !important;
  white-space: nowrap !important;
  overflow: visible !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1.15 !important;
}

/* Le badge "Aujourd'hui" a besoin d'un peu plus de largeur */
.premium-timeline-highlight .timeline-year {
  min-width: 132px !important;
}

/* Ligne verticale : positionnée derrière les badges, sans traverser le texte */
.premium-timeline::before {
  z-index: 0 !important;
  left: 48px !important;
  top: 44px !important;
  bottom: 44px !important;
}

.premium-timeline-item {
  position: relative !important;
  z-index: 1 !important;
}

.timeline-content {
  align-self: center !important;
}

/* Chiffres clés : texte recentré proprement */
.keyfigure-card {
  min-height: 210px !important;
  display: grid !important;
  place-content: center !important;
  text-align: center !important;
  padding: 28px !important;
}

.keyfigure-card strong {
  display: block !important;
  margin: 0 0 16px !important;
  line-height: 1.05 !important;
}

.keyfigure-card span {
  display: block !important;
  max-width: 240px !important;
  margin: 0 auto !important;
  line-height: 1.45 !important;
}

@media (max-width: 640px) {
  .timeline-year {
    min-width: 64px !important;
    min-height: 58px !important;
    padding: 10px 12px !important;
    font-size: .82rem !important;
    white-space: normal !important;
  }

  .premium-timeline-highlight .timeline-year {
    min-width: 82px !important;
  }

  .premium-timeline::before {
    left: 34px !important;
    top: 34px !important;
    bottom: 34px !important;
  }

  .keyfigure-card {
    min-height: 150px !important;
  }
}


/* V10.40 - Harmonisation frise et chiffres histoire */

/* Pastilles de dates : même taille pour toutes */
.timeline-year,
.premium-timeline-highlight .timeline-year {
  width: 112px !important;
  min-width: 112px !important;
  max-width: 112px !important;
  height: 82px !important;
  min-height: 82px !important;
  padding: 0 12px !important;
  box-sizing: border-box !important;
  white-space: normal !important;
  text-align: center !important;
  overflow: visible !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 1rem !important;
  line-height: 1.15 !important;
}

/* Ligne verticale centrée derrière les pastilles */
.premium-timeline::before {
  left: 55px !important;
  top: 42px !important;
  bottom: 42px !important;
}

/* Chiffres clés : titres sur une ligne et alignement homogène */
.history-keyfigures {
  align-items: stretch !important;
}

.keyfigure-card {
  min-height: 190px !important;
  padding: 28px 22px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
  text-align: center !important;
}

.keyfigure-card strong {
  display: block !important;
  width: 100% !important;
  margin: 0 0 18px !important;
  font-size: clamp(2rem, 3.1vw, 2.9rem) !important;
  line-height: 1.05 !important;
  white-space: nowrap !important;
}

.keyfigure-card span {
  display: block !important;
  width: 100% !important;
  max-width: 245px !important;
  margin: 0 auto !important;
  line-height: 1.45 !important;
  font-size: 1rem !important;
}

@media (max-width: 920px) {
  .keyfigure-card strong {
    font-size: clamp(1.8rem, 6vw, 2.6rem) !important;
  }
}

@media (max-width: 640px) {
  .timeline-year,
  .premium-timeline-highlight .timeline-year {
    width: 72px !important;
    min-width: 72px !important;
    max-width: 72px !important;
    height: 62px !important;
    min-height: 62px !important;
    padding: 0 8px !important;
    font-size: .78rem !important;
  }

  .premium-timeline::before {
    left: 36px !important;
    top: 32px !important;
    bottom: 32px !important;
  }

  .keyfigure-card {
    min-height: 145px !important;
  }

  .keyfigure-card strong {
    white-space: normal !important;
  }
}


/* V10.41 - Affinage chiffres clés */

.keyfigure-card strong {
    font-size: clamp(1.9rem, 2.2vw, 2.45rem) !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
    margin-bottom: 22px !important;
    letter-spacing: -0.5px !important;
}

.keyfigure-card {
    min-height: 185px !important;
}

.keyfigure-card span {
    max-width: 220px !important;
    margin: 0 auto !important;
    line-height: 1.5 !important;
}

@media (max-width: 920px) {
    .keyfigure-card strong {
        font-size: clamp(1.7rem, 4vw, 2.1rem) !important;
    }
}


/* V10.43 - Nos valeurs retravaillées */
.about-page-grid .about-content-card:nth-child(1){
 background:#FCE7F3;
}
.about-page-grid .about-content-card:nth-child(2){
 background:#EDE9FE;
}
.about-page-grid .about-content-card:nth-child(3){
 background:#DCFCE7;
}
.about-page-grid .about-content-card:nth-child(4){
 background:#DBEAFE;
}

.about-page-grid .about-content-card{
 border-radius:24px;
 transition:transform .25s ease, box-shadow .25s ease;
}

.about-page-grid .about-content-card:hover{
 transform:translateY(-4px);
}

.values-ess-banner{
 margin-top:40px;
 padding:40px;
 border-radius:28px;
 background:linear-gradient(135deg,#fdf2f8,#f3e8ff);
 text-align:center;
}

.values-ess-banner h2{
 color:#a33974;
 margin-bottom:16px;
}

.values-ess-banner p{
 max-width:900px;
 margin:0 auto;
}


/* V10.44 - Nos valeurs sans doublon ESS */
.values-ess-banner {
  margin-top: 34px !important;
}

body:has(.values-ess-banner) .about-page-grid {
  align-items: stretch;
}


/* V10.45 Organigramme bénévoles */
.benevoles-orga-section{padding-top:10px}
.orga-president{display:flex;justify-content:center;margin-bottom:30px}
.orga-bureau{
 display:grid;
 grid-template-columns:repeat(3,minmax(0,1fr));
 gap:20px;
 margin-bottom:30px;
}
.orga-admin-title{
 text-align:center;
 font-family:"Nunito",sans-serif;
 font-size:1.4rem;
 color:var(--violet);
 margin-bottom:20px;
}
.orga-admin-grid{
 display:grid;
 grid-template-columns:repeat(3,minmax(0,1fr));
 gap:20px;
}
.orga-card{
 background:#fff;
 border:1px solid rgba(153,51,102,.12);
 border-radius:24px;
 padding:24px;
 text-align:center;
 box-shadow:0 12px 30px rgba(0,0,0,.08);
}
.orga-card h3{margin:0;color:var(--violet)}
.orga-main{
 background:linear-gradient(135deg,#fdf2f8,#f3e8ff);
 min-width:260px;
}
.admin-card{
 background:#fafafa;
}
@media(max-width:768px){
 .orga-bureau,.orga-admin-grid{grid-template-columns:1fr}
 .orga-main{min-width:auto}
}


/* V10.46 - Organigramme bénévoles style équipe */
.team-style-orga {
  padding-top: 10px;
}

.benevoles-org-chart {
  max-width: 980px;
  margin: 0 auto 36px;
  position: relative;
}

.volunteer-role-card {
  background: #fff;
  border: 1px solid rgba(153,51,102,.12);
  border-radius: 28px;
  padding: 28px;
  text-align: center;
  box-shadow: 0 16px 40px rgba(51,51,51,.08);
  transition: transform .22s ease, box-shadow .22s ease;
}

.volunteer-role-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 50px rgba(51,51,51,.12);
}

.role-president {
  max-width: 340px;
  margin: 0 auto 32px;
  background: linear-gradient(135deg, rgba(153,51,102,.10), rgba(51,153,204,.08));
}

.volunteer-role-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 22px;
}

.role-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(153,51,102,.10);
  color: var(--violet);
  font-weight: 900;
  font-size: .88rem;
  margin-bottom: 14px;
}

.volunteer-role-card h3 {
  margin: 0 0 8px;
  color: var(--violet);
  font-size: 1.45rem;
}

.volunteer-role-card p {
  margin: 0;
  color: #666;
  font-weight: 700;
}

.administrateurs-block {
  max-width: 980px;
  margin: 18px auto 0;
  background: #fff;
  border: 1px solid rgba(153,51,102,.12);
  border-radius: 30px;
  padding: 30px;
  box-shadow: 0 16px 40px rgba(51,51,51,.07);
}

.administrateurs-block h3 {
  margin: 0 0 22px;
  color: var(--violet);
  text-align: center;
  font-size: 1.55rem;
}

.administrateurs-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 16px;
}

.admin-mini-card {
  background: linear-gradient(135deg, rgba(153,51,102,.06), rgba(51,153,204,.05));
  border: 1px solid rgba(153,51,102,.10);
  border-radius: 20px;
  padding: 20px;
  text-align: center;
  color: var(--violet);
  font-weight: 900;
}

.admin-mini-card span {
  display: inline-block;
  margin-top: 6px;
  color: #666;
  font-weight: 700;
  font-size: .95rem;
}

@media (max-width: 820px) {
  .volunteer-role-row,
  .administrateurs-grid {
    grid-template-columns: 1fr;
  }

  .role-president {
    max-width: none;
  }
}


/* V11.5 - Tarifs location solidaire */
.tarifs-location-wrap {
  margin-top: 22px;
  background: #fff;
  border: 1px solid rgba(153,51,102,.12);
  border-radius: 28px;
  padding: 28px;
  box-shadow: 0 16px 40px rgba(51,51,51,.08);
}

.tarifs-location-wrap h3 {
  color: var(--violet);
  margin: 26px 0 12px;
}

.tarifs-location-wrap h3:first-of-type {
  margin-top: 20px;
}

.tarifs-subtitle {
  color: #666;
  margin-top: -6px;
}

.tarifs-note {
  display: grid;
  gap: 6px;
  background: linear-gradient(135deg, rgba(153,51,102,.08), rgba(51,153,204,.06));
  border: 1px solid rgba(153,51,102,.12);
  border-radius: 22px;
  padding: 18px 20px;
  color: #555;
}

.tarifs-note strong {
  color: var(--violet);
}

.tarifs-grid {
  display: grid;
  gap: 16px;
  margin: 16px 0 8px;
}

.tarifs-grid-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.tarif-card {
  background: #fafafa;
  border: 1px solid rgba(153,51,102,.12);
  border-radius: 22px;
  padding: 20px;
  text-align: center;
}

.tarif-card span {
  display: block;
  color: #555;
  font-weight: 700;
  margin-bottom: 10px;
}

.tarif-card strong {
  display: block;
  color: var(--violet);
  font-family: "Nunito", sans-serif;
  font-size: 2rem;
  line-height: 1.1;
}

.tarif-card small {
  display: block;
  margin-top: 8px;
  color: #777;
}

.penalites-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 16px;
}

.penalites-grid div {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  background: #fafafa;
  border: 1px solid rgba(153,51,102,.10);
  border-radius: 16px;
  padding: 13px 15px;
}

.penalites-grid span {
  color: #555;
}

.penalites-grid strong {
  color: var(--violet);
  white-space: nowrap;
}

.tarifs-disclaimer {
  margin: 22px 0 0;
  color: #666;
  font-size: .95rem;
  line-height: 1.55;
}

@media (max-width: 820px) {
  .tarifs-grid-3,
  .penalites-grid {
    grid-template-columns: 1fr;
  }

  .penalites-grid div {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
  }
}


/* V11.6 - Tarifs location corriges */
.tarifs-location-simple {
  margin-top: 22px;
}

.tarifs-location-panel {
  margin-top: 22px;
  background: #fff;
  border: 1px solid rgba(153,51,102,.12);
  border-radius: 28px;
  padding: 28px;
  box-shadow: 0 16px 40px rgba(51,51,51,.08);
}

.tarifs-location-panel h3 {
  color: var(--violet);
  margin: 26px 0 12px;
}

.tarifs-note {
  display: grid;
  gap: 6px;
  background: linear-gradient(135deg, rgba(153,51,102,.08), rgba(51,153,204,.06));
  border: 1px solid rgba(153,51,102,.12);
  border-radius: 22px;
  padding: 18px 20px;
  color: #555;
}

.tarifs-note strong {
  color: var(--violet);
}

.tarifs-grid {
  display: grid;
  gap: 16px;
  margin: 16px 0 8px;
}

.tarifs-grid-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.tarif-card {
  background: #fafafa;
  border: 1px solid rgba(153,51,102,.12);
  border-radius: 22px;
  padding: 20px;
  text-align: center;
}

.tarif-card span {
  display: block;
  color: #555;
  font-weight: 700;
  margin-bottom: 10px;
}

.tarif-card strong {
  display: block;
  color: var(--violet);
  font-family: "Nunito", sans-serif;
  font-size: 2rem;
}

.tarif-card small {
  display: block;
  margin-top: 8px;
  color: #777;
}

.penalites-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 10px;
}

.penalites-grid div {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  background: #fafafa;
  border: 1px solid rgba(153,51,102,.10);
  border-radius: 16px;
  padding: 13px 15px;
}

.penalites-grid strong {
  color: var(--violet);
  white-space: nowrap;
}

.tarifs-disclaimer {
  margin-top: 22px;
  color: #666;
  font-size: .95rem;
}

@media (max-width: 820px) {
  .tarifs-grid-3,
  .penalites-grid {
    grid-template-columns: 1fr;
  }

  .penalites-grid div {
    flex-direction: column;
  }
}


/* V11.9 Adhésion obligatoire */
.adhesion-obligatoire,
.adhesion-tarifs{
    background:#fff7e8;
    border:2px solid #f0c36d;
    border-radius:18px;
    padding:20px;
    margin:20px 0;
}

.adhesion-obligatoire h3,
.adhesion-tarifs strong{
    color:#a2356f;
}


/* V12.6 - Organigramme equipe liaisons */
.org-chart-v126 {
  max-width: 1180px;
  margin: 0 auto;
}

.org-chart-v126 .org-level {
  position: relative;
}

.org-line-vertical {
  width: 3px;
  height: 28px;
  margin: 0 auto;
  background: linear-gradient(180deg, rgba(153,51,102,.55), rgba(51,153,204,.45));
  border-radius: 999px;
}

.org-branches {
  position: relative;
  height: 34px;
  margin: 0 auto;
}

.org-branches::before {
  content: "";
  position: absolute;
  left: 18%;
  right: 18%;
  top: 0;
  height: 3px;
  background: rgba(153,51,102,.25);
  border-radius: 999px;
}

.org-branches::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  width: 3px;
  height: 34px;
  transform: translateX(-50%);
  background: rgba(153,51,102,.25);
  border-radius: 999px;
}

.org-branches-three {
  max-width: 920px;
}

.org-branches-three.small {
  max-width: 620px;
  margin-top: 4px;
}

.org-branches-three.small::before {
  left: 17%;
  right: 17%;
}

.org-subtree {
  position: relative;
  display: grid;
  gap: 22px;
  min-width: 0;
}

.org-technical-row,
.org-field-row {
  width: 100%;
}

.org-chart-v126 .org-level-three {
  align-items: start;
}

.org-cip-subtree {
  position: relative;
}

.cip-dotted-links {
  position: absolute;
  left: -120%;
  right: 50%;
  bottom: 34px;
  height: 70px;
  pointer-events: none;
  border-bottom: 3px dashed rgba(153,51,102,.45);
  border-left: 3px dashed rgba(153,51,102,.45);
  border-radius: 0 0 0 22px;
}

.cip-dotted-links span {
  position: absolute;
  bottom: -3px;
  width: 3px;
  height: 18px;
  background: rgba(153,51,102,.45);
  border-radius: 999px;
}

.cip-dotted-links span:nth-child(1) { left: 20%; }
.cip-dotted-links span:nth-child(2) { left: 50%; }
.cip-dotted-links span:nth-child(3) { left: 80%; }

@media (max-width: 980px) {
  .org-branches,
  .org-line-vertical,
  .cip-dotted-links {
    display: none;
  }

  .org-chart-v126 .org-level-three,
  .org-chart-v126 .org-level-two {
    grid-template-columns: 1fr !important;
  }

  .org-subtree {
    margin-bottom: 18px;
  }
}


/* V12.8 - Organigramme stable equipe */
.org-chart-stable {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  gap: 26px;
}

/* Neutralisation des anciens traits/liaisons qui provoquaient les chevauchements */
.org-chart-stable .org-connector,
.org-chart-stable .org-branches,
.org-chart-stable .org-line-vertical,
.org-chart-stable .cip-dotted-links {
  display: none !important;
}

.org-chart-stable .org-row {
  display: grid;
  gap: 22px;
  align-items: stretch;
}

.org-chart-stable .org-row-center {
  display: flex;
  justify-content: center;
}

.org-chart-stable .org-row-center .org-card {
  width: min(100%, 420px);
}

.org-chart-stable .org-row-two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 760px;
  margin: 0 auto;
  width: 100%;
}

.org-chart-stable .org-row-three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 100%;
}

.org-chart-stable .org-columns {
  display: grid;
  grid-template-columns: 1.35fr 1fr 1fr;
  gap: 22px;
  align-items: start;
}

.org-chart-stable .org-column {
  display: grid;
  gap: 22px;
  min-width: 0;
}

.org-chart-stable .org-row-small {
  max-width: none;
}

.org-chart-stable .org-card {
  min-height: 150px;
}

.org-chart-stable .org-card h3 {
  word-break: normal;
  overflow-wrap: anywhere;
}

.org-chart-stable .org-card p {
  margin-top: 10px;
}

.cip-follow-cards {
  display: grid;
  gap: 10px;
}

.cip-follow-cards span {
  display: block;
  padding: 12px 14px;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(153,51,102,.07), rgba(51,153,204,.05));
  border: 1px dashed rgba(153,51,102,.35);
  color: var(--violet);
  font-weight: 900;
  text-align: center;
}

@media (max-width: 980px) {
  .org-chart-stable .org-row-two,
  .org-chart-stable .org-row-three,
  .org-chart-stable .org-columns {
    grid-template-columns: 1fr;
  }

  .org-chart-stable .org-row-two {
    max-width: none;
  }
}


/* V12.9 - Organigramme equipe grille */
.team-org-grid-v129 {
  max-width: 1220px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(12, minmax(70px, 1fr));
  grid-template-rows: auto 28px auto 34px auto 34px auto 34px auto;
  gap: 0 18px;
  position: relative;
  align-items: stretch;
}

.team-org-grid-v129 .org-node {
  min-height: 132px;
  background: #fff;
  border: 1px solid rgba(153,51,102,.12);
  border-radius: 26px;
  padding: 22px 18px;
  text-align: center;
  box-shadow: 0 14px 34px rgba(51,51,51,.07);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.team-org-grid-v129 .org-node-main,
.team-org-grid-v129 .org-pole {
  background: linear-gradient(135deg, rgba(153,51,102,.08), rgba(51,153,204,.07));
}

.team-org-grid-v129 .org-field {
  background: linear-gradient(135deg, rgba(153,51,102,.06), rgba(57,169,53,.05));
}

.team-org-grid-v129 .org-icon {
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  border-radius: 18px;
  background: rgba(153,51,102,.08);
  font-size: 1.7rem;
  margin-bottom: 14px;
}

.team-org-grid-v129 h3 {
  margin: 0;
  color: var(--violet);
  font-size: clamp(1.02rem, 1.35vw, 1.35rem);
  line-height: 1.18;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.org-direction { grid-column: 5 / 9; grid-row: 1; }
.org-compta { grid-column: 4 / 6; grid-row: 3; }
.org-rh { grid-column: 8 / 10; grid-row: 3; }

.org-tech { grid-column: 1 / 5; grid-row: 5; }
.org-accompagnement { grid-column: 5 / 9; grid-row: 5; }
.org-mobilite { grid-column: 9 / 13; grid-row: 5; }

.org-parc { grid-column: 1 / 3; grid-row: 7; }
.org-encadrants { grid-column: 3 / 5; grid-row: 7; }
.org-cip { grid-column: 5 / 9; grid-row: 7; }
.org-conseillers-mobilite { grid-column: 9 / 13; grid-row: 7; }

.org-assistants-meca { grid-column: 1 / 3; grid-row: 9; }
.org-assistant-gestion { grid-column: 3 / 5; grid-row: 9; }
.org-agents-conduite { grid-column: 5 / 7; grid-row: 9; }

/* Traits hiérarchiques */
.team-org-grid-v129 .org-vertical,
.team-org-grid-v129 .org-horizontal {
  background: rgba(153,51,102,.28);
  border-radius: 999px;
  align-self: center;
  justify-self: center;
  z-index: 0;
}

.org-v1 { grid-column: 6 / 8; grid-row: 2; width: 3px; height: 28px; }
.org-v2 { grid-column: 6 / 8; grid-row: 4; width: 3px; height: 34px; }
.org-h-poles { grid-column: 3 / 11; grid-row: 4; width: 100%; height: 3px; }

.org-v-tech { grid-column: 2 / 4; grid-row: 6; width: 3px; height: 34px; }
.org-h-tech { grid-column: 1 / 5; grid-row: 6; width: 74%; height: 3px; }
.org-v-accomp { grid-column: 6 / 8; grid-row: 6; width: 3px; height: 34px; }
.org-v-mob { grid-column: 10 / 12; grid-row: 6; width: 3px; height: 34px; }

.org-v-encadrants { grid-column: 3 / 5; grid-row: 8; width: 3px; height: 34px; }
.org-h-terrain { grid-column: 1 / 7; grid-row: 8; width: 80%; height: 3px; }

/* Traits pointillés CIP vers salariés accompagnés */
.org-cip-dashed {
  border-bottom: 3px dashed rgba(153,51,102,.42);
  grid-column: 2 / 7;
  grid-row: 8;
  align-self: end;
  justify-self: stretch;
  transform: translateY(12px);
}

.org-cip-dashed-vertical {
  border-left: 3px dashed rgba(153,51,102,.42);
  height: 24px;
  grid-row: 8;
  align-self: end;
  justify-self: center;
  transform: translateY(34px);
}

.org-cip-dashed-a { grid-column: 1 / 3; }
.org-cip-dashed-b { grid-column: 3 / 5; }
.org-cip-dashed-c { grid-column: 5 / 7; }

@media (max-width: 980px) {
  .team-org-grid-v129 {
    display: flex;
    flex-direction: column;
    gap: 18px;
  }

  .team-org-grid-v129 .org-vertical,
  .team-org-grid-v129 .org-horizontal,
  .team-org-grid-v129 .org-cip-dashed,
  .team-org-grid-v129 .org-cip-dashed-vertical {
    display: none;
  }

  .team-org-grid-v129 .org-node {
    min-height: auto;
  }
}


/* V13.0 - Correction lignes organigramme equipe */

/* Suppression des traits pointillés qui chevauchaient les cartes */
.team-org-grid-v129 .org-cip-dashed,
.team-org-grid-v129 .org-cip-dashed-vertical {
  display: none !important;
}

/* Traits pleins hiérarchiques plus propres */
.team-org-grid-v129 .org-horizontal,
.team-org-grid-v129 .org-vertical {
  background: rgba(153,51,102,.24) !important;
}

/* Rattachement propre des 3 postes sous les encadrants techniques */
.team-org-grid-v129 .org-h-terrain {
  grid-column: 1 / 7 !important;
  grid-row: 8 !important;
  width: 70% !important;
  height: 3px !important;
  align-self: start !important;
  justify-self: center !important;
  transform: translateY(4px);
}

.team-org-grid-v129 .org-v-encadrants {
  grid-column: 3 / 5 !important;
  grid-row: 8 !important;
  width: 3px !important;
  height: 34px !important;
  align-self: start !important;
  justify-self: center !important;
  transform: translateY(4px);
}

/* Ajout d'un rappel discret du suivi CIP, sans ligne parasite */
.team-org-grid-v129 .org-assistants-meca::after,
.team-org-grid-v129 .org-assistant-gestion::after,
.team-org-grid-v129 .org-agents-conduite::after {
  content: "Suivi CIP";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 12px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px dashed rgba(153,51,102,.35);
  color: var(--violet);
  font-size: .78rem;
  font-weight: 900;
  background: rgba(153,51,102,.04);
}

/* Cartes du bas plus lisibles */
.team-org-grid-v129 .org-field {
  min-height: 150px !important;
  padding: 22px 16px !important;
}

.team-org-grid-v129 .org-field h3 {
  font-size: clamp(1rem, 1.15vw, 1.22rem) !important;
  line-height: 1.22 !important;
  max-width: 190px;
  margin-left: auto;
  margin-right: auto;
}

/* Largeur minimum pour éviter les mots coupés */
.team-org-grid-v129 {
  grid-template-columns: repeat(12, minmax(82px, 1fr)) !important;
}

@media (max-width: 980px) {
  .team-org-grid-v129 .org-assistants-meca::after,
  .team-org-grid-v129 .org-assistant-gestion::after,
  .team-org-grid-v129 .org-agents-conduite::after {
    margin-top: 10px;
  }
}


/* V14 - Organigramme final Notre equipe */
.team-org-final-v14 {
  max-width: 1240px;
  margin: 0 auto;
}

.team-org-intro-card {
  margin: 0 auto 34px;
  max-width: 980px;
  padding: 30px 34px;
  border-radius: 30px;
  background: linear-gradient(135deg, rgba(153,51,102,.08), rgba(51,153,204,.06));
  border: 1px solid rgba(153,51,102,.12);
  box-shadow: 0 16px 40px rgba(51,51,51,.07);
  text-align: center;
}

.team-org-intro-card h2 {
  margin: 0 0 12px;
  color: var(--violet);
  font-size: clamp(1.55rem, 3vw, 2.25rem);
}

.team-org-intro-card p {
  margin: 0;
  color: #555;
  line-height: 1.7;
}

.org-final-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(12, minmax(72px, 1fr));
  grid-template-rows: auto 26px auto 34px auto 34px auto 34px auto;
  gap: 0 18px;
  align-items: stretch;
}

.org-final-card {
  position: relative;
  z-index: 2;
  min-height: 160px;
  padding: 22px 18px;
  border-radius: 26px;
  border: 1px solid rgba(153,51,102,.12);
  background: #fff;
  box-shadow: 0 14px 34px rgba(51,51,51,.075);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  transition: transform .22s ease, box-shadow .22s ease;
}

.org-final-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 22px 46px rgba(51,51,51,.12);
}

.org-final-icon {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  border-radius: 18px;
  background: rgba(153,51,102,.08);
  font-size: 1.55rem;
  margin-bottom: 12px;
}

.org-final-tag {
  display: inline-flex;
  padding: 6px 11px;
  border-radius: 999px;
  background: rgba(153,51,102,.08);
  color: var(--violet);
  font-size: .78rem;
  font-weight: 900;
  margin-bottom: 10px;
}

.org-final-card h3 {
  margin: 0;
  color: var(--violet);
  font-size: clamp(1.02rem, 1.2vw, 1.28rem);
  line-height: 1.2;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}

.org-final-card p {
  margin: 10px 0 0;
  color: #5d5d5d;
  font-size: .95rem;
  line-height: 1.45;
}

.org-final-direction,
.org-final-pole {
  background: linear-gradient(135deg, rgba(153,51,102,.09), rgba(51,153,204,.07));
}

.org-final-technique,
.org-final-parc,
.org-final-encadrants,
.org-final-field {
  background: linear-gradient(135deg, rgba(153,51,102,.045), rgba(245,158,11,.055));
}

.org-final-accompagnement,
.org-final-cip {
  background: linear-gradient(135deg, rgba(153,51,102,.045), rgba(51,153,204,.075));
}

.org-final-mobilite,
.org-final-conseillers-mobilite {
  background: linear-gradient(135deg, rgba(153,51,102,.045), rgba(57,169,53,.065));
}

.org-follow-tag {
  display: inline-flex;
  margin-top: 12px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px dashed rgba(153,51,102,.35);
  background: rgba(153,51,102,.045);
  color: var(--violet);
  font-size: .76rem;
  font-weight: 900;
}

/* Positionnement des cartes */
.org-direction { grid-column: 5 / 9; grid-row: 1; }
.org-compta { grid-column: 4 / 6; grid-row: 3; }
.org-rh { grid-column: 8 / 10; grid-row: 3; }

.org-technique { grid-column: 1 / 5; grid-row: 5; }
.org-accompagnement { grid-column: 5 / 9; grid-row: 5; }
.org-mobilite { grid-column: 9 / 13; grid-row: 5; }

.org-parc { grid-column: 1 / 3; grid-row: 7; }
.org-encadrants { grid-column: 3 / 5; grid-row: 7; }
.org-cip { grid-column: 5 / 9; grid-row: 7; }
.org-conseillers-mobilite { grid-column: 9 / 13; grid-row: 7; }

.org-assistants-meca { grid-column: 1 / 3; grid-row: 9; }
.org-assistant-gestion { grid-column: 3 / 5; grid-row: 9; }
.org-agents { grid-column: 5 / 7; grid-row: 9; }

/* Traits */
.org-final-line {
  z-index: 1;
  background: rgba(153,51,102,.26);
  border-radius: 999px;
  justify-self: center;
  align-self: center;
}

.org-final-line.v { width: 3px; height: 100%; }
.org-final-line.h { height: 3px; width: 100%; }

.line-dir-support { grid-column: 6 / 8; grid-row: 2; }
.line-poles-v { grid-column: 6 / 8; grid-row: 4; }
.line-poles-h { grid-column: 3 / 11; grid-row: 4; width: 100%; }

.line-tech-v { grid-column: 2 / 4; grid-row: 6; }
.line-tech-h { grid-column: 1 / 5; grid-row: 6; width: 70%; }
.line-accomp-v { grid-column: 6 / 8; grid-row: 6; }
.line-mob-v { grid-column: 10 / 12; grid-row: 6; }

.line-encadrants-v { grid-column: 3 / 5; grid-row: 8; }
.line-terrain-h { grid-column: 3 / 7; grid-row: 8; width: 78%; }

/* Petits traits verticaux descendants vers les 3 cartes terrain */
.org-assistants-meca::before,
.org-assistant-gestion::before,
.org-agents::before {
  content: "";
  position: absolute;
  top: -36px;
  left: 50%;
  transform: translateX(-50%);
  width: 3px;
  height: 36px;
  background: rgba(153,51,102,.26);
  border-radius: 999px;
}

/* Responsive */
@media (max-width: 1060px) {
  .org-final-grid {
    display: flex;
    flex-direction: column;
    gap: 18px;
  }

  .org-final-line,
  .org-assistants-meca::before,
  .org-assistant-gestion::before,
  .org-agents::before {
    display: none;
  }

  .org-final-card {
    min-height: auto;
  }
}


/* V14.3 - Ajustement slogan accueil */
.hero-title,
.hero h1,
.home-hero h1,
.hero-content h1 {
  font-size: clamp(3.8rem, 6vw, 4.8rem) !important;
  line-height: 1.08 !important;
  color: #993366;
}

.hero-title + p,
.hero h1 + p,
.home-hero h1 + p,
.hero-content h1 + p {
  margin-top: 28px !important;
}

.topbar,
.site-topbar,
.header-topbar {
  font-size: 0.95rem;
}


/* V14.4 - Organigramme SVG Notre equipe */
.organigramme-svg-card {
  max-width: 1450px;
  margin: 42px auto 0;
  padding: clamp(12px, 2.2vw, 30px);
  background: #fff;
  border: 1px solid rgba(153,51,102,.10);
  border-radius: 30px;
  box-shadow: 0 18px 44px rgba(51,51,51,.08);
}

.organigramme-svg-card img {
  display: block;
  width: 100%;
  height: auto;
}

@media (max-width: 760px) {
  .organigramme-svg-card {
    padding: 10px;
    border-radius: 20px;
    overflow-x: auto;
  }

  .organigramme-svg-card img {
    min-width: 900px;
  }
}


/* V14.7 - Ajustement espace organigramme */
.organigramme-svg-card {
  margin-top: 16px !important;
  padding-top: 10px !important;
}

.organigramme-svg-card img {
  margin-top: 0 !important;
}


/* V14.8 - Organigramme bénévoles */
.organigramme-benevoles-card {
  margin-top: 4px !important;
  padding-top: 0 !important;
}

.organigramme-benevoles-card img {
  display: block;
  width: 100%;
  height: auto;
}


/* V14.12 - Harmonisation organigrammes équipe / bénévoles */
.organigramme-benevoles-card {
  margin-top: 16px !important;
  padding-top: 10px !important;
}
.organigramme-benevoles-card img {
  margin-top: 0 !important;
}




/* V14.14 - Menu sticky au-dessus de la carte Leaflet */
.site-header {
  position: sticky !important;
  top: 0;
  z-index: 5000 !important;
}

.topbar {
  position: relative;
  z-index: 5001 !important;
}

.leaflet-map,
.leaflet-container {
  position: relative;
  z-index: 1;
}

.leaflet-pane {
  z-index: 100 !important;
}

.leaflet-top,
.leaflet-bottom,
.leaflet-control {
  z-index: 400 !important;
}

/* V15 Triptyque */
.triad-page-hero{text-align:center;background:linear-gradient(180deg,#fff,#fbf8fb)}
.triad-eyebrow,.triad-kicker{display:inline-block;color:#993366;text-transform:uppercase;letter-spacing:.08em;font-weight:800;font-size:.8rem;margin-bottom:.5rem}
.triad-lead{max-width:860px;margin:0 auto;color:#555;line-height:1.6;font-size:clamp(1.05rem,1.8vw,1.3rem)}
.triad-section{padding-top:28px!important;padding-bottom:28px!important}
.triad-intro-card,.triad-highlight-card,.triad-ess-card{padding:clamp(25px,3vw,42px);border-radius:28px;background:linear-gradient(135deg,rgba(153,51,102,.07),rgba(51,153,204,.055));border:1px solid rgba(153,51,102,.12)}
.triad-intro-card h2,.triad-heading h2,.triad-highlight-card h2,.triad-list-card h2,.triad-ess-card h2{color:#993366}
.triad-intro-card p,.triad-highlight-card p,.triad-ess-card p{color:#555;line-height:1.65;margin:0 0 10px}.triad-intro-card p:last-child{margin-bottom:0}
.triad-heading{text-align:center;max-width:900px;margin:0 auto 18px}
.triad-svg-wide{max-width:1320px;margin:0 auto;padding:8px;border-radius:26px;background:#fff;border:1px solid rgba(153,51,102,.1);box-shadow:0 14px 34px rgba(51,51,51,.07)}
.triad-svg-wide img{display:block;width:100%;height:auto}
.triad-highlight-card,.triad-ess-card{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:start}
.triad-highlight-icon,.triad-ess-icon,.triad-feature-icon,.triad-value-icon{display:grid;place-items:center;width:62px;height:62px;border-radius:19px;background:#993366;color:#fff;font-weight:900;font-size:1.6rem}
.triad-two-cols,.triad-values-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.triad-list-card,.triad-feature-card{padding:28px;border-radius:26px;background:#fff;border:1px solid rgba(153,51,102,.12);box-shadow:0 14px 32px rgba(51,51,51,.065)}
.triad-list-card ul{list-style:none;padding:0;margin:0}.triad-list-card li{position:relative;padding:9px 0 9px 25px;color:#555;border-bottom:1px solid rgba(153,51,102,.08)}.triad-list-card li::before{content:"•";position:absolute;left:7px;color:#993366;font-weight:900}
.triad-quote{padding:28px;border-radius:26px;background:#993366;color:#fff;text-align:center}.triad-quote p{margin:0;font-size:clamp(1.2rem,2vw,1.7rem)}
.triad-cards-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.triad-feature-card{border-top:5px solid #993366}.triad-feature-card.triad-blue{border-top-color:#3399cc}.triad-feature-card.triad-gold{border-top-color:#e5c900}.triad-feature-card h3{color:#993366;font-size:1.3rem}.triad-feature-card p{color:#555;line-height:1.6}
.triad-values-grid{gap:22px}.triad-value-card{padding:28px;border-radius:26px;color:#fff;box-shadow:0 14px 32px rgba(51,51,51,.08)}.triad-value-card h3{color:#fff;font-size:1.35rem}.triad-value-card p{color:rgba(255,255,255,.95);line-height:1.62}.v-purple{background:linear-gradient(135deg,#7f2e61,#993366)}.v-blue{background:linear-gradient(135deg,#2685b7,#3399cc)}.v-gold{background:linear-gradient(135deg,#d2b700,#ead82e);color:#333}.v-gold h3,.v-gold p{color:#333}.v-pink{background:linear-gradient(135deg,#9e416d,#b4557f)}.triad-value-icon{background:rgba(255,255,255,.18)}
@media(max-width:980px){.triad-two-cols,.triad-values-grid,.triad-cards-three{grid-template-columns:1fr}}
@media(max-width:680px){.triad-highlight-card,.triad-ess-card{grid-template-columns:1fr}.triad-section{padding-top:22px!important;padding-bottom:22px!important}}


/* V15.1 - Finitions page Nos engagements */
.triad-page-hero .breadcrumb {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1.2rem;
  color: #6b6470;
  font-size: .95rem;
}
.triad-page-hero .breadcrumb a {
  color: #993366;
  text-decoration: none;
  font-weight: 700;
}
.triad-page-hero .breadcrumb a:hover {
  text-decoration: underline;
}

.engagements-hero-photo {
  max-width: 1100px;
  margin: 28px auto 0;
  border-radius: 28px;
  overflow: hidden;
  border: 1px solid rgba(153,51,102,.12);
  box-shadow: 0 16px 38px rgba(51,51,51,.08);
}
.engagements-hero-photo img {
  display: block;
  width: 100%;
  height: clamp(240px, 36vw, 430px);
  object-fit: cover;
}

.triad-feature-card {
  padding-top: 34px;
}
.triad-feature-card .triad-feature-icon {
  margin-bottom: 24px;
}
.triad-feature-card h3 {
  margin-top: 0;
}

.triad-feature-card.triad-brand {
  border-top-color: #663366;
}
.triad-feature-card.triad-brand .triad-feature-icon {
  background: #663366;
  color: #fff;
}

.triad-feature-card.triad-blue {
  border-top-color: #3399cc;
}
.triad-feature-card.triad-blue .triad-feature-icon {
  background: #3399cc;
  color: #fff;
}

.triad-feature-card:not(.triad-blue):not(.triad-brand) {
  border-top-color: #993366;
}
.triad-feature-card:not(.triad-blue):not(.triad-brand) .triad-feature-icon {
  background: #993366;
  color: #fff;
}

@media (max-width: 700px) {
  .engagements-hero-photo {
    margin-top: 20px;
    border-radius: 20px;
  }
  .engagements-hero-photo img {
    height: 230px;
  }
}


/* V15.2 - Harmonisation charte Engagements et Valeurs */

/* Engagements : cartes blanches, liserés de la charte et meilleur espacement */
.triad-feature-card {
  background: #fff !important;
  color: #555 !important;
  padding: 34px 30px 30px !important;
  border-radius: 28px !important;
  border: 1px solid rgba(153,51,102,.12) !important;
  box-shadow: 0 16px 36px rgba(51,51,51,.07) !important;
}

.triad-feature-card .triad-feature-icon {
  width: 72px !important;
  height: 72px !important;
  margin-bottom: 28px !important;
  border-radius: 22px !important;
  color: #fff !important;
}

.triad-feature-card h3 {
  margin: 0 0 16px !important;
  color: #993366 !important;
}

.triad-feature-card p {
  color: #555 !important;
}

.triad-feature-card:not(.triad-blue):not(.triad-brand) {
  border-top: 5px solid #993366 !important;
}

.triad-feature-card:not(.triad-blue):not(.triad-brand) .triad-feature-icon {
  background: #993366 !important;
}

.triad-feature-card.triad-blue {
  border-top: 5px solid #3399CC !important;
}

.triad-feature-card.triad-blue .triad-feature-icon {
  background: #3399CC !important;
}

.triad-feature-card.triad-brand,
.triad-feature-card.triad-gold {
  border-top: 5px solid #663366 !important;
}

.triad-feature-card.triad-brand .triad-feature-icon,
.triad-feature-card.triad-gold .triad-feature-icon {
  background: #663366 !important;
  color: #fff !important;
}

/* Valeurs : mêmes codes que les organigrammes */
.triad-value-card {
  background: #fff !important;
  color: #555 !important;
  padding: 32px !important;
  border-radius: 28px !important;
  box-shadow: 0 16px 36px rgba(51,51,51,.07) !important;
  border: 1px solid rgba(153,51,102,.12) !important;
}

.triad-value-card .triad-value-icon {
  width: 72px !important;
  height: 72px !important;
  margin-bottom: 22px !important;
  border-radius: 22px !important;
  color: #fff !important;
}

.triad-value-card h3 {
  margin: 0 0 14px !important;
}

.triad-value-card p {
  color: #555 !important;
}

.triad-value-card.v-purple,
.triad-value-card.triad-value-purple {
  border-top: 5px solid #993366 !important;
}
.triad-value-card.v-purple .triad-value-icon,
.triad-value-card.triad-value-purple .triad-value-icon {
  background: #993366 !important;
}
.triad-value-card.v-purple h3,
.triad-value-card.triad-value-purple h3 {
  color: #993366 !important;
}

.triad-value-card.v-blue,
.triad-value-card.triad-value-blue {
  border-top: 5px solid #3399CC !important;
}
.triad-value-card.v-blue .triad-value-icon,
.triad-value-card.triad-value-blue .triad-value-icon {
  background: #3399CC !important;
}
.triad-value-card.v-blue h3,
.triad-value-card.triad-value-blue h3 {
  color: #3399CC !important;
}

.triad-value-card.v-gold,
.triad-value-card.triad-value-gold {
  border-top: 5px solid #663366 !important;
}
.triad-value-card.v-gold .triad-value-icon,
.triad-value-card.triad-value-gold .triad-value-icon {
  background: #663366 !important;
  color: #fff !important;
}
.triad-value-card.v-gold h3,
.triad-value-card.triad-value-gold h3 {
  color: #663366 !important;
}
.triad-value-card.v-gold p,
.triad-value-card.triad-value-gold p {
  color: #555 !important;
}

.triad-value-card.v-pink,
.triad-value-card.triad-value-pink {
  border-top: 5px solid #B04A83 !important;
}
.triad-value-card.v-pink .triad-value-icon,
.triad-value-card.triad-value-pink .triad-value-icon {
  background: #B04A83 !important;
}
.triad-value-card.v-pink h3,
.triad-value-card.triad-value-pink h3 {
  color: #B04A83 !important;
}

/* ESS dans le même esprit */
.triad-ess-card {
  background: linear-gradient(135deg, rgba(153,51,102,.06), rgba(51,153,204,.05)) !important;
  border: 1px solid rgba(153,51,102,.12) !important;
}
.triad-ess-icon {
  background: #993366 !important;
  color: #fff !important;
}


/* V15.10 - Bouton de téléchargement du flyer Location solidaire */
.location-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

.location-actions .btn {
  margin: 0;
}

.flyer-location-btn {
  text-decoration: none;
}

@media (max-width: 560px) {
  .location-actions {
    align-items: stretch;
  }

  .location-actions .btn {
    width: 100%;
    justify-content: center;
  }
}


.location-actions .btn{
  flex:1 1 0;
  min-width:220px;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  text-align:center;
}

/* V15.13 - Harmonisation stricte des deux boutons Location solidaire */
.location-actions > .btn {
  flex: 1 1 0 !important;
  width: 0 !important;
  min-width: 0 !important;
  min-height: 62px !important;
  padding: 0 28px !important;
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: inherit !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  text-align: center !important;
  white-space: nowrap !important;
}

.location-actions > button.btn {
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
}

@media (max-width: 560px) {
  .location-actions > .btn {
    flex: 1 1 100% !important;
    width: 100% !important;
    min-width: 100% !important;
  }
}

/* V15.14 - Uniformisation des boutons des pages « Nos services »
   Référence visuelle : format compact du bouton Garage solidaire. */
:is(
  body.location-page,
  body.deplacement-page,
  body.conseil-page,
  body:has(main .service-banner)
) main :is(
  .card > a.btn,
  .tarifs-action > .btn,
  .location-actions > .btn,
  .pdf-action > .btn,
  .vehicle-actions > .btn
) {
  flex: 0 0 230px !important;
  width: 230px !important;
  min-width: 230px !important;
  max-width: 230px !important;
  height: 48px !important;
  min-height: 48px !important;
  padding: 0 18px !important;
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: inherit !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  text-align: center !important;
  white-space: nowrap !important;
  border-radius: 999px !important;
}

.location-actions {
  align-items: center !important;
}

@media (max-width: 560px) {
  :is(
    body.location-page,
    body.deplacement-page,
    body.conseil-page,
    body:has(main .service-banner)
  ) main :is(
    .card > a.btn,
    .tarifs-action > .btn,
    .location-actions > .btn,
    .pdf-action > .btn,
    .vehicle-actions > .btn
  ) {
    flex: 0 0 230px !important;
    width: 230px !important;
    min-width: 230px !important;
    max-width: 230px !important;
  }
}

/* V15.16 - Accueil : vidéo du hero agrandie et remontée
   Le nouveau slogan étant plus imposant, la vidéo occupe davantage d'espace
   et s'aligne désormais sur le haut du bloc de présentation. */
@media (min-width: 901px) {
  body.home-page .hero .container,
  body:has(> header + main #contenu > .hero) .hero .container {
    grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
    gap: 42px;
    align-items: start;
  }

  body.home-page .hero-vimeo,
  body:has(> header + main #contenu > .hero) .hero-vimeo {
    width: 100%;
    margin-top: 8px;
  }
}

/* =========================================================
   V15.17 — En-têtes de pages homogènes sur photo de couverture
   ========================================================= */
.cover-page-hero {
  position: relative;
  isolation: isolate;
  min-height: clamp(300px, 38vw, 470px);
  display: flex;
  align-items: center;
  padding: clamp(62px, 8vw, 108px) 0;
  border-bottom: 0;
  background-image:
    linear-gradient(90deg, rgba(37, 24, 39, .84) 0%, rgba(72, 34, 63, .70) 48%, rgba(32, 48, 60, .38) 100%),
    var(--hero-image) !important;
  background-size: cover !important;
  background-position: center !important;
  color: #fff;
  overflow: hidden;
}
.cover-page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.24));
  pointer-events: none;
}
.cover-page-hero .container {
  width: min(1180px, calc(100% - 40px));
  position: relative;
  z-index: 1;
}
.cover-page-hero h1 {
  color: #fff !important;
  max-width: 900px;
  margin: 0 0 14px;
  text-shadow: 0 3px 18px rgba(0,0,0,.42);
}
.cover-page-hero p,
.cover-page-hero .triad-lead {
  color: rgba(255,255,255,.96) !important;
  max-width: 850px;
  margin-left: 0;
  margin-right: 0;
  text-shadow: 0 2px 12px rgba(0,0,0,.40);
}
.cover-page-hero .breadcrumb,
.cover-page-hero .breadcrumb a {
  color: rgba(255,255,255,.92) !important;
}
.cover-page-hero .breadcrumb a:hover {
  color: #fff !important;
}
.cover-page-hero .triad-eyebrow,
.cover-page-hero .badge {
  color: #fff !important;
  border-color: rgba(255,255,255,.58) !important;
  background: rgba(255,255,255,.13) !important;
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  padding: 7px 12px;
  border-radius: 999px;
  text-shadow: 0 2px 8px rgba(0,0,0,.35);
}
.cover-page-hero.triad-page-hero {
  text-align: left;
}
@media (max-width: 700px) {
  .cover-page-hero {
    min-height: 290px;
    padding: 54px 0;
    background-position: center !important;
  }
  .cover-page-hero .container {
    width: min(100% - 28px, 1180px);
  }
}


/* =========================================================
   V17.2 — Lot 1 : bannières « Qui sommes-nous ? »
   ========================================================= */
.about-cover-hero {
  min-height: clamp(340px, 42vw, 500px);
  align-items: stretch;
  padding: 0;
  background-position: var(--hero-position, center) !important;
}
.about-cover-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(34, 21, 35, .88) 0%, rgba(68, 31, 59, .76) 45%, rgba(29, 44, 55, .28) 100%);
}
.about-cover-hero::after {
  background: linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.28));
}
.about-cover-hero > .container {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding-top: clamp(26px, 4vw, 42px);
  padding-bottom: clamp(54px, 8vw, 92px);
}
.about-cover-hero .breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0 0 clamp(48px, 8vw, 96px);
  font-size: .92rem;
}
.about-cover-hero .breadcrumb [aria-current="page"] {
  color: rgba(255,255,255,.78);
}
.cover-page-hero__content {
  width: min(760px, 100%);
}
.cover-page-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin: 0 0 14px !important;
  padding: 7px 13px;
  border: 1px solid rgba(255,255,255,.48);
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  color: #fff !important;
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.about-cover-hero h1 {
  font-size: clamp(2.3rem, 5.2vw, 4.6rem);
  line-height: 1.02;
  letter-spacing: -.035em;
  margin-bottom: 18px;
}
.cover-page-hero__lead {
  max-width: 720px !important;
  margin: 0 !important;
  font-size: clamp(1.05rem, 1.55vw, 1.28rem);
  line-height: 1.62;
}
@media (max-width: 700px) {
  .about-cover-hero {
    min-height: 400px;
    background-position: var(--hero-position-mobile, var(--hero-position, center)) !important;
  }
  .about-cover-hero > .container {
    width: min(100% - 28px, 1180px);
    padding-top: 22px;
    padding-bottom: 46px;
  }
  .about-cover-hero .breadcrumb {
    margin-bottom: 42px;
    font-size: .82rem;
  }
  .about-cover-hero h1 {
    font-size: clamp(2.15rem, 11vw, 3.15rem);
  }
  .cover-page-hero__lead {
    font-size: 1rem;
    line-height: 1.55;
  }
}


/* V17.2.1 — Images de fond explicites pour les bannières du lot 1 */
.hero-about-main { --hero-image: url("../img/hero-accompagnement.jpg"); }
.hero-about-history { --hero-image: url("../img/qui-sommes-nous/notre-histoire.jpg"); }
.hero-about-values { --hero-image: url("../img/qui-sommes-nous/nos-valeurs.jpg"); }
.hero-about-commitments { --hero-image: url("../img/qui-sommes-nous/nos-engagements.jpg"); }
.hero-about-team { --hero-image: url("../img/qui-sommes-nous/notre-equipe.jpg"); }
.hero-about-volunteers { --hero-image: url("../img/qui-sommes-nous/nos-benevoles.jpg"); }
.hero-about-partners { --hero-image: url("../img/qui-sommes-nous/nos-partenaires.jpg"); }
.hero-about-ambitions { --hero-image: url("../img/qui-sommes-nous/nos-ambitions.jpg"); }

/* =========================================================
   V17.2.2 — Ajustement des bannières « Qui sommes-nous ? »
   Bannière plus compacte, contenu regroupé et photo éclaircie
   ========================================================= */
.about-cover-hero {
  min-height: clamp(275px, 31vw, 385px);
}
.about-cover-hero::before {
  background:
    linear-gradient(90deg,
      rgba(31, 20, 33, .66) 0%,
      rgba(55, 29, 50, .48) 43%,
      rgba(25, 39, 49, .12) 100%);
}
.about-cover-hero::after {
  background:
    linear-gradient(180deg, rgba(0,0,0,.02) 0%, rgba(0,0,0,.12) 100%);
}
.about-cover-hero > .container {
  justify-content: flex-start;
  padding-top: clamp(22px, 2.8vw, 32px);
  padding-bottom: clamp(32px, 4vw, 48px);
}
.about-cover-hero .breadcrumb {
  margin-bottom: clamp(16px, 2vw, 24px);
}
.about-cover-hero h1 {
  text-shadow: 0 3px 16px rgba(0,0,0,.52);
}
.about-cover-hero .cover-page-hero__lead {
  text-shadow: 0 2px 10px rgba(0,0,0,.55);
}
.about-cover-hero .cover-page-hero__eyebrow {
  background: rgba(34, 24, 35, .28);
  border-color: rgba(255,255,255,.62);
}

@media (max-width: 700px) {
  .about-cover-hero {
    min-height: 330px;
  }
  .about-cover-hero > .container {
    padding-top: 18px;
    padding-bottom: 32px;
  }
  .about-cover-hero .breadcrumb {
    margin-bottom: 18px;
  }
}

/* =========================================================
   V17.2.3 — Option 1 : dégradé latéral plus lumineux
   Le voile protège uniquement la zone de texte et s'efface
   progressivement pour préserver la photo sur la droite.
   ========================================================= */
.about-cover-hero::before {
  background:
    linear-gradient(
      90deg,
      rgba(25, 18, 29, .52) 0%,
      rgba(35, 23, 37, .43) 28%,
      rgba(45, 28, 43, .25) 48%,
      rgba(30, 35, 42, .08) 70%,
      rgba(20, 28, 34, 0) 100%
    );
}

.about-cover-hero::after {
  background:
    linear-gradient(
      180deg,
      rgba(0, 0, 0, 0) 0%,
      rgba(0, 0, 0, .06) 100%
    );
}

.about-cover-hero h1 {
  text-shadow: 0 3px 14px rgba(0,0,0,.48);
}

.about-cover-hero .cover-page-hero__lead {
  text-shadow: 0 2px 8px rgba(0,0,0,.48);
}

@media (max-width: 700px) {
  .about-cover-hero::before {
    background:
      linear-gradient(
        90deg,
        rgba(25, 18, 29, .58) 0%,
        rgba(35, 23, 37, .48) 48%,
        rgba(30, 35, 42, .18) 78%,
        rgba(20, 28, 34, .06) 100%
      );
  }
}

/* =========================================================
   V17.6 — Bannières inspirées des étiquettes de l’accueil
   Photo lumineuse + simple voile violet, sans cadre ni flou.
   ========================================================= */
.about-cover-hero {
  background-image: var(--hero-image) !important;
  background-size: cover !important;
  background-position: var(--hero-position, center) !important;
}

.about-cover-hero::before {
  background:
    linear-gradient(
      90deg,
      rgba(102, 51, 102, .66) 0%,
      rgba(102, 51, 102, .52) 28%,
      rgba(153, 51, 102, .30) 49%,
      rgba(153, 51, 102, .10) 67%,
      rgba(153, 51, 102, 0) 84%
    );
}

.about-cover-hero::after {
  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,.05) 0%,
      rgba(255,255,255,0) 42%,
      rgba(51,51,51,.05) 100%
    );
}

.about-cover-hero .cover-page-hero__eyebrow {
  padding: 10px 17px;
  color: #993366 !important;
  background: rgba(255,255,255,.97) !important;
  border: 1px solid rgba(255,255,255,.98) !important;
  box-shadow: 0 10px 26px rgba(51, 51, 51, .12);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  text-shadow: none;
  letter-spacing: .035em;
}

.about-cover-hero h1 {
  text-shadow: 0 3px 12px rgba(51, 31, 51, .32);
}

.about-cover-hero .cover-page-hero__lead {
  text-shadow: 0 2px 8px rgba(51, 31, 51, .30);
}

.about-cover-hero .breadcrumb,
.about-cover-hero .breadcrumb a {
  text-shadow: 0 1px 6px rgba(51, 31, 51, .30);
}

@media (max-width: 700px) {
  .about-cover-hero {
    background-position: var(--hero-position-mobile, var(--hero-position, center)) !important;
  }

  .about-cover-hero::before {
    background:
      linear-gradient(
        90deg,
        rgba(102, 51, 102, .70) 0%,
        rgba(102, 51, 102, .57) 46%,
        rgba(153, 51, 102, .30) 72%,
        rgba(153, 51, 102, .10) 100%
      );
  }

  .about-cover-hero .cover-page-hero__eyebrow {
    padding: 8px 13px;
    font-size: .74rem;
  }
}

/* =========================================================
   V17.7 — Bannières lumineuses sur les autres pages du menu
   Déclinaison du composant validé pour « Qui sommes-nous ? ».
   ========================================================= */
.menu-cover-hero {
  min-height: clamp(275px, 31vw, 385px);
  align-items: stretch;
  padding: 0;
  background-image: var(--hero-image) !important;
  background-size: cover !important;
  background-position: var(--hero-position, center) !important;
}

.menu-cover-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(
      90deg,
      rgba(102, 51, 102, .66) 0%,
      rgba(102, 51, 102, .52) 28%,
      rgba(153, 51, 102, .30) 49%,
      rgba(153, 51, 102, .10) 67%,
      rgba(153, 51, 102, 0) 84%
    );
  pointer-events: none;
}

.menu-cover-hero::after {
  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,.05) 0%,
      rgba(255,255,255,0) 42%,
      rgba(51,51,51,.05) 100%
    );
}

.menu-cover-hero > .container {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding-top: clamp(22px, 2.8vw, 32px);
  padding-bottom: clamp(32px, 4vw, 48px);
}

.menu-cover-hero .breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0 0 clamp(16px, 2vw, 24px);
  font-size: .92rem;
  text-shadow: 0 1px 6px rgba(51, 31, 51, .30);
}

.menu-cover-hero .cover-page-hero__eyebrow {
  padding: 10px 17px;
  color: #993366 !important;
  background: rgba(255,255,255,.97) !important;
  border: 1px solid rgba(255,255,255,.98) !important;
  box-shadow: 0 10px 26px rgba(51, 51, 51, .12);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  text-shadow: none;
  letter-spacing: .035em;
}

.menu-cover-hero h1 {
  font-size: clamp(2.3rem, 5.2vw, 4.6rem);
  line-height: 1.02;
  letter-spacing: -.035em;
  margin-bottom: 18px;
  text-shadow: 0 3px 12px rgba(51, 31, 51, .32);
}

.menu-cover-hero .cover-page-hero__lead {
  max-width: 720px !important;
  margin: 0 !important;
  font-size: clamp(1.05rem, 1.55vw, 1.28rem);
  line-height: 1.62;
  text-shadow: 0 2px 8px rgba(51, 31, 51, .30);
}

@media (max-width: 700px) {
  .menu-cover-hero {
    min-height: 330px;
    background-position: var(--hero-position-mobile, var(--hero-position, center)) !important;
  }

  .menu-cover-hero::before {
    background:
      linear-gradient(
        90deg,
        rgba(102, 51, 102, .70) 0%,
        rgba(102, 51, 102, .57) 46%,
        rgba(153, 51, 102, .30) 72%,
        rgba(153, 51, 102, .10) 100%
      );
  }

  .menu-cover-hero > .container {
    width: min(100% - 28px, 1180px);
    padding-top: 18px;
    padding-bottom: 32px;
  }

  .menu-cover-hero .breadcrumb {
    margin-bottom: 18px;
    font-size: .82rem;
  }

  .menu-cover-hero .cover-page-hero__eyebrow {
    padding: 8px 13px;
    font-size: .74rem;
  }

  .menu-cover-hero h1 {
    font-size: clamp(2.15rem, 11vw, 3.15rem);
  }

  .menu-cover-hero .cover-page-hero__lead {
    font-size: 1rem;
    line-height: 1.55;
  }
}

/* =========================================================
   V17.7.1 — Étiquettes de bannière plus fines et discrètes
   Fond transparent, bordure blanche légère, texte blanc.
   ========================================================= */
.about-cover-hero .cover-page-hero__eyebrow,
.menu-cover-hero .cover-page-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  padding: 8px 16px;
  color: #fff !important;
  background: rgba(51, 51, 51, .10) !important;
  border: 1px solid rgba(255, 255, 255, .72) !important;
  border-radius: 999px;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  text-shadow: 0 1px 5px rgba(0, 0, 0, .24);
  letter-spacing: .025em;
  line-height: 1.2;
}

@media (max-width: 700px) {
  .about-cover-hero .cover-page-hero__eyebrow,
  .menu-cover-hero .cover-page-hero__eyebrow {
    padding: 7px 12px;
    font-size: .72rem;
    border-color: rgba(255, 255, 255, .68) !important;
  }
}

/* =========================================================
   V17.7.2 — Harmonisation du texte d’introduction
   Les bannières « Qui sommes-nous ? » utilisent exactement
   la même taille que les bannières de services.
   ========================================================= */
.about-cover-hero p.cover-page-hero__lead {
  font-size: clamp(1.05rem, 1.55vw, 1.28rem) !important;
  line-height: 1.62 !important;
}

@media (max-width: 700px) {
  .about-cover-hero p.cover-page-hero__lead {
    font-size: 1rem !important;
    line-height: 1.55 !important;
  }
}


/* V17.7.4 — Signature éditoriale du pied de page */
.site-footer .footer-mission {
  max-width: 35rem;
}
.site-footer .footer-signature {
  margin: 0 0 .55rem;
  color: #fff;
  font-family: "Nunito", sans-serif;
  font-size: 1.12rem;
  line-height: 1.35;
}
.site-footer .footer-signature strong {
  font-weight: 800;
}
.site-footer .footer-mission-text {
  margin: 0;
  line-height: 1.65;
}

/* =========================================================
   V17.7.6 — Harmonisation typographique du pied de page
   ========================================================= */
.site-footer .footer-mission {
  max-width: 31rem;
}

.site-footer .footer-signature {
  margin: 0 0 .9rem;
  color: #ffffff;
  font-size: 1.04rem;
  line-height: 1.35;
  letter-spacing: -.01em;
}

.site-footer .footer-signature strong {
  font-weight: 700;
}

.site-footer .footer-mission-text {
  margin: 0;
  max-width: 29rem;
  font-size: .98rem;
  line-height: 1.58;
}

@media (max-width: 700px) {
  .site-footer .footer-signature {
    margin-bottom: .75rem;
    font-size: 1rem;
  }

  .site-footer .footer-mission-text {
    font-size: .95rem;
    line-height: 1.55;
  }
}


/* V17.7.9 — Harmonisation de la page Notre histoire */
.history-intro-section {
  padding-top: 72px;
  padding-bottom: 54px;
}

.history-intro-card {
  position: relative;
  max-width: 920px;
  padding: 10px 0 10px 34px;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}

.history-intro-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  bottom: 8px;
  width: 5px;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--violet), #3399cc);
}

.history-intro-card p {
  font-size: 1.12rem;
  line-height: 1.78;
}

.history-timeline-premium-section {
  overflow: hidden;
}

.premium-timeline {
  max-width: 1120px;
  gap: 34px;
  margin-top: 48px;
}

.premium-timeline::before {
  left: 50% !important;
  top: 41px !important;
  bottom: 41px !important;
  width: 3px;
  transform: translateX(-50%);
  opacity: .28;
}

.premium-timeline-item {
  grid-template-columns: minmax(0, 1fr) 112px minmax(0, 1fr) !important;
  gap: 30px !important;
  align-items: center !important;
}

.timeline-year,
.premium-timeline-highlight .timeline-year {
  grid-column: 2;
  justify-self: center;
  width: 98px !important;
  min-width: 98px !important;
  max-width: 98px !important;
  height: 78px !important;
  min-height: 78px !important;
  border-radius: 22px !important;
  box-shadow: 0 12px 30px rgba(51,51,51,.11) !important;
}

.timeline-content {
  position: relative;
  padding: 27px 30px !important;
  border-radius: 24px !important;
  box-shadow: 0 14px 36px rgba(51,51,51,.07) !important;
  transition: transform .22s ease, box-shadow .22s ease;
}

.premium-timeline-item:nth-child(odd) .timeline-content {
  grid-column: 3;
}

.premium-timeline-item:nth-child(even) .timeline-content {
  grid-column: 1;
  grid-row: 1;
  text-align: right;
}

.premium-timeline-item:nth-child(even) .timeline-heading {
  justify-content: flex-end;
}

.premium-timeline-item:nth-child(even) .timeline-icon {
  order: 2;
}

.timeline-content::before {
  content: "";
  position: absolute;
  top: 50%;
  width: 16px;
  height: 16px;
  background: #fff;
  border-top: 1px solid rgba(153,51,102,.13);
  border-right: 1px solid rgba(153,51,102,.13);
}

.premium-timeline-item:nth-child(odd) .timeline-content::before {
  left: -9px;
  transform: translateY(-50%) rotate(-135deg);
}

.premium-timeline-item:nth-child(even) .timeline-content::before {
  right: -9px;
  transform: translateY(-50%) rotate(45deg);
}

.timeline-heading {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}

.timeline-heading h3 {
  margin: 0 !important;
}

.timeline-icon {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  display: inline-grid;
  place-items: center;
  border-radius: 13px;
  color: var(--violet);
  background: rgba(153,51,102,.09);
}

.timeline-icon svg {
  width: 20px;
  height: 20px;
  stroke-width: 1.9;
}

.premium-timeline-highlight .timeline-content {
  border-color: rgba(153,51,102,.18);
  box-shadow: 0 18px 44px rgba(102,51,102,.10) !important;
}

@media (hover:hover) {
  .timeline-content:hover {
    transform: translateY(-3px);
    box-shadow: 0 20px 44px rgba(51,51,51,.10) !important;
  }
}

@media (max-width: 920px) {
  .premium-timeline {
    max-width: 760px;
  }

  .premium-timeline::before {
    left: 49px !important;
    transform: none;
  }

  .premium-timeline-item {
    grid-template-columns: 98px minmax(0, 1fr) !important;
    gap: 22px !important;
  }

  .timeline-year,
  .premium-timeline-highlight .timeline-year {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }

  .premium-timeline-item .timeline-content,
  .premium-timeline-item:nth-child(even) .timeline-content,
  .premium-timeline-item:nth-child(odd) .timeline-content {
    grid-column: 2 !important;
    grid-row: 1 !important;
    text-align: left;
  }

  .premium-timeline-item:nth-child(even) .timeline-heading {
    justify-content: flex-start;
  }

  .premium-timeline-item:nth-child(even) .timeline-icon {
    order: 0;
  }

  .premium-timeline-item .timeline-content::before,
  .premium-timeline-item:nth-child(even) .timeline-content::before,
  .premium-timeline-item:nth-child(odd) .timeline-content::before {
    left: -9px;
    right: auto;
    transform: translateY(-50%) rotate(-135deg);
  }
}

@media (max-width: 640px) {
  .history-intro-section {
    padding-top: 54px;
    padding-bottom: 36px;
  }

  .history-intro-card {
    padding-left: 24px;
  }

  .history-intro-card p {
    font-size: 1.02rem;
  }

  .premium-timeline {
    gap: 24px;
    margin-top: 34px;
  }

  .premium-timeline::before {
    left: 35px !important;
    top: 31px !important;
    bottom: 31px !important;
  }

  .premium-timeline-item {
    grid-template-columns: 70px minmax(0, 1fr) !important;
    gap: 14px !important;
  }

  .timeline-year,
  .premium-timeline-highlight .timeline-year {
    width: 70px !important;
    min-width: 70px !important;
    max-width: 70px !important;
    height: 62px !important;
    min-height: 62px !important;
    border-radius: 18px !important;
  }

  .timeline-content {
    padding: 22px 20px !important;
    border-radius: 20px !important;
  }

  .timeline-content::before {
    display: none;
  }

  .timeline-heading {
    align-items: flex-start;
    gap: 10px;
  }

  .timeline-icon {
    width: 34px;
    height: 34px;
    border-radius: 11px;
  }
}

/* V18.7.2 — Resserrement des espaces autour de la citation (Notre histoire) */
.history-keyfigures-section {
  padding-bottom: 34px !important;
}

.history-quote-section {
  padding-top: 30px !important;
  padding-bottom: 30px !important;
}

.about-discovery-section {
  padding-top: 38px !important;
}

@media (max-width: 700px) {
  .history-keyfigures-section {
    padding-bottom: 24px !important;
  }

  .history-quote-section {
    padding-top: 22px !important;
    padding-bottom: 22px !important;
  }

  .about-discovery-section {
    padding-top: 28px !important;
  }
}


/* V19.4 — Bannière « On parle de nous » : chemin défini depuis la feuille CSS */
.media-cover-hero {
  --hero-image: url("../img/medias/interview-banner-v3.jpg");
  --hero-position: center 46%;
}

@media (max-width: 700px) {
  .media-cover-hero {
    --hero-position-mobile: 62% center;
  }
}

/* Bannière — Nos événements */
.hero-events {
  --hero-image: url("../img/events/events-banner.jpg");
  background-position: center 42% !important;
}

@media (max-width: 768px) {
  .hero-events {
    background-position: 62% center !important;
  }
}


/* V19.8 — Page Faire un don */
.don-cover-hero {
  --hero-image: url("../img/dons/faire-un-don-banner.jpg");
  --hero-position: center 76%;
  background-position: center 76% !important;
}

@media (max-width: 700px) {
  .don-cover-hero {
    background-position: center 82% !important;
  }
}

.donation-intro {
  padding-bottom: 34px;
  text-align: center;
}
.donation-intro__inner { max-width: 850px; }
.donation-intro h2,
.donation-section-heading h2,
.donation-contact-card h2 { margin: 6px 0 14px; }
.donation-intro p:last-child { max-width: 780px; margin: 0 auto; font-size: 1.08rem; line-height: 1.75; }
.section-kicker { margin: 0; color: #993366; font-family: Nunito, sans-serif; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; font-size: .82rem; }

.donation-options-section { padding-top: 24px; }
.donation-options { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 28px; }
.donation-option { position: relative; overflow: hidden; display: flex; flex-direction: column; min-height: 100%; padding: 38px; border: 1px solid rgba(153,51,102,.16); border-radius: 28px; background: #fff; box-shadow: 0 18px 45px rgba(51,51,51,.08); }
.donation-option::before { content: ""; position: absolute; inset: 0 0 auto; height: 7px; background: linear-gradient(90deg,#993366,#663366); }
.donation-option--vehicle::before { background: linear-gradient(90deg,#3399cc,#333366); }
.donation-option__icon { display: grid; place-items: center; width: 62px; height: 62px; margin-bottom: 24px; border-radius: 20px; color: #993366; background: rgba(153,51,102,.1); }
.donation-option--vehicle .donation-option__icon { color: #2788b8; background: rgba(51,153,204,.12); }
.donation-option__icon svg { width: 30px; height: 30px; }
.donation-option__label { margin: 0 0 6px; color: #993366; font-family: Nunito,sans-serif; font-weight: 800; }
.donation-option--vehicle .donation-option__label { color: #277fa9; }
.donation-option h2 { margin: 0 0 16px; font-size: clamp(1.65rem,2.2vw,2.15rem); }
.donation-option > p:not(.donation-option__label):not(.donation-option__note) { margin: 0; line-height: 1.7; }
.donation-list { display: grid; gap: 12px; margin: 24px 0 30px; padding: 0; list-style: none; }
.donation-list li { display: flex; align-items: flex-start; gap: 11px; }
.donation-list svg { flex: 0 0 auto; width: 19px; height: 19px; margin-top: 3px; color: #993366; stroke-width: 3; }
.donation-option--vehicle .donation-list svg { color: #2788b8; }
.donation-option__button { align-self: flex-start; margin-top: auto; }
.donation-option__button svg { width: 18px; height: 18px; }
.donation-option__button--blue { color: #fff; background: #278fbe; border-color: #278fbe; }
.donation-option__button--blue:hover { color: #fff; background: #217ca6; border-color: #217ca6; }
.donation-option__note { margin: 14px 0 0; color: #696969; font-size: .86rem; line-height: 1.45; }

.donation-impact-section { background: linear-gradient(180deg,#fff,#fbf8fb); }
.donation-section-heading { max-width: 760px; margin: 0 auto 34px; text-align: center; }
.donation-impact-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.donation-impact-card { padding: 30px 26px; border: 1px solid rgba(153,51,102,.13); border-radius: 24px; background: #fff; text-align: center; box-shadow: 0 14px 35px rgba(51,51,51,.06); }
.donation-impact-card__icon { display: grid; place-items: center; width: 56px; height: 56px; margin: 0 auto 20px; border-radius: 18px; color: #993366; background: linear-gradient(135deg,rgba(153,51,102,.11),rgba(51,153,204,.11)); }
.donation-impact-card__icon svg { width: 27px; height: 27px; }
.donation-impact-card h3 { margin: 0 0 10px; }
.donation-impact-card p { margin: 0; line-height: 1.65; }

.donation-quote-section { padding-top: 34px; padding-bottom: 34px; }
.donation-quote { margin: 0; padding: 38px 46px; border: 1px solid rgba(153,51,102,.16); border-radius: 28px; color: #993366; background: linear-gradient(120deg,rgba(153,51,102,.08),rgba(51,153,204,.08)); font-family: Nunito,sans-serif; font-size: clamp(1.45rem,2.6vw,2.25rem); font-weight: 800; line-height: 1.4; text-align: center; box-shadow: 0 16px 38px rgba(51,51,51,.06); }

.donation-contact-section { padding-top: 34px; }
.donation-contact-card { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 34px 38px; border-radius: 26px; color: #fff; background: linear-gradient(120deg,#663366,#993366); }
.donation-contact-card .section-kicker { color: rgba(255,255,255,.78); }
.donation-contact-card h2 { color: #fff; }
.donation-contact-card p:last-child { max-width: 760px; margin-bottom: 0; color: rgba(255,255,255,.9); }
.donation-contact-card .btn { flex: 0 0 auto; background: #fff; color: #993366; border-color: #fff; }
.donation-contact-card .btn:hover { background: rgba(255,255,255,.9); }

@media (max-width: 900px) {
  .donation-options, .donation-impact-grid { grid-template-columns: 1fr; }
  .donation-contact-card { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 700px) {
  .don-cover-hero { --hero-position-mobile: 59% center; }
  .donation-option { padding: 30px 24px; border-radius: 23px; }
  .donation-quote { padding: 30px 22px; border-radius: 23px; }
  .donation-contact-card { padding: 30px 24px; border-radius: 23px; }
}

/* V20.1 — Refonte page Garage solidaire */
.garage-intro-section{padding:64px 0 34px;background:#fff}
.garage-intro-card{display:grid;grid-template-columns:180px 1fr;align-items:center;gap:44px;padding:42px 48px;border:1px solid rgba(153,51,102,.12);border-radius:30px;background:#fff;box-shadow:0 18px 45px rgba(51,51,51,.08)}
.garage-intro-icon{display:grid;place-items:center;width:150px;height:150px;padding:14px;border:1px solid rgba(51,51,51,.10);border-radius:32px;background:#fff;box-shadow:0 18px 35px rgba(51,51,51,.10)}
.garage-intro-icon img{display:block;width:100%;height:100%;object-fit:contain}
.garage-kicker{display:inline-block;margin:0 0 10px;color:var(--violet);font-family:"GAS18 Nunito","Nunito",sans-serif;font-size:.82rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.garage-intro-copy h2,.garage-section-heading h2,.garage-info-card h2,.garage-cta-card h2{margin:0 0 12px}
.garage-intro-copy>p{max-width:720px;margin:0;color:#555;font-size:1.08rem;line-height:1.75}
.garage-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.garage-tags span{padding:8px 15px;border-radius:999px;color:var(--violet);background:rgba(153,51,102,.08);font-family:"GAS18 Nunito","Nunito",sans-serif;font-size:.9rem;font-weight:800}
.garage-process-section{padding-top:54px;background:linear-gradient(180deg,#fff,#fbf8fb)}
.garage-section-heading{max-width:760px;margin:0 auto 38px;text-align:center}
.garage-section-heading p{margin:0;color:#626262;line-height:1.7}
.garage-process-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:22px}
.garage-process-card{position:relative;grid-column:span 2;min-height:270px;padding:30px 28px 27px;border:1px solid rgba(51,51,51,.08);border-radius:25px;background:#fff;box-shadow:0 14px 36px rgba(51,51,51,.07);overflow:hidden;transition:transform .25s ease,box-shadow .25s ease}
.garage-process-card:nth-child(4){grid-column:2/span 2}.garage-process-card:nth-child(5){grid-column:4/span 2}
.garage-process-card:hover{transform:translateY(-5px);box-shadow:0 20px 42px rgba(51,51,51,.11)}
.garage-process-number{position:absolute;right:18px;top:10px;color:rgba(102,51,102,.08);font-family:"GAS18 Nunito","Nunito",sans-serif;font-size:4.7rem;font-weight:800;line-height:1}
.garage-process-icon{display:grid;place-items:center;width:58px;height:58px;margin-bottom:22px;border-radius:18px;color:#8f45d8;background:rgba(143,69,216,.12)}
.garage-process-card--2 .garage-process-icon{color:#229bd2;background:rgba(34,155,210,.12)}
.garage-process-card--3 .garage-process-icon{color:#39a935;background:rgba(57,169,53,.12)}
.garage-process-card--4 .garage-process-icon{color:#e68b12;background:rgba(243,154,24,.14)}
.garage-process-card--5 .garage-process-icon{color:#d93682;background:rgba(217,54,130,.12)}
.garage-process-icon svg{width:29px;height:29px}
.garage-process-card h3{position:relative;margin:0 0 10px;color:var(--anthracite);font-size:1.22rem}
.garage-process-card p{position:relative;margin:0;color:#646464;line-height:1.65}
.garage-info-section{background:#fff}
.garage-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.garage-info-card{position:relative;padding:38px 38px 36px;border:1px solid rgba(153,51,102,.13);border-radius:27px;background:#fff;box-shadow:0 15px 38px rgba(51,51,51,.06)}
.garage-info-icon{display:grid;place-items:center;width:58px;height:58px;margin-bottom:23px;border-radius:18px;color:var(--violet);background:linear-gradient(135deg,rgba(153,51,102,.11),rgba(51,153,204,.11))}
.garage-info-icon svg{width:28px;height:28px}
.garage-info-card p{margin:0;color:#595959;line-height:1.75}
.garage-cta-section{padding-top:30px}
.garage-cta-card{display:flex;align-items:center;justify-content:space-between;gap:34px;padding:38px 42px;border-radius:28px;color:#fff;background:linear-gradient(120deg,#663366,#993366);box-shadow:0 18px 44px rgba(102,51,102,.22)}
.garage-kicker--light{color:rgba(255,255,255,.72)}
.garage-cta-card h2{color:#fff}.garage-cta-card p{max-width:690px;margin:0;color:rgba(255,255,255,.88)}
.garage-cta-actions{display:flex;flex:0 0 auto;flex-wrap:wrap;gap:12px;justify-content:flex-end}
.garage-tarifs-button,.garage-contact-button{background:#fff!important;color:var(--violet)!important;border-color:#fff!important}
.garage-contact-button{background:transparent!important;color:#fff!important;border-color:rgba(255,255,255,.65)!important}
.garage-tarifs-button svg,.garage-contact-button svg{width:18px;height:18px}
.garage-tarifs-panel{margin-top:22px}
@media(max-width:900px){.garage-intro-card{grid-template-columns:130px 1fr;gap:30px;padding:34px}.garage-intro-icon{width:120px;height:120px}.garage-process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.garage-process-card,.garage-process-card:nth-child(4),.garage-process-card:nth-child(5){grid-column:auto}.garage-process-card:nth-child(5){grid-column:1/-1}.garage-cta-card{align-items:flex-start;flex-direction:column}.garage-cta-actions{justify-content:flex-start}}
@media(max-width:680px){.garage-intro-section{padding-top:42px}.garage-intro-card{grid-template-columns:1fr;padding:28px 24px;border-radius:24px}.garage-intro-icon{width:88px;height:88px;border-radius:24px}.garage-intro-icon img{width:100%;height:100%}.garage-process-grid,.garage-info-grid{grid-template-columns:1fr}.garage-process-card:nth-child(5){grid-column:auto}.garage-process-card{min-height:0;padding:27px 24px}.garage-info-card{padding:30px 25px}.garage-cta-card{padding:30px 24px;border-radius:23px}.garage-cta-actions{width:100%;flex-direction:column}.garage-cta-actions .btn{width:100%;justify-content:center}}


/* V20.3 — Structure validée de la page Garage solidaire */
.garage-info-grid--single {
  grid-template-columns: minmax(0, 1fr);
  max-width: 920px;
  margin-inline: auto;
}

.garage-info-grid--single .garage-info-card {
  min-height: auto;
}


/* V20.4 — Logo du service intégré à la bannière et accès direct au parcours */
.garage-cover-hero .cover-page-hero__layout{display:flex;align-items:flex-end;justify-content:space-between;gap:48px;width:100%}
.garage-cover-hero .cover-page-hero__content{flex:1 1 auto}
.garage-cover-logo{display:grid;place-items:center;flex:0 0 auto;width:clamp(112px,13vw,170px);height:clamp(112px,13vw,170px);padding:18px;border:1px solid rgba(255,255,255,.55);border-radius:30px;background:rgba(255,255,255,.92);box-shadow:0 20px 50px rgba(0,0,0,.24);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.garage-cover-logo img{display:block;width:100%;height:100%;object-fit:contain}
.garage-cover-hero + .garage-process-section{padding-top:68px}
@media(max-width:700px){.garage-cover-hero .cover-page-hero__layout{align-items:flex-start;gap:22px}.garage-cover-logo{width:86px;height:86px;padding:12px;border-radius:22px}.garage-cover-hero + .garage-process-section{padding-top:48px}}
@media(max-width:480px){.garage-cover-hero .cover-page-hero__layout{display:block}.garage-cover-logo{width:76px;height:76px;margin-top:22px}}


/* V20.5 — Logo blanc sans cadre, placé à gauche du titre dans la bannière */
.garage-cover-hero .cover-page-hero__layout{display:block}
.garage-cover-title{display:flex;align-items:center;gap:clamp(16px,2.2vw,28px);margin-top:4px}
.garage-cover-title h1{margin:0}
.garage-cover-logo{display:block;flex:0 0 auto;width:clamp(64px,7vw,92px);height:clamp(64px,7vw,92px);padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;object-fit:contain;filter:brightness(0) invert(1);opacity:.96}
@media(max-width:700px){.garage-cover-title{gap:16px}.garage-cover-logo{width:62px;height:62px;margin:0;padding:0;border-radius:0}}
@media(max-width:480px){.garage-cover-hero .cover-page-hero__layout{display:block}.garage-cover-title{align-items:center}.garage-cover-logo{width:54px;height:54px;margin:0}}

/* V20.6 — Resserrement entre « Votre parcours » et « Public concerné » */
.garage-process-section {
  padding-bottom: 44px;
}

.garage-info-section {
  padding-top: 28px;
}

@media (max-width: 700px) {
  .garage-process-section {
    padding-bottom: 32px;
  }

  .garage-info-section {
    padding-top: 20px;
  }
}

/* V20.7 — Marges harmonisées et icônes du parcours aux couleurs GAS18 */
.garage-info-section {
  padding-bottom: 38px;
}

.garage-cta-section {
  padding-top: 22px;
}

/* Palette de la charte : violet GAS18 et bleu mobilité */
.garage-process-card--1 .garage-process-icon,
.garage-process-card--3 .garage-process-icon,
.garage-process-card--5 .garage-process-icon {
  color: var(--violet);
  background: rgba(153, 51, 102, .11);
}

.garage-process-card--2 .garage-process-icon,
.garage-process-card--4 .garage-process-icon {
  color: var(--blue);
  background: rgba(51, 153, 204, .13);
}

@media (max-width: 700px) {
  .garage-info-section {
    padding-bottom: 28px;
  }

  .garage-cta-section {
    padding-top: 16px;
  }
}


/* V20.9 — Déclinaison du gabarit validé sur toutes les pages Services */
.garage-process-grid .garage-process-card:last-child:nth-child(4){grid-column:4/span 2}
.garage-cover-title h1{line-height:1.05}
@media(max-width:900px){.garage-process-grid .garage-process-card:last-child:nth-child(4){grid-column:auto}}
@media(max-width:680px){.garage-cover-title h1{font-size:clamp(2rem,9vw,3rem)}.garage-process-grid .garage-process-card:last-child:nth-child(4){grid-column:auto}}

/* V20.10 — Grille de parcours équilibrée et cartes de hauteur uniforme */
.garage-process-grid {
  grid-auto-rows: 1fr;
}

.garage-process-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* Quatre étapes : deux cartes par ligne, sans carte isolée */
.garage-process-grid:has(> .garage-process-card:nth-child(4):last-child) {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.garage-process-grid:has(> .garage-process-card:nth-child(4):last-child) > .garage-process-card,
.garage-process-grid:has(> .garage-process-card:nth-child(4):last-child) > .garage-process-card:nth-child(4) {
  grid-column: auto;
}

/* Deux étapes : deux cartes centrées et équilibrées */
.garage-process-grid:has(> .garage-process-card:nth-child(2):last-child) {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 820px;
  margin-inline: auto;
}

.garage-process-grid:has(> .garage-process-card:nth-child(2):last-child) > .garage-process-card {
  grid-column: auto;
}

@media (max-width: 900px) {
  .garage-process-grid:has(> .garage-process-card:nth-child(4):last-child),
  .garage-process-grid:has(> .garage-process-card:nth-child(2):last-child) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .garage-process-grid,
  .garage-process-grid:has(> .garage-process-card:nth-child(4):last-child),
  .garage-process-grid:has(> .garage-process-card:nth-child(2):last-child) {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
  }

  .garage-process-card {
    height: auto;
  }
}

/* V22.1 — Correctif final logo DAD */
.garage-cover-logo--dad{width:170px!important;height:170px!important;padding:0!important;border:none!important;background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;} .garage-cover-logo--dad img{transform:scale(1.55);transform-origin:center;}
@media(max-width:700px){
  .garage-cover-logo--dad{width:170px!important;height:170px!important;padding:0!important;border:none!important;background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;} .garage-cover-logo--dad img{transform:scale(1.55);transform-origin:center;}
}
@media(max-width:480px){
  .garage-cover-logo--dad{width:170px!important;height:170px!important;padding:0!important;border:none!important;background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;} .garage-cover-logo--dad img{transform:scale(1.55);transform-origin:center;}
}


/* V22.2 — Finitions accueil et cadrage Notre histoire */
.home-services-section {
  padding-bottom: 34px;
}
.home-pro-section {
  padding-top: 24px;
}
@media (max-width: 700px) {
  .home-services-section {
    padding-bottom: 24px;
  }
  .home-pro-section {
    padding-top: 18px;
  }
}

/* V22.3 — Équilibre vertical du bloc Professionnels sur l’accueil */
.home-pro-section {
  padding-bottom: 24px;
}
@media (max-width: 700px) {
  .home-pro-section {
    padding-bottom: 18px;
  }
}

/* V22.6 — Cadrage final de la bannière « Notre histoire » */
@media (min-width: 701px) {
  .cover-page-hero.about-cover-hero.hero-about-history {
    background-position: center 86% !important;
  }
}


/* Page cachée - proposition d’ateliers mobilité */
.proposal-notice{display:flex;gap:14px;align-items:flex-start;margin:0 auto 42px;padding:18px 22px;max-width:860px;border:1px solid rgba(102,24,116,.18);border-radius:16px;background:#faf6fb;color:#4e2056}.proposal-notice svg{flex:0 0 auto;margin-top:2px}.proposal-notice strong,.proposal-notice span{display:block}.proposal-notice span{margin-top:3px;color:#675a69}.workshop-heading{max-width:850px;margin-inline:auto;text-align:center}.workshop-pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:38px}.workshop-pillar{padding:28px;border:1px solid #ece3ee;border-radius:20px;background:#fff;box-shadow:0 12px 32px rgba(52,26,57,.07)}.workshop-pillar svg{width:34px;height:34px;color:#70217e}.workshop-pillar h3{margin:16px 0 8px;color:#5f176d}.workshop-pillar p{margin:0;color:#5e5860}.workshop-modules-section{background:#f8f5f9}.workshop-module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:40px}.workshop-module{position:relative;padding:28px;border-radius:20px;background:#fff;border:1px solid #ece5ee;box-shadow:0 10px 28px rgba(49,27,54,.06)}.workshop-module-icon{display:flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:16px;background:#f2e8f4;color:#70217e}.workshop-module-number{display:block;margin-top:20px;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#8b6a90}.workshop-module h3{margin:8px 0 10px;color:#5f176d}.workshop-module p{margin:0;color:#5e5860}.workshop-format-card{display:grid;grid-template-columns:1fr 1fr;gap:48px;padding:44px;border-radius:26px;background:linear-gradient(135deg,#661874,#7d2b8d);color:#fff;box-shadow:0 18px 44px rgba(75,22,84,.2)}.workshop-format-card h2{color:#fff;margin-top:10px}.workshop-format-card p{color:rgba(255,255,255,.88)}.workshop-format-list{display:grid;gap:16px;align-content:center}.workshop-format-list>div{display:flex;gap:12px;align-items:flex-start}.workshop-format-list svg{flex:0 0 auto;width:21px;height:21px;margin-top:2px}.workshop-cta-section{padding-top:0}@media(max-width:900px){.workshop-pillars,.workshop-module-grid{grid-template-columns:1fr 1fr}.workshop-format-card{grid-template-columns:1fr}}@media(max-width:640px){.workshop-pillars,.workshop-module-grid{grid-template-columns:1fr}.workshop-format-card{padding:30px 24px}.proposal-notice{margin-bottom:30px}}


/* Reduce spacing between pedagogical tools and adaptable offer */
.workshop-tools-section{padding-bottom:18px;}
.workshop-tools-section .workshop-format-list{margin-bottom:0;}
.workshop-format-section{padding-top:18px;}

/* Tarifs et annonces — ajustements avant publication */
.tarifs-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:16px 0 20px}
.gas18-tarifs-table{width:100%;border-collapse:collapse;min-width:420px;text-align:left}
.gas18-tarifs-table th,.gas18-tarifs-table td{padding:13px 15px;border-bottom:1px solid #e7e2ee;vertical-align:top}
.gas18-tarifs-table th{background:#f4f0fa;color:#43276a;font-weight:700}
.gas18-tarifs-table td strong{color:#5d3285;white-space:nowrap}
.gas18-tarifs-table small{display:block;color:#6c6675;margin-top:5px;font-size:.88em}
.gas18-empty-state{max-width:740px;margin:12px auto 32px;padding:38px 28px;text-align:center;border:1px solid #e9e2f0;border-radius:18px;background:#fbf9fd}
.gas18-empty-state>i,.gas18-empty-state>svg{color:#694196;width:42px;height:42px;margin-bottom:12px}
.gas18-empty-state h3{margin:0 0 12px;color:#43276a}
.gas18-empty-state p{margin:8px 0;color:#585364}
.gas18-coming-soon{margin-top:20px;padding:18px;border-radius:12px;background:#f4f0fa;color:#43276a}
.gas18-coming-soon p{margin:8px 0 0}
@media(max-width:600px){.gas18-tarifs-table{font-size:.89rem}.gas18-tarifs-table th,.gas18-tarifs-table td{padding:10px}.gas18-empty-state{padding:28px 18px}}

/* Harmonisation des tarifs Garage et DAD avec les cartes de Location solidaire */
.tarifs-harmonises { background: #fff; border: 1px solid rgba(153,51,102,.12); border-radius: 28px; padding: 28px; box-shadow: 0 16px 40px rgba(51,51,51,.08); }
.tarifs-harmonises h3 { color: var(--violet); margin: 26px 0 12px; }
.tarifs-harmonises h3:first-child { margin-top: 0; }
.tarifs-harmonises .tarif-card { min-width: 0; }
.tarifs-harmonises .tarif-card span, .tarifs-harmonises .tarif-card small { overflow-wrap: anywhere; }
.tarifs-harmonises .tarif-card strong { overflow-wrap: anywhere; }
.tarifs-harmonises .tarifs-note { margin: 16px 0; }
@media (max-width: 640px) { .tarifs-harmonises { padding: 18px; border-radius: 22px; } .tarifs-harmonises .tarifs-grid-3 { grid-template-columns: 1fr; } }

/* Garage solidaire : quatre tarifs équilibrés sur deux colonnes. */
.garage-tarifs-panel .tarifs-grid-garage {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.garage-tarifs-panel .tarifs-grid-garage .tarif-card { min-width: 0; }
@media (max-width: 640px) {
  .garage-tarifs-panel .tarifs-grid-garage { grid-template-columns: 1fr; }
}


/* Messages d'attente : véhicules et recrutement */
.gas18-empty-state{max-width:780px;margin:20px auto 38px;padding:46px 42px;border:1px solid rgba(153,51,102,.17);border-radius:28px;background:linear-gradient(145deg,#fff 0%,#fbf8fd 100%);box-shadow:0 16px 42px rgba(51,33,68,.07);text-align:center}
.gas18-empty-state .gas18-empty-icon{width:76px;height:76px;margin:0 auto 22px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#f2e9f8;border:1px solid #e8d9f0;color:#694196}
.gas18-empty-state .gas18-empty-icon svg{width:35px;height:35px;stroke-width:1.8}
.gas18-empty-state h3{color:#43276a;font-size:clamp(1.35rem,2.5vw,1.8rem);margin:0 0 16px}
.gas18-empty-state p{max-width:580px;margin:10px auto;color:#585364;line-height:1.7}
@media(max-width:600px){.gas18-empty-state{padding:32px 20px;border-radius:22px}.gas18-empty-state .gas18-empty-icon{width:64px;height:64px;margin-bottom:18px}.gas18-empty-state .gas18-empty-icon svg{width:30px;height:30px}}

/* Formulaire de contact : messages et champ anti-spam invisible */
.contact-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.contact-feedback{padding:1rem 1.15rem;border-radius:14px;margin:0 0 1rem;border:1px solid #ded0eb;background:#f8f4fc;color:#43276a;font-weight:600}
.contact-feedback-error{border-color:#e8ccd7;background:#fff7f9;color:#843657}


/* GAS18 — Correctif affichage iPhone / smartphones (12-10-2026) */
@media (max-width: 1220px) {
  .site-header .main-nav {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100vw !important;
    max-height: calc(100dvh - 90px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    z-index: 10000 !important;
  }
  .site-header .main-nav .menu {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    min-width: 0 !important;
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .site-header .main-nav .menu > li {
    display: block !important;
    flex: 0 0 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
  }
  .site-header .main-nav .menu > li > a,
  .site-header .main-nav .submenu a {
    display: block !important;
    box-sizing: border-box !important;
    width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    font-size: 1rem !important;
  }
  .site-header .main-nav .has-submenu {
    padding-bottom: 0 !important;
  }
  .site-header .main-nav .has-submenu::after {
    display: none !important;
  }
  .site-header .main-nav .submenu {
    position: static !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 0 0 8px 14px !important;
    transform: none !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    box-shadow: none !important;
    border: 0 !important;
  }
}
@media (max-width: 700px) {
  .home-pro-section .banner {
    grid-template-columns: minmax(0, 1fr) !important;
    padding: 25px 20px !important;
    gap: 18px !important;
  }
  .home-pro-section .banner > div { min-width: 0 !important; }
  .home-pro-section .banner h2 {
    max-width: 100% !important;
    font-size: clamp(1.35rem, 5.2vw, 1.8rem) !important;
    line-height: 1.3 !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }
  .home-pro-section .banner .btn {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    white-space: normal !important;
    text-align: center !important;
  }
}


/* GAS18 — Menu accordéon sur téléphone/tablette, ordinateur inchangé */
@media (max-width: 1220px) {
  .site-header { position: relative; z-index: 1000; }
  .site-header .main-nav.open {
    background: #fff !important;
    opacity: 1 !important;
    max-height: min(75dvh, 680px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    box-shadow: 0 18px 35px rgba(40,20,50,.16) !important;
  }
  .site-header .main-nav .menu > li.has-submenu {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) 48px;
    align-items: center;
  }
  .site-header .main-nav .menu > li.has-submenu > a {
    grid-column: 1;
    min-width: 0;
    padding: 15px 12px !important;
    font-weight: 800;
  }
  .site-header .main-nav .menu > li:not(.has-submenu) > a {
    padding: 15px 12px !important;
    font-weight: 800;
  }
  .site-header .main-nav .submenu-toggle {
    grid-column: 2;
    justify-self: stretch;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 44px;
    margin: 2px;
    padding: 8px;
    border: 0;
    border-radius: 10px;
    background: #f5edf6;
    color: #742b75;
    font-size: 1.3rem;
    cursor: pointer;
  }
  .site-header .main-nav .submenu-toggle[aria-expanded="true"] .submenu-chevron {
    transform: rotate(180deg);
  }
  .site-header .main-nav .submenu-chevron { transition: transform .18s ease; }
  .site-header .main-nav .has-submenu > .submenu,
  .site-header .main-nav .has-submenu:hover > .submenu,
  .site-header .main-nav .has-submenu:focus-within > .submenu {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
  .site-header .main-nav .has-submenu.is-expanded > .submenu,
  .site-header .main-nav .has-submenu.is-expanded:hover > .submenu,
  .site-header .main-nav .has-submenu.is-expanded:focus-within > .submenu {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    grid-column: 1 / -1;
    background: #faf7fb !important;
    border-radius: 10px;
    padding: 4px 8px 8px 14px !important;
  }
  .site-header .main-nav .submenu a { padding: 11px 12px !important; font-weight: 500; }
}
@media (min-width: 1221px) {
  .site-header .main-nav .submenu-toggle { display: none !important; }
}


/* GAS18 — Correctif mobile : organigrammes equipe et benevoles (12/10/2026)
   Neutralise la largeur minimale de 900px imposee au diagramme equipe. */
@media (max-width: 760px) {
  .organigramme-svg-card,
  .organigramme-benevoles-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
    padding: 10px !important;
    box-sizing: border-box !important;
  }
  .organigramme-svg-card img,
  .organigramme-benevoles-card img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    object-fit: contain !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

/* GAS18 — DAD : titre du bandeau lisible sur smartphone (12/10/2026)
   Le logo DAD avait une largeur forcee a 170px, meme sur iPhone. */
@media (max-width: 700px) {
  .deplacement-page .garage-cover-title {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 12px !important;
    width: 100% !important;
    min-width: 0 !important;
  }
  .deplacement-page .garage-cover-logo--dad {
    display: block !important;
    width: 100px !important;
    height: 100px !important;
    max-width: 100% !important;
    flex: none !important;
    object-fit: contain !important;
  }
  .deplacement-page .garage-cover-title h1 {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    font-size: clamp(1.9rem, 8vw, 2.8rem) !important;
    line-height: 1.12 !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
  }
}


/* GAS18 V6.53 — Pied de page : espace reel avant le separateur
   Correction commune desktop/tablette/mobile, sans deplacer les icones. */
.site-footer .footer-main {
  padding-bottom: 28px !important;
}
.site-footer .footer-bottom {
  margin-top: 0 !important;
  clear: both;
}
@media (max-width: 760px) {
  .site-footer .footer-main {
    padding-bottom: 28px !important;
    row-gap: 24px;
  }
  .site-footer .footer-follow {
    position: static !important;
    margin-bottom: 0 !important;
  }
  .site-footer .footer-follow .footer-socials {
    position: static !important;
    padding-bottom: 0 !important;
  }
}

/* GAS18 V6.54 — Acces Espace pro et Faire un don visibles sur mobile.
   Conserve les liens et le HTML communs a toutes les pages. */
@media (max-width: 1220px) {
  .site-header .container.header-inner {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    row-gap: 10px !important;
  }
  .site-header .header-cta {
    display: flex !important;
    order: 3 !important;
    flex: 0 0 100% !important;
    width: 100% !important;
    min-width: 0 !important;
    justify-content: center !important;
    align-items: stretch !important;
    gap: 10px !important;
  }
  .site-header .header-cta .btn {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    min-height: 42px !important;
    padding: 9px 12px !important;
    font-size: .85rem !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    text-align: center !important;
  }
  .site-header .header-cta .btn i,
  .site-header .header-cta .btn svg {
    width: 17px !important;
    height: 17px !important;
    flex-shrink: 0 !important;
  }
}


/* GAS18 - Bandeau superieur lisible sur Android et iPhone (12/10/2026).
   Les deux spans HTML sont adjacents : sur petit ecran,
   les rendre blocs empeche le numero de coller a "Mobilite". */
@media (max-width: 640px) {
  .topbar > .container {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 6px !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }
  .topbar > .container > span {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    line-height: 1.4 !important;
  }
  /* Coordonnees sur deux lignes, sans separateur orphelin. */
  .topbar > .container > span:nth-child(2) {
    font-size: 0 !important;
  }
  .topbar > .container > span:nth-child(2) a {
    display: block !important;
    width: fit-content !important;
    max-width: 100% !important;
    font-size: .95rem !important;
    line-height: 1.55 !important;
    overflow-wrap: anywhere !important;
  }
}
