/* Architecture intérieure sur mesure.
   Deux premiers blocs. Les mots et les photos restent dans les modules. */

html body.ah-page-gabarit .ah-mesure-hero,
html body.ah-page-gabarit .ah-mesure-esp {
  margin: 0 !important;
  padding: 0 !important;
}

html body.ah-page-gabarit .ah-mesure-hero > .et_pb_row,
html body.ah-page-gabarit .ah-mesure-esp > .et_pb_row {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* ----- Premier bloc : texte beige, photo du module à droite ----- */

html body.ah-page-gabarit .ah-mesure-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-rows: 1fr auto auto 1fr;
  align-items: stretch;
  min-height: clamp(560px, 78vh, 840px);
  background: #f7f0ea !important;
}

html body.ah-page-gabarit .ah-mesure-hero > .et_pb_row,
html body.ah-page-gabarit .ah-mesure-hero .et_pb_column {
  display: contents;
}

html body.ah-page-gabarit .ah-mesure-hero .et_pb_image {
  grid-column: 2;
  grid-row: 1 / -1;
  position: relative;
  align-self: stretch;
  margin: 0 !important;
  padding: 0 !important;
  min-height: clamp(560px, 78vh, 840px);
  height: auto !important;
  overflow: hidden;
}

html body.ah-page-gabarit .ah-mesure-hero .et_pb_column > .et_pb_text:first-child {
  grid-column: 1;
  grid-row: 2;
  align-self: end;
  margin: 0 !important;
  padding: 0 clamp(36px, 4.6vw, 88px) !important;
  background: transparent !important;
}

html body.ah-page-gabarit .ah-mesure-hero .et_pb_column > .et_pb_text:nth-child(2) {
  grid-column: 1;
  grid-row: 3;
  align-self: start;
  margin: 0 !important;
  padding: 0.85em clamp(36px, 4.6vw, 88px) 0 !important;
  background: transparent !important;
}

html body.ah-page-gabarit .ah-mesure-hero h1 {
  margin: 0 !important;
  padding: 0 !important;
  color: #3e2716 !important;
  font-size: clamp(34px, 3.5vw, 52px) !important;
  font-weight: 700 !important;
  line-height: 1.08 !important;
  letter-spacing: -0.02em;
  text-align: left !important;
}

html body.ah-page-gabarit .ah-mesure-hero h1::before {
  content: "";
  display: block;
  width: 21px;
  height: 21px;
  margin: 0 0 18px;
  border-radius: 50%;
  background: #b07030;
}

html body.ah-page-gabarit .ah-mesure-hero p {
  margin: 0 !important;
  color: #3e2716 !important;
  font-size: clamp(15px, 1.15vw, 17px) !important;
  line-height: 1.7 !important;
  text-align: left !important;
}

/* ----- Second bloc : photo du module à gauche, texte chocolat à droite ----- */

html body.ah-page-gabarit .ah-mesure-esp {
  background: #4c250a !important;
  min-height: clamp(480px, 64vh, 760px);
}

html body.ah-page-gabarit .ah-mesure-esp > .et_pb_row {
  display: flex;
  flex-direction: row-reverse;
  align-items: stretch;
  min-height: clamp(480px, 64vh, 760px);
}

