/* ============================================================
   L'AVIE — Design System
   Source: lavietest/src/index.css (Design System V5)
   ============================================================ */

/* ------------------------------------------------------------
   1. VARIABLES GLOBALES
   ------------------------------------------------------------ */
:root {
  --avie-green:        hsl(155, 32%, 33%);
  --avie-green-light:  hsl(155, 28%, 45%);
  --avie-green-dark:   hsl(160, 30%, 12%);
  --avie-green-deep:   #084f37;
  --avie-green-pale:   #F5FAF8;
  --avie-coral:        #d7521e;
  --avie-yellow:       #e1a430;
  --avie-berry:        #972c46;
  /* Orange du survol de menu. Le coral du DS (#d7521e) ne donne que
     3,70:1 sur ce fond, sous le seuil AA : d'où une version foncée. */
  --avie-orange-pale:  #FCF1ED;
  --avie-coral-deep:   #A8400F;

  --avie-bg:           hsl(40, 50%, 98%);
  --avie-sage:         hsl(114, 40%, 93%);
  --avie-warm:         hsl(44, 60%, 94%);
  --avie-warm-deep:    hsl(44, 50%, 88%);

  --avie-text:         hsl(160, 30%, 12%);
  --avie-text-muted:   hsl(160, 12%, 32%);
  --avie-border:       hsl(155, 15%, 88%);

  --avie-shadow:    0 4px 6px -1px hsl(155 28% 40% / 0.08), 0 2px 4px -2px hsl(155 28% 40% / 0.04);
  --avie-shadow-lg: 0 10px 15px -3px hsl(155 28% 40% / 0.10), 0 4px 6px -4px hsl(155 28% 40% / 0.05);
  --avie-shadow-xl: 0 20px 25px -5px hsl(155 28% 40% / 0.12), 0 8px 10px -6px hsl(155 28% 40% / 0.06);

  --avie-radius:         1.5rem;
  --avie-radius-section: 3rem;
  --avie-radius-btn:     9999px;

  /* Jetons ajoutés lors du contrôle qualité du 27 septembre 2026 : ils
     remplacent des couleurs écrites en dur dans des blocs. */
  --avie-stone:        #f1eeea; /* fond des cartes « Nos 4 établissements » */
  --avie-card-dark:    #1a1a1a; /* fond des cartes photo en attendant l'image */
  --avie-off-white:    #fefdfc; /* blanc cassé des cartes « Pourquoi nous choisir » */
  --avie-error:        #ff6b7a; /* rouge des états « avant », lisible sur fond clair */

  /* Alias : noms rencontrés dans d'anciens blocs (formulaires). Ils pointent
     vers les jetons ci-dessus pour qu'une variable mal nommée ne fasse plus
     retomber un titre sur la police par défaut du thème. */
  --avie-font-heading:  'Outfit', sans-serif;
  --avie-font-body:     'Plus Jakarta Sans', sans-serif;
  --avie-foreground:    var(--avie-text);
  --avie-muted:         var(--avie-text-muted);
  --avie-background:    #fff;
  --avie-primary:       var(--avie-green);
}

/* ------------------------------------------------------------
   2. CONTAINER
   ------------------------------------------------------------ */
.container {
  width: 100%;
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

/* ------------------------------------------------------------
   3. TYPOGRAPHIE DE BASE
   ------------------------------------------------------------ */
body {
  font-family: 'Plus Jakarta Sans', sans-serif;
  /* Fond de page blanc : le crème (--avie-bg) reste disponible comme fond
     de section, mais n'est plus le fond par défaut des pages. */
  background-color: #fff;
  color: var(--avie-text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
}

/* ------------------------------------------------------------
   3. TOPBAR
   ------------------------------------------------------------ */
.avie-topbar {
  background-color: var(--avie-green-deep);
  color: var(--avie-bg);
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.8125rem;
  font-weight: 500;
  position: relative;
  z-index: 101;
  transition: transform 0.3s ease;
}

.avie-topbar.is-hidden {
  transform: translateY(-100%);
  /* On pousse aussi le header vers le haut */
}

.avie-topbar__inner {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 1.5rem;
  padding: 0.5625rem 0;
}

.avie-topbar a {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  color: var(--avie-bg);
  opacity: 0.9;
  transition: opacity 0.2s;
}

.avie-topbar a:hover {
  opacity: 1;
  color: var(--avie-bg) !important;
}

.avie-topbar svg {
  width: 0.875rem;
  height: 0.875rem;
  flex-shrink: 0;
}

/* ------------------------------------------------------------
   4. HEADER
   ------------------------------------------------------------ */
/* Haut de page : bandeau blanc classique, pleine largeur. Header collé :
   le bandeau devient une capsule flottante blanche, avec contour léger et
   ombre marquée. Tout est en transition (0.35 s).
   La bascule est posée par header.js, avec hystérésis 80 / 20 px. */
.avie-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background-color: #fff;
  padding: 0;
  transition: padding 0.35s ease, background-color 0.35s ease;
}

.avie-header.is-scrolled {
  background: transparent;
  padding: 0.5rem 0;
}

.avie-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  background: rgb(255 255 255 / 0);
  border: 1px solid transparent;
  border-radius: 0;
  padding: 1.25rem 0;
  box-shadow: none;
  transition: padding 0.35s ease, background-color 0.35s ease,
              border-radius 0.35s ease, border-color 0.35s ease,
              box-shadow 0.35s ease;
}

/* Capsule (classe posée par header.js) */
.avie-header.is-scrolled .avie-header__inner {
  background: #fff;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-color: var(--avie-border);
  border-radius: 9999px;
  padding: 0.75rem 1.25rem 0.75rem 2.625rem;
  box-shadow:
    0 18px 44px -12px hsl(160 40% 12% / 0.3),
    0 6px 14px -6px hsl(160 40% 12% / 0.14);
}

/* Menu mobile : panneau blanc arrondi sous le header (dont le fond devient
   transparent une fois collé). */
.avie-mobile-nav {
  margin-top: 0.5rem;
  padding: 0.5rem;
  border-radius: 1.5rem;
  background: #fff;
  border: 1px solid var(--avie-border);
  box-shadow: var(--avie-shadow-lg);
}

/* Logo */
.avie-logo {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  text-decoration: none;
  flex-shrink: 0;
}

/* Logo image du header : 56 px en haut de page, 46 px une fois le header
   collé. Le fichier (176 px de haut) reste net sur écran Retina. */
.avie-logo__img {
  display: block;
  height: 3.5rem;
  width: auto;
  transition: transform 0.2s, height 0.3s ease;
}
.avie-header.is-scrolled .avie-logo__img { height: 2.875rem; }

.avie-logo:hover .avie-logo__img { transform: scale(1.03); }

@media (max-width: 767px) {
  .avie-header__inner { padding: 0.875rem 0; }
  .avie-header.is-scrolled .avie-header__inner { padding: 0.5625rem 0.75rem 0.5625rem 1.625rem; }
  .avie-logo__img { height: 2.75rem; }
  .avie-header.is-scrolled .avie-logo__img { height: 2.375rem; }
}

/* Nav desktop */
.avie-nav {
  margin-left: auto;
  display: flex;
}

.avie-nav__list {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Reset <li> — empêche tout padding/margin hérité de Blocksy */
.avie-nav__list > li {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}

/* Liens : texte plein, un cran plus gras. Indicateur = petite barrette
   jaune arrondie (24 × 4 px) centrée sous le texte, indépendante de sa
   largeur. Survol : elle s'étire depuis le centre avec un fondu ;
   page active : affichée en permanence, texte en gras. */
.avie-nav__list { gap: 0.125rem; }

.avie-nav__link,
.avie-nav__link:visited {
  position: relative;
  display: flex;
  align-items: center;
  padding: 0.5rem 1rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.25rem;
  color: var(--avie-text);
  text-decoration: none !important;
  background: transparent;
  white-space: nowrap;
}

.avie-nav__link::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 0.1rem;
  width: 1.5rem;
  height: 0.25rem;
  margin-left: -0.75rem;
  border-radius: 9999px;
  background: var(--avie-yellow);
  opacity: 0;
  transform: scaleX(0.3);
  transition: opacity 0.25s ease, transform 0.25s ease;
}

.avie-nav__link:hover,
.avie-nav__link.is-active {
  color: var(--avie-text) !important;
  background: transparent;
  text-decoration: none !important;
}
.avie-nav__link.is-active { font-weight: 800; }

.avie-nav__link:hover::after,
.avie-nav__link.is-active::after {
  opacity: 1;
  transform: scaleX(1);
}

/* Mobile toggle */
.avie-header__toggle {
  display: none;
  padding: 0.5rem;
  border-radius: 0.5rem;
  color: var(--avie-green);
  background: none;
  border: none;
  cursor: pointer;
  transition: background-color 0.2s;
  align-items: center;
  justify-content: center;
}

.avie-header__toggle:hover {
  background-color: hsl(155 32% 33% / 0.07);
}

.avie-header__toggle svg {
  width: 1.5rem;
  height: 1.5rem;
  display: block;
}

/* Icônes toggle : montrer/cacher */
.avie-header__toggle .icon-close { display: none; }

.avie-header__toggle[aria-expanded="true"] .icon-menu  { display: none; }
.avie-header__toggle[aria-expanded="true"] .icon-close { display: block; }

/* Mobile nav */
.avie-mobile-nav {
  display: none;
  flex-direction: column;
}

.avie-mobile-nav.is-open {
  display: flex;
}

.avie-mobile-nav__list {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Mobile : même barrette jaune, alignée à gauche sous le texte. */
.avie-mobile-nav__link,
.avie-mobile-nav__link:visited {
  position: relative;
  display: block;
  padding: 0.75rem 1rem;
  font-size: 1rem;
  font-weight: 600;
  color: var(--avie-text);
  text-decoration: none;
}

.avie-mobile-nav__link::after {
  content: '';
  position: absolute;
  left: 1rem;
  bottom: 0.35rem;
  width: 1.5rem;
  height: 0.25rem;
  border-radius: 9999px;
  background: var(--avie-yellow);
  opacity: 0;
  transform: scaleX(0.3);
  transform-origin: left center;
  transition: opacity 0.25s ease, transform 0.25s ease;
}

.avie-mobile-nav__link:hover,
.avie-mobile-nav__link.is-active {
  color: var(--avie-text) !important;
  background: transparent;
}
.avie-mobile-nav__link.is-active { font-weight: 800; }

.avie-mobile-nav__link:hover::after,
.avie-mobile-nav__link.is-active::after {
  opacity: 1;
  transform: scaleX(1);
}

/* Responsive : le menu complet a besoin d'environ 1120 px (header collé).
   Burger en dessous de 1200 px pour garder de l'air entre logo et menu.
   À revoir si des entrées sont ajoutées au menu principal. */
@media (max-width: 1199px) {
  .avie-nav            { display: none; }
  .avie-header__toggle { display: inline-flex; }
}

/* ------------------------------------------------------------
   5. CLASSES UTILITAIRES
   ------------------------------------------------------------ */
.bg-avie-green  { background-color: var(--avie-green); }
.bg-avie-coral  { background-color: var(--avie-coral); }
.bg-avie-yellow { background-color: var(--avie-yellow); }
.bg-avie-sage   { background-color: var(--avie-sage); }
.bg-avie-warm   { background-color: var(--avie-warm); }

.text-avie-green  { color: var(--avie-green); }
.text-avie-coral  { color: var(--avie-coral); }
.text-avie-yellow { color: var(--avie-yellow); }

.shadow-avie    { box-shadow: var(--avie-shadow); }
.shadow-avie-lg { box-shadow: var(--avie-shadow-lg); }
.avie-rounded   { border-radius: var(--avie-radius); }

/* Glassmorphism */
.avie-glass {
  background: hsl(40 50% 98% / 0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* ------------------------------------------------------------
   6. BOUTONS
   ------------------------------------------------------------ */
/* ------------------------------------------------------------
   8. SECTIONS GÉNÉRIQUES
   ------------------------------------------------------------ */
.avie-section-sage  { background-color: var(--avie-sage);  border-radius: var(--avie-radius-section); }
.avie-section-warm  { background-color: var(--avie-warm);  border-radius: var(--avie-radius-section); }
.avie-section-green { background-color: var(--avie-green); color: #fff; }

.avie-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.25rem 0.75rem;
  border-radius: 9999px;
  background-color: hsl(155 32% 33% / 0.1);
  color: var(--avie-green);
}
.avie-badge-coral { background-color: hsl(17 80% 48% / 0.1); color: var(--avie-coral); }

.avie-card {
  background-color: #fff;
  border-radius: var(--avie-radius);
  box-shadow: var(--avie-shadow);
  overflow: hidden;
  transition: box-shadow 0.2s, transform 0.2s;
}
.avie-card:hover { box-shadow: var(--avie-shadow-lg); transform: translateY(-2px); }

/* ------------------------------------------------------------
   9. FOOTER
   ------------------------------------------------------------ */
.avie-footer {
  position: relative;
  background-color: var(--avie-green-deep);
  color: rgba(253,249,243,0.85);
  overflow: hidden;
}

/* Blobs décoratifs */
.avie-footer__blob {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.avie-footer__blob--tr {
  top: 0; right: 0;
  width: 400px; height: 400px;
  background: radial-gradient(circle, rgba(242,193,78,0.06) 0%, transparent 70%);
  filter: blur(60px);
}
.avie-footer__blob--bl {
  bottom: 0; left: 25%;
  width: 300px; height: 300px;
  background: radial-gradient(circle, rgba(215,82,30,0.06) 0%, transparent 70%);
  filter: blur(50px);
}

/* Hero statement */
.avie-footer__hero {
  border-bottom: 1px solid rgba(253,249,243,0.1);
  position: relative;
  z-index: 1;
}
.avie-footer__hero-inner {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  padding: 5rem 0 4rem;
}
@media (min-width: 1024px) {
  .avie-footer__hero-inner {
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
  }
}
.avie-footer__hero-title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: clamp(1.875rem, 4vw, 3rem);
  line-height: 0.95;
  color: rgba(253,249,243,1);
  margin: 0;
  max-width: 28rem;
}
.avie-footer__hero-accent {
  color: var(--avie-yellow);
}
.avie-footer__hero-ctas {
  display: flex;
  gap: 0.75rem;
  flex-shrink: 0;
  flex-wrap: wrap;
}
/* Grid principal */
.avie-footer__top {
  position: relative;
  z-index: 1;
}

.avie-footer__grid {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1.2fr;
  gap: 3rem;
  padding: 3.5rem 0;
}

@media (max-width: 1023px) {
  .avie-footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    padding: 2.5rem 0;
  }
}

@media (max-width: 639px) {
  .avie-footer__grid {
    grid-template-columns: 1fr;
  }
}

/* Logo dans le footer */
.avie-footer__logo {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  text-decoration: none;
  margin-bottom: 1.75rem;
}

/* Version blanche du logo (apostrophe coral et point jaune conservés),
   plus grande que dans le header : le footer a la place de l'afficher. */
.avie-footer__logo-img {
  display: block;
  height: 4rem;
  width: auto;
}

@media (max-width: 767px) {
  .avie-footer__logo-img { height: 3.25rem; }
}

/* Headings de colonnes */
.avie-footer__col-heading {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 0.6875rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: rgba(253,249,243,0.45);
  margin: 0 0 1.5rem;
}

/* Nav links */
.avie-footer__nav {
  list-style: none;
  margin: 0;
  padding: 0;
}

.avie-footer__nav li { margin-bottom: 0.75rem; }

.avie-footer__nav a {
  color: rgba(253,249,243,0.55);
  text-decoration: none;
  font-size: 0.875rem;
  line-height: 1.6;
  transition: color 0.2s;
}

.avie-footer__nav a:hover { color: rgba(253,249,243,1) !important; }

/* Établissements */
.avie-footer__etab {
  margin-bottom: 1.25rem;
}

.avie-footer__etab-name {
  font-size: 0.875rem;
  font-weight: 700;
  color: rgba(253,249,243,0.9);
  line-height: 1.4;
}

.avie-footer__etab-hours {
  font-size: 0.6875rem;
  color: rgba(253,249,243,0.4);
  margin-top: 0.2rem;
  display: flex;
  align-items: center;
  gap: 0.375rem;
}

/* Contact */
.avie-footer__contact-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 1rem;
  color: rgba(253,249,243,0.55);
  font-size: 0.875rem;
  line-height: 1.5;
}

.avie-footer__contact-item svg { flex-shrink: 0; margin-top: 2px; opacity: 0.6; }

.avie-footer__contact-item a {
  color: rgba(253,249,243,0.55);
  text-decoration: none;
  transition: color 0.2s;
}

.avie-footer__contact-item a:hover { color: rgba(253,249,243,1) !important; }

.avie-footer__legal-note {
  font-size: 0.75rem;
  color: rgba(253,249,243,0.35);
  line-height: 1.6;
  margin-top: 1.5rem;
}

/* Bottom bar */
.avie-footer__bottom {
  border-top: 1px solid rgba(253,249,243,0.1);
  position: relative;
  z-index: 1;
}

.avie-footer__bottom .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 2rem;
  padding-bottom: 2rem;
  gap: 1rem;
  flex-wrap: wrap;
}

.avie-footer__bottom > .container > span {
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.3em;
  color: rgba(253,249,243,0.35);
}

.avie-footer__bottom > .container > span strong {
  color: rgba(253,249,243,0.35);
  font-weight: 700;
}

.avie-footer__legal-nav {
  display: flex;
  gap: 1.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
  flex-wrap: wrap;
}

.avie-footer__legal-nav a {
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.3em;
  color: rgba(253,249,243,0.35);
  text-decoration: none;
  transition: color 0.2s;
}

.avie-footer__legal-nav a:hover { color: rgba(253,249,243,0.75) !important; }

/* ------------------------------------------------------------
   10. ACCUEIL — NOTRE RAISON D'ÊTRE
   ------------------------------------------------------------ */
.avie-home-mission {
  background: #ffffff;
  padding: 5rem 0;
}

.avie-home-mission__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

.avie-home-mission--img-right .avie-home-mission__grid {
  direction: rtl;
}
.avie-home-mission--img-right .avie-home-mission__grid > * {
  direction: ltr;
}

@media (max-width: 1023px) {
  .avie-home-mission__grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  .avie-home-mission--img-right .avie-home-mission__grid {
    direction: ltr;
  }
}

/* Image — composition volontairement distincte du hero :
   photo en « feuille » (deux coins opposés très arrondis, sans liseré),
   rectangle framboise qui dépasse du coin haut-gauche, petit rond jaune
   qui dépasse du coin bas-droit. Les deux formes passent SOUS la photo
   (dans le hero, le rond est posé dessus). */
.avie-home-mission__img {
  position: relative;
}
/* `body` : passe devant `.elementor img { border-radius: 0; box-shadow: none }`
   (voir section 41). */
body .avie-home-mission__img img {
  position: relative;
  z-index: 1;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  border-radius: 7rem 1.5rem 7rem 1.5rem;
  box-shadow: var(--avie-shadow-lg);
}

.avie-home-mission__img:has(img)::before,
.avie-home-mission__img:has(img)::after {
  content: '';
  position: absolute;
  z-index: 0;
  transition: transform 0.4s ease;
}

.avie-home-mission__img:has(img)::before {
  top: -1.75rem;
  left: -1.75rem;
  width: 42%;
  height: 58%;
  background: var(--avie-berry);
  border-radius: 1.5rem;
}

.avie-home-mission__img:has(img)::after {
  right: -1.5rem;
  bottom: -1.5rem;
  width: 5.5rem;
  height: 5.5rem;
  background: var(--avie-yellow);
  border-radius: 50%;
}

.avie-home-mission__img:hover::before { transform: translate(-0.35rem, -0.35rem); }
.avie-home-mission__img:hover::after  { transform: translate(0.3rem, 0.3rem) scale(1.06); }

/* Visuel à droite : on inverse la feuille et les formes. */
body .avie-home-mission--img-right .avie-home-mission__img img {
  border-radius: 1.5rem 7rem 1.5rem 7rem;
}
.avie-home-mission--img-right .avie-home-mission__img:has(img)::before {
  left: auto;
  right: -1.75rem;
}
.avie-home-mission--img-right .avie-home-mission__img:has(img)::after {
  right: auto;
  left: -1.5rem;
}
.avie-home-mission--img-right .avie-home-mission__img:hover::before { transform: translate(0.35rem, -0.35rem); }
.avie-home-mission--img-right .avie-home-mission__img:hover::after  { transform: translate(-0.3rem, 0.3rem) scale(1.06); }

/* Les formes débordent : coupe au bord de la section (pas de scroll mobile). */
.avie-home-mission { overflow-x: clip; }

/* Texte */
.avie-home-mission__text {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.avie-home-mission__eyebrow {
  display: inline-block;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--avie-coral);
}

.avie-home-mission__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 2.5rem;
  line-height: 1.2;
  color: var(--avie-text);
  margin: 0;
}

.avie-home-mission__accent {
  color: var(--avie-yellow);
}

.avie-home-mission__desc {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--avie-text-muted);
}
.avie-home-mission__desc p { margin: 0; }

.avie-home-mission__btns {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  padding-top: 0.5rem;
}

/* ------------------------------------------------------------
   10C. ACCUEIL — NOS 4 ÉTABLISSEMENTS
   ------------------------------------------------------------ */
.avie-home-lieux {
  background: var(--avie-stone);
  padding: 5rem 0;
}

/* En-tête centré */
.avie-home-lieux__header {
  text-align: center;
  margin-bottom: 3rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}

.avie-home-lieux__eyebrow {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--avie-coral);
  text-decoration: none;
  transition: opacity 0.2s;
}
.avie-home-lieux__eyebrow:hover { opacity: 0.75; }

.avie-home-lieux__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 2.5rem;
  color: var(--avie-text);
  margin: 0;
  line-height: 1.15;
}

.avie-home-lieux__accent {
  color: var(--avie-yellow);
}

/* Grille 2 colonnes centrée */
.avie-home-lieux__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  max-width: 52rem;
  margin: 0 auto;
}

@media (max-width: 639px) {
  .avie-home-lieux__grid {
    grid-template-columns: 1fr;
  }
}

/* Forme décorative : carré jaune arrondi derrière la grille, qui dépasse du
   coin bas-gauche de la dernière rangée. Porté par la grille (les cartes
   sont en overflow: hidden) ; les cartes passent devant via z-index. */
.avie-home-lieux__grid { position: relative; }
.avie-home-lieux__card { position: relative; z-index: 1; }

.avie-home-lieux__grid::before {
  content: '';
  position: absolute;
  z-index: 0;
  left: -2rem;
  bottom: -2rem;
  width: 7rem;
  height: 7rem;
  border-radius: 1.5rem;
  background: var(--avie-yellow);
}

/* La forme déborde : coupe au bord de la section (pas de scroll mobile). */
.avie-home-lieux { overflow-x: clip; }

/* Carte */
.avie-home-lieux__card {
  background: #ffffff;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: var(--avie-shadow);
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.avie-home-lieux__card:hover {
  box-shadow: var(--avie-shadow-lg);
  transform: translateY(-3px);
}

.avie-home-lieux__img-wrap {
  aspect-ratio: 4 / 3;
  overflow: hidden;
}
.avie-home-lieux__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}
.avie-home-lieux__card:hover .avie-home-lieux__img-wrap img {
  transform: scale(1.05);
}

.avie-home-lieux__body {
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.avie-home-lieux__name {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 0.9375rem;
  color: var(--avie-text);
  margin: 0;
  line-height: 1.3;
}

.avie-home-lieux__city {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  color: var(--avie-text-muted);
  display: flex;
  align-items: center;
  gap: 0.3rem;
  margin: 0;
}

.avie-home-lieux__body .avie-btn--sm {
  margin-top: 0.5rem;
  align-self: flex-start;
}

/* ------------------------------------------------------------
   10B. PRESTATIONS HERO (PrestationsV4Alt)
   ------------------------------------------------------------ */

/* Grid principal : 2 colonnes égales, hauteur = moitié de la largeur */
.avie-pres-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  aspect-ratio: 2 / 1;
}

/* Colonne droite : 2 cartes empilées 50/50 */
.avie-pres-col {
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: 1.5rem;
  height: 100%;
}

/* Carte générique */
.avie-pres-card {
  position: relative;
  border-radius: 40px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0,0,0,0.18);
  background: var(--avie-card-dark);
  height: 100%;
}

.avie-pres-card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}

.avie-pres-card:hover img { transform: scale(1.05); }

/* Contenu flottant en bas */
.avie-pres-card__body {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1.5rem 2rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
}

.avie-pres-card__title-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: #fff;
  border-radius: 0.375rem;
  padding: 0.5rem 1rem;
  box-shadow: 0 2px 8px rgba(0,0,0,0.12);
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 1.375rem;
  color: var(--avie-text);
  line-height: 1.2;
}

.avie-pres-col .avie-pres-card__title-badge { font-size: 1.125rem; }
.avie-pres-card__title-badge svg { flex-shrink: 0; }

.avie-pres-card__desc-badge {
  background: #fff;
  border-radius: 0.375rem;
  padding: 0.375rem 1rem;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  max-width: 400px;
  font-size: 0.9375rem;
  color: rgba(22,48,42,0.8);
}

