body #page-container .et_pb_section.ah-cta,
body .et_pb_section.ah-cta,
.et_pb_section.ah-cta {
  --cta-fond: #4c250a;
  --cta-creme: #ffffff;
  --cta-chocolat: #4c250a;
  --cta-courbe: cubic-bezier(.16, 1, .3, 1);
  --cta-air-x: var(--ah-marge-site, max(4vw, calc((100vw - 1380px) / 2)));
  --cta-air-y: clamp(56px, 6.4vw, 88px);
  --cta-titre: clamp(28px, 3.2vw, 44px);
  --cta-texte: 20.8px; /* 16 px + 30 %, ordinateur */
  /* Même diamètre que les disques flottants : le mot « contact »
     tourne autour, le disque reste dans le bandeau. */
  --cta-disque: clamp(104px, 9.5vw, 136px);
  --cta-ecart: clamp(26px, 4vw, 58px);
  --cta-filet: 10px;
  --cta-lien: clamp(20px, 2.1vw, 30px);
  --cta-bas: var(--cta-air-y);
  --cta-photo: clamp(300px, 38vw, 620px);

  position: relative !important;
  isolation: isolate;
  box-sizing: border-box;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) var(--cta-photo);
  align-items: stretch;
  margin: 0 !important;
  padding: 0 !important;
  text-align: left !important;
  background-color: var(--cta-fond) !important;
  background-image: none !important;
  overflow: hidden !important;
  min-height: 0 !important;
  border: 0 !important;
}

.et_pb_section.ah-avis ~ .et_pb_section.ah-cta,
.et_pb_section.ah-cta ~ .et_pb_section.ah-footer {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

.et_pb_section.ah-cta > .et_pb_row,
.et_pb_section.ah-cta > .ah-cta__corps {
  position: relative !important;
  grid-column: 1;
  grid-row: 1;
  align-self: stretch;
  overflow: visible;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  min-height: 520px;
  padding: var(--cta-air-y) clamp(32px, 4vw, 80px) var(--cta-bas) var(--cta-air-x) !important;
  background-color: var(--cta-fond) !important;
  background-image: none !important;
}
/* Photo à ras des bords : toute la hauteur de la section, sans bandeau. */
.et_pb_section.ah-cta > .ah-cta__photo {
  grid-column: 2;
  grid-row: 1;
  position: relative;
  z-index: 0;
  overflow: hidden;
  align-self: stretch;
  min-height: 520px;
}
.et_pb_section.ah-cta > .ah-cta__photo > img:not(.ah-cta-logo) {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 28%;
  display: block;
}
.et_pb_section.ah-cta .et_pb_column,
.et_pb_section.ah-cta .et_pb_text,
.et_pb_section.ah-cta .et_pb_code,
.et_pb_section.ah-cta .et_pb_code_inner,
.et_pb_section.ah-cta .et_pb_text_inner {
  position: static !important;
  overflow: visible !important;
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background-color: var(--cta-fond) !important;
  background-image: none !important;
  text-align: left !important;
}

/* Le texte s'étale : plus de colonne étroite, il s'arrête juste avant
   le sigle de fond. */
.et_pb_section.ah-cta .ah-cta__titre,
.et_pb_section.ah-cta .ah-cta__texte {
  position: relative !important;
  z-index: 1;
  display: block !important;
  width: 100% !important;
  max-width: min(100%, 64rem) !important;
  text-align: left !important;
}

/* Plus de sigle sur la photo. */
.et_pb_section.ah-cta .ah-cta-logo {
  display: none !important;
}

.et_pb_section.ah-cta .ah-cta__titre::before {
  content: "";
  display: block;
  width: 21px;
  height: 21px;
  margin: 0 0 18px;
  border-radius: 50%;
  background: var(--ah-terre, #b07030);
}

body #page-container .et_pb_section.ah-cta .ah-cta__titre,
body #page-container .et_pb_section.ah-cta .ah-cta__titre p,
body #page-container .et_pb_section.ah-cta .ah-cta__titre h1,
body #page-container .et_pb_section.ah-cta .ah-cta__titre h2,
body #page-container .et_pb_section.ah-cta .ah-cta__titre .ah-cta__l1,
body #page-container .et_pb_section.ah-cta .ah-cta__titre .ah-cta__l2 {
  margin: 0 !important;
  padding: 0 !important;
  color: #ffffff !important;
  font-size: var(--cta-titre) !important;
  font-weight: 700 !important;
  line-height: 1.12 !important;
  letter-spacing: -0.03em !important;
  text-align: left !important;
  text-transform: none !important;
}
body #page-container .et_pb_section.ah-cta .ah-cta__titre .ah-cta__l1,
body #page-container .et_pb_section.ah-cta .ah-cta__titre .ah-cta__l2 {
  display: block !important;
}
/* Comme les autres titres : seconde ligne en tan. La première reste
   blanche, l'encre se perdrait sur le chocolat. */