html body.ah-page-gabarit .ah-mesure-esp .et_pb_column {
  width: 50% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

html body.ah-page-gabarit .ah-mesure-esp .et_pb_column:first-child {
  padding: clamp(48px, 7vh, 96px) clamp(36px, 4.6vw, 88px) !important;
  background: #4c250a;
}

html body.ah-page-gabarit .ah-mesure-esp .et_pb_text {
  margin: 0 !important;
  background: transparent !important;
}

html body.ah-page-gabarit .ah-mesure-esp h2 {
  margin: 0 0 clamp(22px, 3vh, 36px) !important;
  padding: 0 !important;
  color: #f7f2ec !important;
  font-size: clamp(34px, 3.5vw, 52px) !important;
  font-weight: 700 !important;
  line-height: 1.08 !important;
  letter-spacing: -0.02em;
  text-align: left !important;
}

html body.ah-page-gabarit .ah-mesure-esp h2::before {
  content: "";
  display: block;
  width: 21px;
  height: 21px;
  margin: 0 0 18px;
  border-radius: 50%;
  background: #b07030;
}

html body.ah-page-gabarit .ah-mesure-esp p {
  margin: 0 !important;
  color: #f3ebe4 !important;
  font-size: clamp(15px, 1.15vw, 17px) !important;
  line-height: 1.7 !important;
  text-align: left !important;
}

/* Deuxième ligne du titre : tan, comme les autres pages. */

html body.ah-page-gabarit .ah-mesure-ligne {
  display: block;
}

html body.ah-page-gabarit .ah-mesure-hero .ah-mesure-ligne--1 {
  color: #3e2716 !important;
  -webkit-text-fill-color: #3e2716;
}

html body.ah-page-gabarit .ah-mesure-esp .ah-mesure-ligne--1 {
  color: #f7f2ec !important;
  -webkit-text-fill-color: #f7f2ec;
}

html body.ah-page-gabarit .ah-mesure-ligne--2 {
  margin-top: 2px;
  color: #a87d43 !important;
  -webkit-text-fill-color: #a87d43;
}

/* Le cadre photo a une hauteur réelle. Le span Divi est en bloc,
   l'image le remplit. Sans ça, le span se referme et la photo disparaît. */

html body.ah-page-gabarit .ah-mesure-esp .et_pb_column:last-child {
  position: relative;
  min-height: clamp(480px, 64vh, 760px);
  overflow: hidden;
}

html body.ah-page-gabarit .ah-mesure-hero .et_pb_image_wrap,
html body.ah-page-gabarit .ah-mesure-esp .et_pb_image_wrap {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
}

html body.ah-page-gabarit .ah-mesure-esp .et_pb_image {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

html body.ah-page-gabarit .ah-mesure-hero .et_pb_image img,
html body.ah-page-gabarit .ah-mesure-esp .et_pb_image img {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: 50% 45%;
}

@media (max-width: 980px) {
  html body.ah-page-gabarit .ah-mesure-hero {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    min-height: 0;
  }

  html body.ah-page-gabarit .ah-mesure-hero .et_pb_column > .et_pb_text:first-child {
    grid-row: 1;
    padding-top: clamp(40px, 6vh, 64px) !important;
  }

  html body.ah-page-gabarit .ah-mesure-hero .et_pb_column > .et_pb_text:nth-child(2) {
    grid-row: 2;
    padding-bottom: clamp(28px, 4vh, 40px) !important;
  }

  html body.ah-page-gabarit .ah-mesure-hero .et_pb_image {
    grid-column: 1;
    grid-row: 3;
    height: 72vw !important;
    min-height: 240px;
  }

  html body.ah-page-gabarit .ah-mesure-esp > .et_pb_row {
    flex-direction: column-reverse;
  }

  html body.ah-page-gabarit .ah-mesure-esp .et_pb_column,
  html body.ah-page-gabarit .ah-mesure-esp .et_pb_column:first-child {
    width: 100% !important;
  }

  html body.ah-page-gabarit .ah-mesure-esp > .et_pb_row {
    min-height: 0;
  }

  html body.ah-page-gabarit .ah-mesure-esp .et_pb_column:last-child {
    min-height: 72vw;
    height: 72vw;
  }

  html body.ah-page-gabarit .ah-mesure-esp .et_pb_image {
    height: 100% !important;
    min-height: 240px;
  }
}

/* Lecture des deux premiers paragraphes : même bande que le CTA. */

@keyframes ah-lecture-vague {
  0% { transform: translateY(0); }
  35% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}

html body.ah-page-gabarit .ah-mesure-hero p .ah-vague-mot,
html body.ah-page-gabarit .ah-mesure-esp p .ah-vague-mot {
  display: inline-block;
  opacity: 0.5;
  transition: opacity 1.15s ease;
}

html body.ah-page-gabarit .ah-mesure-hero p .ah-vague-mot.ah-vague-on,
html body.ah-page-gabarit .ah-mesure-hero p .ah-vague-mot.ah-vague-lu,
html body.ah-page-gabarit .ah-mesure-esp p .ah-vague-mot.ah-vague-on,
html body.ah-page-gabarit .ah-mesure-esp p .ah-vague-mot.ah-vague-lu {
  opacity: 1;
}

html body.ah-page-gabarit .ah-mesure-hero p .ah-vague-mot.ah-vague-on,
html body.ah-page-gabarit .ah-mesure-esp p .ah-vague-mot.ah-vague-on {
  animation: ah-lecture-vague 0.7s ease both;
}

/* Nos interventions : liste à gauche, photos du module dans le logo. */

html body.ah-page-gabarit .ah-mesure-inter {
  background: #f7f0ea !important;
  margin: 0 !important;
  padding: 0 !important;
}

html body.ah-page-gabarit .ah-mesure-inter__rangee {
  display: grid !important;
  grid-template-columns: 62% 38%;
  align-items: stretch;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  min-height: 0;
  background: transparent !important;
}

html body.ah-page-gabarit .ah-mesure-inter__rangee::before,
html body.ah-page-gabarit .ah-mesure-inter__rangee::after {
  content: none !important;
  display: none !important;
}

html body.ah-page-gabarit .ah-mesure-inter__col--texte,
html body.ah-page-gabarit .ah-mesure-inter__col--photo {
  float: none !important;
  align-self: stretch !important;
  width: auto !important;
  max-width: none !important;
  height: auto !important;
  min-height: 100% !important;
  margin: 0 !important;
  box-sizing: border-box;
}

html body.ah-page-gabarit .ah-mesure-inter__col--texte {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #ffffff !important;
  background-image: none !important;
  padding: calc(clamp(56px, 7vh, 96px) + clamp(72px, 9vh, 128px)) clamp(32px, 4vw, 72px) !important;
}

html body.ah-page-gabarit .ah-mesure-inter__texte,
html body.ah-page-gabarit .ah-mesure-inter__texte.et_pb_module,
html body.ah-page-gabarit .ah-mesure-inter__texte .et_pb_text_inner {
  width: fit-content !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  padding: 0 !important;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}

html body.ah-page-gabarit .ah-mesure-inter__texte .et_pb_text_inner {
  font-size: clamp(15px, 1.15vw, 18px) !important;
  line-height: 1.45 !important;
}

html body.ah-page-gabarit .ah-mesure-inter__texte h2 {
  overflow: visible !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 0 clamp(28px, 3.2vw, 48px) !important;
  padding: 0 !important;
  color: #3e2716 !important;
  -webkit-text-fill-color: #3e2716;
  font-size: clamp(28px, 3.2vw, 44px) !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  letter-spacing: -0.02em;
  text-align: left !important;
}

html body.ah-page-gabarit .ah-mesure-inter__texte h2::before {
  content: "";
  display: block;
  width: 21px;
  height: 21px;
  margin: 0 0 18px;
  border-radius: 50%;
  background: #b07030;
}

html body.ah-page-gabarit .ah-mesure-inter__texte ul {
  display: block !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  column-count: 1 !important;
  column-width: auto !important;
  list-style: none !important;
}

html body.ah-page-gabarit .ah-mesure-inter__texte ul:empty {
  display: none !important;
}

html body.ah-page-gabarit .ah-mesure-inter__texte li {
  --ah-mesure-liste: clamp(15px, 1.15vw, 18px);
  --ah-p: 0;
  display: block !important;
  float: none !important;
  clear: both !important;
  width: auto !important;
  column-span: all !important;
  position: relative;
  margin: clamp(18px, 2vw, 28px) 0 0 !important;
  padding: 0 0 0 28px !important;
  color: color-mix(in srgb, #b07030 calc(var(--ah-p) * 100%), #3e2716) !important;
  -webkit-text-fill-color: color-mix(in srgb, #b07030 calc(var(--ah-p) * 100%), #3e2716);
  font-size: calc(var(--ah-mesure-liste) + 5px * var(--ah-p)) !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  text-align: left !important;
  list-style: none !important;
}

html body.ah-page-gabarit .ah-mesure-inter__texte li.is-actif {
  font-weight: 600 !important;
}

html body.ah-page-gabarit .ah-mesure-inter__texte li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.45em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #b07030;
  opacity: var(--ah-p);
  transform: scale(calc(0.65 + 0.35 * var(--ah-p)));
}

html body.ah-page-gabarit .ah-mesure-inter__texte li:first-child {
  margin-top: 0 !important;
}

html body.ah-page-gabarit .ah-mesure-inter__col--photo {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #f7f0ea !important;
  background-image: none !important;
}

html body.ah-page-gabarit .ah-mesure-inter__galerie {
  position: relative;
  width: calc(500 / 901 * clamp(460px, 62vh, 640px));
  height: clamp(460px, 62vh, 640px);
  max-width: 88%;
  margin: 0 !important;
  overflow: hidden;
  pointer-events: none;
  -webkit-mask-image: url("../img/isotype-mesure-blanc.svg");
          mask-image: url("../img/isotype-mesure-blanc.svg");
  -webkit-mask-size: 100% 100%;
          mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
}

html body.ah-page-gabarit .ah-mesure-inter__galerie .et_pb_gallery_items {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
}

html body.ah-page-gabarit .ah-mesure-inter__galerie .et_pb_gallery_item,
html body.ah-page-gabarit .ah-mesure-inter__galerie .et_pb_gallery_image,
html body.ah-page-gabarit .ah-mesure-inter__galerie .et_pb_gallery_item a {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}

html body.ah-page-gabarit .ah-mesure-inter__galerie .et_pb_gallery_item {
  opacity: var(--ah-p, 0);
}

html body.ah-page-gabarit .ah-mesure-inter__galerie .et_pb_gallery_item:first-child {
  opacity: 1;
}

html body.ah-page-gabarit .ah-mesure-inter__galerie.ah-masque-pret .et_pb_gallery_item {
  opacity: var(--ah-p, 0);
}

html body.ah-page-gabarit .ah-mesure-inter__galerie img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center;
}

html body.ah-page-gabarit .ah-mesure-inter__galerie .et_overlay,
html body.ah-page-gabarit .ah-mesure-inter__galerie .et_pb_gallery_title,
html body.ah-page-gabarit .ah-mesure-inter__galerie .et_pb_gallery_caption {
  display: none !important;
}

@media (max-width: 980px) {
  html body.ah-page-gabarit .ah-mesure-inter {
    padding: 0 !important;
  }

  html body.ah-page-gabarit .ah-mesure-inter__rangee {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
  }

  html body.ah-page-gabarit .ah-mesure-inter__col--texte,
  html body.ah-page-gabarit .ah-mesure-inter__col--photo {
    width: auto !important;
  }

  html body.ah-page-gabarit .ah-mesure-inter__col--texte {
    padding: calc(clamp(40px, 6vh, 64px) + clamp(36px, 5vh, 56px)) 24px !important;
  }

  html body.ah-page-gabarit .ah-mesure-inter__texte {
    width: fit-content !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
  }

  html body.ah-page-gabarit .ah-mesure-inter__texte h2 {
    font-size: clamp(28px, 8vw, 32px) !important;
    text-align: center !important;
  }

  html body.ah-page-gabarit .ah-mesure-inter__texte h2::before {
    margin-left: auto;
    margin-right: auto;
  }

  html body.ah-page-gabarit .ah-mesure-inter__texte li {
    --ah-mesure-liste: 18px;
    margin-top: 16px !important;
  }

  html body.ah-page-gabarit .ah-mesure-inter__col--photo {
    padding: clamp(28px, 4vh, 48px) 0 !important;
  }

  html body.ah-page-gabarit .ah-mesure-inter__galerie {
    width: calc(500 / 901 * clamp(320px, 72vw, 460px));
    height: clamp(320px, 72vw, 460px);
  }
}

/* Pour quels projets : grille de la capture.
   Les noms restent ceux du module, simplement.
   Le voile au survol est celui de la galerie d'accueil. */

html body.ah-page-gabarit .ah-mesure-projets {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #f7f0ea !important;
}

html body.ah-page-gabarit .ah-mesure-projets::before,
html body.ah-page-gabarit .ah-mesure-projets::after {
  content: none !important;
  display: none !important;
}

html body.ah-page-gabarit .ah-mesure-projets > .et_pb_column {
  display: none !important;
}

html body.ah-page-gabarit .ah-mesure-projets__grille {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  width: 100%;
}

html body.ah-page-gabarit .ah-mesure-projets h2 {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 0 !important;
  padding: clamp(28px, 4vw, 48px) !important;
  background: #4c250a;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff;
  font-size: clamp(28px, 3.2vw, 44px) !important;
  font-weight: 700 !important;
  line-height: 1.08 !important;
  letter-spacing: -0.02em;
  text-align: left !important;
}

html body.ah-page-gabarit .ah-mesure-projets h2::before {
  content: "";
  display: block;
  width: 21px;
  height: 21px;
  margin: 0 0 18px;
  border-radius: 50%;
  background: #b07030;
}

html body.ah-page-gabarit .ah-mesure-projets .ah-mesure-ligne--1,
html body.ah-page-gabarit .ah-mesure-projets .ah-mesure-ligne--2 {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff;
}

html body.ah-page-gabarit .ah-mesure-projets__grille > .et_pb_gallery_item {
  position: relative !important;
  float: none !important;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  min-height: 240px;
  aspect-ratio: 4 / 3;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
}

html body.ah-page-gabarit .ah-mesure-projets .et_pb_gallery_image,
html body.ah-page-gabarit .ah-mesure-projets .et_pb_gallery_item a {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
}

html body.ah-page-gabarit .ah-mesure-projets .et_pb_gallery_item img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center;
  transition: transform 1.4s cubic-bezier(.22, 1, .36, 1);
}

html body.ah-page-gabarit .ah-mesure-projets .et_pb_gallery_item::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(76, 37, 10, 0.4);
  opacity: 0;
  transition: opacity 0.45s ease;
  pointer-events: none;
}