.avie-pres-card__btn { margin-top: 0.25rem; }

/* ------------------------------------------------------------
   11. TÉMOIGNAGES
   ------------------------------------------------------------ */
.avie-testimonials {
  position: relative;
  overflow: hidden;
  padding: 5rem 0;
  background: var(--avie-green-pale);
}

/* Grand guillemet décoratif en arrière-plan */
.avie-testimonials::before {
  content: '\201C';
  position: absolute;
  top: -0.1em;
  left: 1rem;
  font-family: 'Outfit', sans-serif;
  font-size: 18rem;
  font-weight: 900;
  line-height: 1;
  color: var(--avie-green);
  opacity: 0.04;
  pointer-events: none;
  select: none;
  user-select: none;
}

.avie-testimonials__header {
  text-align: center;
  margin-bottom: 3rem;
  position: relative;
}

/* Petite étiquette eyebrow */
.avie-testimonials__eyebrow {
  display: block;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--avie-coral);
  margin-bottom: 0.625rem;
}

.avie-testimonials__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 2.5rem;
  color: var(--avie-text);
  line-height: 1.1;
  margin: 0 0 0.5rem;
}

.avie-testimonials__title-accent {
  color: var(--avie-yellow);
}

.avie-testimonials__subtitle {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 500;
  font-size: clamp(1rem, 2vw, 1.125rem);
  color: var(--avie-text-muted);
  margin: 0;
}

/* Grille — on laisse de l'espace pour que les rotations ne se coupent pas */
.avie-testimonials__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.75rem;
  max-width: 960px;
  margin: 0 auto 3rem;
  padding: 1rem 0;
  position: relative;
}

/* Rotation alternée sur chaque carte */
.avie-testimonials__grid > *:nth-child(1) {
  transform: rotate(-1.2deg);
  transform-origin: center bottom;
}
.avie-testimonials__grid > *:nth-child(2) {
  transform: rotate(0deg);
}
.avie-testimonials__grid > *:nth-child(3) {
  transform: rotate(1.2deg);
  transform-origin: center bottom;
}
.avie-testimonials__grid > * {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.avie-testimonials__grid > *:hover {
  transform: rotate(0deg) translateY(-4px) !important;
  z-index: 2;
}

/* Carré coral derrière la dernière carte, qui dépasse du coin bas-droit :
   même forme que sur la grille de cartes service. Porté par le wrapper
   (qui tourne avec la carte) ; z-index -1 le place sous la carte, dans le
   contexte d'empilement créé par la rotation du wrapper. */
.avie-testimonials__grid > * { position: relative; }

.avie-testimonials__grid > *:last-child:not(:first-child)::before {
  content: '';
  position: absolute;
  z-index: -1;
  right: -1.5rem;
  bottom: -1.5rem;
  width: 6.5rem;
  height: 6.5rem;
  border-radius: 1rem 1rem 2.25rem 1rem;
  background: var(--avie-coral);
  transition: transform 0.3s ease;
}

.avie-testimonials__grid > *:last-child:hover::before { transform: rotate(4deg) scale(1.06); }

/* 3-card layout (default) */
.avie-testimonials__grid--3 {
  grid-template-columns: repeat(3, 1fr);
}

/* 2-card layout */
.avie-testimonials__grid--2 {
  grid-template-columns: repeat(2, 1fr);
  max-width: 680px;
}
.avie-testimonials__grid--2 > *:nth-child(1) {
  transform: rotate(-1.2deg);
  transform-origin: center bottom;
}
.avie-testimonials__grid--2 > *:nth-child(2) {
  transform: rotate(1.2deg);
  transform-origin: center bottom;
}

.avie-testimonials__card {
  background: #fff;
  border-radius: 1.5rem;
  padding: 1.75rem;
  border: 1px solid hsl(155, 15%, 90%);
  box-shadow: var(--avie-shadow-lg);
  display: flex;
  flex-direction: column;
  gap: 1rem;
  height: 100%;
}

/* Haut de carte : avatar + icône guillemet */
.avie-testimonials__card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.25rem;
}

.avie-testimonials__avatar-wrap {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid var(--avie-yellow);
  flex-shrink: 0;
}
.avie-testimonials__avatar-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.avie-testimonials__avatar-placeholder {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--avie-sage);
  border: 2px solid var(--avie-yellow);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--avie-green);
}

.avie-testimonials__quote-icon {
  color: var(--avie-yellow);
  opacity: 0.5;
}

.avie-testimonials__text {
  /* Blocksy stylise <blockquote> avec une bordure gauche 4px en couleur de palette : on la neutralise. */
  border-left: 0;
  border-inline-start: 0;
  padding-left: 0;
  padding-inline-start: 0;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--avie-text);
  font-style: italic;
  margin: 0;
  flex: 1;
}

.avie-testimonials__author-block {
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid var(--avie-border);
}

.avie-testimonials__author-name {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 0.875rem;
  color: var(--avie-text);
  margin: 0 0 0.125rem;
}

.avie-testimonials__author-role {
  font-size: 0.75rem;
  color: var(--avie-text-muted);
  margin: 0;
}

.avie-testimonials__footer {
  text-align: center;
  position: relative;
}

@media (max-width: 900px) {
  .avie-testimonials__grid {
    grid-template-columns: 1fr;
    max-width: 480px;
  }
  .avie-testimonials__grid > *:nth-child(1),
  .avie-testimonials__grid > *:nth-child(3) {
    transform: rotate(0deg);
  }
}

/* ------------------------------------------------------------
   12. MARQUEE — PARTENAIRES
   ------------------------------------------------------------ */

/* Le widget Elementor prend toute la largeur disponible */
.elementor-widget-avie-marquee {
  width: 100% !important;
  max-width: 100% !important;
}

.avie-marquee {
  width: 100%;
  padding: 2.5rem 0;
  background: hsl(40, 30%, 97%);
}

.avie-marquee__label {
  text-align: center;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--avie-text-muted);
  opacity: 0.6;
  margin: 0 0 1.5rem;
}

/* Logos : grille centrée */
.avie-marquee__track {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1rem 0;
  padding: 0.25rem 0;
}

.avie-marquee__item {
  flex-shrink: 0;
  padding: 0 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.avie-marquee__item a {
  display: flex;
  align-items: center;
  text-decoration: none;
}

.avie-marquee__logo {
  width: 158px;
  height: 58px !important;
  object-fit: contain;
  filter: grayscale(100%);
  opacity: 0.45;
  transition: filter 0.3s ease, opacity 0.3s ease;
  display: block;
}

.avie-marquee__item:hover .avie-marquee__logo {
  filter: grayscale(0%);
  opacity: 1;
}

/* Fallback texte quand pas d'image logo */
.avie-marquee__fallback {
  font-family: 'Outfit', sans-serif;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--avie-text-muted);
  white-space: nowrap;
  background: #fff;
  border: 1px solid var(--avie-border);
  border-radius: 0.75rem;
  padding: 0.5rem 1.25rem;
  opacity: 0.55;
  display: block;
}

/* ------------------------------------------------------------
   13. POURQUOI NOUS CHOISIR
   ------------------------------------------------------------ */

.avie-why {
  background: var(--avie-green-deep);
  padding: 5rem 0;
  position: relative;
  overflow: hidden;
}

/* Décoration subtile en arrière-plan */
.avie-why::before {
  content: '';
  position: absolute;
  bottom: -6rem;
  right: -6rem;
  width: 32rem;
  height: 32rem;
  border-radius: 50%;
  background: radial-gradient(circle, rgb(225 164 48 / 0.06) 0%, transparent 70%);
  pointer-events: none;
}

.avie-why__header {
  margin-bottom: 3rem;
}

.avie-why__eyebrow {
  display: block;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--avie-yellow);
  margin-bottom: 0.625rem;
}

.avie-why__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 2.5rem;
  color: #fff;
  line-height: 1.1;
  margin: 0;
}

.avie-why__title-accent {
  color: var(--avie-yellow);
}

.avie-why__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

.avie-why__card {
  background: var(--avie-off-white);
  border-radius: 1rem;
  padding: 1.75rem 1.5rem;
  text-align: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  cursor: default;
}

.avie-why__card:hover {
  transform: translateY(-4px) scale(1.03);
  box-shadow: var(--avie-shadow-xl);
}

.avie-why__icon-wrap {
  width: 56px;
  height: 56px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.25rem;
  flex-shrink: 0;
}

.avie-why__card-title {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 0.9375rem;
  color: var(--avie-text);
  margin: 0 0 0.625rem;
  line-height: 1.3;
}

.avie-why__card-desc {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.875rem;
  line-height: 1.65;
  color: var(--avie-text-muted);
  margin: 0;
}

@media (max-width: 900px) {
  .avie-why__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 560px) {
  .avie-why__grid {
    grid-template-columns: 1fr;
    max-width: 380px;
    margin: 0 auto;
  }
}

/* ------------------------------------------------------------
   14. COMMENT ÇA MARCHE — TIMELINE ZIGZAG
   ------------------------------------------------------------ */

.avie-how {
  background: #fff;
  padding: 5rem 0;
}

.avie-how__header {
  text-align: center;
  margin-bottom: 4rem;
}

.avie-how__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 2.5rem;
  color: var(--avie-text);
  line-height: 1.1;
  margin: 0 0 0.75rem;
}

.avie-how__subtitle {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--avie-yellow);
  margin: 0;
}

/* ── Timeline wrapper ── */
.avie-how__timeline {
  position: relative;
  max-width: 860px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 3rem;
}

/* Ligne en pointillés verticale au centre */
.avie-how__timeline::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 0; bottom: 0;
  width: 2px;
  background: repeating-linear-gradient(
    to bottom,
    var(--avie-border) 0,
    var(--avie-border) 8px,
    transparent 8px,
    transparent 16px
  );
  transform: translateX(-50%);
  pointer-events: none;
}

/* ── Chaque étape ── */
.avie-how__step {
  display: flex;
  align-items: center;
  gap: 2.5rem;
}

/* Texte (flex-1, aligné à droite par défaut = étapes paires) */
.avie-how__step-text {
  flex: 1;
  text-align: right;
}

/* Icône au centre */
.avie-how__step-icon-wrap {
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}

/* Espace vide de l'autre côté (flex-1) */
.avie-how__step-spacer {
  flex: 1;
}

/* Étapes impaires → tout inversé */
.avie-how__step--odd {
  flex-direction: row-reverse;
}
.avie-how__step--odd .avie-how__step-text {
  text-align: left;
}

/* ── Cercle icône ── */
.avie-how__icon-circle {
  position: relative;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--avie-green);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--avie-shadow-lg);
}

.avie-how__icon-svg {
  color: var(--avie-green);
}

/* Badge numéro */
.avie-how__step-num {
  position: absolute;
  top: -8px;
  right: -8px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--avie-yellow);
  color: var(--avie-green-dark);
  font-family: 'Outfit', sans-serif;
  font-size: 0.7rem;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

/* ── Texte de l'étape ── */
.avie-how__step-label {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 1.125rem;
  color: var(--avie-text);
  margin: 0 0 0.375rem;
}

.avie-how__step-detail {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.9rem;
  color: var(--avie-text-muted);
  line-height: 1.6;
  margin: 0;
}

/* ── CTA ── */
.avie-how__footer {
  text-align: center;
  margin-top: 3.5rem;
}

/* ── Responsive ── */
@media (max-width: 700px) {
  .avie-how__timeline::before { display: none; }

  .avie-how__step,
  .avie-how__step--odd {
    flex-direction: column;
    align-items: center;
    gap: 1rem;
  }

  .avie-how__step-text,
  .avie-how__step--odd .avie-how__step-text {
    text-align: center;
    order: 2;
  }

  .avie-how__step-icon-wrap {
    order: 1;
  }

  .avie-how__step-spacer {
    display: none;
  }
}

/* ------------------------------------------------------------
   15. ANIMATION UTILITAIRES (fade-in on scroll)
   ------------------------------------------------------------ */

/* Le masquage n'a lieu QUE si JavaScript est actif (classe « js » posée
   dans le <head>). Sans JS, le contenu reste visible : robots, lecteurs
   d'écran et navigateurs sans script voient la page complète. */
.avie-fade-in { transition: opacity 0.55s ease, transform 0.55s ease; }

.js .avie-fade-in {
  opacity: 0;
  transform: translateY(22px);
}
.js .avie-fade-in.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Déjà visible au chargement (premier écran) : on affiche sans transition,
   pour ne pas retarder la mesure du plus grand élément affiché (LCP). */
.js .avie-fade-in.is-instant {
  opacity: 1;
  transform: none;
  transition: none;
}
.avie-fade-in[data-delay="1"] { transition-delay: 0.10s; }
.avie-fade-in[data-delay="2"] { transition-delay: 0.20s; }
.avie-fade-in[data-delay="3"] { transition-delay: 0.30s; }
.avie-fade-in[data-delay="4"] { transition-delay: 0.40s; }

/* Désactiver dans Elementor éditeur pour éviter les surprises */
.elementor-editor-active .avie-fade-in {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

/* Variantes directionnelles (entrée horizontale) */
.avie-fade-in--left,
.avie-fade-in--right { transition: opacity 0.6s ease, transform 0.6s ease; }

.js .avie-fade-in--left  { opacity: 0; transform: translateX(-36px); }
.js .avie-fade-in--right { opacity: 0; transform: translateX(36px); }

.js .avie-fade-in--left.is-visible,
.js .avie-fade-in--right.is-visible {
  opacity: 1;
  transform: translateX(0);
}
.js .avie-fade-in--left.is-instant,
.js .avie-fade-in--right.is-instant {
  opacity: 1;
  transform: none;
  transition: none;
}
.elementor-editor-active .avie-fade-in--left,
.elementor-editor-active .avie-fade-in--right {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

/* ------------------------------------------------------------
   16. IMPACT EN CHIFFRES
   ------------------------------------------------------------ */

.avie-stats {
  background: var(--avie-green-deep);
  padding: 5rem 0;
  color: #fff;
}

/* Grille 2 colonnes */
.avie-stats__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: center;
}

/* ── Colonne gauche ── */
.avie-stats__left {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}

.avie-stats__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 2.5rem;
  line-height: 1.15;
  color: #fff;
  margin: 0;
}

.avie-stats__accent {
  color: var(--avie-yellow);
}

/* Grille 2×2 des compteurs */
.avie-stats__counters {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem 3rem;
}

.avie-stats__item {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

/* Le chiffre animé */
.avie-stats__counter {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: clamp(2.5rem, 5vw, 3.25rem);
  line-height: 1;
  color: var(--avie-yellow);
  display: block;
}

.avie-stats__item-label {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.70);
  margin: 0;
  line-height: 1.4;
}

/* ── Colonne droite : carte citation ── */
.avie-stats__quote-card {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.10);
  border-radius: 1.5rem;
  padding: 2.5rem;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.avie-stats__quote-text {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: clamp(1rem, 1.5vw, 1.125rem);
  line-height: 1.75;
  font-style: italic;
  color: rgba(255, 255, 255, 0.90);
  margin: 0;
  border-left: 4px solid rgba(255, 255, 255, 0.45);
  padding-left: 1.25rem;
}

.avie-stats__quote-author {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.avie-stats__quote-photo {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid var(--avie-yellow);
  flex-shrink: 0;
}
.avie-stats__quote-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Placeholder quand pas de photo */
.avie-stats__quote-photo--placeholder {
  background: rgba(255,255,255,0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,0.6);
}

.avie-stats__author-name {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 0.9375rem;
  color: #fff;
  margin: 0 0 0.2rem;
}

.avie-stats__author-role {
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.55);
  margin: 0;
}

/* ── Responsive ── */
@media (max-width: 900px) {
  .avie-stats__grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .avie-stats__counters {
    gap: 1.5rem 2rem;
  }
}

@media (max-width: 560px) {
  .avie-stats__counters {
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
  }
}

/* ------------------------------------------------------------
   17. PAGE HERO
   ------------------------------------------------------------ */

.avie-page-hero {
  background: var(--avie-green-deep);
  padding: 4rem 0;
  position: relative;
  overflow: hidden;
}

.avie-page-hero__blob {
  position: absolute;
  top: -8rem; right: -8rem;
  width: 28rem; height: 28rem;
  border-radius: 50%;
  background: radial-gradient(circle, hsl(17, 80%, 48%, 0.15) 0%, transparent 70%);
  pointer-events: none;
}

.avie-page-hero__inner {
  text-align: center;
  position: relative;
  z-index: 1;
}

.avie-page-hero__eyebrow {
  display: block;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--avie-yellow);
  margin-bottom: 1rem;
}

.avie-page-hero__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: clamp(2rem, 5vw, 3.25rem);
  line-height: 1.15;
  color: #fff;
  margin: 0 0 1.25rem;
}

.avie-page-hero__accent {
  color: var(--avie-yellow);
}

.avie-page-hero__subtitle {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1rem;
  color: rgba(255,255,255,0.75);
  line-height: 1.65;
  max-width: 44rem;
  margin: 0 auto 2rem;
}

.avie-page-hero__pills {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
}

.avie-page-hero__pill {
  display: inline-block;
  padding: 0.5rem 1.25rem;
  border-radius: 9999px;
  border: 1.5px solid rgba(255,255,255,0.3);
  color: #fff;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s;
}
.avie-page-hero__pill:hover { background: rgba(255,255,255,0.1); }

/* ---- Thème fond blanc ----
   Même logique que le hero d'accueil : textes sombres, accent jaune, eyebrow
   coral 12 px. Deux formes discrètes, à moitié coupées par les bords de la
   section, toujours hors de la colonne de texte : rond jaune qui entre par
   la gauche en bas, rectangle framboise vertical qui entre par la droite en haut. */
.avie-page-hero--light { background: #fff; }

.avie-page-hero--light .avie-page-hero__eyebrow {
  color: var(--avie-coral);
  letter-spacing: 0.15em;
}

.avie-page-hero--light .avie-page-hero__title { color: var(--avie-text); }

.avie-page-hero--light .avie-page-hero__subtitle { color: var(--avie-text-muted); }

.avie-page-hero--light .avie-page-hero__pill,
.avie-lieu-pres__pill {
  border-color: var(--avie-border);
  color: var(--avie-text);
  background: #fff;
  transition: border-color 0.2s, color 0.2s;
}
.avie-page-hero--light .avie-page-hero__pill:hover,
.avie-lieu-pres__pill:hover {
  background: #fff;
  border-color: var(--avie-coral);
  color: var(--avie-coral);
}

.avie-page-hero__shape {
  position: absolute;
  z-index: 0;
  pointer-events: none;
}

.avie-page-hero__shape--circle {
  left: -4rem;
  bottom: 2rem;
  width: 10rem;
  height: 10rem;
  border-radius: 50%;
  background: var(--avie-yellow);
}

.avie-page-hero__shape--square {
  right: -4.25rem;
  top: 2.5rem;
  width: 7rem;
  height: 8.75rem;
  border-radius: 1.5rem;
  background: var(--avie-berry);
}

@media (max-width: 767px) {
  .avie-page-hero__shape--circle { width: 5.5rem; height: 5.5rem; left: -3rem; bottom: 1rem; }
  .avie-page-hero__shape--square { width: 4rem; height: 5rem; right: -2.5rem; top: 1rem; border-radius: 1rem; }
}

/* ------------------------------------------------------------
   18. SERVICE INTRO (image + texte)
   ------------------------------------------------------------ */

/* Utilitaire soulignement ondulé */
.avie-wave-wrap {
  position: relative;
  display: inline-block;
  color: var(--avie-yellow);
}
.avie-wave-svg {
  /* Soulignement ondulé retiré des titres (demande du 10/09/2026).
     Le markup reste émis par les 12 widgets ; la couleur d'accent est portée
     par .avie-wave-wrap et n'est donc pas affectée. */
  display: none;
  position: absolute;
  bottom: -6px;
  left: 0;
  width: 100%;
  height: 10px;
  color: var(--avie-coral);
  overflow: visible;
}

/* ------------------------------------------------------------
   BOUTONS DU DESIGN SYSTEM
   Les seuls boutons du site :
   - fond clair  : .avie-btn--coral (primaire), .avie-btn--outline-coral (secondaire)
   - fond foncé  : .avie-btn--yellow (primaire), .avie-btn--outline-white (secondaire)
   - modificateurs : .avie-btn--sm (cartes), .avie-btn--block (formulaires)
   Toutes les variantes ont une bordure de 2px (transparente sur les
   pleins) : primaire et secondaire côte à côte ont la même hauteur.
   Les liens fléchés des cartes (« En savoir plus → ») ne sont pas des boutons.
   ------------------------------------------------------------ */
.avie-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 0.9375rem;
  line-height: 1.2;
  border: 2px solid transparent;
  border-radius: var(--avie-radius-btn);
  padding: 0.675rem 1.625rem;
  text-decoration: none !important;
  white-space: nowrap;
  cursor: pointer;
  transition: opacity 0.2s, background-color 0.2s, border-color 0.2s, transform 0.2s ease, box-shadow 0.2s ease;
}
.avie-btn svg { flex-shrink: 0; }
.avie-btn:disabled { opacity: 0.6; cursor: not-allowed; }

/* Au survol, le bouton se soulève légèrement. */
.avie-btn:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 8px 16px -6px hsl(160 30% 12% / 0.3);
}
@media (prefers-reduced-motion: reduce) {
  .avie-btn:hover:not(:disabled),
  .avie-service-card__btn:hover,
  a.avie-lieux-grid__card:hover .avie-lieux-grid__cta,
  .avie-why__card-cta:hover,
  .avie-support-ways__cta:hover,
  .avie-contact-info__map-link:hover,
  .avie-actu-card:hover .avie-actu-card__read { transform: none; }
}

.avie-btn--coral {
  background: var(--avie-coral);
  color: #fff !important;
}
.avie-btn--coral:hover:not(:disabled) { opacity: 0.88; }

.avie-btn--outline-coral {
  background: transparent;
  color: var(--avie-coral) !important;
  border-color: var(--avie-coral);
}
.avie-btn--outline-coral:hover { background: var(--avie-orange-pale); }

/* Texte blanc demandé par la direction artistique. Le contraste du blanc
   sur le jaune est de 2:1, sous le seuil WCAG AA. */
.avie-btn--yellow {
  background: var(--avie-yellow);
  color: #fff !important;
}
.avie-btn--yellow:hover { opacity: 0.88; }

.avie-btn--outline-white {
  background: transparent;
  color: #fff !important;
  border-color: rgba(255, 255, 255, 0.6);
}
.avie-btn--outline-white:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: #fff;
}

.avie-btn--sm {
  font-size: 0.8125rem;
  padding: 0.325rem 0.875rem;
  gap: 0.35rem;
}

.avie-btn--block { display: flex; width: 100%; white-space: normal; }

.avie-service-intro {
  background: #fff;
  padding: 5rem 0;
  display: flow-root;
}

.avie-service-intro__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: center;
}

/* Image à droite → inverser l'ordre */
.avie-service-intro--img-right .avie-service-intro__grid {
  direction: rtl;
}
.avie-service-intro--img-right .avie-service-intro__grid > * {
  direction: ltr;
}

.avie-service-intro .avie-service-intro__img > img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: var(--avie-radius);
  box-shadow: var(--avie-shadow-lg);
  display: block;
}

/* Composition organique (disposition image + texte), variante de « Une
   mission d'insertion » : feuille inversée (grands arrondis haut-droit /
   bas-gauche), rond framboise qui dépasse du coin haut-droit, rectangle jaune
   horizontal qui dépasse du coin bas-gauche. Formes sous la photo. */
.avie-service-intro__grid .avie-service-intro__img { position: relative; }

.avie-service-intro__grid .avie-service-intro__img > img {
  position: relative;
  z-index: 1;
  border-radius: 1.5rem 7rem 1.5rem 7rem;
}

.avie-service-intro__grid .avie-service-intro__img:has(img)::before,
.avie-service-intro__grid .avie-service-intro__img:has(img)::after,
.avie-service-intro__grid .avie-leaflet__media::before,
.avie-service-intro__grid .avie-leaflet__media::after {
  content: '';
  position: absolute;
  z-index: 0;
  transition: transform 0.4s ease;
}

.avie-service-intro__grid .avie-service-intro__img:has(img)::before,
.avie-service-intro__grid .avie-leaflet__media::before {
  top: -1.75rem;
  right: -1.75rem;
  width: 6.5rem;
  height: 6.5rem;
  border-radius: 50%;
  background: var(--avie-berry);
}

.avie-service-intro__grid .avie-service-intro__img:has(img)::after,
.avie-service-intro__grid .avie-leaflet__media::after {
  bottom: -1.5rem;
  left: -1.75rem;
  width: 40%;
  height: 5.5rem;
  border-radius: 1.5rem;
  background: var(--avie-yellow);
}

.avie-service-intro__grid .avie-service-intro__img:hover::before { transform: translate(0.3rem, -0.3rem) scale(1.05); }
.avie-service-intro__grid .avie-service-intro__img:hover::after  { transform: translate(-0.35rem, 0.35rem); }