body #page-container .et_pb_section.ah-cta .ah-cta__titre .ah-cta__l2,
body #page-container .et_pb_section.ah-cta .ah-cta__titre p + p {
  color: var(--ah-tan, #a87d43) !important;
  -webkit-text-fill-color: var(--ah-tan, #a87d43) !important;
}

.et_pb_section.ah-cta .ah-cta__texte {
  margin-top: clamp(20px, 2.2vw, 32px) !important;
}
body #page-container .et_pb_section.ah-cta .ah-cta__texte p {
  margin: 0 0 1em !important;
  padding: 0 !important;
  color: var(--cta-creme) !important;
  font-size: var(--cta-texte) !important;
  font-weight: 400 !important;
  line-height: 1.65 !important;
  letter-spacing: 0.01em;
  text-align: left !important;
  text-transform: none !important;
}
body #page-container .et_pb_section.ah-cta .ah-cta__texte p:last-child {
  margin-bottom: 0 !important;
}

.et_pb_section.ah-cta .ah-cta__texte .ah-vague-mot {
  display: inline-block;
  color: rgba(255, 255, 255, 0.5) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.5) !important;
  transform: none;
  transition: color 1.15s ease, -webkit-text-fill-color 1.15s ease;
}
.et_pb_section.ah-cta .ah-cta__texte .ah-vague-mot.ah-vague-on,
.et_pb_section.ah-cta .ah-cta__texte .ah-vague-mot.ah-vague-lu {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}
/* Même vague que le slogan du hero : les mots se soulèvent, sans grossir. */
.et_pb_section.ah-cta .ah-cta__texte .ah-vague-mot.ah-vague-on {
  animation: ah-cta-vague .7s ease both;
}
@keyframes ah-cta-vague {
  0% { transform: translateY(0); }
  35% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}

/* Le disque est centré sous le texte, sur le fond marron.
   La frise perlée passe dessous, elle ne le pousse plus à gauche. */
body #page-container .et_pb_section.ah-cta a.ah-btn,
body .et_pb_section.ah-cta a.ah-btn {
  position: relative !important;
  z-index: 1;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0 !important;
  width: 100% !important;
  max-width: none !important;
  margin: clamp(28px, 3vw, 44px) auto 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  box-shadow: none !important;
  text-decoration: none !important;
  color: var(--cta-creme) !important;
  text-align: center !important;
}
body #page-container .et_pb_section.ah-cta a.ah-btn::before { content: none; }

/* La frise perlée du site, qui remplit la fin du bandeau. Elle se
   trace de gauche à droite quand le bandeau arrive dans l'écran. */
body #page-container .et_pb_section.ah-cta .ah-btn__filet {
  display: block !important;
  flex: none !important;
  align-self: stretch !important;
  width: 100% !important;
  min-width: 0;
  margin-top: 18px;
  height: 4px !important;
  background-color: transparent !important;
  background-image: url("../img/separateur-logo-blanc.svg") !important;
  background-repeat: repeat-x !important;
  background-position: left center !important;
  background-size: auto 4px !important;
  -webkit-mask-image: none !important;
          mask-image: none !important;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 1.1s var(--cta-courbe) .15s;
}
.et_pb_section.ah-cta a.ah-btn.est-vu .ah-btn__filet {
  transform: scaleX(1);
}

/* --- Le disque : même dessin que les boutons flottants (fond découpé
   par le sigle, mot qui tourne). Il ne suit pas la souris. Il se pose
   à la place du rond blanc, puis il clignote comme lui. --- */
.et_pb_section.ah-cta .ah-cta__disque {
  position: relative;
  flex: none;
  display: block;
  box-sizing: border-box;
  width: var(--cta-disque);
  height: var(--cta-disque);
  border-radius: 50%;
  overflow: visible;
  opacity: 0;
  transform: scale(.62);
  transition: opacity .55s ease,
              transform .85s var(--cta-courbe);
}
.et_pb_section.ah-cta .ah-cta__disque-corps {
  position: absolute;
  inset: 0;
  transform: scale(calc(1 + 0.22 * var(--cta-scroll, 0)));
  transform-origin: center;
  transition: transform 1.15s cubic-bezier(.16, 1, .3, 1);
}
.et_pb_section.ah-cta .ah-cta__disque-fond {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: #ffffff;
  pointer-events: none;
  -webkit-mask-image: url("../img/selecteur-hero-ah.svg");
          mask-image: url("../img/selecteur-hero-ah.svg");
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
}
.et_pb_section.ah-cta .ah-cta__disque-spin {
  position: absolute;
  inset: 0;
  transform-origin: 50% 50%;
  animation: ah-cta-rotation 42s linear infinite;
}
.et_pb_section.ah-cta .ah-cta__disque-anneau {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  fill: var(--cta-creme);
}
.et_pb_section.ah-cta .ah-cta__disque-anneau text {
  font-size: 8.4px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
}
.et_pb_section.ah-cta a.ah-btn.est-vu .ah-cta__disque {
  opacity: 1;
  transform: none;
  animation: ah-cta-souffle 4.6s ease-in-out 1.3s infinite;
}
@keyframes ah-cta-rotation { to { transform: rotate(360deg); } }
@keyframes ah-cta-souffle {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.07); }
}
body #page-container .et_pb_section.ah-cta .ah-btn__txt {
  display: none !important;
}