@media (hover: hover) {
  html body.ah-page-gabarit .ah-mesure-projets .et_pb_gallery_item:hover::after {
    opacity: 1;
  }

  html body.ah-page-gabarit .ah-mesure-projets .et_pb_gallery_item:hover img {
    transform: scale(1.03);
  }

  html body.ah-page-gabarit .ah-mesure-projets .et_pb_gallery_item:hover .ah-mesure-projets__nom {
    font-size: calc(var(--ah-projet-titre) + 10px) !important;
    font-weight: 600 !important;
    animation: ah-mesure-titre-vague 0.7s ease both;
  }
}

@keyframes ah-mesure-titre-vague {
  0% { transform: translateY(0); }
  35% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}

html body.ah-page-gabarit .ah-mesure-projets__nom {
  --ah-projet-titre: clamp(16px, 1.25vw, 20px);
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  margin: 0 !important;
  padding: 28px 16px 14px !important;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0));
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff;
  font-size: var(--ah-projet-titre) !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  text-align: left !important;
  list-style: none !important;
  pointer-events: none;
  transition: font-size 0.7s cubic-bezier(.22, 1, .36, 1),
              font-weight 0.7s cubic-bezier(.22, 1, .36, 1);
}

html body.ah-page-gabarit .ah-mesure-projets .et_overlay,
html body.ah-page-gabarit .ah-mesure-projets .et_pb_gallery_title,
html body.ah-page-gabarit .ah-mesure-projets .et_pb_gallery_caption {
  display: none !important;
}