/* Image à droite : miroir de la feuille et des formes. */
.avie-service-intro--img-right .avie-service-intro__grid .avie-service-intro__img > img {
  border-radius: 7rem 1.5rem 7rem 1.5rem;
}
.avie-service-intro--img-right .avie-service-intro__grid .avie-service-intro__img:has(img)::before {
  right: auto;
  left: -1.75rem;
}
.avie-service-intro--img-right .avie-service-intro__grid .avie-service-intro__img:has(img)::after {
  left: auto;
  right: -1.75rem;
}

/* Les formes débordent : coupe au bord de la section (pas de scroll mobile). */
.avie-service-intro { overflow-x: clip; }

/* Grille de 9 photos (vignettes 4:3 : la grille garde la hauteur de la
   grande photo) à la place de la grande photo. Mêmes formes derrière
   (rond framboise, rectangle jaune) ; la feuille est portée par les deux
   vignettes d'angle (haut droit et bas gauche, en miroir si image à droite). */
.avie-service-intro__mosaic {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.625rem;
}
.avie-service-intro__grid .avie-service-intro__img--mosaic .avie-service-intro__mosaic img {
  aspect-ratio: 4 / 3;
  width: 100%;
  object-fit: cover;
  border-radius: 0.875rem;
  box-shadow: var(--avie-shadow);
  transition: transform 0.3s ease;
}
.avie-service-intro__grid .avie-service-intro__img--mosaic .avie-service-intro__mosaic img:nth-child(3) { border-top-right-radius: 3rem; }
.avie-service-intro__grid .avie-service-intro__img--mosaic .avie-service-intro__mosaic img:nth-child(7) { border-bottom-left-radius: 3rem; }
.avie-service-intro--img-right .avie-service-intro__grid .avie-service-intro__img--mosaic .avie-service-intro__mosaic img:nth-child(3),
.avie-service-intro--img-right .avie-service-intro__grid .avie-service-intro__img--mosaic .avie-service-intro__mosaic img:nth-child(7) { border-radius: 0.875rem; }
.avie-service-intro--img-right .avie-service-intro__grid .avie-service-intro__img--mosaic .avie-service-intro__mosaic img:nth-child(1) { border-top-left-radius: 3rem; }
.avie-service-intro--img-right .avie-service-intro__grid .avie-service-intro__img--mosaic .avie-service-intro__mosaic img:nth-child(9) { border-bottom-right-radius: 3rem; }
.avie-service-intro__grid .avie-service-intro__img--mosaic .avie-service-intro__mosaic img:hover { transform: scale(1.04); }

@media (max-width: 560px) {
  .avie-service-intro__mosaic { gap: 0.375rem; }
  .avie-service-intro__grid .avie-service-intro__img--mosaic .avie-service-intro__mosaic img:nth-child(3),
  .avie-service-intro__grid .avie-service-intro__img--mosaic .avie-service-intro__mosaic img:nth-child(7) { border-radius: 0.5rem; }
  .avie-service-intro__grid .avie-service-intro__img--mosaic .avie-service-intro__mosaic img:nth-child(3) { border-top-right-radius: 2.5rem; }
  .avie-service-intro__grid .avie-service-intro__img--mosaic .avie-service-intro__mosaic img:nth-child(7) { border-bottom-left-radius: 2.5rem; }
}

.avie-service-intro__eyebrow {
  display: block;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--avie-coral);
  margin-bottom: 0.75rem;
}

/* Titre seul (cas normal) */
.avie-service-intro__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 2.5rem;
  color: var(--avie-text);
  line-height: 1.15;
  margin: 0 0 1.25rem;
}

/* Titre + boutons sur la même ligne (mode inline) */
.avie-service-intro__title-row {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 1rem 2rem;
  margin-bottom: 1.25rem;
}

.avie-service-intro__title-row .avie-service-intro__title {
  margin-bottom: 0;
  min-width: 0;
}

.avie-service-intro__title-row-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  white-space: nowrap;
}

.avie-service-intro__desc {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1rem;
  color: var(--avie-text-muted);
  line-height: 1.75;
  margin-bottom: 2rem;
}
.avie-service-intro__desc p { margin: 0 0 0.75rem; }
.avie-service-intro__desc p:last-child { margin-bottom: 0; }
/* Sous-parties rédigées dans l'éditeur (H3 + paragraphe). */
.avie-service-intro__desc h3 {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 1.0625rem;
  color: var(--avie-text);
  margin: 1.5rem 0 0.25rem;
}
.avie-service-intro__desc h3 + p { font-size: 0.9375rem; }

.avie-service-intro__btns {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

@media (max-width: 860px) {
  .avie-service-intro__grid,
  .avie-service-intro--img-right .avie-service-intro__grid {
    grid-template-columns: 1fr;
    direction: ltr;
    gap: 2.5rem;
  }

  .avie-service-intro__title-row {
    grid-template-columns: 1fr;
  }
}

/* ------------------------------------------------------------
   19. SERVICE CARDS GRID
   ------------------------------------------------------------ */

.avie-service-cards {
  background: #fff;
  padding: 3rem 0;
}

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

.avie-service-card {
  border-radius: 1.5rem;
  overflow: hidden;
  box-shadow: var(--avie-shadow);
  border: 1px solid hsl(0,0%,92%);
  background: #fff;
  transition: box-shadow 0.3s ease;
  display: flex;
  flex-direction: column;
}
.avie-service-card:hover {
  box-shadow: var(--avie-shadow-xl);
}

.avie-service-card__img {
  aspect-ratio: 4/3;
  overflow: hidden;
}
.avie-service-card__img img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}
.avie-service-card:hover .avie-service-card__img img {
  transform: scale(1.05);
}

/* Formes décoratives derrière les cartes, même vocabulaire que le hero et
   les photos d'équipe. Dès 2 cartes avec image, quel que soit leur nombre :
   carré framboise en bas à gauche de l'image de la 1re carte, cercle jaune en
   haut à droite de la dernière. Portées par le wrapper, car la carte
   (overflow: hidden) rognerait tout ce qui dépasse. */
.avie-service-card-wrap {
  position: relative;
  display: flex;
}

.avie-service-card-wrap > .avie-service-card {
  position: relative;
  z-index: 1;
  flex: 1;
}

.avie-service-card-wrap--img:first-child::before,
.avie-service-card-wrap--img:last-child:not(:first-child)::after {
  content: '';
  position: absolute;
  z-index: 0;
  transition: transform 0.3s ease;
}

/* Le margin-top en % se calcule sur la LARGEUR du wrapper : 75 % = bas de
   l'image 4:3, quelle que soit la largeur de la carte. */
.avie-service-card-wrap--img:first-child::before {
  top: 0;
  left: -2.25rem;
  margin-top: calc(75% - 3.5rem);
  width: 6.5rem;
  height: 6.5rem;
  border-radius: 1rem 1rem 1rem 2.25rem;
  background: var(--avie-berry);
}

.avie-service-card-wrap--img:last-child:not(:first-child)::after {
  top: -1.5rem;
  right: -1.5rem;
  width: 6.5rem;
  height: 6.5rem;
  border-radius: 50%;
  background: var(--avie-yellow);
}

.avie-service-card-wrap:hover::before { transform: rotate(-4deg) scale(1.06); }
.avie-service-card-wrap:hover::after  { transform: scale(1.08); }

/* Les formes débordent de la grille : on coupe au bord de la section pour
   ne jamais créer de scroll horizontal sur mobile. */
.avie-service-cards { overflow-x: clip; }

.avie-service-card__body {
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  flex: 1;
  border-top: 1px solid hsl(0,0%,92%);
}

.avie-service-card__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 1.0625rem;
  color: var(--avie-text);
  margin: 0;
}

.avie-service-card__bullets {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.avie-service-card__bullets li {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.875rem;
  color: hsl(160, 8%, 35%);
}
/* Alternative aux 3 points : bloc de texte descriptif.
   Mêmes police, taille et couleur que les puces, pour garder la carte homogène. */
.avie-service-card__desc {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.875rem;
  line-height: 1.7;
  color: hsl(160, 8%, 35%);
  margin: 0;
}

.avie-service-card__check {
  color: var(--avie-green);
  flex-shrink: 0;
  display: flex;
}

.avie-service-card__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  margin-top: auto;
  padding-top: 0.5rem;
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 0.875rem;
  color: var(--avie-coral) !important;
  text-decoration: none;
  transition: gap 0.2s, transform 0.2s ease;
}
.avie-service-card__btn:hover { gap: 0.625rem; transform: translateY(-1px); }

/* Variante compacte : image 16:9 et corps resserré. Le carré framboise
   suit le bas de l'image (56,25 % de la largeur en 16:9). */
.avie-service-cards__grid--compact { gap: 1.5rem; }
.avie-service-cards__grid--compact .avie-service-card__img { aspect-ratio: 16/9; }
.avie-service-cards__grid--compact .avie-service-card__body {
  padding: 1.125rem 1.25rem 1.25rem;
  gap: 0.5rem;
}
.avie-service-cards__grid--compact .avie-service-card__desc { line-height: 1.6; }
.avie-service-cards__grid--compact .avie-service-card__btn { padding-top: 0.25rem; }
.avie-service-cards__grid--compact .avie-service-card-wrap--img:first-child::before {
  margin-top: calc(56.25% - 3.5rem);
}

@media (max-width: 860px) {
  .avie-service-cards__grid--3 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .avie-service-cards__grid--3,
  .avie-service-cards__grid--2 { grid-template-columns: 1fr; }
}

/* ------------------------------------------------------------
   20. STATS STRIP (bandeau chiffres inline)
   ------------------------------------------------------------ */

.avie-stats-strip {
  background: hsl(17, 80%, 96%);
  padding: 3rem 0;
  border-radius: 1.5rem;
  margin: 0 1.5rem;
}

/* Option « Largeur du wrapper » : le bandeau s'aligne sur la largeur de contenu
   des autres sections (1400px) au lieu de filer sur toute la page.
   Le calc() conserve la gouttière de 1.5rem sous 1400px. */
.avie-stats-strip--wrapper {
  width: calc(100% - 3rem);
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
}

.avie-stats-strip__header {
  text-align: center;
  margin-bottom: 2.5rem;
}

.avie-stats-strip__eyebrow {
  display: block;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--avie-yellow);
  margin-bottom: 0.5rem;
}

.avie-stats-strip__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: clamp(1.5rem, 3vw, 2rem);
  color: var(--avie-text);
  margin: 0;
  line-height: 1.2;
}

/* Grid variants */
.avie-stats-strip__grid {
  display: grid;
  gap: 2.5rem 2rem;
  text-align: center;
  margin: 0 auto;
}

.avie-stats-strip--3 .avie-stats-strip__grid {
  grid-template-columns: repeat(3, 1fr);
  max-width: 760px;
}

.avie-stats-strip--4 .avie-stats-strip__grid {
  grid-template-columns: repeat(4, 1fr);
  max-width: 900px;
}

.avie-stats-strip--5 .avie-stats-strip__grid {
  grid-template-columns: repeat(5, 1fr);
  max-width: 1100px;
}

/* Icon */
.avie-stats-strip__icon {
  display: block;
  width: 1.25rem;
  height: 1.25rem;
  margin: 0 auto 0.75rem;
  color: var(--avie-yellow);
}

.avie-stats-strip__icon svg {
  width: 100%;
  height: 100%;
}

.avie-stats-strip__counter {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: clamp(2rem, 4vw, 2.75rem);
  color: var(--avie-coral);
  display: block;
  line-height: 1;
}

.avie-stats-strip__label {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--avie-text-muted);
  margin: 0.5rem 0 0;
  line-height: 1.4;
}

/* CTA */
.avie-stats-strip__cta {
  text-align: center;
  margin-top: 3rem;
}

@media (max-width: 768px) {
  .avie-stats-strip--4 .avie-stats-strip__grid,
  .avie-stats-strip--5 .avie-stats-strip__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 560px) {
  .avie-stats-strip__grid { grid-template-columns: repeat(2, 1fr) !important; }
  .avie-stats-strip { margin: 0; border-radius: 0; }
}

/* ---- Designs « Bandeau vert organique » et « Tuiles colorées » ----
   Le wrapper porte la largeur et les formes (qui passent derrière le
   bandeau) ; le bandeau lui-même n'a plus de marge. */
.avie-stats-strip-wrap {
  position: relative;
  isolation: isolate;
  margin: 0 1.5rem;
}
.avie-stats-strip-wrap--wrapper {
  width: calc(100% - 3rem);
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
}
.avie-stats-strip-wrap .avie-stats-strip {
  position: relative;
  z-index: 1;
  margin: 0;
}

/* A. Bandeau vert : chiffres jaunes (4.37:1, texte large), libellés blancs. */
.avie-stats-strip--band {
  background: var(--avie-green-deep);
  border-radius: 2rem;
  padding: 3.5rem 0;
}
.avie-stats-strip--band .avie-stats-strip__title { color: #fff; }
.avie-stats-strip--band .avie-stats-strip__counter {
  color: var(--avie-yellow);
  font-size: clamp(2.5rem, 4.5vw, 3.5rem);
}
.avie-stats-strip--band .avie-stats-strip__label { color: rgba(255, 255, 255, 0.85); }
.avie-stats-strip--band .avie-stats-strip__icon { color: var(--avie-yellow); }
.avie-stats-strip--band .avie-stats-strip__item { position: relative; }
.avie-stats-strip--band .avie-stats-strip__item + .avie-stats-strip__item::before {
  content: '';
  position: absolute;
  left: -1rem;
  top: 15%;
  bottom: 15%;
  width: 1px;
  background: rgba(255, 255, 255, 0.18);
}

.avie-stats-strip__shape {
  position: absolute;
  z-index: 0;
  pointer-events: none;
}
.avie-stats-strip__shape--square {
  top: -1.5rem;
  left: -1.5rem;
  width: 6.5rem;
  height: 6.5rem;
  border-radius: 1.5rem;
  background: var(--avie-berry);
}
.avie-stats-strip__shape--circle {
  right: -1.75rem;
  bottom: -1.75rem;
  width: 7rem;
  height: 7rem;
  border-radius: 50%;
  background: var(--avie-yellow);
}

/* B. Tuiles colorées : cycle vert profond / jaune / framboise, légère
   inclinaison alternée comme les témoignages. */
.avie-stats-strip--tiles {
  background: transparent;
  padding: 1.5rem 0;
  border-radius: 0;
}
.avie-stats-strip--tiles .avie-stats-strip__grid { gap: 1.25rem; max-width: 1200px; }
.avie-stats-strip--tiles .avie-stats-strip__item {
  border-radius: 1.5rem;
  padding: 2rem 1rem 1.75rem;
  box-shadow: var(--avie-shadow-lg);
  transition: transform 0.3s ease;
}
.avie-stats-strip--tiles .avie-stats-strip__item:nth-child(odd)  { transform: rotate(-1.5deg); }
.avie-stats-strip--tiles .avie-stats-strip__item:nth-child(even) { transform: rotate(1.5deg); }
.avie-stats-strip--tiles .avie-stats-strip__item:hover { transform: rotate(0) translateY(-4px); }
.avie-stats-strip--tiles .avie-stats-strip__counter { font-size: clamp(2.25rem, 4vw, 3rem); }

.avie-stats-strip--tiles .avie-stats-strip__item:nth-child(3n+1) { background: var(--avie-green-deep); }
.avie-stats-strip--tiles .avie-stats-strip__item:nth-child(3n+1) .avie-stats-strip__counter { color: var(--avie-yellow); }
.avie-stats-strip--tiles .avie-stats-strip__item:nth-child(3n+1) .avie-stats-strip__label { color: rgba(255, 255, 255, 0.88); }

.avie-stats-strip--tiles .avie-stats-strip__item:nth-child(3n+2) { background: var(--avie-yellow); }
.avie-stats-strip--tiles .avie-stats-strip__item:nth-child(3n+2) .avie-stats-strip__counter,
.avie-stats-strip--tiles .avie-stats-strip__item:nth-child(3n+2) .avie-stats-strip__label { color: var(--avie-text); }

.avie-stats-strip--tiles .avie-stats-strip__item:nth-child(3n+3) { background: var(--avie-berry); }
.avie-stats-strip--tiles .avie-stats-strip__item:nth-child(3n+3) .avie-stats-strip__counter { color: #fff; }
.avie-stats-strip--tiles .avie-stats-strip__item:nth-child(3n+3) .avie-stats-strip__label { color: rgba(255, 255, 255, 0.88); }

/* Les rotations annulent le transform de l'animation d'apparition :
   on garde le fondu seul. */
.avie-stats-strip--tiles .avie-stats-strip__item.avie-fade-in { transition: opacity 0.55s ease, transform 0.3s ease; }

@media (max-width: 560px) {
  .avie-stats-strip-wrap { margin: 0 1rem; }
  .avie-stats-strip--band { border-radius: 1.5rem; }
  .avie-stats-strip--band .avie-stats-strip__item + .avie-stats-strip__item::before { display: none; }
  .avie-stats-strip__shape--square { width: 4rem; height: 4rem; top: -1rem; left: -1rem; border-radius: 1rem; }
  .avie-stats-strip__shape--circle { width: 4.5rem; height: 4.5rem; right: -1rem; bottom: -1rem; }
}

/* ------------------------------------------------------------
   21. FORMULAIRE DE DEVIS
   ------------------------------------------------------------ */

.avie-devis {
  background: var(--avie-green-deep);
  padding: 5rem 0;
  position: relative;
  overflow: hidden;
}

.avie-devis__header {
  text-align: center;
  max-width: 560px;
  margin: 0 auto 3rem;
}

.avie-devis__eyebrow {
  display: block;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--avie-yellow);
  margin-bottom: 0.75rem;
}

.avie-devis__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 2.5rem;
  color: #fff;
  line-height: 1.1;
  margin: 0 0 0.75rem;
}

.avie-devis__accent { color: var(--avie-yellow); }

.avie-devis__subtitle {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1rem;
  color: rgba(255,255,255,0.7);
  line-height: 1.6;
  margin: 0;
}

/* Carte formulaire */
.avie-devis__card {
  background: #fff;
  border-radius: 1.5rem;
  padding: 2.5rem;
  max-width: 700px;
  margin: 0 auto;
  box-shadow: 0 20px 40px rgba(0,0,0,0.2);
}

.avie-devis__form { display: flex; flex-direction: column; gap: 1.5rem; }

.avie-devis__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}

.avie-devis__field {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.avie-devis__field label {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--avie-text);
}
.avie-devis__field label span { color: var(--avie-coral); }

.avie-devis__field input,
.avie-devis__field select,
.avie-devis__field textarea {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.9375rem;
  color: var(--avie-text);
  background: #fff;
  border: 1.5px solid var(--avie-border);
  border-radius: 0.75rem;
  padding: 0.75rem 1rem;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
  width: 100%;
  box-sizing: border-box;
}
.avie-devis__field input:focus,
.avie-devis__field select:focus,
.avie-devis__field textarea:focus {
  border-color: var(--avie-green);
  box-shadow: 0 0 0 3px hsl(155 32% 33% / 0.12);
}
.avie-devis__field textarea { resize: vertical; min-height: 130px; }

.avie-devis__msg {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.9rem;
  border-radius: 0.75rem;
  padding: 0.75rem 1rem;
  display: none;
}
.avie-devis__msg.is-success {
  display: block;
  background: hsl(155, 50%, 94%);
  color: var(--avie-green);
  border: 1px solid hsl(155, 30%, 80%);
}
.avie-devis__msg.is-error {
  display: block;
  background: hsl(17, 80%, 96%);
  color: hsl(17, 80%, 35%);
  border: 1px solid hsl(17, 60%, 80%);
}



.avie-devis__submit-loading { display: none; }
.avie-devis__submit.is-loading .avie-devis__submit-label  { display: none; }
.avie-devis__submit.is-loading .avie-devis__submit-loading { display: block; }

.avie-devis__legal {
  font-size: 0.75rem;
  color: hsl(0,0%,60%);
  text-align: center;
  margin: 0;
}

/* Le select héritait d'une hauteur fixe (thème) : avec le padding, le texte
   « Sélectionnez une prestation » était rogné en bas. */
.avie-devis__field select {
  height: auto;
  line-height: 1.4;
}

.avie-devis__card-wrap {
  position: relative;
  max-width: 700px;
  margin: 0 auto;
}
.avie-devis__card-wrap .avie-devis__card { position: relative; z-index: 1; }

/* ---- Thèmes clairs : fond blanc / vert pâle ----
   Textes sombres, eyebrow coral, accent jaune (comme les autres rubriques
   sur fond clair). La carte garde son fond blanc ; sur fond blanc elle
   prend un liseré pour rester détachée. Deux formes derrière la carte :
   rond jaune (coin haut-gauche), rectangle framboise (coin bas-droit). */
.avie-devis--light { background: #fff; }
.avie-devis--pale  { background: var(--avie-green-pale); }

.avie-devis--light .avie-devis__eyebrow { color: var(--avie-coral); letter-spacing: 0.15em; }
.avie-devis--light .avie-devis__title { color: var(--avie-text); }
.avie-devis--light .avie-devis__subtitle { color: var(--avie-text-muted); }
.avie-devis--light .avie-devis__card { box-shadow: var(--avie-shadow-xl); }
.avie-devis--light:not(.avie-devis--pale) .avie-devis__card { border: 1px solid var(--avie-border); }

.avie-devis__shape {
  position: absolute;
  z-index: 0;
  pointer-events: none;
}
.avie-devis__shape--circle {
  top: -2rem;
  left: -2.25rem;
  width: 7rem;
  height: 7rem;
  border-radius: 50%;
  background: var(--avie-yellow);
}
.avie-devis__shape--rect {
  right: -2rem;
  bottom: -1.75rem;
  width: 9rem;
  height: 5.5rem;
  border-radius: 1.5rem;
  background: var(--avie-berry);
}

@media (max-width: 600px) {
  .avie-devis__row { grid-template-columns: 1fr; }
  .avie-devis__card { padding: 1.75rem 1.25rem; }
  .avie-devis__shape--circle { width: 4.5rem; height: 4.5rem; top: -1.25rem; left: -1rem; }
  .avie-devis__shape--rect { width: 6rem; height: 3.5rem; right: -1rem; bottom: -1rem; border-radius: 1rem; }
}

/* ------------------------------------------------------------
   23. À PROPOS — BLOC IMAGE/VIDÉO
   ------------------------------------------------------------ */
.avie-about-media {
  padding-top: 3rem;
  padding-bottom: 3rem;
}

.avie-about-media__wrap {
  display: block;
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 1.5rem;
  overflow: hidden;
  cursor: pointer;
  box-shadow: var(--avie-shadow-xl);
  text-decoration: none;
}

.avie-about-media__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s ease;
}

.avie-about-media__wrap:hover .avie-about-media__img {
  transform: scale(1.04);
}

.avie-about-media__overlay {
  position: absolute;
  inset: 0;
  background: rgba(8, 79, 55, 0.30);
  transition: background 0.3s ease;
}

.avie-about-media__wrap:hover .avie-about-media__overlay {
  background: rgba(8, 79, 55, 0.15);
}

.avie-about-media__play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.avie-about-media__play svg {
  width: 2rem;
  height: 2rem;
  color: #fff;
}

.avie-about-media__play::before {
  content: '';
  position: absolute;
  width: 5rem;
  height: 5rem;
  background: var(--avie-coral);
  border-radius: 50%;
  box-shadow: 0 8px 24px hsl(17 80% 48% / 0.40);
  transition: transform 0.3s ease;
}

.avie-about-media__wrap:hover .avie-about-media__play::before {
  transform: scale(1.1);
}

.avie-about-media__play svg {
  position: relative;
  z-index: 1;
}

.avie-about-media__footer {
  position: absolute;
  bottom: 1.5rem;
  left: 1.5rem;
  right: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
  gap: 0.75rem;
  z-index: 2;
}

.avie-about-media__caption {
  color: #fff;
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 1.1rem;
  line-height: 1.3;
  text-shadow: 0 1px 4px rgba(0,0,0,0.3);
  margin: 0;
}

.avie-about-media__badge {
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(6px);
  color: var(--avie-text);
  font-size: 0.65rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  padding: 0.375rem 0.875rem;
  border-radius: 999px;
  white-space: nowrap;
}

@media (max-width: 640px) {
  .avie-about-media__caption { font-size: 0.9rem; }
  .avie-about-media__footer  { bottom: 1rem; left: 1rem; right: 1rem; }
}

/* ------------------------------------------------------------
   22. COMPATIBILITÉ ELEMENTOR
   ------------------------------------------------------------ */
.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.elementor-widget-text-editor li {
  font-family: 'Plus Jakarta Sans', sans-serif;
}
.elementor-widget-heading .elementor-heading-title {
  font-family: 'Outfit', sans-serif;
}

/* Éliminer le header Blocksy résiduel si présent */
.ct-header { display: none !important; }

/* ------------------------------------------------------------
   29. NOS LIEUX — Grille établissements
   ------------------------------------------------------------ */
.avie-lieux-grid { padding: 5rem 0; }

.avie-lieux-grid__header {
  text-align: center;
  margin-bottom: 3.5rem;
}

.avie-lieux-grid__eyebrow {
  display: block;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--avie-coral);
  margin-bottom: 0.5rem;
}