@media (hover: hover) {
  body #page-container .et_pb_section.ah-cta a.ah-btn:hover .ah-cta__disque,
  body #page-container .et_pb_section.ah-cta a.ah-btn:focus-visible .ah-cta__disque {
    animation: none;
    transform: scale(1.06);
  }
}
body #page-container .et_pb_section.ah-cta a.ah-btn:focus-visible {
  outline: 2px solid var(--cta-creme);
  outline-offset: 8px;
  border-radius: 4px;
}

@media (max-width: 980px) {
  body #page-container .et_pb_section.ah-cta,
  body .et_pb_section.ah-cta,
  .et_pb_section.ah-cta {
    --cta-air-x: 32px;
    --cta-air-y: 52px;
    --cta-titre: clamp(28px, 8vw, 32px);
    --cta-texte: 16px;
    --cta-disque: 112px;
    --cta-ecart: 22px;
    --cta-filet: 9px;
    --cta-lien: clamp(20px, 2.4vw, 26px);
    --cta-bas: 40px;
    display: flex !important;
    flex-direction: column;
    grid-template-columns: none;
  }
  .et_pb_section.ah-cta > .et_pb_row,
  .et_pb_section.ah-cta > .ah-cta__corps {
    width: 100% !important;
    min-height: 0;
    padding: var(--cta-air-y) var(--cta-air-x) var(--cta-bas) !important;
  }
  .et_pb_section.ah-cta > .ah-cta__photo {
    position: relative;
    grid-column: auto;
    grid-row: auto;
    width: 100%;
    height: 78vw;
    min-height: 280px;
    max-height: 560px;
  }
  .et_pb_section.ah-cta > .ah-cta__photo > img:not(.ah-cta-logo) {
    object-position: center 22%;
  }
  .et_pb_section.ah-cta .ah-cta__titre,
  .et_pb_section.ah-cta .ah-cta__texte { max-width: 42rem !important; }
  .et_pb_section.ah-cta .ah-cta__titre::before {
    margin: 0 auto 14px;
  }
  /* Le disque reste avec le texte, centré comme lui. */
  body #page-container .et_pb_section.ah-cta a.ah-btn {
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    margin-top: clamp(28px, 4vw, 40px) !important;
    margin-bottom: 0 !important;
  }
  body #page-container .et_pb_section.ah-cta .ah-btn__filet {
    flex: none !important;
    width: 100% !important;
    min-width: 0;
    margin-top: 18px;
  }
  body #page-container .et_pb_section.ah-cta .ah-cta__titre,
  body #page-container .et_pb_section.ah-cta .ah-cta__titre p,
  body #page-container .et_pb_section.ah-cta .ah-cta__titre h1,
  body #page-container .et_pb_section.ah-cta .ah-cta__titre h2,
  body #page-container .et_pb_section.ah-cta .ah-cta__titre .ah-cta__l1,
  body #page-container .et_pb_section.ah-cta .ah-cta__titre .ah-cta__l2 {
    text-align: center !important;
    white-space: normal;
    line-height: 1.15 !important;
    letter-spacing: normal !important;
    font-size: var(--cta-titre) !important;
  }
}

@media (max-width: 767px) {
  .et_pb_section.ah-cta {
    --cta-air-x: 20px;
    --cta-air-y: 40px;
    --cta-titre: clamp(28px, 8vw, 32px);
    --cta-texte: 15px;
    --cta-disque: 104px;
    --cta-ecart: 18px;
    --cta-filet: 8px;
    --cta-lien: 18px;
    --cta-bas: 40px;
  }
  .et_pb_section.ah-cta .ah-cta__titre,
  .et_pb_section.ah-cta .ah-cta__texte { max-width: none !important; }
  .et_pb_section.ah-cta .ah-cta__titre::before { margin: 0 auto 14px; }
  .et_pb_section.ah-cta .ah-cta__texte { margin-top: 18px !important; }
  body #page-container .et_pb_section.ah-cta a.ah-btn {
    margin-top: 28px !important;
    margin-bottom: 0 !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .et_pb_section.ah-cta .ah-cta__disque,
  .et_pb_section.ah-cta .ah-cta__disque-spin,
  body #page-container .et_pb_section.ah-cta .ah-btn__filet {
    transition: none !important;
    animation: none !important;
  }
  .et_pb_section.ah-cta .ah-cta__disque {
    opacity: 1 !important;
    transform: none !important;
  }
  body #page-container .et_pb_section.ah-cta .ah-btn__filet {
    transform: scaleX(1) !important;
  }
}