@media (max-width: 980px) {
  html body.ah-page-gabarit .ah-mesure-projets__grille {
    grid-template-columns: minmax(0, 1fr);
  }

  html body.ah-page-gabarit .ah-mesure-projets h2 {
    min-height: 180px;
    font-size: clamp(28px, 8vw, 32px) !important;
    text-align: center !important;
    align-items: center;
  }

  html body.ah-page-gabarit .ah-mesure-projets h2::before {
    margin-left: auto;
    margin-right: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  html body.ah-page-gabarit .ah-vague-mot,
  html body.ah-page-gabarit .ah-mesure-inter__texte li,
  html body.ah-page-gabarit .ah-mesure-inter__galerie .et_pb_gallery_item,
  html body.ah-page-gabarit .ah-mesure-projets__nom {
    transition: none !important;
    animation: none !important;
  }
}

/* Décoration intérieure : mêmes blocs, sections différentes.
   Un seul module texte dans le hero. Le dernier bloc a un paragraphe
   pour titre, puis le bouton déjà écrit dans Divi. */

html body.ah-page-deco.ah-page-gabarit .ah-mesure-hero .et_pb_column > .et_pb_text:first-child {
  grid-row: 2 / 4;
  align-self: center;
  max-width: none;
  padding: clamp(48px, 7vh, 96px) clamp(36px, 4.6vw, 88px) !important;
}

html body.ah-page-deco .ah-mesure-hero h1 {
  margin-bottom: clamp(22px, 3vh, 36px) !important;
}

html body.ah-page-deco .ah-mesure-hero p + p {
  margin-top: 0.9em !important;
}

html body.ah-page-deco .ah-mesure-inter__texte h2 {
  margin-bottom: 14px !important;
}

/* Décoration : la liste reste dans l'ordre Divi, sur trois colonnes. */
html body.ah-page-deco.ah-page-gabarit .ah-mesure-inter__texte ul {
  display: block !important;
  column-count: 3 !important;
  column-gap: clamp(28px, 4vw, 64px) !important;
  column-fill: balance !important;
  width: max-content !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 auto !important;
  padding: 0 !important;
}

html body.ah-page-deco.ah-page-gabarit .ah-mesure-inter__texte li {
  column-span: none !important;
  clear: none !important;
  float: none !important;
  width: auto !important;
  margin: 0 0 clamp(14px, 1.8vw, 22px) !important;
  break-inside: avoid;
  font-size: var(--ah-mesure-liste) !important;
  font-weight: 400 !important;
  color: #3e2716 !important;
  -webkit-text-fill-color: #3e2716;
}

html body.ah-page-deco.ah-page-gabarit .ah-mesure-inter__texte li.ah-deco-porte {
  font-size: calc(var(--ah-mesure-liste) + 2px) !important;
  color: color-mix(in srgb, #b07030 40%, #3e2716) !important;
  -webkit-text-fill-color: color-mix(in srgb, #b07030 40%, #3e2716);
}

html body.ah-page-deco.ah-page-gabarit .ah-mesure-inter__texte li.is-actif {
  font-weight: 400 !important;
}

html body.ah-page-deco.ah-page-gabarit .ah-mesure-inter__texte li::before {
  content: none !important;
  opacity: 0 !important;
  transform: none !important;
}

html body.ah-page-deco.ah-page-gabarit .ah-mesure-inter__texte li.ah-deco-porte::before {
  content: "" !important;
  position: absolute;
  left: 0;
  top: 0.45em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #b07030;
  opacity: 1 !important;
  transform: none !important;
}

html body.ah-page-deco .ah-mesure-inter__texte p {
  margin-top: clamp(28px, 3.2vw, 48px) !important;
}

html body.ah-page-deco .ah-deco-suite {
  display: block;
  margin: 0 0 clamp(28px, 3.2vw, 48px) !important;
  color: #3e2716 !important;
  -webkit-text-fill-color: #3e2716;
  font-size: clamp(15px, 1.15vw, 18px) !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  letter-spacing: normal;
}

html body.ah-page-deco .ah-mesure-esp .et_pb_text p:first-of-type {
  margin: 0 0 clamp(22px, 3vh, 36px) !important;
  color: #f7f2ec !important;
  -webkit-text-fill-color: #f7f2ec;
  font-size: clamp(34px, 3.5vw, 52px) !important;
  font-weight: 700 !important;
  line-height: 1.08 !important;
  letter-spacing: -0.02em;
}

html body.ah-page-deco .ah-mesure-esp .et_pb_text p:first-of-type::before {
  content: "";
  display: block;
  width: 21px;
  height: 21px;
  margin: 0 0 18px;
  border-radius: 50%;
  background: #b07030;
}

/* Le bouton Divi reste dans le module. Le disque visible est beige clair. */
html body.ah-page-gabarit .ah-deco-bouton-source {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

html body.ah-page-gabarit .ah-deco-disque {
  --ah-disque: clamp(104px, 9.5vw, 148px);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999998;
  width: var(--ah-disque);
  height: var(--ah-disque);
  margin: calc(var(--ah-disque) / -2) 0 0 calc(var(--ah-disque) / -2);
  opacity: 0;
  pointer-events: none;
  text-decoration: none;
  transition: opacity 0.35s ease;
}

html body.ah-page-gabarit .ah-deco-disque.est-visible {
  opacity: 1;
  pointer-events: auto;
}

/* Au repos, le disque est dans la section : il arrive avec elle au scroll. */
html body.ah-page-gabarit .ah-deco-disque.est-pose {
  position: relative;
  top: auto;
  left: auto;
  z-index: 2;
  display: block;
  flex: none;
  align-self: flex-start;
  margin: clamp(32px, 4vh, 48px) 0 0;
  opacity: 1;
  pointer-events: auto;
  transform: none;
}

html body.ah-page-gabarit .ah-deco-disque__corps,
html body.ah-page-gabarit .ah-deco-disque__spin {
  position: absolute;
  inset: 0;
}

html body.ah-page-gabarit .ah-deco-disque__spin {
  transform-origin: 50% 50%;
}

html body.ah-page-gabarit .ah-deco-disque__fond {
  position: absolute;
  inset: 0;
  background: #f7f0ea;
  -webkit-mask: url("../img/selecteur-hero-ah.svg") center / contain no-repeat;
  mask: url("../img/selecteur-hero-ah.svg") center / contain no-repeat;
}

html body.ah-page-gabarit .ah-deco-disque__anneau {
  width: 100%;
  height: 100%;
  overflow: visible;
  fill: #f7f0ea;
}

html body.ah-page-gabarit .ah-deco-disque__anneau text {
  font-size: 7.2px;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  fill: #f7f0ea;
}

html body.ah-page-gabarit .ah-deco-disque.est-photo .ah-deco-disque__anneau,
html body.ah-page-gabarit .ah-deco-disque.est-photo .ah-deco-disque__anneau text {
  fill: #4c250a;
}

html body.ah-page-gabarit.ah-deco-disque-suit .ah-rond {
  opacity: 0 !important;
}

html body.ah-page-deco .ah-mesure-esp {
  position: relative;
}

@media (max-width: 980px) {
  html body.ah-page-gabarit .ah-deco-disque.est-fixe {
    position: relative;
    top: auto;
    left: auto;
    z-index: 2;
    display: block;
    flex: none;
    align-self: center;
    margin: clamp(48px, 8vh, 72px) auto clamp(20px, 4vh, 36px);
    opacity: 1;
    transform: scale(var(--ah-echelle, 1));
    transform-origin: center center;
  }

  html body.ah-page-deco .ah-deco-suite {
    text-align: center !important;
    margin: clamp(28px, 5vh, 40px) auto clamp(32px, 5vh, 48px) !important;
  }

  html body.ah-page-deco .ah-mesure-inter__texte h2 {
    margin-bottom: 0 !important;
  }

  html body.ah-page-deco.ah-page-gabarit .ah-mesure-inter__texte ul {
    column-count: 2 !important;
    column-gap: clamp(36px, 10vw, 72px) !important;
    column-fill: balance !important;
    width: max-content !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  html body.ah-page-deco.ah-page-gabarit .ah-mesure-inter__texte li {
    width: auto !important;
    margin: 0 0 16px !important;
    white-space: nowrap !important;
    text-align: left !important;
  }
}

/* La photo du module a une largeur réelle (souvent 700 px).
   Sans min-width 0, elle élargit la page et coupe le texte. */
html body.ah-page-deco .ah-mesure-hero .et_pb_image,
html body.ah-page-deco .ah-mesure-hero .et_pb_text,
html body.ah-page-deco .ah-mesure-esp .et_pb_column,
html body.ah-page-deco .ah-mesure-esp .et_pb_image,
html body.ah-page-deco .ah-mesure-inter__galerie,
html body.ah-page-deco .ah-mesure-inter__col--photo,
html body.ah-page-deco .ah-mesure-inter__col--texte {
  min-width: 0 !important;
}

html body.ah-page-deco .ah-mesure-ligne {
  white-space: normal;
}

html body.ah-page-deco .ah-mesure-hero h1,
html body.ah-page-deco .ah-mesure-hero p,
html body.ah-page-deco .ah-mesure-esp p,
html body.ah-page-deco .ah-mesure-inter__texte {
  max-width: calc(100vw - 48px) !important;
}

@media (max-width: 980px) {
  html body.ah-page-deco .ah-mesure-hero,
  html body.ah-page-deco .ah-mesure-esp,
  html body.ah-page-deco .ah-mesure-inter {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden;
  }

  html body.ah-page-deco .ah-mesure-hero .et_pb_text,
  html body.ah-page-deco .ah-mesure-hero .et_pb_image,
  html body.ah-page-deco .ah-mesure-esp .et_pb_column,
  html body.ah-page-deco .ah-mesure-inter__col--texte,
  html body.ah-page-deco .ah-mesure-inter__col--photo {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  html body.ah-page-deco.ah-page-gabarit .ah-mesure-hero .et_pb_column > .et_pb_text:first-child {
    grid-row: 1;
    align-self: start;
    padding: clamp(40px, 6vh, 64px) 24px clamp(28px, 4vh, 40px) !important;
  }

  html body.ah-page-deco .ah-mesure-hero h1 {
    font-size: clamp(28px, 7.6vw, 32px) !important;
  }

  html body.ah-page-deco .ah-mesure-esp .et_pb_column:first-child {
    box-sizing: border-box !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
  }

  html body.ah-page-deco .ah-mesure-esp .et_pb_text p:first-of-type {
    font-size: clamp(28px, 8vw, 32px) !important;
    text-align: center !important;
  }

  html body.ah-page-deco .ah-mesure-esp .et_pb_text p:first-of-type::before {
    margin-left: auto;
    margin-right: auto;
  }
}

/* Rénovation et clé en main : le même gabarit, sur leurs textes. */

html body.ah-page-gabarit .ah-mesure-esp .ah-gabarit-titre {
  margin: 0 0 clamp(22px, 3vh, 36px) !important;
  color: #f7f2ec !important;
  -webkit-text-fill-color: #f7f2ec;
  font-size: clamp(34px, 3.5vw, 52px) !important;
  font-weight: 700 !important;
  line-height: 1.08 !important;
  letter-spacing: -0.02em;
  text-align: left !important;
}

html body.ah-page-gabarit .ah-mesure-esp .ah-gabarit-titre::before {
  content: "";
  display: block;
  width: 21px;
  height: 21px;
  margin: 0 0 18px;
  border-radius: 50%;
  background: #b07030;
}

html body.ah-page-reno .ah-mesure-inter__texte p,
html body.ah-page-cle .ah-mesure-inter__texte .ah-ligne-etape {
  position: relative;
  display: block;
  margin: 0 0 14px !important;
  padding: 0 0 0 22px !important;
  color: #3e2716 !important;
  -webkit-text-fill-color: #3e2716;
  font-size: clamp(16px, 1.2vw, 18px) !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  text-align: left !important;
}

html body.ah-page-reno .ah-mesure-inter__texte p::before,
html body.ah-page-cle .ah-mesure-inter__texte .ah-ligne-etape::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.45em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #b07030;
  opacity: var(--ah-p, 0);
}

html body.ah-page-cle .ah-mesure-inter__texte p {
  margin: 0 !important;
  padding: 0 !important;
}

html body.ah-page-cle .ah-mesure-hero p,
html body.ah-page-cle .ah-mesure-hero p .ah-vague-mot,
html body.ah-page-cle .ah-mesure-inter__texte h2,
html body.ah-page-cle .ah-mesure-inter__texte .ah-ligne-etape {
  color: #2d1d12 !important;
  -webkit-text-fill-color: #2d1d12 !important;
}

html body.ah-page-reno .ah-mesure-esp ul {
  margin: clamp(22px, 3vh, 36px) 0 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

html body.ah-page-reno .ah-mesure-esp li {
  position: relative;
  margin: 0 0 18px !important;
  padding: 0 0 14px 28px !important;
  color: #a87d43 !important;
  -webkit-text-fill-color: #a87d43;
  font-size: clamp(16px, 1.25vw, 20px) !important;
  font-weight: 400 !important;
  line-height: 1.35 !important;
  text-align: left !important;
  transition: color 0.8s ease, -webkit-text-fill-color 0.8s ease;
}

html body.ah-page-reno .ah-reno-pourquoi li.ah-lue {
  color: #f7f2ec !important;
  -webkit-text-fill-color: #f7f2ec !important;
}

html body.ah-page-reno .ah-reno-pourquoi li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.35em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #c4a06a;
}

html body.ah-page-reno .ah-reno-pourquoi li::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  background-color: #c8943a;
  -webkit-mask-image: var(--ah-perle-masque);
          mask-image: var(--ah-perle-masque);
  -webkit-mask-repeat: repeat-x;
          mask-repeat: repeat-x;
  -webkit-mask-size: calc(3px * 1.5035) 100%;
          mask-size: calc(3px * 1.5035) 100%;
  -webkit-mask-position: var(--zn-glisse, 0px) center;
          mask-position: var(--zn-glisse, 0px) center;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.6s cubic-bezier(.16, 1, .3, 1);
}

html body.ah-page-reno .ah-reno-pourquoi li.ah-vu::after {
  transform: scaleX(1);
}

html body.ah-page-reno .ah-reno-pourquoi .et_pb_image img {
  object-position: center 20% !important;
}

html body.ah-page-reno .ah-reno-pourquoi,
html body.ah-page-reno .ah-reno-pourquoi > .et_pb_row,
html body.ah-page-reno .ah-reno-pourquoi .et_pb_column:last-child {
  min-height: clamp(576px, 77vh, 912px);
}

html body.ah-page-reno .ah-reno-pourquoi h2 {
  font-size: clamp(41px, 4.2vw, 62px) !important;
}

html body.ah-page-reno .ah-reno-pourquoi li {
  font-size: clamp(19px, 1.5vw, 24px) !important;
}

@media (max-width: 980px) {
  html body.ah-page-reno .ah-reno-pourquoi .et_pb_column:last-child {
    height: 142vw;
    min-height: 504px;
  }

  html body.ah-page-reno .ah-reno-pourquoi .et_pb_image img {
    object-position: center 16% !important;
  }
}

html body.ah-page-gabarit .ah-deco-disque.est-sur-clair .ah-deco-disque__fond {
  background: #4c250a;
}

html body.ah-page-gabarit .ah-deco-disque.est-sur-clair .ah-deco-disque__anneau,
html body.ah-page-gabarit .ah-deco-disque.est-sur-clair .ah-deco-disque__anneau text {
  fill: #f7f0ea;
}

/* Rénovation : un peu d'air sous le titre du hero. */

html body.ah-page-reno .ah-mesure-hero h1 {
  margin-bottom: clamp(28px, 3.4vh, 42px) !important;
}

/* Rénovation : les étapes en bandeau. La ligne et les chiffres ne bougent pas. */

html body.ah-page-reno .ah-mesure-inter,
html body.ah-page-reno .ah-reno-etapes {
  overflow: visible !important;
  background: #ffffff !important;
}

html body.ah-page-reno .ah-reno-etapes {
  --ah-reno-lecture: 34vh;
  --ah-reno-montee: 14vh;
}

html body.ah-page-reno .ah-reno-etapes.ah-mesure-inter__rangee {
  display: block !important;
  min-height: calc(100vh + var(--ah-reno-lecture));
  background: #ffffff !important;
}

html body.ah-page-reno .ah-reno-etapes .ah-mesure-inter__col--photo {
  display: none !important;
}

html body.ah-page-reno .ah-reno-etapes .ah-mesure-inter__col--texte {
  position: sticky;
  top: calc(var(--ah-reno-top, 96px) + (1 - var(--ah-colle, 0)) * var(--ah-reno-baisse, 0px));
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: calc(100vh - var(--ah-reno-top, 96px));
  margin: 0 !important;
  padding: clamp(40px, 6vh, 72px) clamp(36px, 5vw, 88px) !important;
  box-sizing: border-box;
  background: #ffffff !important;
}

html body.ah-page-reno .ah-reno-etapes .ah-mesure-inter__texte,
html body.ah-page-reno .ah-reno-etapes .ah-mesure-inter__texte.et_pb_module,
html body.ah-page-reno .ah-reno-etapes .ah-mesure-inter__texte .et_pb_text_inner {
  width: 100% !important;
  max-width: 1120px !important;
  margin: 0 auto !important;
}

html body.ah-page-reno .ah-reno-etapes .ah-mesure-inter__texte h2 {
  margin-bottom: clamp(36px, 5vh, 64px) !important;
  text-align: left !important;
}

html body.ah-page-reno .ah-timeline {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  width: 100%;
  margin: 0;
  padding: 0;
}

html body.ah-page-reno .ah-etape {
  --ah-p: 0;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 0;
  text-align: center;
}

html body.ah-page-reno .ah-etape__num {
  display: block;
  height: 1.15em;
  margin: 0 0 16px;
  color: #a87d43;
  font-size: clamp(22px, 1.9vw, 28px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.04em;
  transform: none;
}

html body.ah-page-reno .ah-etape__rail {
  position: relative;
  display: block;
  width: 100%;
  height: 18px;
  flex: none;
}

html body.ah-page-reno .ah-etape__rail::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 3px;
  margin-top: -1.5px;
  background-color: #c8943a;
  -webkit-mask-image: var(--ah-perle-masque);
          mask-image: var(--ah-perle-masque);
  -webkit-mask-repeat: repeat-x;
          mask-repeat: repeat-x;
  -webkit-mask-size: calc(3px * 1.5035) 100%;
          mask-size: calc(3px * 1.5035) 100%;
  -webkit-mask-position: var(--zn-glisse, 0px) center;
          mask-position: var(--zn-glisse, 0px) center;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.6s cubic-bezier(.16, 1, .3, 1);
}

html body.ah-page-reno .ah-etape.ah-vu .ah-etape__rail::before {
  transform: scaleX(1);
}

html body.ah-page-reno .ah-etape:first-child .ah-etape__rail::before {
  left: 50%;
}

html body.ah-page-reno .ah-etape:last-child .ah-etape__rail::before {
  right: 50%;
}

html body.ah-page-reno .ah-etape__rail::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 9px;
  height: 9px;
  margin: -4.5px 0 0 -4.5px;
  border-radius: 50%;
  background: #c4a06a;
}

html body.ah-page-reno .ah-etape__nom {
  display: block;
  max-width: 12em;
  margin-top: 16px;
  color: #a87d43;
  -webkit-text-fill-color: #a87d43;
  font-size: clamp(13px, 1.05vw, 16px) !important;
  font-weight: 400;
  line-height: 1.35;
  transform: scale(calc(1 + 0.14 * var(--ah-tour, 0)));
  transform-origin: center top;
  transition: color 0.8s ease, -webkit-text-fill-color 0.8s ease, transform 0.4s ease;
}

html body.ah-page-reno .ah-etape.ah-lue .ah-etape__nom {
  color: #2d1d12 !important;
  -webkit-text-fill-color: #2d1d12 !important;
}

html body.ah-page-reno .ah-etape__source {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (prefers-reduced-motion: reduce) {
  html body.ah-page-reno .ah-reno-etapes.ah-mesure-inter__rangee {
    min-height: 108vh;
  }

  html body.ah-page-reno .ah-reno-etapes .ah-mesure-inter__texte,
  html body.ah-page-reno .ah-reno-etapes .ah-mesure-inter__texte.et_pb_module,
  html body.ah-page-reno .ah-reno-etapes .ah-mesure-inter__texte .et_pb_text_inner {
    transform: none !important;
  }
}

@media (max-width: 980px) {
  html body.ah-page-reno .ah-reno-etapes.ah-mesure-inter__rangee {
    min-height: 0;
  }

  html body.ah-page-reno .ah-reno-etapes .ah-mesure-inter__col--texte {
    position: relative;
    top: auto;
    min-height: 0;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    padding: clamp(48px, 8vh, 80px) 22px clamp(40px, 7vh, 64px) !important;
  }

  html body.ah-page-reno .ah-reno-etapes .ah-mesure-inter__texte,
  html body.ah-page-reno .ah-reno-etapes .ah-mesure-inter__texte.et_pb_module,
  html body.ah-page-reno .ah-reno-etapes .ah-mesure-inter__texte .et_pb_text_inner {
    max-width: 520px !important;
    margin-left: 0 !important;
    margin-right: auto !important;
    transform: none !important;
  }

  html body.ah-page-reno .ah-reno-etapes .ah-mesure-inter__texte h2 {
    margin-bottom: clamp(28px, 4vh, 40px) !important;
    font-size: clamp(28px, 7.6vw, 36px) !important;
    text-align: left !important;
  }

  html body.ah-page-reno .ah-reno-etapes .ah-mesure-inter__texte h2::before {
    content: none !important;
  }

  html body.ah-page-reno .ah-timeline {
    display: flex;
    flex-direction: column;
    gap: 22px;
    overflow: visible;
  }

  html body.ah-page-reno .ah-etape {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 18px;
    row-gap: 16px;
    align-items: center;
    width: 100%;
    flex: none;
    text-align: left;
  }

  html body.ah-page-reno .ah-etape__num {
    grid-column: 1;
    grid-row: 1;
    height: auto;
    margin: 0;
    font-size: clamp(32px, 9vw, 40px);
    line-height: 1;
  }

  html body.ah-page-reno .ah-etape__nom {
    grid-column: 2;
    grid-row: 1;
    max-width: none;
    margin: 0;
    font-size: clamp(17px, 4.6vw, 20px) !important;
    line-height: 1.25;
    text-align: left;
    transform: scale(calc(1 + 0.14 * var(--ah-tour, 0)));
    transform-origin: left center;
  }

  html body.ah-page-reno .ah-etape__rail {
    grid-column: 1 / -1;
    grid-row: 2;
    height: 12px;
  }

  html body.ah-page-reno .ah-etape__rail::before,
  html body.ah-page-reno .ah-etape:first-child .ah-etape__rail::before,
  html body.ah-page-reno .ah-etape:last-child .ah-etape__rail::before {
    left: 16px;
    right: 0;
  }

  html body.ah-page-reno .ah-etape__rail::after {
    left: 0;
    margin: -4.5px 0 0 0;
  }
}