.avie-lieux-grid__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 2.5rem;
  color: var(--avie-text);
  margin: 0;
  line-height: 1.15;
}

.avie-lieux-grid__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}

.avie-lieux-grid__card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 1.25rem;
  overflow: hidden;
  border: 1px solid var(--avie-border);
  box-shadow: var(--avie-shadow);
  text-decoration: none;
  color: inherit;
  transition: box-shadow 0.3s ease, transform 0.3s ease;
  cursor: pointer;
}

a.avie-lieux-grid__card:hover {
  box-shadow: var(--avie-shadow-xl);
  transform: translateY(-4px);
}

.avie-lieux-grid__img-wrap {
  position: relative;
  height: 13rem;
  overflow: hidden;
}

.avie-lieux-grid__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s ease;
}

a.avie-lieux-grid__card:hover .avie-lieux-grid__img-wrap img {
  transform: scale(1.05);
}

.avie-lieux-grid__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.35), transparent);
}

.avie-lieux-grid__body {
  padding: 1.5rem 1.75rem;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 0.5rem;
}

.avie-lieux-grid__type {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--avie-coral);
}

.avie-lieux-grid__name {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 1.1rem;
  color: var(--avie-text);
  margin: 0;
  line-height: 1.3;
}

.avie-lieux-grid__desc {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.875rem;
  color: var(--avie-text-muted);
  line-height: 1.6;
  margin: 0;
  flex: 1;
}

.avie-lieux-grid__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--avie-green);
  margin-top: 0.75rem;
  border-top: 1px solid var(--avie-border);
  padding-top: 0.875rem;
  transition: gap 0.2s, transform 0.2s ease;
}

a.avie-lieux-grid__card:hover .avie-lieux-grid__cta { gap: 0.6rem; transform: translateY(-1px); }

@media (max-width: 600px) {
  .avie-lieux-grid__grid { grid-template-columns: 1fr; }
}

/* ------------------------------------------------------------
   30. LOCALISATION — Carte embed
   ------------------------------------------------------------ */
.avie-map { padding: 5rem 0; }

.avie-map__header {
  text-align: center;
  margin-bottom: 2.5rem;
}

.avie-map__eyebrow {
  display: block;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--avie-green);
  margin-bottom: 0.5rem;
}

.avie-map__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 2.5rem;
  color: var(--avie-text);
  margin: 0;
  line-height: 1.15;
}

.avie-map__frame {
  width: 100%;
  height: 400px;
  border-radius: 1.25rem;
  overflow: hidden;
  border: 2px solid rgba(0,0,0,0.1);
  box-shadow: var(--avie-shadow-lg);
}

.avie-map__frame iframe { display: block; }

.avie-map__placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  background: rgba(0,0,0,0.06);
  color: rgba(0,0,0,0.35);
}

.avie-map__placeholder span {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 1rem;
  color: rgba(0,0,0,0.5);
}

.avie-map__placeholder small {
  font-size: 0.75rem;
  color: rgba(0,0,0,0.35);
}

.avie-map__sub {
  text-align: center;
  margin-top: 1.25rem;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: rgba(0,0,0,0.45);
}

/* ------------------------------------------------------------
   24. À PROPOS — MISSION (accordéon)
   ------------------------------------------------------------ */
.avie-mission { padding: 5rem 0; }

.avie-mission__header { margin-bottom: 3rem; }

.avie-mission__eyebrow {
  display: block;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--avie-coral);
  margin-bottom: 0.5rem;
}

.avie-mission__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 2.5rem;
  color: var(--avie-text);
  line-height: 1.15;
  margin: 0;
}

.avie-mission__layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: start;
}

.avie-mission__img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: 1.5rem;
  box-shadow: var(--avie-shadow-xl);
}

/* Accordion */
.avie-mission__accordion { border-top: 1px solid var(--avie-border); }

.avie-mission__acc-item { border-bottom: 1px solid var(--avie-border); }

.avie-mission__acc-trigger {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  background: none;
  border: none;
  padding: 1.25rem 0;
  font-family: 'Outfit', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: var(--avie-text);
  cursor: pointer;
  text-align: left;
  gap: 1rem;
  transition: color 0.2s;
}

.avie-mission__acc-trigger:hover { color: var(--avie-green); }

.avie-mission__acc-chevron {
  flex-shrink: 0;
  transition: transform 0.3s ease;
  color: var(--avie-coral);
}

.avie-mission__acc-item.is-open .avie-mission__acc-chevron { transform: rotate(180deg); }

.avie-mission__acc-body {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.35s ease, padding 0.35s ease;
}

.avie-mission__acc-item.is-open .avie-mission__acc-body {
  max-height: 300px;
  padding-bottom: 1.25rem;
}

.avie-mission__acc-body p {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.9rem;
  color: var(--avie-text-muted);
  line-height: 1.7;
  margin: 0;
}

@media (max-width: 768px) {
  .avie-mission__layout { grid-template-columns: 1fr; }
  .avie-mission__right  { display: none; }
}

/* ------------------------------------------------------------
   25. À PROPOS — VISION (citation directrice)
   ------------------------------------------------------------ */
.avie-vision { padding: 5rem 0; }

.avie-vision__header {
  text-align: center;
  margin-bottom: 3rem;
}

.avie-vision__eyebrow {
  display: block;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--avie-coral);
  margin-bottom: 0.5rem;
}

.avie-vision__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 2.5rem;
  color: var(--avie-text);
  line-height: 1.15;
  margin: 0;
}

.avie-vision__card {
  background: hsl(160, 30%, 12%);
  border-radius: 2rem;
  padding: 3rem;
  display: flex;
  align-items: center;
  gap: 3rem;
  box-shadow: var(--avie-shadow-xl);
  max-width: 900px;
  margin: 0 auto;
}

.avie-vision__photo {
  flex-shrink: 0;
  width: 10rem;
  height: 14rem;
  border-radius: 1.25rem;
  overflow: hidden;
  border: 3px solid rgba(255,255,255,0.15);
  box-shadow: 0 8px 24px rgba(0,0,0,0.25);
}

.avie-vision__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.avie-vision__body { flex: 1; }

.avie-vision__quote {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: clamp(1rem, 1.5vw, 1.25rem);
  font-style: italic;
  font-weight: 500;
  color: rgba(255,255,255,0.9);
  line-height: 1.7;
  margin: 0 0 1.5rem;
}

.avie-vision__author-name {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 0.9rem;
  color: #fff;
  margin: 0 0 0.25rem;
}

.avie-vision__author-role {
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: rgba(255,255,255,0.55);
  margin: 0;
}

@media (max-width: 640px) {
  .avie-vision__card { flex-direction: column; gap: 2rem; padding: 2rem; text-align: center; }
  .avie-vision__photo { width: 8rem; height: 10rem; }
}

/* ------------------------------------------------------------
   26. POURQUOI CHOISIR — grille variable + liste-image + CTA carte
   ------------------------------------------------------------ */
.avie-why__grid--2 { grid-template-columns: repeat(2, 1fr) !important; max-width: 680px; margin: 0 auto; }
.avie-why__grid--3 { grid-template-columns: repeat(3, 1fr) !important; }

.avie-why__card-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--avie-coral);
  text-decoration: none;
  margin-top: auto;
  padding-top: 0.75rem;
  border-top: 1px solid var(--avie-border);
  width: 100%;
  transition: gap 0.2s, transform 0.2s ease;
}

.avie-why__card-cta:hover { gap: 0.625rem; transform: translateY(-1px); }

/* List + image layout (Valeurs) */
.avie-why__list-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

.avie-why__list { display: flex; flex-direction: column; gap: 2rem; }

.avie-why__list-item {
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;
}

.avie-why__list-icon {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: transform 0.25s ease;
}

.avie-why__list-item:hover .avie-why__list-icon { transform: scale(1.1); }

.avie-why__list-icon svg { width: 1.5rem; height: 1.5rem; }

.avie-why__list-title {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--avie-text);
  margin: 0 0 0.375rem;
}

.avie-why__list-desc {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.875rem;
  color: var(--avie-text-muted);
  line-height: 1.6;
  margin: 0;
}

.avie-why__list-img img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: 1.5rem;
  box-shadow: var(--avie-shadow-xl);
}

@media (max-width: 768px) {
  .avie-why__list-layout { grid-template-columns: 1fr; }
  .avie-why__list-img    { display: none; }
}

/* ------------------------------------------------------------
   27. INTRO — variante centré (Équipe) + description bordée (Histoire)
   ------------------------------------------------------------ */
.avie-service-intro--centered .avie-service-intro__center-header {
  text-align: center;
  max-width: 640px;
  margin: 0 auto 2.5rem;
}

.avie-service-intro--centered .avie-service-intro__center-desc {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1.05rem;
  font-style: italic;
  color: var(--avie-text-muted);
  line-height: 1.7;
  margin-top: 1rem;
}

.avie-service-intro .avie-service-intro__center-img img {
  width: 100%;
  height: 20rem;
  object-fit: cover;
  border-radius: var(--avie-radius);
  box-shadow: var(--avie-shadow-xl);
}

.avie-service-intro__btns--center {
  justify-content: center;
  margin-top: 2.5rem;
}

/* Variante pleine largeur (sans image) */
.avie-service-intro--full .avie-service-intro__text {
  max-width: 100%;
}

/* Bordered text (Notre histoire) */
.avie-service-intro__desc--bordered {
  border-left: 4px solid var(--avie-yellow);
  padding-left: 1.5rem;
}

/* ------------------------------------------------------------
   28. À PROPOS — PARTENAIRES (badges texte)
   ------------------------------------------------------------ */
.avie-partners { padding: 5rem 0; }

.avie-partners__header {
  text-align: center;
  margin-bottom: 3rem;
}

.avie-partners__eyebrow {
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--avie-coral);
  margin: 0 0 0.5rem;
}

.avie-partners__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 2.5rem;
  color: var(--avie-text);
  line-height: 1.15;
  margin: 0;
}

.avie-partners__grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
  max-width: 900px;
  margin: 0 auto;
}

.avie-partners__badge {
  display: inline-flex;
  align-items: center;
  padding: 0.625rem 1.25rem;
  background: #fff;
  border: 1px solid var(--avie-border);
  border-radius: 0.875rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--avie-text);
  text-decoration: none;
  box-shadow: var(--avie-shadow);
  transition: box-shadow 0.2s, transform 0.2s;
}

a.avie-partners__badge:hover {
  box-shadow: var(--avie-shadow-lg);
  transform: translateY(-2px);
}

/* ------------------------------------------------------------
   29b. MARQUEE — double rangée animée
   ------------------------------------------------------------ */
@keyframes avie-marquee-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

.avie-marquee--double {
  overflow: hidden;
}

.avie-marquee--double .avie-marquee__track {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start;
  width: max-content;
  animation: avie-marquee-scroll var(--marquee-speed, 30s) linear infinite;
  gap: 0;
}

.avie-marquee--double .avie-marquee__track--reverse {
  animation-direction: reverse;
  margin-top: 1.25rem;
}

.avie-marquee--double .avie-marquee__item {
  flex-shrink: 0;
  padding: 0 1.5rem;
}

/* ------------------------------------------------------------
   31. NOUS SOUTENIR — Formes de soutien
   ------------------------------------------------------------ */
.avie-support-ways { padding: 5rem 0; }

/* En-tête aligné à gauche : deux blocs centrés qui se suivent (titre de
   page puis section) se ressemblaient trop. */
.avie-support-ways__header {
  text-align: left;
  max-width: 44rem;
  margin: 0 0 2.5rem;
  padding-left: 1.25rem;
  border-left: 4px solid var(--avie-yellow);
}

.avie-support-ways__eyebrow {
  display: block;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--avie-coral);
  margin-bottom: 0.5rem;
}

.avie-support-ways__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: clamp(1.5rem, 3vw, 2rem);
  color: var(--avie-text);
  line-height: 1.15;
  margin: 0 0 1rem;
}

.avie-support-ways__desc {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1rem;
  color: var(--avie-text-muted);
  line-height: 1.7;
  margin: 0;
}

/* Primary cards (2-col) */
.avie-support-ways__primary {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}

/* Secondary cards (3-col) */
.avie-support-ways__secondary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

/* Shared card base */
.avie-support-ways__card {
  background: #fff;
  border: 1px solid var(--avie-border);
  border-radius: 1.25rem;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: var(--avie-shadow);
  transition: box-shadow 0.25s, transform 0.25s;
}

.avie-support-ways__card:hover {
  box-shadow: var(--avie-shadow-lg);
  transform: translateY(-3px);
}

.avie-support-ways__card-accent {
  height: 5px;
  background: var(--card-color, var(--avie-green));
  flex-shrink: 0;
}

.avie-support-ways__card-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--card-color, var(--avie-green));
  margin: 1.5rem 1.5rem 0;
  flex-shrink: 0;
}

.avie-support-ways__card-body {
  padding: 1.5rem 1.75rem 1rem;
  flex: 1;
}

.avie-support-ways__card--primary .avie-support-ways__card-body {
  padding-top: 1.75rem;
}

.avie-support-ways__card-title {
  font-family: 'Outfit', sans-serif;
  font-weight: 800;
  font-size: 1.25rem;
  color: var(--avie-text);
  margin: 0 0 0.75rem;
  line-height: 1.25;
}

.avie-support-ways__card--primary .avie-support-ways__card-title {
  font-size: 1.375rem;
}

.avie-support-ways__card-desc {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.9rem;
  color: var(--avie-text-muted);
  line-height: 1.65;
  margin: 0;
}

.avie-support-ways__card-footer {
  padding: 1rem 1.75rem 1.5rem;
  border-top: 1px solid var(--avie-border);
  margin-top: auto;
}

.avie-support-ways__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--card-color, var(--avie-green));
  text-decoration: none;
  cursor: pointer;
  transition: gap 0.2s, transform 0.2s ease;
}

.avie-support-ways__cta:hover { gap: 0.65rem; transform: translateY(-1px); }

@media (max-width: 900px) {
  .avie-support-ways__primary  { grid-template-columns: 1fr; }
  .avie-support-ways__secondary { grid-template-columns: 1fr; }
}

/* ------------------------------------------------------------
   32. NOUS SOUTENIR — Avant / Après
   ------------------------------------------------------------ */
.avie-before-after {
  padding: 5rem 0;
  background: var(--avie-green-deep);
}

.avie-before-after__header {
  text-align: center;
  max-width: 600px;
  margin: 0 auto 3rem;
}

.avie-before-after__eyebrow {
  display: block;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--avie-yellow);
  margin-bottom: 0.5rem;
}

.avie-before-after__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 2.5rem;
  color: #fff;
  line-height: 1.15;
  margin: 0 0 0.75rem;
}

.avie-before-after__subtitle {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.875rem;
  color: rgba(255,255,255,0.55);
  margin: 0;
}

.avie-before-after__cols {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 1.5rem;
  align-items: start;
  max-width: 900px;
  margin: 0 auto 3rem;
}

.avie-before-after__col {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 1.25rem;
  padding: 2rem 1.75rem;
}

.avie-before-after__col--after {
  background: rgba(255,255,255,0.1);
  border-color: rgba(255,255,255,0.2);
}

.avie-before-after__col-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}

.avie-before-after__col-icon {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.avie-before-after__col-icon--before {
  background: rgba(220,53,69,0.2);
  color: var(--avie-error);
}

.avie-before-after__col-icon--after {
  background: rgba(25,180,120,0.2);
  color: var(--avie-yellow);
}

.avie-before-after__col-title {
  font-family: 'Outfit', sans-serif;
  font-weight: 800;
  font-size: 1rem;
  color: #fff;
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.avie-before-after__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}

.avie-before-after__item {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.925rem;
  line-height: 1.5;
  color: rgba(255,255,255,0.75);
}

.avie-before-after__item-icon {
  flex-shrink: 0;
  margin-top: 2px;
}

.avie-before-after__item--before .avie-before-after__item-icon { color: var(--avie-error); }
.avie-before-after__item--after  .avie-before-after__item-icon { color: var(--avie-yellow); }

/* La flèche se centre verticalement entre les deux cartes (le décalage
   fixe la laissait à hauteur de la première ligne). */
.avie-before-after__divider {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
}

.avie-before-after__vs {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 1.5rem;
  color: var(--avie-yellow);
  opacity: 0.7;
}

.avie-before-after__cta-wrap {
  text-align: center;
}

@media (max-width: 768px) {
  .avie-before-after__cols {
    grid-template-columns: 1fr;
  }
  .avie-before-after__divider { align-self: center; }
  .avie-before-after__vs { transform: rotate(90deg); }
}

/* ------------------------------------------------------------
   33. CONTACT — Coordonnées établissements
   ------------------------------------------------------------ */
.avie-contact-info { padding: 5rem 0; }

.avie-contact-info__header {
  text-align: center;
  max-width: 600px;
  margin: 0 auto 3.5rem;
}

.avie-contact-info__eyebrow {
  display: block;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--avie-coral);
  margin-bottom: 0.5rem;
}

.avie-contact-info__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 2.5rem;
  color: var(--avie-text);
  line-height: 1.15;
  margin: 0 0 1rem;
}

.avie-contact-info__intro {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1rem;
  color: var(--avie-text-muted);
  line-height: 1.7;
  margin: 0;
}

/* Grid */
.avie-contact-info__grid {
  display: grid;
  gap: 1.5rem;
}

.avie-contact-info__grid--2 { grid-template-columns: repeat(2, 1fr); }
.avie-contact-info__grid--3 { grid-template-columns: repeat(3, 1fr); }
.avie-contact-info__grid--4 { grid-template-columns: repeat(4, 1fr); }

/* Card */
.avie-contact-info__card {
  background: #fff;
  border: 1px solid var(--avie-border);
  border-radius: 1.25rem;
  overflow: hidden;
  box-shadow: var(--avie-shadow);
  transition: box-shadow 0.25s, transform 0.25s;
  display: flex;
  flex-direction: column;
}

.avie-contact-info__card:hover {
  box-shadow: var(--avie-shadow-lg);
  transform: translateY(-3px);
}

.avie-contact-info__card-top {
  height: 5px;
  background: var(--accent, var(--avie-green));
  flex-shrink: 0;
}

.avie-contact-info__card-body {
  padding: 1.75rem;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.avie-contact-info__badge {
  display: inline-block;
  font-size: 0.65rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--accent, var(--avie-green));
  background: color-mix(in srgb, var(--accent, var(--avie-green)) 10%, transparent);
  border-radius: 0.5rem;
  padding: 0.3rem 0.75rem;
  margin-bottom: 0.75rem;
  align-self: flex-start;
}

.avie-contact-info__name {
  font-family: 'Outfit', sans-serif;
  font-weight: 800;
  font-size: 1.1rem;
  color: var(--avie-text);
  margin: 0 0 1.25rem;
  line-height: 1.25;
}

.avie-contact-info__list {
  list-style: none;
  margin: 0 0 auto;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.avie-contact-info__row {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.875rem;
  color: var(--avie-text-muted);
  line-height: 1.55;
}

.avie-contact-info__row a {
  color: var(--avie-text-muted);
  text-decoration: none;
  transition: color 0.2s;
}

.avie-contact-info__row a:hover { color: var(--accent, var(--avie-green)); }

.avie-contact-info__icon {
  flex-shrink: 0;
  margin-top: 2px;
  color: var(--accent, var(--avie-green));
  opacity: 0.8;
}

.avie-contact-info__map-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 1.25rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--accent, var(--avie-green));
  text-decoration: none;
  padding-top: 1.25rem;
  border-top: 1px solid var(--avie-border);
  transition: gap 0.2s, transform 0.2s ease;
}

.avie-contact-info__map-link:hover { gap: 0.65rem; transform: translateY(-1px); }

@media (max-width: 1024px) {
  .avie-contact-info__grid--4 { grid-template-columns: repeat(2, 1fr); }
  .avie-contact-info__grid--3 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
  .avie-contact-info__grid--2,
  .avie-contact-info__grid--3,
  .avie-contact-info__grid--4 { grid-template-columns: 1fr; }
}

/* ------------------------------------------------------------
   34. PRESTATIONS — Liste alternée image/texte
   ------------------------------------------------------------ */
.avie-prestations-list__header {
  padding: 5rem 0 3rem;
  background: inherit;
}

.avie-prestations-list__header-inner {
  text-align: center;
  max-width: 600px;
  margin: 0 auto;
}

.avie-prestations-list__eyebrow {
  display: block;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--avie-coral);
  margin-bottom: 0.5rem;
}

.avie-prestations-list__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 2.5rem;
  color: var(--avie-text);
  line-height: 1.15;
  margin: 0 0 1rem;
}

.avie-prestations-list__desc {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1rem;
  color: var(--avie-text-muted);
  line-height: 1.7;
  margin: 0;
}

/* Each item row */
.avie-prestations-list__item {
  padding: 5rem 0;
}

.avie-prestations-list__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: center;
}

/* Reverse: text first, image second */
.avie-prestations-list__item--reverse .avie-prestations-list__img {
  order: 2;
}

.avie-prestations-list__item--reverse .avie-prestations-list__content {
  order: 1;
}

/* Image */
.avie-prestations-list__img img {
  width: 100%;
  height: 26rem;
  object-fit: cover;
  border-radius: 1.5rem;
  box-shadow: var(--avie-shadow-xl);
}

.avie-prestations-list__img-placeholder {
  width: 100%;
  height: 26rem;
  border-radius: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 1rem;
}

/* Content */
.avie-prestations-list__badge {
  display: inline-block;
  font-size: 0.65rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  border-radius: 0.5rem;
  padding: 0.3rem 0.75rem;
  margin-bottom: 1rem;
}

.avie-prestations-list__name {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  color: var(--avie-text);
  margin: 0 0 1.25rem;
  line-height: 1.15;
  border-left: 4px solid var(--accent, var(--avie-green));
  padding-left: 1rem;
}

.avie-prestations-list__text {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.975rem;
  color: var(--avie-text-muted);
  line-height: 1.7;
  margin-bottom: 1.5rem;
}

.avie-prestations-list__text p { margin: 0; }

.avie-prestations-list__features {
  list-style: none;
  margin: 0 0 2rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.avie-prestations-list__features li {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.9rem;
  color: var(--avie-text);
  line-height: 1.5;
}

.avie-prestations-list__features li span {
  flex-shrink: 0;
  margin-top: 2px;
  color: var(--check-color, var(--avie-green));
}

@media (max-width: 900px) {
  .avie-prestations-list__grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  .avie-prestations-list__item--reverse .avie-prestations-list__img,
  .avie-prestations-list__item--reverse .avie-prestations-list__content {
    order: unset;
  }
  .avie-prestations-list__img img,
  .avie-prestations-list__img-placeholder { height: 18rem; }
}

/* ------------------------------------------------------------
   35. LIEU — Hero établissement
   ------------------------------------------------------------ */
.avie-lieu-hero {
  position: relative;
  min-height: 75vh;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: flex-end;
}

.avie-lieu-hero__overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.avie-lieu-hero__inner {
  position: relative;
  z-index: 1;
  padding-bottom: 5rem;
  padding-top: 8rem;
}

.avie-lieu-hero__content {
  max-width: 680px;
}

.avie-lieu-hero__badge {
  display: inline-block;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: #fff;
  border-radius: 0.625rem;
  padding: 0.35rem 0.875rem;
  margin-bottom: 1.25rem;
}

.avie-lieu-hero__name {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: clamp(2.25rem, 5vw, 4rem);
  color: #fff;
  line-height: 1.1;
  margin: 0 0 0.875rem;
  text-shadow: 0 2px 20px rgba(0,0,0,0.3);
}

.avie-lieu-hero__tagline {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1.05rem;
  color: rgba(255,255,255,0.75);
  margin: 0 0 2rem;
  line-height: 1.6;
}

.avie-lieu-hero__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
  margin-bottom: 2.25rem;
}

.avie-lieu-hero__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.8rem;
  font-weight: 600;
  color: rgba(255,255,255,0.85);
  background: rgba(255,255,255,0.12);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: 2rem;
  padding: 0.4rem 0.9rem;
  white-space: nowrap;
}

a.avie-lieu-hero__chip--link {
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
}

a.avie-lieu-hero__chip--link:hover {
  background: rgba(255,255,255,0.22);
  color: #fff;
}

.avie-lieu-hero__btns {
  display: flex;
  flex-wrap: wrap;
  gap: 0.875rem;
}

@media (max-width: 600px) {
  .avie-lieu-hero__chips { gap: 0.4rem; }
  .avie-lieu-hero__chip  { font-size: 0.75rem; }
}

/* ------------------------------------------------------------
   36. ACTUALITÉS — Grille articles
   ------------------------------------------------------------ */
.avie-actualites { padding: 5rem 0; }

.avie-actualites__header {
  text-align: center;
  margin-bottom: 3rem;
}

.avie-actualites__eyebrow {
  display: block;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--avie-coral);
  margin-bottom: 0.5rem;
}

.avie-actualites__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 2.5rem;
  color: var(--avie-text);
  line-height: 1.15;
  margin: 0;
}

.avie-actualites__grid {
  display: grid;
  gap: 1.75rem;
  margin-bottom: 3rem;
}

.avie-actualites__grid--2 { grid-template-columns: repeat(2, 1fr); }
.avie-actualites__grid--3 { grid-template-columns: repeat(3, 1fr); }

/* Formes décoratives derrière les cartes extérieures, portées par la grille
   (les cartes sont en overflow: hidden) : rond coral qui dépasse du coin
   bas-gauche de la carte de gauche, rectangle jaune vertical qui dépasse du
   coin haut-droit de la carte de droite. */
.avie-actualites__grid { position: relative; }
.avie-actu-card { position: relative; z-index: 1; }

.avie-actualites__grid::before,
.avie-actualites__grid::after {
  content: '';
  position: absolute;
  z-index: 0;
}

.avie-actualites__grid::before {
  left: -2rem;
  bottom: -2rem;
  width: 6.5rem;
  height: 6.5rem;
  border-radius: 50%;
  background: var(--avie-coral);
}

.avie-actualites__grid::after {
  right: -1.75rem;
  top: -1.75rem;
  width: 5rem;
  height: 8rem;
  border-radius: 1.25rem;
  background: var(--avie-yellow);
}

/* Les formes débordent : coupe au bord de la section (pas de scroll mobile). */
.avie-actualites { overflow-x: clip; }

.avie-actu-card {
  background: #fff;
  border: 1px solid var(--avie-border);
  border-radius: 1.25rem;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  box-shadow: var(--avie-shadow);
  transition: box-shadow 0.25s, transform 0.25s;
}

.avie-actu-card:hover {
  box-shadow: var(--avie-shadow-lg);
  transform: translateY(-4px);
}

.avie-actu-card__img {
  width: 100%;
  aspect-ratio: 16/9;
  overflow: hidden;
  background: var(--avie-border);
}

.avie-actu-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.avie-actu-card:hover .avie-actu-card__img img { transform: scale(1.04); }

.avie-actu-card__img-placeholder {
  width: 100%;
  height: 100%;
}

.avie-actu-card__body {
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.avie-actu-card__meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.875rem;
}

.avie-actu-card__cat {
  font-size: 0.65rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  border-radius: 0.5rem;
  padding: 0.25rem 0.6rem;
}

.avie-actu-card__date {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  color: var(--avie-text-muted);
}

.avie-actu-card__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 800;
  font-size: 1.05rem;
  color: var(--avie-text);
  margin: 0 0 0.75rem;
  line-height: 1.3;
}

.avie-actu-card__excerpt {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.875rem;
  color: var(--avie-text-muted);
  line-height: 1.65;
  margin: 0 0 auto;
}

.avie-actu-card__read {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 1.25rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--avie-green);
  transition: gap 0.2s, transform 0.2s ease;
}

.avie-actu-card:hover .avie-actu-card__read { gap: 0.65rem; transform: translateY(-1px); }

.avie-actualites__cta { text-align: center; }

@media (max-width: 900px) {
  .avie-actualites__grid--3 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
  .avie-actualites__grid--2,
  .avie-actualites__grid--3 { grid-template-columns: 1fr; }
}

/* ------------------------------------------------------------
   37. ÉQUIPE — Grille membres
   ------------------------------------------------------------ */
.avie-equipe { padding: 5rem 0; }

.avie-equipe__header {
  text-align: center;
  margin: 0 auto 3.5rem;
}

.avie-equipe__eyebrow {
  display: block;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--avie-coral);
  margin-bottom: 0.5rem;
}

.avie-equipe__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 2.5rem;
  color: var(--avie-text);
  line-height: 1.15;
  margin: 0 0 1rem;
}

.avie-equipe__desc {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1rem;
  color: var(--avie-text-muted);
  line-height: 1.7;
  /* Le titre occupe toute la largeur ; seul le descriptif reste borné
     à une longueur de ligne lisible. */
  max-width: 600px;
  margin: 0 auto;
}

.avie-equipe__grid {
  display: grid;
  gap: 2rem;
}

.avie-equipe__grid--3 { grid-template-columns: repeat(3, 1fr); }
.avie-equipe__grid--4 { grid-template-columns: repeat(4, 1fr); }

.avie-equipe__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

/* Composition organique, inspirée du hero AVIE : la photo prend des angles
   très asymétriques (un coin largement arrondi, l'opposé net) ; les coins
   dégagés accueillent un cercle jaune et un aplat à la couleur du membre.
   Quatre variantes alternent (nth-child 4n) : le cycle est volontairement
   désaligné de la grille 3 colonnes, pour qu'aucune colonne ne répète la
   même forme d'une rangée à l'autre. */
.avie-equipe__photo-wrap {
  position: relative;
  margin: 0 auto 1.25rem;
  width: 100%;
  max-width: 340px;
  padding: 26px;
  box-sizing: border-box;
}

/* ::before = cercle jaune ; ::after = aplat à la couleur du membre */
.avie-equipe__photo-wrap::before,
.avie-equipe__photo-wrap::after {
  content: '';
  position: absolute;
  z-index: 0;
  transition: transform 0.3s ease;
}

.avie-equipe__photo-wrap::before {
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 50%;
  background: var(--avie-yellow);
}

.avie-equipe__photo-wrap::after {
  width: 46%;
  height: 46%;
  background: var(--accent, var(--avie-green));
}

/* ---- Variante 1 : coins arrondis en haut-gauche / bas-droite ---- */
.avie-equipe__card:nth-child(4n+1) .avie-equipe__photo {
  border-radius: 3.75rem 0.75rem 3.75rem 0.75rem;
}
.avie-equipe__card:nth-child(4n+1) .avie-equipe__photo-wrap::before {
  top: 0; left: 0;
}
.avie-equipe__card:nth-child(4n+1) .avie-equipe__photo-wrap::after {
  right: 0; bottom: 0;
  border-radius: 1rem 1rem 2.75rem 1rem;
}

/* ---- Variante 2 : miroir, arrondis en haut-droite / bas-gauche ---- */
.avie-equipe__card:nth-child(4n+2) .avie-equipe__photo {
  border-radius: 0.75rem 3.75rem 0.75rem 3.75rem;
}
/* Pas de cercle sur cette variante : l'aplat seul suffit, et ça évite
   que la même figure se répète sur les quatre compositions. */
.avie-equipe__card:nth-child(4n+2) .avie-equipe__photo-wrap::before {
  display: none;
}
.avie-equipe__card:nth-child(4n+2) .avie-equipe__photo-wrap::after {
  left: 0; bottom: 0;
  border-radius: 1rem 1rem 1rem 2.75rem;
}

/* ---- Variante 3 : trois coins ronds, aplat en haut-droite ---- */
.avie-equipe__card:nth-child(4n+3) .avie-equipe__photo {
  border-radius: 3.75rem 0.75rem 3.75rem 3.75rem;
}
.avie-equipe__card:nth-child(4n+3) .avie-equipe__photo-wrap::before {
  bottom: 0; left: 0;
}
.avie-equipe__card:nth-child(4n+3) .avie-equipe__photo-wrap::after {
  right: 0; top: 0;
  border-radius: 1rem 2.75rem 1rem 1rem;
}

/* ---- Variante 4 : arrondis bas-gauche, cercle en bas-droite ---- */
.avie-equipe__card:nth-child(4n+4) .avie-equipe__photo {
  border-radius: 0.75rem 3.75rem 3.75rem 3.75rem;
}
.avie-equipe__card:nth-child(4n+4) .avie-equipe__photo-wrap::before {
  bottom: 0; right: 0;
}
.avie-equipe__card:nth-child(4n+4) .avie-equipe__photo-wrap::after {
  left: 0; top: 0;
  border-radius: 2.75rem 1rem 1rem 1rem;
}

.avie-equipe .avie-equipe__photo {
  position: relative;
  z-index: 1;
  width: 100%;
  aspect-ratio: 1;                 /* carré, au lieu du 4/5 portrait */
  object-fit: cover;
  /* Le border-radius est porté par les variantes nth-child ci-dessus.
     Liseré blanc épais : il sépare la photo des deux formes colorées
     posées derrière elle (le hero, lui, n'en a plus depuis le 27/09/2026).
     box-sizing local : pas de border-box global sur le projet. */
  box-sizing: border-box;
  border: 9px solid #fff;
  display: block;
  filter: drop-shadow(0 6px 14px hsl(155 28% 40% / 0.13));
  transition: transform 0.25s ease;
}

.avie-equipe__card:hover .avie-equipe__photo-wrap::before { transform: scale(1.12); }
.avie-equipe__card:hover .avie-equipe__photo-wrap::after  { transform: scale(1.06); }

.avie-equipe .avie-equipe__photo--circle {
  width: 9rem;
  height: 9rem;
  aspect-ratio: 1;
  border-radius: 50%;
  margin: 0 auto;
  border: none;
  outline: 4px solid var(--accent, var(--avie-green));
  outline-offset: 3px;
}

.avie-equipe .avie-equipe__photo--placeholder {
  position: relative;
  z-index: 1;
  width: 100%;
  aspect-ratio: 1;
  border: 9px solid #fff;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
}

.avie-equipe .avie-equipe__photo--circle.avie-equipe__photo--placeholder {
  width: 9rem;
  height: 9rem;
  aspect-ratio: 1;
  border-radius: 50%;
  margin: 0 auto;
}

.avie-equipe__info { width: 100%; }

.avie-equipe__name {
  font-family: 'Outfit', sans-serif;
  font-weight: 800;
  font-size: 1.05rem;
  color: var(--avie-text);
  margin: 0 0 0.25rem;
}

.avie-equipe__role {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--accent, var(--avie-green));
  text-transform: uppercase;
  letter-spacing: 0.08em;
  display: block;
  margin-bottom: 0.625rem;
}

.avie-equipe__bio {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.875rem;
  color: var(--avie-text-muted);
  line-height: 1.6;
  margin: 0 0 0.75rem;
}

.avie-equipe__linkedin {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: color-mix(in srgb, var(--accent, var(--avie-green)) 12%, transparent);
  color: var(--accent, var(--avie-green));
  text-decoration: none;
  transition: background 0.2s;
}

.avie-equipe__linkedin:hover {
  background: var(--accent, var(--avie-green));
  color: #fff;
}

@media (max-width: 900px) {
  .avie-equipe__grid--4 { grid-template-columns: repeat(2, 1fr); }
  .avie-equipe__grid--3 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 500px) {
  .avie-equipe__grid--3,
  .avie-equipe__grid--4 { grid-template-columns: 1fr; }
}

/* ============================================================
   WIDGET — Accueil "Agir ensemble" (.avie-home-soutenir)
   ============================================================ */
.avie-home-soutenir {
  background: var(--avie-berry);
  color: #fff;
}

.avie-home-soutenir__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3.5rem;
  align-items: start;
}

/* ── Colonne gauche ── */
.avie-home-soutenir__left {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}

.avie-home-soutenir__eyebrow {
  display: block;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.3em;
  color: var(--avie-yellow);
  margin-bottom: 0.75rem;
}

.avie-home-soutenir__title {
  font-family: 'Outfit', sans-serif;
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.2;
  color: #fff;
  margin: 0 0 1.5rem;
}

.avie-home-soutenir__accent {
  color: var(--avie-yellow);
}

.avie-home-soutenir__btns {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 0.25rem;
}

/* ── Projets ── */
.avie-home-soutenir__projets-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.avie-home-soutenir__projets-label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(255, 255, 255, 0.9);
}

.avie-home-soutenir__projets-box {
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: var(--avie-radius);
  overflow: hidden;
}

.avie-home-soutenir__projets-list {
  max-height: 360px;
  overflow-y: auto;
  padding: 1rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,0.25) transparent;
}

.avie-home-soutenir__projet {
  padding: 0.75rem;
  background: rgba(255, 255, 255, 0.06);
  border-radius: 0.75rem;
  transition: background 0.2s;
}

.avie-home-soutenir__projet:hover {
  background: rgba(255, 255, 255, 0.11);
}

.avie-home-soutenir__projet-top {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 0.4rem;
}

.avie-home-soutenir__projet-label {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.825rem;
  font-weight: 600;
  color: #fff;
  margin: 0;
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding-right: 0.5rem;
}

.avie-home-soutenir__projet-pct {
  font-family: 'Outfit', sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--avie-yellow);
  flex-shrink: 0;
}

.avie-home-soutenir__bar-track {
  height: 5px;
  background: rgba(255, 255, 255, 0.18);
  border-radius: 9999px;
  overflow: hidden;
  margin-bottom: 0.35rem;
}

.avie-home-soutenir__bar-fill {
  height: 100%;
  width: 0;
  background: var(--avie-yellow);
  border-radius: 9999px;
  transition: width 1s cubic-bezier(0.4, 0, 0.2, 1);
}

.avie-home-soutenir__projet--animate.is-animated .avie-home-soutenir__bar-fill {
  width: var(--target-pct, 0%);
}

.avie-home-soutenir__projet-amounts {
  display: flex;
  justify-content: space-between;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.7rem;
  color: rgba(255, 255, 255, 0.55);
  margin: 0;
}

.avie-home-soutenir__projets-cta {
  padding: 0.75rem 0 0.25rem;
  text-align: center;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  margin-top: 0.25rem;
}

.avie-home-soutenir__projets-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--avie-yellow);
  text-decoration: none;
  transition: gap 0.2s;
}

.avie-home-soutenir__projets-link:hover {
  gap: 0.65rem;
}

/* ── Colonne droite — HelloAsso ── */
.avie-home-soutenir__right {
  position: sticky;
  top: 1.5rem;
}

.avie-home-soutenir__ha-box {
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: var(--avie-radius);
  padding: 1.75rem;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.avie-home-soutenir__ha-title {
  font-family: 'Outfit', sans-serif;
  font-size: 1.35rem;
  font-weight: 700;
  color: #fff;
  margin: 0 0 0.3rem;
}

.avie-home-soutenir__ha-sub {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.8);
  margin: 0 0 1.25rem;
}

.avie-home-soutenir__iframe {
  display: block;
  border: none;
  border-radius: 0.5rem;
  width: 100%;
}

.avie-home-soutenir__ha-placeholder {
  flex: 1;
  min-height: 200px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: rgba(255, 255, 255, 0.08);
  border: 2px dashed rgba(255, 255, 255, 0.4);
  border-radius: 0.75rem;
  color: rgba(255, 255, 255, 0.6);
}

.avie-home-soutenir__ha-placeholder span {
  font-family: 'Outfit', sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.avie-home-soutenir__ha-placeholder p {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  margin: 0;
  color: rgba(255, 255, 255, 0.5);
}

/* ── Responsive ── */
@media (max-width: 1024px) {
  .avie-home-soutenir__inner {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .avie-home-soutenir__right {
    position: static;
  }

  .avie-home-soutenir__projets-list {
    max-height: 280px;
  }
}

@media (max-width: 600px) {
  .avie-home-soutenir__title {
    font-size: 1.5rem;
  }

  .avie-home-soutenir__ha-box {
    padding: 1.25rem;
  }
}

/* ── Zone texte (à la place / au-dessus des projets en cours) ── */
.avie-home-soutenir__text {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1.0625rem;
  line-height: 1.75;
  color: rgba(255, 255, 255, 0.88);
  max-width: 34rem;
}
.avie-home-soutenir__text p { margin: 0 0 1rem; }
.avie-home-soutenir__text p:last-child { margin-bottom: 0; }
.avie-home-soutenir__text a { color: #fff; text-decoration: underline; }

/* =============================================================
   CONTACT — CARTES D'ORIENTATION (widget-contact-cards)
   ============================================================= */

.avie-contact-cards {
  background: #fff;
}

.avie-contact-cards__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

.avie-contact-cards__card {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 2rem;
  background: var(--avie-bg);
  border: 1.5px solid color-mix(in srgb, var(--card-color, var(--avie-green)) 20%, transparent);
  border-radius: var(--avie-radius);
  text-decoration: none;
  color: var(--avie-text);
  box-shadow: var(--avie-shadow);
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.avie-contact-cards__card:hover {
  transform: translateY(-4px);
  box-shadow: var(--avie-shadow-xl);
  border-color: color-mix(in srgb, var(--card-color, var(--avie-green)) 40%, transparent);
  text-decoration: none;
  color: var(--avie-text);
}

.avie-contact-cards__icon-wrap {
  width: 48px;
  height: 48px;
  border-radius: 0.75rem;
  background: color-mix(in srgb, var(--card-color, var(--avie-green)) 12%, transparent);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--card-color, var(--avie-green));
  flex-shrink: 0;
  transition: transform 0.3s ease;
}

.avie-contact-cards__card:hover .avie-contact-cards__icon-wrap {
  transform: scale(1.1);
}

.avie-contact-cards__title {
  font-family: var(--avie-font-heading, 'Outfit', sans-serif);
  font-weight: 700;
  font-size: 1.0625rem;
  color: var(--avie-text);
  margin: 0;
}

.avie-contact-cards__desc {
  font-size: 0.875rem;
  color: var(--avie-text-muted);
  line-height: 1.6;
  margin: 0;
  flex: 1;
}

.avie-contact-cards__link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--card-color, var(--avie-green));
  margin-top: auto;
  text-underline-offset: 4px;
  transition: text-decoration 0.2s;
}

.avie-contact-cards__card:hover .avie-contact-cards__link {
  text-decoration: underline;
}

/* Responsive */
@media (max-width: 1024px) {
  .avie-contact-cards__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 580px) {
  .avie-contact-cards__grid {
    grid-template-columns: 1fr;
  }
}

/* =============================================================
   CONTACT — FORMULAIRE GÉNÉRAL (widget-contact-form)
   ============================================================= */

.avie-contact-form {
  background: var(--avie-sage);
}

.avie-contact-form__inner {
  display: grid;
  grid-template-columns: 2fr 3fr;
  gap: 4rem;
  align-items: start;
}

/* Colonne gauche */
.avie-contact-form__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 2.5rem;
  color: var(--avie-text);
  line-height: 1.15;
  margin: 0 0 1rem;
}

.avie-contact-form__intro {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1rem;
  color: var(--avie-text-muted);
  line-height: 1.7;
  margin: 0 0 1.5rem;
}

.avie-contact-form__bullets {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.avie-contact-form__bullet {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1rem;
  color: var(--avie-text);
  line-height: 1.7;
}

.avie-contact-form__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 0.4rem;
}

/* Carte formulaire */
.avie-contact-form__right {
  background: #fff;
  border-radius: calc(var(--avie-radius) * 1.25);
  padding: 2.5rem;
  box-shadow: 0 4px 32px -8px rgba(0,0,0,0.10);
}

.avie-contact-form__form {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.avie-contact-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}

.avie-contact-form__field {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.avie-contact-form__field label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--avie-text);
}

.avie-contact-form__field label span {
  color: var(--avie-coral);
}

.avie-contact-form__field input,
.avie-contact-form__field select,
.avie-contact-form__field textarea {
  width: 100%;
  padding: 0.7rem 1rem;
  border: 1.5px solid hsl(160 15% 88%);
  border-radius: 0.75rem;
  font-size: 0.9rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
  background: #fff;
  color: var(--avie-text);
  transition: border-color 0.2s, box-shadow 0.2s;
  box-sizing: border-box;
}

.avie-contact-form__field input:focus,
.avie-contact-form__field select:focus,
.avie-contact-form__field textarea:focus {
  outline: none;
  border-color: var(--avie-green);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--avie-green) 15%, transparent);
}

.avie-contact-form__field textarea {
  resize: vertical;
  min-height: 130px;
}

/* Feedback message */
.avie-contact-form__msg {
  font-size: 0.875rem;
  padding: 0.6rem 1rem;
  border-radius: 0.6rem;
  display: none;
}

.avie-contact-form__msg.is-success {
  display: block;
  background: hsl(155 40% 90%);
  color: hsl(155 60% 25%);
}

.avie-contact-form__msg.is-error {
  display: block;
  background: hsl(0 60% 94%);
  color: hsl(0 70% 40%);
}

/* Submit button */


.avie-contact-form__submit.is-loading .avie-contact-form__submit-label { display: none; }
.avie-contact-form__submit:not(.is-loading) .avie-contact-form__submit-loading { display: none; }

.avie-contact-form__legal {
  font-size: 0.75rem;
  text-align: center;
  color: var(--avie-text-muted);
  margin: 0;
}

/* Responsive */
@media (max-width: 1024px) {
  .avie-contact-form__inner {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
}

@media (max-width: 580px) {
  .avie-contact-form__row {
    grid-template-columns: 1fr;
  }

  .avie-contact-form__right {
    padding: 1.5rem;
  }
}

/* =============================================================
   LIEUX — CARTES CAPACITÉ (widget-lieu-cards)
   ============================================================= */

.avie-lieu-cards {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.avie-lieu-cards__card {
  background: #fff;
  border-radius: 1rem;
  padding: 1.25rem 1.5rem;
  border: 1px solid hsl(155 15% 90%);
  border-left: 4px solid var(--avie-yellow);
  box-shadow: var(--avie-shadow);
  transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.avie-lieu-cards__card:hover {
  box-shadow: var(--avie-shadow-lg);
  transform: translateY(-2px);
}

.avie-lieu-cards__name {
  font-family: var(--avie-font-heading, 'Outfit', sans-serif);
  font-weight: 700;
  font-size: 0.9375rem;
  color: var(--avie-text);
  margin: 0 0 0.3rem;
}

.avie-lieu-cards__capacity {
  font-size: 0.875rem;
  color: var(--avie-text-muted);
  margin: 0 0 0.6rem;
}

.avie-lieu-cards__link {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--avie-coral);
  text-decoration: none;
  transition: text-decoration 0.2s;
}

.avie-lieu-cards__link:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ------------------------------------------------------------
   38. À PROPOS — NOS VALEURS (liste icônes + visuel)
   ------------------------------------------------------------ */
.avie-valeurs {
  padding: 5rem 0;
  background: var(--avie-text-muted);
  scroll-margin-top: 8rem;
}

.avie-valeurs__header {
  text-align: center;
  margin-bottom: 4rem;
}

.avie-valeurs__eyebrow {
  display: block;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--avie-coral);
  margin: 0 0 0.5rem;
}

.avie-valeurs__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 2.5rem;
  color: var(--avie-text);
  line-height: 1.15;
  margin: 0;
}

.avie-valeurs__grid {
  display: grid;
  grid-template-columns: 1fr;
  align-items: center;
  gap: 3rem;
}

.avie-valeurs__list {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.avie-valeurs__item {
  display: flex;
  align-items: flex-start;
  gap: 1.5rem;
}

/* Pastille colorée : dimensions fixes, sinon le fond s'étire sur toute la largeur. */
.avie-valeurs__icon {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 1rem;
  color: #fff;
  box-shadow: var(--avie-shadow);
}

.avie-valeurs__icon svg {
  width: 1.5rem;
  height: 1.5rem;
  display: block;
}

.avie-valeurs__item-title {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 1.125rem;
  color: var(--avie-text);
  margin: 0 0 0.5rem;
}

.avie-valeurs__item-desc {
  font-size: 0.9rem;
  line-height: 1.7;
  color: var(--avie-text-muted);
  margin: 0;
}

.avie-valeurs__img {
  border-radius: var(--avie-radius);
  overflow: hidden;
  box-shadow: var(--avie-shadow-lg);
}

.avie-valeurs__img img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

@media (min-width: 992px) {
  /* L'espacement vertical est piloté par le contrôle Elementor « padding_v » du widget. */
  .avie-valeurs__grid {
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
  }
}

/* Cartes lieux insérées dans la colonne de texte du widget Intro.
   Hérite de .avie-lieu-cards (pile verticale + gap) ; seul l'espacement
   par rapport à la description est propre à ce contexte. */
.avie-service-intro__lieu-cards {
  margin-top: 1.75rem;
}

/* CTA optionnel en bas du bloc « Impact en chiffres ». */
.avie-stats__cta {
  margin-top: 3rem;
  text-align: center;
}

/* ------------------------------------------------------------
   39. SERVICE — En-tête optionnel de la grille de cartes
   Reprend le motif des autres en-têtes de rubrique.
   ------------------------------------------------------------ */
.avie-service-cards__header {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 3rem;
}

.avie-service-cards__eyebrow {
  display: block;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--avie-coral);
  margin: 0 0 0.5rem;
}

.avie-service-cards__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 2.5rem;
  color: var(--avie-text);
  line-height: 1.15;
  margin: 0;
}

.avie-service-cards__desc {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--avie-text-muted);
  margin: 1rem 0 0;
}

/* Variante alignée à gauche, même traitement que Nous soutenir : évite
   deux en-têtes centrés à la suite quand la section suit le hero. */
.avie-service-cards__header--aside {
  text-align: left;
  max-width: 44rem;
  margin: 0 0 2.5rem;
  padding-left: 1.25rem;
  border-left: 4px solid var(--avie-yellow);
}

.avie-service-cards__header--aside .avie-service-cards__title {
  font-size: clamp(1.5rem, 3vw, 2rem);
}

.avie-service-cards__header--aside .avie-service-cards__desc {
  margin-top: 0.75rem;
}

/* ------------------------------------------------------------
   40. HERO V6 — texte + visuel organique
   Reprend la composition du hero Lovable V6 : fond deep green,
   photo à angles très asymétriques avec liseré blanc épais,
   cercle jaune / aplat coral / barrette jaune autour.
   ------------------------------------------------------------ */
.avie-hero-v6 {
  background: var(--avie-green-deep);
  padding: 5rem 0;
  overflow: hidden;
}

.avie-hero-v6__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  align-items: center;
}

.avie-hero-v6__eyebrow {
  display: block;
  font-family: 'Outfit', sans-serif;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.25em;
  color: var(--avie-yellow);
  margin-bottom: 1.25rem;
}

.avie-hero-v6__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: clamp(2rem, 5vw, 3.25rem);   /* aligné sur .avie-page-hero__title */
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: #fff;
  margin: 0 0 1.75rem;
}

.avie-hero-v6__accent { color: var(--avie-yellow); }

.avie-hero-v6__text-body {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1.0625rem;
  line-height: 1.75;
  color: hsl(0 0% 100% / 0.82);
  max-width: 34rem;
}

.avie-hero-v6__text-body p { margin: 0 0 1.25rem; }
.avie-hero-v6__text-body p:last-child { margin-bottom: 0; }

.avie-hero-v6__btns {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 2.25rem;
}

/* ---- Visuel ---- */
.avie-hero-v6__visual {
  position: relative;
  width: 100%;
  padding: 34px;
  box-sizing: border-box;
}

.avie-hero-v6 .avie-hero-v6__img {
  position: relative;
  z-index: 2;
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  box-sizing: border-box;
  border: 10px solid #fff;
  /* Valeurs reprises du build Lovable V6. Les rayons sont en POURCENTAGE :
     ils se calculent séparément sur la largeur et la hauteur, ce qui donne
     des arrondis elliptiques — impossible à obtenir en rem. */
  border-top-left-radius: calc(var(--avie-radius) - 2px);
  border-top-right-radius: 34%;
  border-bottom-right-radius: 48%;
  border-bottom-left-radius: 38%;
}

.avie-hero-v6__block,
.avie-hero-v6__circle,
.avie-hero-v6__pill {
  position: absolute;
  display: block;
  z-index: 1;
}

.avie-hero-v6__block {
  right: 0;
  bottom: 0;
  width: 62%;
  height: 78%;
  background: var(--avie-coral);
  border-radius: 1rem 1rem 3rem 1rem;
}

/* Le cercle passe DEVANT la photo (z-index 3) et porte une ombre,
   comme sur la maquette : il chevauche le liseré blanc. */
.avie-hero-v6__circle {
  z-index: 3;
  top: 0;
  right: 6.1%;
  /* Proportionnel au visuel (20,75 % = 8,5rem sur un visuel de 656 px),
     borné pour rester lisible sur mobile et ne pas grossir au-delà. */
  width: clamp(5.5rem, 20.75%, 8.5rem);
  height: auto;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--avie-yellow);
  box-shadow: 0 10px 24px hsl(160 40% 6% / 0.28);
}

/* Barrette : valeurs reprises du build Lovable V6 (w-20 h-4 left-1
   bottom-8 rotate-3 rounded-full). La rotation de 3° est ce qui lui donne
   son côté posé à la main ; elle se loge dans le coin bas-gauche dégagé
   par le rayon elliptique de 38%. */
.avie-hero-v6__pill {
  left: 0.25rem;
  bottom: 2rem;
  width: 5rem;
  height: 1rem;
  border-radius: 9999px;
  background: var(--avie-yellow);
  transform: rotate(3deg);
}

@media (min-width: 992px) {
  .avie-hero-v6 { padding: 7rem 0; }
  .avie-hero-v6__grid {
    grid-template-columns: 1fr 1.05fr;
    gap: 4.5rem;
  }
  /* Visuel à gauche : on inverse l'ordre sans toucher au markup. */
  .avie-hero-v6--img-left .avie-hero-v6__text   { order: 2; }
  .avie-hero-v6--img-left .avie-hero-v6__visual { order: 1; }
}

/* ---- Thème fond blanc ----
   Choix de DA assumé : étiquette et bouton principal en coral (4.11:1 sur
   blanc), mot accentué en jaune (1.97:1), comme dans les autres rubriques.
   Titre 15.5, paragraphes 7.2, bouton secondaire 9.6. */
.avie-hero-v6--light { background: #fff; }

/* Étiquette et mot accentué : même traitement que les autres rubriques sur
   fond clair (eyebrow coral 12 px, accent en jaune). */
.avie-hero-v6--light .avie-hero-v6__eyebrow {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 700;
  letter-spacing: 0.15em;
  color: var(--avie-coral);
}

.avie-hero-v6--light .avie-hero-v6__title { color: var(--avie-text); }

.avie-hero-v6--light .avie-hero-v6__text-body { color: var(--avie-text-muted); }

/* Visuel plus sobre sur fond blanc : image 4:3 à coins arrondis réguliers,
   sans barrette et sans liseré. Le liseré blanc de 10 px hérité de la
   maquette Lovable creusait un vide entre la photo et la forme corail
   placée derrière ; aucun autre bloc du site n'encadre ses images. */
.avie-hero-v6--light .avie-hero-v6__img {
  aspect-ratio: 4 / 3;
  border: 0;
  border-radius: var(--avie-radius-section);
  box-shadow: 0 24px 48px -16px hsl(160 40% 12% / 0.28);
}

.avie-hero-v6--light .avie-hero-v6__pill { display: none; }

.avie-hero-v6--light .avie-hero-v6__circle {
  box-shadow: 0 10px 24px hsl(160 40% 12% / 0.18);
}

/* ---- Mobile & tablette (une colonne) ----
   Image toujours en premier, quel que soit le côté choisi sur desktop, et
   sur toute la largeur du contenu : plus de marge latérale sur le visuel,
   les formes ne débordent plus que vers le haut (cercle) et le bas (aplat). */
@media (max-width: 991px) {
  .avie-hero-v6__visual {
    order: -1;
    padding: 1.5rem 0 1.75rem;
  }
  .avie-hero-v6__circle {
    top: 0;
    right: 1.25rem;
  }
  .avie-hero-v6__pill { bottom: 0.5rem; }
  .avie-hero-v6__grid { gap: 2rem; }
}

/* ------------------------------------------------------------
   41. IMAGES EN REMPLISSAGE — garde-fou contre Elementor
   Elementor charge `.elementor img { height: auto; }` APRÈS ce fichier,
   avec la même spécificité (0,1,1) que nos règles `… img { height: 100% }`.
   Résultat : l'image garde sa hauteur naturelle et ne remplit plus son
   cadre dès que son ratio diffère de celui du cadre. Le préfixe `body`
   fait passer nos règles devant, sans !important.
   ------------------------------------------------------------ */
body .avie-service-card__img img,
body .avie-home-lieux__img-wrap img,
body .avie-pres-card img,
body .avie-testimonials__avatar-wrap img,
body .avie-stats__quote-photo img,
body img.avie-about-media__img,
body .avie-lieux-grid__img-wrap img,
body .avie-vision__photo img,
body .avie-actu-card__img img {
  height: 100%;
}

/* ------------------------------------------------------------
   42. ARTICLE (single.php)
   En-tête clair, photo de couverture en « feuille » avec formes
   organiques, corps de texte en colonne lisible, partage,
   articles liés puis rappel CTA.
   ------------------------------------------------------------ */
.avie-article { background: #fff; }

/* ---- En-tête ---- */
.avie-article__header {
  padding: 3rem 0 2rem;
  text-align: center;
}

.avie-article__back {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--avie-text-muted);
  text-decoration: none;
  margin-bottom: 1.75rem;
  transition: color 0.2s;
}
.avie-article__back:hover { color: var(--avie-coral); }

.avie-article__cat {
  display: block;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--avie-coral);
  margin-bottom: 0.75rem;
}

.avie-article__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: clamp(1.875rem, 4.5vw, 3rem);
  line-height: 1.15;
  color: var(--avie-text);
  max-width: 46rem;
  margin: 0 auto 1rem;
}

.avie-article__chapo {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: clamp(1rem, 2vw, 1.125rem);
  line-height: 1.7;
  color: var(--avie-text-muted);
  max-width: 42rem;
  margin: 0 auto 1.25rem;
}

.avie-article__meta {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.8125rem;
  color: var(--avie-text-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin: 0;
}

/* ---- Couverture ---- */
.avie-article__cover { padding-bottom: 1rem; overflow-x: clip; }

.avie-article__cover-inner {
  position: relative;
  max-width: 60rem;
  margin: 0 auto;
}

body .avie-article__cover-img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 7rem 1.5rem 7rem 1.5rem;
  box-shadow: var(--avie-shadow-lg);
}

.avie-article__shape {
  position: absolute;
  z-index: 0;
  pointer-events: none;
}
.avie-article__shape--circle {
  top: -1.75rem;
  right: -1.75rem;
  width: 6.5rem;
  height: 6.5rem;
  border-radius: 50%;
  background: var(--avie-yellow);
}
.avie-article__shape--rect {
  left: -1.75rem;
  bottom: -1.5rem;
  width: 8rem;
  height: 5rem;
  border-radius: 1.5rem;
  background: var(--avie-berry);
}

/* ---- Corps ---- */
.avie-article__body { padding: 3rem 0 1rem; }

.avie-article__content {
  max-width: 45rem;
  margin: 0 auto;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1.0625rem;
  line-height: 1.8;
  color: var(--avie-text-muted);
}

.avie-article__content > *:first-child { margin-top: 0; }
.avie-article__content p { margin: 0 0 1.25rem; }

.avie-article__content h2 {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 1.75rem;
  line-height: 1.25;
  color: var(--avie-text);
  margin: 2.75rem 0 1rem;
}

.avie-article__content h3 {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 1.25rem;
  color: var(--avie-text);
  margin: 2rem 0 0.75rem;
}

.avie-article__content a {
  color: var(--avie-coral);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.avie-article__content ul,
.avie-article__content ol { margin: 0 0 1.5rem; padding-left: 1.25rem; }
.avie-article__content li { margin-bottom: 0.5rem; }
.avie-article__content ul { list-style: none; padding-left: 0; }
.avie-article__content ul li {
  position: relative;
  padding-left: 1.5rem;
}
.avie-article__content ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.7em;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: var(--avie-yellow);
}

/* Citation : barre jaune arrondie, comme la barrette du menu. */
.avie-article__content blockquote {
  margin: 2rem 0;
  padding: 0.25rem 0 0.25rem 1.5rem;
  border-left: 0.25rem solid var(--avie-yellow);
  border-radius: 0.125rem;
  font-family: 'Outfit', sans-serif;
  font-size: 1.25rem;
  font-weight: 500;
  font-style: italic;
  line-height: 1.5;
  color: var(--avie-text);
}
.avie-article__content blockquote p:last-child { margin-bottom: 0; }

body .avie-article__content img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--avie-radius);
  box-shadow: var(--avie-shadow);
  margin: 2rem 0;
}
.avie-article__content figure { margin: 2rem 0; }
.avie-article__content figcaption {
  font-size: 0.8125rem;
  color: var(--avie-text-muted);
  text-align: center;
  margin-top: 0.5rem;
}

/* ---- Tableaux dans le corps d'article ----
   Les guides SEO comparent souvent des dispositifs ou des formats. Le
   conteneur défile horizontalement sur mobile, le tableau ne déborde
   jamais de la colonne de lecture. */
.avie-article__content table {
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 1.75rem;
  font-size: 0.9375rem;
  display: block;
  overflow-x: auto;
  white-space: normal;
}

@media (min-width: 700px) {
  .avie-article__content table { display: table; }
}

.avie-article__content thead th {
  background: var(--avie-green-pale);
  color: var(--avie-green-deep);
  font-family: var(--avie-font-heading, 'Outfit', sans-serif);
  font-weight: 700;
  text-align: left;
  padding: 0.75rem 1rem;
  border-bottom: 2px solid var(--avie-yellow);
}

.avie-article__content td {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--avie-border);
  vertical-align: top;
}

.avie-article__content tbody tr:last-child td { border-bottom: none; }
.avie-article__content tbody tr:nth-child(even) { background: rgba(8, 79, 55, 0.03); }

/* ------------------------------------------------------------
   Page : Texte long (mentions légales, confidentialité, plan du site)
   Réutilise la typographie du corps d'article, dans une colonne de
   lecture centrée.
   ------------------------------------------------------------ */
.avie-page-texte__inner {
  max-width: 760px;
  margin: 0 auto;
}

.avie-page-texte__inner h2 { margin-top: 2.5rem; }
.avie-page-texte__inner > h2:first-child { margin-top: 0; }

.avie-page-texte__updated {
  margin-top: 3rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--avie-border);
  font-size: 0.875rem;
  color: var(--avie-text-muted);
}

/* ---- Partage ---- */
.avie-article__share {
  max-width: 45rem;
  margin: 2.5rem auto 0;
  padding-top: 1.5rem;
  border-top: 1px solid var(--avie-border);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.625rem;
}

.avie-article__share-label {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--avie-text-muted);
  margin-right: 0.25rem;
}

.avie-article__share-link {
  display: inline-block;
  padding: 0.4rem 1rem;
  border: 1.5px solid var(--avie-border);
  border-radius: 9999px;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--avie-text);
  text-decoration: none;
  transition: border-color 0.2s, color 0.2s;
}
.avie-article__share-link:hover {
  border-color: var(--avie-coral);
  color: var(--avie-coral);
}

/* ---- Articles liés ---- */
/* « À lire aussi » : rendu par le widget Elementor du bloc actualités.
   Les réglages de couleur du widget passent par le CSS généré par Elementor,
   absent hors page Elementor : le fond est donc posé ici. */
.avie-article__related { margin-top: 3rem; }
.avie-article__related .avie-actualites { background: var(--avie-green-pale); }

.avie-article__back-row { text-align: left; }

/* ---- Rappel CTA ---- */
.avie-article__cta { padding: 4rem 0; background: #fff; }

.avie-article__cta-inner {
  max-width: 45rem;
  margin: 0 auto;
  text-align: center;
}

.avie-article__cta-title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 2rem;
  color: var(--avie-text);
  margin: 0 0 0.75rem;
}

.avie-article__cta-text {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--avie-text-muted);
  margin: 0 0 1.75rem;
}

.avie-article__cta-btns {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
}

@media (max-width: 600px) {
  .avie-article__header { padding: 2rem 0 1.5rem; }
  body .avie-article__cover-img { border-radius: 3rem 1rem 3rem 1rem; }
  .avie-article__shape--circle { width: 4rem; height: 4rem; top: -1rem; right: -1rem; }
  .avie-article__shape--rect { width: 5rem; height: 3.25rem; left: -1rem; bottom: -1rem; border-radius: 1rem; }
}

/* ------------------------------------------------------------
   43. ACTUALITÉS — liste et archives de catégorie
   (home.php / category.php via template-parts/actus-list.php)
   ------------------------------------------------------------ */
.avie-actus-archive { background: #fff; }

/* L'en-tête reprend les classes de `.avie-page-hero--light` : seuls
   les ajustements propres à cette page sont posés ici. */
.avie-actus-archive__header { padding-bottom: 3rem; }
/* Colonne centrée, lignes alignées à gauche : un texte long centré se lit mal. */
.avie-actus-archive__intro { margin-bottom: 0; text-align: left; }
body .avie-actus-archive__intro p { margin: 0 0 0.75rem; }
.avie-actus-archive__intro p:last-child { margin-bottom: 0; }

.avie-actus-archive__filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.625rem;
  margin: 0 0 2.5rem;
}

.avie-actus-archive__filter {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.5rem 1.125rem;
  border: 1.5px solid var(--avie-border);
  border-radius: 9999px;
  background: #fff;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--avie-text);
  text-decoration: none;
  transition: border-color 0.2s, color 0.2s, background-color 0.2s;
}
.avie-actus-archive__filter:hover {
  border-color: var(--avie-coral);
  color: var(--avie-coral);
}
.avie-actus-archive__filter.is-active {
  background: var(--avie-green-deep);
  border-color: var(--avie-green-deep);
  color: #fff;
}

/* Grille */
.avie-actus-archive__body { padding: 0 0 4rem; }

.avie-actus-archive__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.75rem;
}

.avie-actus-archive__grid .avie-actu-card { display: flex; }
.avie-actus-archive__grid .avie-actu-card__link {
  display: flex;
  flex-direction: column;
  width: 100%;
  text-decoration: none;
  color: inherit;
}

.avie-actus-archive__empty {
  text-align: center;
  font-family: 'Plus Jakarta Sans', sans-serif;
  color: var(--avie-text-muted);
  padding: 3rem 0;
}

/* Pagination */
.avie-actus-archive .pagination,
.avie-actus-archive .navigation.pagination { margin-top: 3rem; }

.avie-actus-archive .nav-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
}

.avie-actus-archive .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  height: 2.5rem;
  padding: 0 0.875rem;
  border: 1.5px solid var(--avie-border);
  border-radius: 9999px;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--avie-text);
  text-decoration: none;
  transition: border-color 0.2s, color 0.2s, background-color 0.2s;
}
.avie-actus-archive .page-numbers:hover {
  border-color: var(--avie-coral);
  color: var(--avie-coral);
}
.avie-actus-archive .page-numbers.current {
  background: var(--avie-green-deep);
  border-color: var(--avie-green-deep);
  color: #fff;
}
.avie-actus-archive .page-numbers.dots {
  border-color: transparent;
  min-width: 1.5rem;
  padding: 0;
}

@media (max-width: 900px) {
  .avie-actus-archive__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .avie-actus-archive__grid { grid-template-columns: 1fr; }
}

/* ------------------------------------------------------------
   44. ANCRES — décalage sous le header collé
   Sans cela, la cible d'une ancre (#portage…) se retrouve
   masquée par le header sticky.
   ------------------------------------------------------------ */
:target,
.elementor-element[id] { scroll-margin-top: 7rem; }

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

/* ------------------------------------------------------------
   45. FLUENT FORMS — habillage au style du site
   Le plugin est rendu à l'intérieur de la carte du widget devis
   (.avie-devis__ff). On ne touche qu'à ses classes publiques :
   .ff-el-group (groupe), .ff-el-input--label (libellé),
   .ff-el-form-control (champ), .ff-btn-submit (bouton),
   .ff-el-is-error / .error-text (erreurs), .ff-message-success.
   Si une mise à jour majeure du plugin change ce balisage,
   c'est ce bloc qu'il faut reprendre.
   ------------------------------------------------------------ */
.avie-devis__ff .fluentform .ff-el-group { margin-bottom: 1.5rem; }
.avie-devis__ff .fluentform .ff-t-cell { padding-right: 1.25rem; }
.avie-devis__ff .fluentform .ff-t-cell:last-child { padding-right: 0; }

.avie-devis__ff .fluentform .ff-el-input--label label {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--avie-text);
  margin-bottom: 0.4rem;
}
.avie-devis__ff .fluentform .ff-el-is-required.asterisk-right label:after { color: var(--avie-coral); }

.avie-devis__ff .fluentform .ff-el-form-control {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.9375rem;
  color: var(--avie-text);
  background: #fff;
  border: 1.5px solid var(--avie-border);
  border-radius: 0.75rem;
  padding: 0.75rem 1rem;
  height: auto;
  line-height: 1.4;
  box-shadow: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.avie-devis__ff .fluentform .ff-el-form-control:focus {
  border-color: var(--avie-green);
  box-shadow: 0 0 0 3px hsl(155 32% 33% / 0.12);
  outline: none;
}
.avie-devis__ff .fluentform textarea.ff-el-form-control { min-height: 130px; resize: vertical; }
.avie-devis__ff .fluentform .ff-el-form-control::placeholder { color: hsl(0 0% 60%); }

/* Case à cocher (consentement) */
.avie-devis__ff .fluentform .ff-el-form-check-label {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.8125rem;
  line-height: 1.6;
  color: var(--avie-text-muted);
}
.avie-devis__ff .fluentform input[type="checkbox"],
.avie-devis__ff .fluentform input[type="radio"] { accent-color: var(--avie-green-deep); }

/* Bouton d'envoi : reprend .avie-btn--coral.avie-btn--block (balisage Fluent Forms non modifiable) */
.avie-devis__ff .fluentform .ff-btn-submit,
.avie-devis__ff .fluentform .ff_submit_btn_wrapper button {
  width: 100%;
  background: var(--avie-coral) !important;
  color: #fff !important;
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 0.9375rem;
  border: 2px solid transparent;
  border-radius: var(--avie-radius-btn);
  padding: 0.675rem 1.625rem;
  line-height: 1.2;
  cursor: pointer;
  transition: opacity 0.2s, transform 0.2s ease, box-shadow 0.2s ease;
}
.avie-devis__ff .fluentform .ff-btn-submit:hover {
  opacity: 0.88;
  transform: translateY(-1px);
  box-shadow: 0 8px 16px -6px hsl(160 30% 12% / 0.3);
}

/* Messages */
.avie-devis__ff .fluentform .ff-el-is-error .ff-el-form-control { border-color: var(--avie-coral); }
.avie-devis__ff .fluentform .error-text,
.avie-devis__ff .fluentform .ff-el-is-error .text-danger {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.8125rem;
  color: var(--avie-coral);
}
.avie-devis__ff .ff-message-success {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.9375rem;
  background: hsl(155, 50%, 94%);
  color: var(--avie-green);
  border: 1px solid hsl(155, 30%, 80%);
  border-radius: 0.75rem;
  padding: 1rem 1.25rem;
}

/* Note de réassurance sous la case de consentement (Fluent Forms). */
.avie-devis__ff .avie-devis__ff-note {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  line-height: 1.6;
  color: var(--avie-text-muted);
  margin: -0.75rem 0 0;
}

/* ------------------------------------------------------------
   46. PAGE CONTACT — remise au style du site
   Cartes blanches franches, icônes en aplat plein, et formes
   organiques (rond jaune / rectangle framboise / carré jaune)
   comme sur les autres grilles.
   ------------------------------------------------------------ */

/* ---- Cartes d'orientation ---- */
.avie-contact-cards__grid { position: relative; }

.avie-contact-cards__card {
  position: relative;
  z-index: 1;
  background: #fff;
  border: 1px solid var(--avie-border);
  gap: 0.875rem;
}
.avie-contact-cards__card:hover { border-color: var(--card-color, var(--avie-coral)); }

/* Icône : aplat plein à la couleur de la carte, symbole en blanc. */
.avie-contact-cards__icon-wrap {
  width: 3rem;
  height: 3rem;
  border-radius: 1rem;
  background: var(--card-color, var(--avie-green-deep));
  color: #fff;
}

.avie-contact-cards__title { font-size: 1.125rem; }

/* ---- Bloc « Écrivez-nous » ---- */
.avie-contact-form {
  background: var(--avie-green-pale);
  overflow-x: clip;
}

.avie-contact-form__right {
  position: relative;
  z-index: 1;
  border-radius: var(--avie-radius);
  box-shadow: var(--avie-shadow-xl);
}

/* Formes derrière la carte du formulaire, comme sur le devis. */
.avie-contact-form__inner { position: relative; }
.avie-contact-form__inner::before,
.avie-contact-form__inner::after {
  content: '';
  position: absolute;
  z-index: 0;
  pointer-events: none;
}
.avie-contact-form__inner::before {
  top: -2rem;
  right: 42%;
  width: 6.5rem;
  height: 6.5rem;
  border-radius: 50%;
  background: var(--avie-yellow);
}
.avie-contact-form__inner::after {
  right: -2rem;
  bottom: -1.75rem;
  width: 8.5rem;
  height: 5rem;
  border-radius: 1.5rem;
  background: var(--avie-berry);
}

/* Puces de la colonne de gauche : pastilles un peu plus présentes. */
.avie-contact-form__dot {
  width: 0.625rem;
  height: 0.625rem;
  margin-top: 0.35rem;
}

/* ---- « Nos adresses » ---- */
.avie-contact-info { overflow-x: clip; }

.avie-contact-info__card {
  border-radius: var(--avie-radius);
}

/* La barre de couleur en haut est remplacée par la pastille de
   catégorie, déjà colorée : la carte respire davantage. */
.avie-contact-info__card-top { display: none; }

.avie-contact-info__badge {
  color: #fff;
  background: var(--accent, var(--avie-green-deep));
}

.avie-contact-info__grid { position: relative; }
.avie-contact-info__grid::before {
  content: '';
  position: absolute;
  z-index: 0;
  left: -2rem;
  bottom: -2rem;
  width: 6.5rem;
  height: 6.5rem;
  border-radius: 1.5rem;
  background: var(--avie-yellow);
}
.avie-contact-info__card { position: relative; z-index: 1; }

@media (max-width: 900px) {
  .avie-contact-form__inner::before { right: auto; left: -1.5rem; top: -1.5rem; width: 4.5rem; height: 4.5rem; }
  .avie-contact-form__inner::after { width: 5.5rem; height: 3.5rem; right: -1.25rem; bottom: -1.25rem; }
  .avie-contact-info__grid::before { width: 4.5rem; height: 4.5rem; left: -1.5rem; bottom: -1.5rem; }
}

/* ------------------------------------------------------------
   47. FAQ (widget-faq)
   Accordéon natif <details>/<summary>, sans JavaScript.
   ------------------------------------------------------------ */
.avie-faq { background: #fff; }

.avie-faq__header { text-align: center; margin-bottom: 2.5rem; }

.avie-faq__eyebrow {
  display: block;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--avie-coral);
  margin-bottom: 0.75rem;
}

.avie-faq__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  color: var(--avie-text);
  margin: 0;
}
.avie-faq__accent { color: var(--avie-yellow); }

.avie-faq__list {
  max-width: 46rem;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.avie-faq__item {
  background: #fff;
  border: 1px solid var(--avie-border);
  border-radius: var(--avie-radius);
  padding: 0 1.5rem;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.avie-faq__item[open] {
  border-color: color-mix(in srgb, var(--avie-green-deep) 25%, transparent);
  box-shadow: var(--avie-shadow);
}

.avie-faq__question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.25rem 0;
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 1.0625rem;
  color: var(--avie-text);
  cursor: pointer;
  list-style: none;
}
.avie-faq__question::-webkit-details-marker { display: none; }
.avie-faq__question:hover { color: var(--avie-green-deep); }

.avie-faq__chevron {
  flex-shrink: 0;
  color: var(--avie-coral);
  transition: transform 0.25s ease;
}
.avie-faq__item[open] .avie-faq__chevron { transform: rotate(180deg); }

.avie-faq__answer {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1rem;
  line-height: 1.75;
  color: var(--avie-text-muted);
  padding: 0 0 1.25rem;
}
.avie-faq__answer p { margin: 0 0 0.75rem; }
.avie-faq__answer p:last-child { margin-bottom: 0; }

/* ------------------------------------------------------------
   48. CARTE — alignement sur le design system
   (l'étiquette était verte et le cadre gris foncé)
   ------------------------------------------------------------ */
.avie-map__eyebrow {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 700;
  letter-spacing: 0.15em;
  color: var(--avie-coral);
}

.avie-map__title { font-size: clamp(1.75rem, 4vw, 2.5rem); }

.avie-map__frame {
  border-radius: var(--avie-radius);
  border: 1px solid var(--avie-border);
  box-shadow: var(--avie-shadow);
}

/* ------------------------------------------------------------
   49. CARTE DES ÉTABLISSEMENTS (Leaflet + OpenStreetMap)
   ------------------------------------------------------------ */
.avie-leaflet { background: #fff; }

.avie-leaflet__header { text-align: center; margin-bottom: 2rem; }

.avie-leaflet__eyebrow {
  display: block;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--avie-coral);
  margin-bottom: 0.75rem;
}

.avie-leaflet__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  color: var(--avie-text);
  margin: 0 0 0.75rem;
}

.avie-leaflet__subtitle {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1rem;
  color: var(--avie-text-muted);
  margin: 0;
}

.avie-leaflet__canvas {
  width: 100%;
  height: 460px;
  border-radius: var(--avie-radius);
  border: 1px solid var(--avie-border);
  box-shadow: var(--avie-shadow);
  overflow: hidden;
  z-index: 0; /* reste sous le header collé */
}

/* Points : pastille ronde à la couleur du lieu, liseré blanc. */
.avie-leaflet__pin {
  display: block;
  width: 1.375rem;
  height: 1.375rem;
  border-radius: 50%;
  border: 3px solid #fff;
  box-shadow: 0 2px 6px hsl(160 40% 12% / 0.35);
}

.avie-leaflet .leaflet-popup-content-wrapper {
  border-radius: 1rem;
  box-shadow: var(--avie-shadow-lg);
}
.avie-leaflet .leaflet-popup-content {
  margin: 0.875rem 1rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--avie-text-muted);
}
.avie-leaflet__pop-name {
  display: block;
  font-family: 'Outfit', sans-serif;
  font-size: 1rem;
  color: var(--avie-text);
  margin-bottom: 0.25rem;
}
.avie-leaflet__pop-line { display: block; }
.avie-leaflet__pop-link {
  display: inline-block;
  margin-top: 0.5rem;
  font-weight: 700;
  color: var(--avie-coral);
  text-decoration: none;
}

/* Liste équivalente : visible seulement sans JavaScript. */
.avie-leaflet__fallback {
  list-style: none;
  margin: 1rem 0 0;
  padding: 0;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.875rem;
  color: var(--avie-text-muted);
}
.js .avie-leaflet__fallback,
.avie-leaflet__canvas.leaflet-container + .avie-leaflet__fallback { display: none; }

.avie-leaflet__empty {
  font-family: 'Plus Jakarta Sans', sans-serif;
  color: var(--avie-text-muted);
  text-align: center;
}

/* Styles de carte : filtre appliqué aux tuiles OpenStreetMap, pour calmer
   les couleurs sans dépendre d'un fournisseur tiers (les fonds clairs de
   CARTO réclament désormais une clé). Les points restent hors du filtre. */
.avie-leaflet__canvas--soft .leaflet-tile-pane {
  filter: saturate(0.35) brightness(1.08) contrast(0.92);
}
.avie-leaflet__canvas--grayscale .leaflet-tile-pane {
  filter: grayscale(1) brightness(1.06) contrast(0.9);
}

/* ------------------------------------------------------------
   50. ENGAGEMENTS (widget-engagements)
   Liste à pastilles de validation + photo aux formes du site.
   ------------------------------------------------------------ */
.avie-engagements {
  background: #fff;
  overflow-x: clip;
}

.avie-engagements__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

.avie-engagements--img-left .avie-engagements__text   { order: 2; }
.avie-engagements--img-left .avie-engagements__visual { order: 1; }

.avie-engagements__eyebrow {
  display: block;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--avie-coral);
  margin-bottom: 0.75rem;
}

.avie-engagements__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  line-height: 1.2;
  color: var(--avie-text);
  margin: 0 0 2rem;
}
.avie-engagements__accent { color: var(--avie-yellow); }

.avie-engagements__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.avie-engagements__item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}

.avie-engagements__check {
  flex-shrink: 0;
  width: 1.75rem;
  height: 1.75rem;
  margin-top: 0.1rem;
  border-radius: 50%;
  background: var(--avie-green-deep);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}

.avie-engagements__item-title {
  display: block;
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 0.9375rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--avie-text);
  margin-bottom: 0.25rem;
}

.avie-engagements__item-text {
  display: block;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--avie-text-muted);
}

/* Visuel : photo à coins arrondis, rond jaune derrière le coin haut-droit
   et carré coral derrière le coin bas-gauche. */
.avie-engagements__visual { position: relative; }

body .avie-engagements__img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--avie-radius-section);
  box-shadow: var(--avie-shadow-lg);
}

.avie-engagements__shape {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  transition: transform 0.4s ease;
}
.avie-engagements__shape--circle {
  top: -1.75rem;
  right: -1.75rem;
  width: 6.5rem;
  height: 6.5rem;
  border-radius: 50%;
  background: var(--avie-yellow);
}
.avie-engagements__shape--square {
  left: -1.75rem;
  bottom: -1.75rem;
  width: 6rem;
  height: 6rem;
  border-radius: 1.5rem;
  background: var(--avie-coral);
}
.avie-engagements__visual:hover .avie-engagements__shape--circle { transform: translate(0.3rem, -0.3rem); }
.avie-engagements__visual:hover .avie-engagements__shape--square { transform: translate(-0.3rem, 0.3rem); }

.avie-engagements--img-left .avie-engagements__shape--circle { right: auto; left: -1.75rem; }
.avie-engagements--img-left .avie-engagements__shape--square { left: auto; right: -1.75rem; }

@media (max-width: 991px) {
  .avie-engagements__grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .avie-engagements--img-left .avie-engagements__text   { order: 2; }
  .avie-engagements--img-left .avie-engagements__visual { order: 1; }
  .avie-engagements__shape--circle { width: 4.5rem; height: 4.5rem; top: -1.25rem; right: -1.25rem; }
  .avie-engagements__shape--square { width: 4rem; height: 4rem; left: -1.25rem; bottom: -1.25rem; }
}

/* ------------------------------------------------------------
   51. TROMBINOSCOPE ÉPURÉ (widget-equipe)
   Les quatre variantes de formes (équerres, ronds, arrondis
   asymétriques) chargeaient la page. Portraits identiques ;
   la couleur du membre ne sert plus qu'à sa fonction.
   ------------------------------------------------------------ */
.avie-equipe__photo-wrap {
  padding: 0;
  max-width: 300px;
}
.avie-equipe__photo-wrap::before,
.avie-equipe__photo-wrap::after { display: none; }

.avie-equipe .avie-equipe__photo,
.avie-equipe__card:nth-child(4n+1) .avie-equipe__photo,
.avie-equipe__card:nth-child(4n+2) .avie-equipe__photo,
.avie-equipe__card:nth-child(4n+3) .avie-equipe__photo,
.avie-equipe__card:nth-child(4n+4) .avie-equipe__photo {
  border: none;
  border-radius: var(--avie-radius);
  filter: none;
  box-shadow: var(--avie-shadow);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.avie-equipe__card:hover .avie-equipe__photo {
  transform: translateY(-4px);
  box-shadow: var(--avie-shadow-lg);
}

.avie-equipe__name {
  font-size: 1.0625rem;
  margin-top: 0.25rem;
}

.avie-equipe__role {
  font-size: 0.75rem;
  letter-spacing: 0.12em;
}

/* ------------------------------------------------------------
   52. NOTRE CARTE (widget-menu-carte)
   Mise en page reprise de la maquette Lovable : fond blanc, deux
   colonnes, rubriques en capitales précédées d'un losange jaune,
   prix en coral. Ni cadre ni pointillés.
   ------------------------------------------------------------ */
.avie-menu { background: #fff; }

/* Formes derrière la carte : carré framboise à gauche, rond jaune à droite,
   en couleurs pleines comme partout ailleurs sur le site. Elles restent hors
   de la colonne de texte (la grille de la carte est centrée, 56rem). */
.avie-menu--shapes { position: relative; overflow-x: clip; }
.avie-menu--shapes .container { position: relative; z-index: 1; }
.avie-menu--shapes::before,
.avie-menu--shapes::after {
  content: '';
  position: absolute;
  z-index: 0;
}
.avie-menu--shapes::before {
  left: -3.5rem;
  top: 22%;
  width: 9rem;
  height: 9rem;
  border-radius: 2.5rem 1.5rem 1.5rem 1.5rem;
  background: var(--avie-berry);
}
.avie-menu--shapes::after {
  right: -4rem;
  bottom: 12%;
  width: 11rem;
  height: 11rem;
  border-radius: 50%;
  background: var(--avie-yellow);
}
/* Écran plus étroit : la forme recule pour rester à 1,5rem au moins de la
   colonne de texte (56rem centrée), quitte à moins dépasser du bord. */
.avie-menu--shapes::before { left:  min(-3.5rem, calc(50% - 28rem - 9rem - 1.5rem)); }
.avie-menu--shapes::after  { right: min(-4rem,   calc(50% - 28rem - 11rem - 1.5rem)); }
@media (max-width: 991px) {
  .avie-menu--shapes::before,
  .avie-menu--shapes::after { display: none; }
}

.avie-menu__header { text-align: center; margin-bottom: 3rem; }

.avie-menu__eyebrow {
  display: block;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--avie-coral);
  margin-bottom: 0.75rem;
}

.avie-menu__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  color: var(--avie-text);
  margin: 0 0 0.75rem;
}
.avie-menu__accent { color: var(--avie-yellow); }

.avie-menu__intro {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--avie-text-muted);
  max-width: 40rem;
  margin: 0 auto;
  text-align: center;
}
body .avie-menu__intro p { margin: 0 0 0.75rem; }
.avie-menu__intro p:last-child { margin-bottom: 0; }

.avie-menu__grid {
  display: grid;
  gap: 3rem 4rem;
  max-width: 56rem;
  margin: 0 auto;
}
.avie-menu__grid--2 { grid-template-columns: repeat(2, 1fr); }
.avie-menu__grid--1 { grid-template-columns: 1fr; max-width: 36rem; }

.avie-menu__section-title {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 1.125rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--avie-text);
  margin: 0 0 1.5rem;
}

/* Une couleur par rubrique : puce et filet du titre, filet des déclinaisons.
   Le prix reste coral partout. */
.avie-menu__section--green  { --menu-accent: var(--avie-green); }
.avie-menu__section--coral  { --menu-accent: var(--avie-coral); }
.avie-menu__section--berry  { --menu-accent: var(--avie-berry); }
.avie-menu__section--yellow { --menu-accent: var(--avie-yellow); }

.avie-menu__section-title {
  padding-bottom: 0.625rem;
  border-bottom: 2px solid color-mix(in srgb, var(--menu-accent, var(--avie-yellow)) 25%, transparent);
}

/* Puce ronde devant le titre de la rubrique. */
.avie-menu__dot {
  width: 0.625rem;
  height: 0.625rem;
  border-radius: 50%;
  background: var(--menu-accent, var(--avie-yellow));
  flex-shrink: 0;
}

/* Titres « Les entrées »… (option « Bicolore ») : tout le titre en jaune,
   filet jaune plein, déclinaisons avec le même jaune (retour de Stéphanie,
   22 septembre 2026 : au départ « Les » en noir et filet orange). */
.avie-menu--duo .avie-menu__section { --menu-accent: var(--avie-yellow); }
.avie-menu--duo .avie-menu__section-title {
  display: block;
  border-bottom-color: var(--avie-yellow);
}
.avie-menu__st-lead   { color: var(--avie-yellow); }
.avie-menu__st-accent { color: var(--avie-yellow); }

/* Première phrase des descriptions (l'origine du plat) en framboise. */
.avie-menu__desc-lead { color: var(--avie-berry); }

.avie-menu__items { list-style: none; margin: 0; padding: 0; }

.avie-menu__item { margin-bottom: 1.25rem; }
.avie-menu__item:last-child { margin-bottom: 0; }

.avie-menu__item-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
}

.avie-menu__item-name {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 600;
  font-size: 0.9375rem;
  color: var(--avie-text);
}

.avie-menu__item-price {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 700;
  font-size: 0.9375rem;
  color: var(--avie-coral);
  white-space: nowrap;
}

.avie-menu__item-desc {
  display: block;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.8125rem;
  line-height: 1.6;
  color: var(--avie-text-muted);
  margin-top: 0.15rem;
}

/* Déclinaisons d'un plat (lignes commençant par un tiret) : en retrait,
   sous le plat, avec un filet clair qui les rattache visuellement. */
.avie-menu__subitems {
  list-style: none;
  margin: 0.5rem 0 0;
  padding: 0 0 0 0.875rem;
  border-left: 2px solid color-mix(in srgb, var(--menu-accent, var(--avie-yellow)) 35%, transparent);
}

.avie-menu__subitem + .avie-menu__subitem { margin-top: 0.375rem; }

.avie-menu__subitem .avie-menu__item-name {
  font-weight: 500;
  font-size: 0.875rem;
}

.avie-menu__subitem .avie-menu__item-price { font-size: 0.875rem; }
.avie-menu__subitem .avie-menu__item-desc { font-size: 0.75rem; }

.avie-menu__note {
  text-align: center;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.8125rem;
  color: var(--avie-text-muted);
  margin: 2.5rem 0 0;
}

/* Nom, origine et pictos sur une même ligne, centrés sur la hauteur du nom. */
.avie-menu__item-name:has(.avie-menu__origin, .avie-menu__tag) {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem;
}

.avie-menu__tag {
  position: relative;
  cursor: help;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.375rem;
  height: 1.375rem;
  border-radius: 50%;
  flex-shrink: 0;
}
.avie-menu__tag--v  { background: var(--avie-sage); color: var(--avie-green); }
.avie-menu__tag--vg { background: var(--avie-green); color: #fff; }
.avie-menu__tag--sg { background: var(--avie-warm-deep); color: var(--avie-coral-deep); }

/* Infobulle des pictos : au survol et au focus clavier (tabindex). */
.avie-menu__tag::after {
  content: attr(data-tip);
  position: absolute;
  bottom: calc(100% + 0.5rem);
  left: 50%;
  transform: translate(-50%, 0.25rem);
  padding: 0.3rem 0.625rem;
  border-radius: 0.5rem;
  background: var(--avie-text);
  color: #fff;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.15s, transform 0.15s;
  z-index: 5;
}
.avie-menu__tag:hover::after,
.avie-menu__tag:focus-visible::after {
  opacity: 1;
  transform: translate(-50%, 0);
}
.avie-menu__tag:focus-visible { outline: 2px solid var(--avie-coral); outline-offset: 2px; }

/* Origine du plat, collée au nom. */
.avie-menu__origin {
  display: inline-block;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--avie-text-muted);
  border: 1px solid var(--avie-border);
  border-radius: 9999px;
  padding: 0.125rem 0.5rem;
  line-height: 1.4;
}

/* Bloc « Sur commande » : même format de lignes, dans un encart chaud
   qui le sépare de la carte du jour. */
.avie-menu__on-order {
  max-width: 56rem;
  margin: 3rem auto 0;
  padding: 1.75rem 2rem 2rem;
  background: var(--avie-warm);
  border-radius: var(--avie-radius);
}

.avie-menu__on-order-head {
  display: flex;
  align-items: flex-start;
  gap: 0.875rem;
  margin-bottom: 1.5rem;
}

.avie-menu__on-order-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: var(--avie-yellow);
  color: #fff;
  flex-shrink: 0;
}

.avie-menu__on-order-title {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 1.125rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--avie-text);
  margin: 0;
}

.avie-menu__on-order-text {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.875rem;
  color: var(--avie-text-muted);
  margin: 0.2rem 0 0;
}

.avie-menu__on-order-items {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem 4rem;
}
.avie-menu__on-order-items .avie-menu__item { margin-bottom: 0; }

/* Sous-titre dans la liste « Sur commande » (ligne commençant par ##). */
.avie-menu__on-order-group {
  grid-column: 1 / -1;
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 0.9375rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--avie-yellow);
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--avie-yellow);
  margin-top: 0.75rem;
}
.avie-menu__on-order-group:first-child { margin-top: 0; }

/* Sous-titre de continent dans la liste « Sur commande » (ligne « # »). */
.avie-menu__on-order-subgroup {
  grid-column: 1 / -1;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--avie-berry);
  margin: 0.75rem 0 -0.25rem;
}
.avie-menu__on-order-group + .avie-menu__on-order-subgroup { margin-top: 0.25rem; }

/* Plats de même prix sur une seule ligne : prix à gauche, noms à la suite. */
.avie-menu__pricegroup {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 0.875rem;
  padding-bottom: 0.625rem;
  border-bottom: 1px solid color-mix(in srgb, var(--avie-text) 8%, transparent);
}
.avie-menu__pricegroup:last-child { border-bottom: 0; }
.avie-menu__pricegroup-price {
  flex: 0 0 auto;
  min-width: 6.5rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 700;
  font-size: 0.9375rem;
  color: var(--avie-coral);
}
.avie-menu__pricegroup-names {
  flex: 1 1 18rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.9375rem;
  line-height: 1.7;
  color: var(--avie-text);
}
.avie-menu__pricegroup-desc { color: var(--avie-text-muted); font-size: 0.8125rem; }
.avie-menu__pricegroup-origin {
  display: inline-block;
  margin-left: 0.25rem;
  padding: 0.1rem 0.5rem;
  border-radius: 9999px;
  background: color-mix(in srgb, var(--avie-berry) 10%, transparent);
  color: var(--avie-berry);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
}
.avie-menu__pricegroup-ask  { color: var(--avie-text-muted); font-weight: 500; font-size: 0.8125rem; }
.avie-menu__pricegroup-sep  { color: var(--avie-yellow); font-weight: 700; }

@media (max-width: 600px) {
  .avie-menu__pricegroup { gap: 0.125rem; }
  .avie-menu__pricegroup-price { min-width: 100%; }
}


@media (max-width: 767px) {
  .avie-menu__grid--2 { grid-template-columns: 1fr; gap: 2.5rem; }
  .avie-menu__on-order { padding: 1.5rem 1.25rem; }
  .avie-menu__on-order-items { grid-template-columns: 1fr; }
}

/* ------------------------------------------------------------
   53. FICHE LIEU — deux colonnes + avis Google
   ------------------------------------------------------------ */

/* Contenu à gauche, informations pratiques à droite (collantes). */
#fiche-cols > .e-con-inner,
#fiche-cols.e-con > .e-con-inner {
  display: grid;
  grid-template-columns: 1.65fr 1fr;
  gap: 3rem;
  align-items: start;
}

#fiche-cols .avie-contact-info,
#fiche-cols .avie-engagements,
#fiche-cols .avie-menu { padding-top: 0 !important; padding-bottom: 0 !important; }

#fiche-cols .avie-contact-info { position: sticky; top: 7rem; }
#fiche-cols .avie-contact-info__header { text-align: left; margin-bottom: 1.5rem; }
#fiche-cols .avie-contact-info__grid { grid-template-columns: 1fr; }
/* Le carré jaune est dessiné pour la grille de la page Contact : dans la
   colonne latérale d'une fiche, il déborde de la carte. */
#fiche-cols .avie-contact-info__grid::before { display: none; }
#fiche-cols .avie-engagements__grid { grid-template-columns: 1fr; gap: 2rem; }

@media (max-width: 991px) {
  #fiche-cols > .e-con-inner,
  #fiche-cols.e-con > .e-con-inner { grid-template-columns: 1fr; gap: 2.5rem; }
  #fiche-cols .avie-contact-info { position: static; }
}

/* ---- Avis Google ---- */
.avie-avis { background: #fff; }
.avie-avis__header { text-align: center; margin-bottom: 2.5rem; }

.avie-avis__eyebrow {
  display: block;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--avie-coral);
  margin-bottom: 0.75rem;
}

.avie-avis__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  color: var(--avie-text);
  margin: 0 0 1rem;
}

.avie-avis__score {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  padding: 0.5rem 1.125rem;
  border: 1px solid var(--avie-border);
  border-radius: 9999px;
}

.avie-avis__score-value {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 1.25rem;
  color: var(--avie-text);
}

.avie-avis__stars {
  display: inline-flex;
  gap: 0.1rem;
  color: var(--avie-yellow);
}

.avie-avis__count {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.8125rem;
  color: var(--avie-text-muted);
}

.avie-avis__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.avie-avis__card {
  margin: 0;
  background: #fff;
  border: 1px solid var(--avie-border);
  border-radius: var(--avie-radius);
  padding: 1.5rem;
  box-shadow: var(--avie-shadow);
}

.avie-avis__text {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.9375rem;
  line-height: 1.7;
  color: var(--avie-text-muted);
  margin: 0.75rem 0 1rem;
  font-style: italic;
}

.avie-avis__author {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 0.9375rem;
  color: var(--avie-text);
}

.avie-avis__date {
  display: block;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 400;
  font-size: 0.75rem;
  color: var(--avie-text-muted);
  margin-top: 0.15rem;
}

.avie-avis__cta { text-align: center; margin: 2rem 0 0; }

@media (max-width: 900px) {
  .avie-avis__grid { grid-template-columns: 1fr; }
}

/* ------------------------------------------------------------
   54. FICHE LIEU — présentation + informations pratiques
   Colonne de gauche : texte et liste d'atouts sur deux colonnes,
   icônes fines. Colonne de droite : carte d'informations.
   ------------------------------------------------------------ */
/* Étiquette et pictos en coral du design system par défaut. */
.avie-lieu-pres { --lieu-accent: var(--avie-coral); }

.avie-lieu-pres__eyebrow {
  display: block;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--lieu-accent);
  margin-bottom: 0.75rem;
}

.avie-lieu-pres__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: clamp(1.625rem, 3.5vw, 2.25rem);
  line-height: 1.2;
  color: var(--avie-text);
  margin: 0 0 1.25rem;
}

.avie-lieu-pres__text {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1rem;
  line-height: 1.75;
  color: var(--avie-text-muted);
}
.avie-lieu-pres__text p { margin: 0 0 1rem; }
.avie-lieu-pres__text p:last-child { margin-bottom: 0; }

.avie-lieu-pres__accent { color: var(--avie-yellow); }

/* Boutons d'accès rapide : style des boutons du « Titre de page » clair,
   alignés sur la colonne de texte. */
body .avie-lieu-pres__pills { justify-content: flex-start; margin-top: 2.25rem; }

.avie-lieu-pres__features-title {
  font-family: 'Outfit', sans-serif;
  font-weight: 800;
  font-size: 1.125rem;
  color: var(--avie-text);
  margin: 2rem 0 1.25rem;
}

.avie-lieu-pres__features {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1.25rem 2rem;
}
.avie-lieu-pres__features--2 { grid-template-columns: repeat(2, 1fr); }
.avie-lieu-pres__features--1 { grid-template-columns: 1fr; }

.avie-lieu-pres__feature {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--avie-text-muted);
}

.avie-lieu-pres__icon {
  flex-shrink: 0;
  color: var(--lieu-accent);
  margin-top: 0.15rem;
}

.avie-lieu-pres__feature-text a {
  color: var(--lieu-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ---- Carte d'informations ---- */
.avie-lieu-infos { --lieu-accent: var(--avie-coral); }

/* Le titre est désormais dans la carte. */
.avie-lieu-infos__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 800;
  font-size: 1.125rem;
  color: var(--avie-text);
  margin: 0 0 1.5rem;
}

.avie-lieu-infos__card {
  background: #fff;
  border: 1px solid var(--avie-border);
  border-radius: var(--avie-radius);
  padding: 1.75rem;
  box-shadow: var(--avie-shadow);
}

.avie-lieu-infos__list {
  list-style: none;
  margin: 0 0 1.5rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.avie-lieu-infos__row {
  display: flex;
  align-items: flex-start;
  gap: 0.875rem;
}

.avie-lieu-infos__icon {
  flex-shrink: 0;
  color: var(--lieu-accent);
  margin-top: 0.15rem;
}

.avie-lieu-infos__label {
  display: block;
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 0.9375rem;
  color: var(--avie-text);
  margin-bottom: 0.15rem;
}

.avie-lieu-infos__value {
  display: block;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--avie-text-muted);
}
.avie-lieu-infos__value a { color: inherit; text-decoration: none; }
.avie-lieu-infos__value a:hover { color: var(--lieu-accent); }

.avie-lieu-infos__ctas {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
.avie-lieu-infos__ctas .avie-btn {
  width: 100%;
  justify-content: center;
}

@media (max-width: 767px) {
  .avie-lieu-pres__features--2 { grid-template-columns: 1fr; }
}

/* ------------------------------------------------------------
   55. AVANT / APRÈS — version claire
   Le bloc était dessiné pour un fond vert profond (textes blancs).
   Sur fond clair, on repasse sur les couleurs de texte du DS.
   ------------------------------------------------------------ */
.avie-before-after { background: var(--avie-green-pale); }

.avie-before-after__eyebrow { color: var(--avie-coral); }
.avie-before-after__title { color: var(--avie-text); }
.avie-before-after__subtitle { color: var(--avie-text-muted); }

.avie-before-after__col {
  background: #fff;
  border: 1px solid var(--avie-border);
  box-shadow: var(--avie-shadow);
}
.avie-before-after__col--after {
  background: #fff;
  border-color: color-mix(in srgb, var(--avie-green-deep) 25%, transparent);
}

.avie-before-after__col-title { color: var(--avie-text); }
.avie-before-after__item { color: var(--avie-text-muted); }

.avie-before-after__col-icon--before {
  background: color-mix(in srgb, var(--avie-coral) 12%, transparent);
  color: var(--avie-coral);
}
.avie-before-after__col-icon--after {
  background: color-mix(in srgb, var(--avie-green-deep) 12%, transparent);
  color: var(--avie-green-deep);
}

.avie-before-after__item--before .avie-before-after__item-icon { color: var(--avie-coral); }
.avie-before-after__item--after .avie-before-after__item-icon { color: var(--avie-green-deep); }

.avie-before-after__vs { color: var(--avie-yellow); }


/* Repère d'administration du bloc Avis Google (invisible pour les visiteurs). */
.avie-avis--empty {
  padding: 1.25rem 0;
  background: var(--avie-warm);
}
.avie-avis--empty p {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.8125rem;
  color: var(--avie-text-muted);
  text-align: center;
  margin: 0;
}

/* ------------------------------------------------------------
   56. NOS LIEUX — grille sur une ligne
   Quatre cartes de front : visuel plus court et textes resserrés
   pour rester lisibles.
   ------------------------------------------------------------ */
.avie-lieux-grid__grid { grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }

.avie-lieux-grid__img-wrap { height: 9.5rem; }

.avie-lieux-grid__body { padding: 1.25rem 1.25rem 1.5rem; }

.avie-lieux-grid__name { font-size: 1rem; }
.avie-lieux-grid__desc { font-size: 0.8125rem; line-height: 1.6; }

@media (max-width: 1100px) {
  .avie-lieux-grid__grid { grid-template-columns: repeat(2, 1fr); }
  .avie-lieux-grid__img-wrap { height: 11rem; }
}
@media (max-width: 600px) {
  .avie-lieux-grid__grid { grid-template-columns: 1fr; }
}

/* ------------------------------------------------------------
   57. MENU — sous-menu (un niveau)
   Le header passe d'un bandeau à une capsule au défilement : le
   panneau doit fonctionner dans les deux états, donc il est posé
   sous le lien parent, sans dépendre du fond du header.
   ------------------------------------------------------------ */
.avie-nav__item { position: relative; display: flex; }

.avie-nav__submenu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(0.35rem);
  /* Largeur calée sur le plus long intitulé : chaque lien tient sur une
     seule ligne, sans largeur fixe. */
  width: max-content;
  max-width: min(22rem, 90vw);
  margin: 0;
  padding: 0.5rem;
  list-style: none;
  background: #fff;
  border: 1px solid var(--avie-border);
  border-radius: var(--avie-radius);
  box-shadow: var(--avie-shadow-lg);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
  z-index: 10;
}

/* Zone tampon : le curseur traverse l'espace entre le lien et le panneau
   sans que le sous-menu se referme. */
.avie-nav__item--parent::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  height: 0.75rem;
}

.avie-nav__item--parent:hover .avie-nav__submenu,
.avie-nav__item--parent:focus-within .avie-nav__submenu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0.15rem);
}

.avie-nav__subitem { display: block; }

.avie-nav__sublink {
  display: block;
  padding: 0.625rem 0.875rem;
  border-radius: 0.75rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--avie-text);
  white-space: nowrap;
  text-decoration: none !important;
  transition: background-color 0.2s, color 0.2s;
}
/* Surlignement orange au survol et sur la page courante.
   Contraste texte sur fond : 5,56:1, au-delà du seuil AA de 4,5:1. */
.avie-nav__sublink:hover,
.avie-nav__sublink:focus-visible,
.avie-nav__sublink.is-active {
  background: var(--avie-orange-pale);
  color: var(--avie-coral-deep) !important;
}

/* Le parent garde sa barrette quand une fiche enfant est ouverte : c'est
   déjà le cas via current-menu-ancestor. */

/* ---- Mobile : sous-liste indentée, toujours dépliée ---- */
.avie-mobile-nav__sublist {
  list-style: none;
  margin: 0 0 0.5rem;
  padding: 0 0 0 1.75rem;
}

.avie-mobile-nav__sublink {
  display: block;
  position: relative;
  padding: 0.5rem 1rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--avie-text-muted);
  text-decoration: none;
}
.avie-mobile-nav__sublink.is-active,
.avie-mobile-nav__sublink:hover {
  color: var(--avie-coral-deep);
  background: var(--avie-orange-pale);
  border-radius: 0.625rem;
}

/* Bouton de la mission (Qui sommes-nous) : espacement sorti de l'attribut style. */
.avie-about-mission__cta { margin-top: 2rem; }

/* ------------------------------------------------------------
   CARTES À ICÔNES + ENCART (widget-icon-cards)
   Section Particuliers du Portage de repas : en-tête centré, cartes
   blanches sur fond vert pâle, icônes blanches sur fonds pleins (comme
   « Pourquoi nous choisir » sur l'accueil). Le bloc photo + texte n'a pas
   de cadre : la photo est portée par un carré coral (haut gauche) et un
   rond jaune (bas droite), pour ne pas copier la composition des sections
   image + texte de la page (rond framboise, rectangle jaune).
   ------------------------------------------------------------ */
.avie-icon-cards { background: var(--avie-green-pale); overflow-x: clip; }

.avie-icon-cards__header {
  text-align: center;
  max-width: 44rem;
  margin: 0 auto 3rem;
}

.avie-icon-cards__eyebrow {
  display: block;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--avie-coral);
  margin-bottom: 0.75rem;
}

.avie-icon-cards__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  line-height: 1.15;
  color: var(--avie-text);
  margin: 0;
}
.avie-icon-cards__accent { color: var(--avie-yellow); }

.avie-icon-cards__intro {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--avie-text-muted);
  margin: 1rem 0 0;
}

.avie-icon-cards__grid {
  display: grid;
  gap: 1.5rem;
}
.avie-icon-cards__grid--2 { grid-template-columns: repeat(2, 1fr); }
.avie-icon-cards__grid--3 { grid-template-columns: repeat(3, 1fr); }
.avie-icon-cards__grid--4 { grid-template-columns: repeat(4, 1fr); }

.avie-icon-cards__card {
  background: #fff;
  border: 1px solid var(--avie-border);
  border-radius: var(--avie-radius);
  box-shadow: var(--avie-shadow);
  padding: 1.75rem 1.5rem;
}

.avie-icon-cards__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 12px;
  color: #fff;
  margin-bottom: 1.25rem;
}
.avie-icon-cards__icon--yellow { background: var(--avie-yellow); }
.avie-icon-cards__icon--coral  { background: var(--avie-coral); }
.avie-icon-cards__icon--berry  { background: hsl(338, 45%, 42%); }
.avie-icon-cards__icon--green  { background: var(--avie-green); }

.avie-icon-cards__card-title {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 1.125rem;
  line-height: 1.3;
  color: var(--avie-text);
  margin: 0 0 0.5rem;
}

.avie-icon-cards__card-text {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--avie-text-muted);
  margin: 0;
}

/* Bloc photo + texte, sans cadre */
.avie-icon-cards__band {
  display: grid;
  grid-template-columns: 5fr 7fr;
  gap: 4.5rem;
  align-items: center;
  margin-top: 5rem;
}
.avie-icon-cards__band--no-img { grid-template-columns: 1fr; max-width: 44rem; }

.avie-icon-cards__band-img { position: relative; }
body .avie-icon-cards__band-img img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center 25%;
  border-radius: 7rem 1.5rem 7rem 1.5rem;
  box-shadow: var(--avie-shadow-lg);
}

.avie-icon-cards__band-img::before,
.avie-icon-cards__band-img::after {
  content: '';
  position: absolute;
  z-index: 0;
  transition: transform 0.4s ease;
}
.avie-icon-cards__band-img::before {
  top: -1.75rem;
  left: -1.75rem;
  width: 7rem;
  height: 7rem;
  border-radius: 1rem 2.25rem 1rem 1rem;
  background: var(--avie-coral);
}
.avie-icon-cards__band-img::after {
  right: -2rem;
  bottom: -2rem;
  width: 8rem;
  height: 8rem;
  border-radius: 50%;
  background: var(--avie-yellow);
}
.avie-icon-cards__band-img:hover::before { transform: rotate(-4deg) scale(1.05); }
.avie-icon-cards__band-img:hover::after  { transform: scale(1.06); }

.avie-icon-cards__band-title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: clamp(1.5rem, 3vw, 2rem);
  line-height: 1.2;
  color: var(--avie-text);
  margin: 0 0 1rem;
}

.avie-icon-cards__band-text {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1rem;
  line-height: 1.75;
  color: var(--avie-text-muted);
  margin: 0;
}

.avie-icon-cards__band-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.75rem;
}

@media (max-width: 1100px) {
  .avie-icon-cards__grid--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 860px) {
  .avie-icon-cards__grid--3 { grid-template-columns: repeat(2, 1fr); }
  .avie-icon-cards__band { grid-template-columns: 1fr; gap: 3rem; margin-top: 4rem; }
  .avie-icon-cards__band-img { max-width: 32rem; margin: 0 1rem; }
}
@media (max-width: 560px) {
  .avie-icon-cards__grid--2,
  .avie-icon-cards__grid--3,
  .avie-icon-cards__grid--4 { grid-template-columns: 1fr; }
  .avie-icon-cards__band-img::before { width: 5rem; height: 5rem; top: -1rem; left: -1rem; }
  .avie-icon-cards__band-img::after  { width: 5.5rem; height: 5.5rem; right: -1rem; bottom: -1rem; }
  body .avie-icon-cards__band-img img { border-radius: 4rem 1.25rem 4rem 1.25rem; }
  .avie-icon-cards__band-btns .avie-btn { white-space: normal; }
}

/* ------------------------------------------------------------
   ZONES DESSERVIES (widget-zones)
   Texte à gauche, cartes par département à droite. Pastille du numéro
   de département en couleur pleine, communes en étiquettes avec
   épingle. Carré framboise derrière le bas gauche de la pile de cartes.
   ------------------------------------------------------------ */
.avie-zones { background: #fff; overflow-x: clip; }

.avie-zones__grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 4rem;
  align-items: center;
}

.avie-zones__eyebrow {
  display: block;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--avie-coral);
  margin-bottom: 0.75rem;
}

.avie-zones__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: clamp(1.625rem, 3vw, 2.25rem);
  line-height: 1.15;
  color: var(--avie-text);
  margin: 0 0 1.25rem;
}
.avie-zones__accent { color: var(--avie-yellow); }

.avie-zones__body {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1rem;
  line-height: 1.75;
  color: var(--avie-text-muted);
}
.avie-zones__body p { margin: 0 0 0.875rem; }
.avie-zones__body p:last-child { margin-bottom: 0; }
.avie-zones__body h3 {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 1.125rem;
  color: var(--avie-text);
  margin: 1.5rem 0 0.375rem;
  padding-left: 0.875rem;
  border-left: 4px solid var(--avie-yellow);
}

.avie-zones__btn { margin-top: 1.75rem; }

.avie-zones__cards {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.avie-zones__cards::before {
  content: '';
  position: absolute;
  z-index: 0;
  left: -2rem;
  bottom: -2rem;
  width: 7rem;
  height: 7rem;
  border-radius: 1rem 1rem 1rem 2.25rem;
  background: var(--avie-berry);
}

.avie-zones__card {
  position: relative;
  z-index: 1;
  background: var(--avie-bg);
  border: 1px solid var(--avie-border);
  border-radius: var(--avie-radius);
  box-shadow: var(--avie-shadow-lg);
  padding: 1.5rem 1.75rem 1.75rem;
}

.avie-zones__card-head {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.125rem;
}

.avie-zones__code {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 1rem;
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 1.25rem;
  color: #fff;
}
.avie-zones__code--green { background: var(--avie-green); }
.avie-zones__code--coral { background: var(--avie-coral); }
.avie-zones__code--berry { background: var(--avie-berry); }

.avie-zones__name {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 1.25rem;
  color: var(--avie-text);
  margin: 0;
}

.avie-zones__detail {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.875rem;
  color: var(--avie-text-muted);
  margin: 0.125rem 0 0;
}

.avie-zones__cities {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
}
.avie-zones__cities li {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  background: #fff;
  border: 1px solid var(--avie-border);
  border-radius: 9999px;
  padding: 0.3rem 0.75rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--avie-text);
}
.avie-zones__cities svg { color: var(--avie-coral); }

@media (max-width: 991px) {
  .avie-zones__grid { grid-template-columns: 1fr; gap: 3rem; }
}
@media (max-width: 560px) {
  .avie-zones__card { padding: 1.25rem; }
  .avie-zones__cards::before { width: 5rem; height: 5rem; left: -1rem; bottom: -1rem; }
}

/* ------------------------------------------------------------
   GALERIE PHOTO (widget avie-galerie)
   ------------------------------------------------------------
   Mosaïque 4 colonnes, 2 sur mobile. En-tête centré comme celui de
   la carte. Formes : rectangle arrondi corail derrière le coin haut
   gauche, rond jaune derrière le coin bas droit (la carte, juste à
   côté, utilise framboise + jaune sur les bords de section).
   ------------------------------------------------------------ */
.avie-galerie { padding: 4rem 0; overflow-x: clip; }

.avie-galerie__header { text-align: center; margin-bottom: 3rem; }

.avie-galerie__eyebrow {
  display: block;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--avie-coral);
  margin-bottom: 0.75rem;
}

.avie-galerie__title {
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  color: var(--avie-text);
  margin: 0 0 0.75rem;
}
.avie-galerie__accent { color: var(--avie-yellow); }

.avie-galerie__intro {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1rem;
  line-height: 1.65;
  color: var(--avie-text-muted);
  max-width: 40rem;
  margin: 0 auto;
}

.avie-galerie__frame { position: relative; isolation: isolate; }

.avie-galerie--shapes .avie-galerie__frame::before,
.avie-galerie--shapes .avie-galerie__frame::after {
  content: "";
  position: absolute;
  z-index: -1;
  pointer-events: none;
}
.avie-galerie--shapes .avie-galerie__frame::before {
  top: -1.75rem;
  left: -1.75rem;
  width: 10rem;
  height: 7rem;
  border-radius: 1.5rem;
  background: var(--avie-coral);
}
.avie-galerie--shapes .avie-galerie__frame::after {
  right: -2rem;
  bottom: -2rem;
  width: 8rem;
  height: 8rem;
  border-radius: 50%;
  background: var(--avie-yellow);
}

.avie-galerie__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 14rem;
  grid-auto-flow: dense;
  gap: 1rem;
}
.avie-galerie__item { margin: 0; position: relative; min-width: 0; }
.avie-galerie__item--large { grid-column: span 2; grid-row: span 2; }
.avie-galerie__item--wide  { grid-column: span 2; }
.avie-galerie__item--tall  { grid-row: span 2; }

.avie-galerie__link,
.avie-galerie__placeholder {
  display: block;
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: var(--avie-radius);
  overflow: hidden;
  box-shadow: var(--avie-shadow);
}

body .avie-galerie .avie-galerie__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
  transition: transform 0.5s ease;
}
body .avie-galerie__link:hover .avie-galerie__img { transform: scale(1.04); }
.avie-galerie__link:focus-visible { outline: 3px solid var(--avie-coral); outline-offset: 3px; }

.avie-galerie__caption {
  position: absolute;
  left: 0.875rem;
  bottom: 0.875rem;
  padding: 0.375rem 0.875rem;
  border-radius: 9999px;
  background: #fff;
  color: var(--avie-text);
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.3;
  box-shadow: var(--avie-shadow);
}

/* Emplacement sans photo : visible en administration seulement. */
.avie-galerie__placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: var(--avie-warm);
  border: 2px dashed var(--avie-warm-deep);
  box-shadow: none;
  color: var(--avie-text-muted);
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.8125rem;
  font-weight: 600;
}

@media (max-width: 767px) {
  .avie-galerie__grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 10rem; gap: 0.75rem; }
  .avie-galerie--shapes .avie-galerie__frame::before { top: -1rem; left: -1rem; width: 6rem; height: 4.5rem; }
  .avie-galerie--shapes .avie-galerie__frame::after  { right: -1rem; bottom: -1rem; width: 5rem; height: 5rem; }
}

/* ------------------------------------------------------------
   CARTE + TEXTE (widget carte, disposition « split »)
   ------------------------------------------------------------
   La carte prend la place de la photo de « Intro : Image + Texte » :
   même feuille (grands arrondis haut-droit / bas-gauche), mêmes formes
   derrière (rond framboise, rectangle jaune). */
body .avie-leaflet--split .avie-service-intro__img .avie-leaflet__canvas {
  position: relative;
  z-index: 1;
  height: auto;
  aspect-ratio: 4 / 3;
  border: 0;
  border-radius: 1.5rem 7rem 1.5rem 7rem;
  box-shadow: var(--avie-shadow-lg);
}
/* Les calques internes de Leaflet élargiraient la colonne de la grille
   (débordement sur mobile) : la colonne peut rétrécir sous leur largeur. */
.avie-leaflet--split .avie-service-intro__grid > * { min-width: 0; }

/* Bouton sous la carte (« Réserver une table »). */
.avie-menu__cta { display: flex; justify-content: center; margin-top: 3rem; }

/* Bloc « Sur commande » repliable.
   Fermé, il laisse voir le début de la liste (environ deux lignes), qui
   s'efface vers le bas par un masque en dégradé. Le bouton porte le titre,
   le texte et le chevron. */
.avie-menu__on-order--toggle .avie-menu__on-order-head {
  display: flex;
  align-items: flex-start;
  gap: 0.875rem;
  width: 100%;
  margin: 0 0 1.25rem;
  padding: 0;
  background: none;
  border: 0;
  text-align: left;
  font: inherit;
  color: inherit;
  cursor: pointer;
}
.avie-menu__on-order--toggle .avie-menu__on-order-head:focus-visible {
  outline: 3px solid var(--avie-coral);
  outline-offset: 6px;
  border-radius: var(--avie-radius);
}

.avie-menu__on-order-chevron {
  margin-left: auto;
  display: flex;
  align-items: center;
  color: var(--avie-coral);
  transition: transform 0.25s ease;
}
.avie-menu__on-order--toggle.is-collapsed .avie-menu__on-order-chevron { transform: rotate(0deg); }
.avie-menu__on-order--toggle:not(.is-collapsed) .avie-menu__on-order-chevron { transform: rotate(180deg); }

.avie-menu__on-order--toggle .avie-menu__on-order-items {
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.avie-menu__on-order--toggle.is-collapsed .avie-menu__on-order-items {
  max-height: 3.25rem; /* le nom du premier plat et le début de sa description */
  -webkit-mask-image: linear-gradient(to bottom, #000 35%, transparent 100%);
          mask-image: linear-gradient(to bottom, #000 35%, transparent 100%);
}

/* Mention des régimes et allergies, en italique sous l'introduction de la carte. */
.avie-menu__intro em { font-size: 0.8125rem; line-height: 1.6; display: inline-block; }

/* ------------------------------------------------------------
   CORRECTIONS MOBILE (8 octobre 2026)
   ------------------------------------------------------------ */

/* Header collé, en mode burger (sous 1200 px) : il reste un bandeau blanc
   pleine largeur. La capsule arrondie est réservée au menu complet. */
@media (max-width: 1199px) {
  .avie-header.is-scrolled {
    background: #fff;
    padding: 0;
    box-shadow: 0 1px 0 var(--avie-border), 0 8px 20px -14px hsl(160 40% 12% / 0.35);
  }
  .avie-header.is-scrolled .avie-header__inner {
    background: transparent;
    border-color: transparent;
    border-radius: 0;
    box-shadow: none;
    padding: 0.625rem 0;
  }

  /* Menu mobile plein écran : il occupe tout l'espace sous le header
     (position calculée par header.js dans --avie-nav-top) et défile
     indépendamment de la page, y compris sur Android. */
  .avie-mobile-nav {
    position: fixed;
    top: var(--avie-nav-top, 4.5rem);
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 99;
    margin: 0;
    padding: 1rem 1.5rem calc(2.5rem + env(safe-area-inset-bottom, 0px));
    background: #fff;
    border: 0;
    border-top: 1px solid var(--avie-border);
    border-radius: 0;
    box-shadow: none;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
  .avie-mobile-nav__link,
  .avie-mobile-nav__link:visited { font-size: 1.125rem; padding: 0.875rem 0.5rem; }
  .avie-mobile-nav__link::after { left: 0.5rem; }
  .avie-mobile-nav__sublist { padding-left: 1rem; }
}

/* Page figée pendant que le menu mobile est ouvert. Sur <body> seulement :
   la valeur remonte alors à la fenêtre. Bloquer aussi <html> ferait de
   <body> une zone de défilement, et le header (sticky) quitterait l'écran
   avec son bouton de fermeture. */
html.avie-menu-open body { overflow: hidden; }

/* Blocs sans gouttière propre : posés dans un conteneur Elementor sans
   marge intérieure (contenu limité à 1140 px), ils touchaient les bords de
   l'écran sous 1200 px. */
@media (max-width: 1199px) {
  .avie-lieu-pres,
  .avie-lieu-infos {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}
/* Fond pleine largeur : la gouttière se met à l'intérieur du bloc. Sans
   effet sur grand écran, où la grille (960 px) est déjà centrée. */
.avie-testimonials {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

/* « Pourquoi nous choisir » : les variantes 2 et 3 cartes imposaient leurs
   colonnes jusque sur mobile (carte hors écran). */
@media (max-width: 560px) {
  .avie-why__grid--2,
  .avie-why__grid--3 { grid-template-columns: 1fr !important; }

  /* Bandeau de chiffres « largeur du wrapper » : sur mobile il passe en
     pleine largeur comme le bandeau classique, sans décalage à droite. */
  .avie-stats-strip--wrapper { width: auto; }
}

/* Tableaux des pages de texte (mentions, confidentialité) : défilement
   horizontal sur mobile, comme dans les articles. */
.avie-page-texte__inner table {
  display: block;
  overflow-x: auto;
  max-width: 100%;
}
@media (min-width: 700px) {
  .avie-page-texte__inner table { display: table; }
}

/* Bandeau de chiffres sur 2 colonnes avec un nombre impair de chiffres :
   le dernier, seul sur sa ligne, est centré (largeur d'une colonne). */
@media (max-width: 768px) {
  .avie-stats-strip--5 .avie-stats-strip__item:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    justify-self: center;
    width: calc(50% - 1rem);
  }
}
@media (max-width: 560px) {
  .avie-stats-strip__item:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    justify-self: center;
    width: calc(50% - 1rem);
  }
  .avie-stats-strip--tiles .avie-stats-strip__item:last-child:nth-child(odd) { width: calc(50% - 0.625rem); }
}

/* Conteneurs Elementor pleine largeur de premier niveau : Elementor leur
   donne 10 px de marge intérieure par défaut. Les blocs ont leur propre
   gouttière (24 px) ; ces 10 px décollaient les fonds du bord de l'écran et
   coupaient net les formes décoratives (overflow: clip) à 10 px du bord.
   !important : Elementor pose cette marge par élément, avec un sélecteur
   plus spécifique. Valeurs vérifiées le 9 octobre 2026 : 0 ou 10 px partout. */
.elementor > .e-con-full {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
