/* A2CP89 V10: immersive image systems and the final UI/UX coherence layer. */

/* The fixed conversion bar appears only after the in-hero actions have passed. */
.a2cp-home-mobile-actions {
  opacity: 0;
  transform: translateY(calc(100% + 0.5rem));
  transition: opacity 240ms ease, transform 320ms cubic-bezier(0.16, 1, 0.3, 1), visibility 0s linear 320ms;
  visibility: hidden;
}

.a2cp-home-mobile-actions[data-visible="true"] {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0s;
  visibility: visible;
}

/* Three real projects fill the home opening without moving its sales copy. */
.a2cp-home-hero__visual {
  display: block;
  isolation: isolate;
  overflow: hidden;
}

[data-a2cp-home-hero] .a2cp-home-hero__visual::before {
  display: none;
}

.a2cp-home-hero__media,
[data-a2cp-home-hero] .a2cp-home-hero__media {
  height: 100%;
  inset: 0;
  margin: 0 !important;
  max-width: none;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  position: absolute;
  transform: scale(1.035);
  transition:
    clip-path 850ms cubic-bezier(0.16, 1, 0.3, 1),
    opacity 650ms ease,
    transform 1100ms cubic-bezier(0.16, 1, 0.3, 1);
  width: 100%;
  z-index: 0;
}

.a2cp-home-hero__media.is-active,
[data-a2cp-home-hero] .a2cp-home-hero__media.is-active {
  opacity: 1;
  pointer-events: auto;
  transform: scale(1);
  z-index: 1;
}

.a2cp-home-hero__media img,
[data-a2cp-home-hero] .a2cp-home-hero__media img {
  object-fit: cover;
  transition: filter 650ms ease, transform 1200ms cubic-bezier(0.16, 1, 0.3, 1);
}

.a2cp-home-hero__caption {
  bottom: auto;
  left: 1rem;
  max-width: calc(100% - 6.25rem);
  right: auto;
  top: 1rem;
}

.a2cp-home-hero__controls {
  align-items: flex-end;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  position: absolute;
  right: 0.75rem;
  top: 0.75rem;
  z-index: 5;
}

.a2cp-home-hero__controls > div {
  backdrop-filter: blur(12px);
  background: rgba(31, 35, 31, 0.58);
  border: 1px solid rgba(246, 243, 237, 0.22);
  display: grid;
}

.a2cp-home-hero__controls button {
  align-items: center;
  background: transparent;
  border: 0;
  color: var(--a2cp-paper);
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-size: 0.72rem;
  font-weight: 800;
  justify-content: center;
  min-height: 2.75rem;
  min-width: 2.75rem;
}

.a2cp-home-hero__controls [data-a2cp-hero-control] span {
  background: rgba(246, 243, 237, 0.48);
  height: 1px;
  transition: background-color 300ms ease, transform 300ms ease, width 300ms ease;
  width: 0.9rem;
}

.a2cp-home-hero__controls [data-a2cp-hero-control][aria-pressed="true"] span {
  background: var(--a2cp-paper);
  transform: scaleX(1.25);
  width: 1.35rem;
}

.a2cp-home-hero__pause {
  backdrop-filter: blur(12px);
  background: rgba(31, 35, 31, 0.68) !important;
  border: 1px solid rgba(246, 243, 237, 0.22) !important;
  padding-inline: 0.65rem;
}

/* The 18 chantier cards become one large, controlled visual stage. */
.a2cp-home-projects .a2cp-home-section-heading {
  max-width: 72rem;
}

.a2cp-home-projects .a2cp-home-section-heading .a2cp-lead {
  max-width: 47rem;
}

.a2cp-home-gallery__toolbar [data-a2cp-gallery-control] {
  display: inline-flex;
}

.a2cp-home-gallery__toolbar [data-a2cp-gallery-pause] {
  padding-inline: 0.9rem;
}

.a2cp-home-gallery,
.a2cp-home-projects__grid.a2cp-home-gallery {
  background: var(--a2cp-carbon);
  border: 1px solid rgba(52, 56, 50, 0.16);
  border-radius: 1rem 1rem 0.25rem 1rem;
  box-shadow: 0 1.5rem 4rem rgba(52, 56, 50, 0.16);
  display: block;
  height: clamp(32rem, 68svh, 42rem);
  margin: 1.5rem auto 0 !important;
  max-width: 72rem;
  overflow: hidden;
  padding: 0;
  position: relative;
  width: 100%;
}

.a2cp-home-gallery-card,
.a2cp-home-gallery .a2cp-home-gallery-card {
  border: 0;
  border-radius: 0;
  box-shadow: none !important;
  display: block !important;
  grid-template-columns: none !important;
  grid-template-rows: none !important;
  height: 100%;
  inset: 0;
  margin: 0 !important;
  max-width: none;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  position: absolute;
  top: 0;
  transform: scale(1.025);
  transition: opacity 700ms ease, transform 1000ms cubic-bezier(0.16, 1, 0.3, 1);
  visibility: hidden;
  width: 100%;
  z-index: 0;
}

.a2cp-home-gallery-card.is-active,
.a2cp-home-gallery .a2cp-home-gallery-card.is-active {
  opacity: 1;
  pointer-events: auto;
  transform: scale(1);
  visibility: visible;
  z-index: 2;
}

.a2cp-home-gallery-card .a2cp-home-project-card__media,
.a2cp-home-gallery .a2cp-home-gallery-card .a2cp-home-project-card__media {
  height: 100%;
  margin: 0 !important;
  max-width: none !important;
  width: 100%;
}

.a2cp-home-gallery-card .a2cp-home-project-card__media img {
  filter: saturate(0.9) contrast(1.035);
  height: 100%;
  object-fit: cover;
  transition: filter 700ms ease, transform 4s linear;
  width: 100%;
}

.a2cp-home-gallery[data-autoplay="true"] .a2cp-home-gallery-card.is-active .a2cp-home-project-card__media img {
  transform: scale(1.035);
}

.a2cp-home-gallery-card__caption,
.a2cp-home-gallery .a2cp-home-gallery-card__caption {
  align-items: end;
  backdrop-filter: none;
  background: linear-gradient(transparent, rgba(31, 35, 31, 0.88));
  bottom: 0;
  color: var(--a2cp-paper);
  display: grid;
  left: 0;
  max-width: none !important;
  padding: clamp(5rem, 16vw, 9rem) clamp(1rem, 4vw, 2.25rem) clamp(1.2rem, 4vw, 2rem);
  position: absolute;
  right: 0;
  width: 100%;
}

.a2cp-home-gallery-card__caption::before {
  display: none !important;
}

.a2cp-home-gallery-card__caption strong {
  color: var(--a2cp-paper);
  font-size: clamp(1.15rem, 3vw, 1.65rem);
}

.a2cp-home-gallery-card__caption small {
  color: rgba(246, 243, 237, 0.72);
  font-size: 0.82rem;
}

.a2cp-home-gallery-card__open {
  right: 0.85rem;
  top: 0.85rem;
}

/* About page: more breathing room, no cramped proof row, aligned headings. */
.a2cp-about-hero__copy {
  box-sizing: border-box;
  justify-content: flex-start;
  overflow: visible;
}

.a2cp-about-hero h1 {
  font-size: clamp(3rem, 6.2vw, 4.85rem);
  line-height: 0.98;
}

.a2cp-about-hero .a2cp-actions {
  gap: 0.75rem;
  margin-top: 1.65rem !important;
  width: 100%;
}

.a2cp-about-hero__proofs {
  margin-top: 2rem;
}

.a2cp-about-section-heading {
  align-items: flex-start !important;
  display: flex !important;
  flex-direction: column;
  gap: 0.75rem;
  max-width: 58rem;
  padding-bottom: clamp(1.5rem, 4vw, 2.25rem);
}

.a2cp-about-section-heading .a2cp-kicker,
.a2cp-about-section-heading h2,
.a2cp-about-section-heading .a2cp-lead {
  margin: 0 !important;
  max-width: none;
}

.a2cp-about-section-heading .a2cp-lead {
  max-width: 49rem;
}

.a2cp-about-territory__label {
  color: var(--a2cp-green-soft);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  margin: clamp(2rem, 5vw, 3.5rem) 0 0 !important;
  text-transform: uppercase;
}

.a2cp-about-territory__cities {
  margin-top: 0.65rem;
}

@media (min-width: 48rem) {
  .a2cp-home-hero__visual {
    display: grid;
    gap: 0.38rem;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.22fr) minmax(0, 0.9fr);
  }

  .a2cp-home-hero__media,
  [data-a2cp-home-hero] .a2cp-home-hero__media {
    grid-row: 1;
    inset: auto;
    opacity: 1;
    pointer-events: auto;
    position: relative;
    transform: none;
    visibility: visible;
    z-index: 1;
  }

  .a2cp-home-hero__media:nth-of-type(1) { grid-column: 1; }
  .a2cp-home-hero__media:nth-of-type(2) { grid-column: 2; }
  .a2cp-home-hero__media:nth-of-type(3) { grid-column: 3; }

  .a2cp-home-hero__media:nth-of-type(1) img { object-position: 50% 55%; }
  .a2cp-home-hero__media:nth-of-type(2) img { object-position: 50% 48%; }
  .a2cp-home-hero__media:nth-of-type(3) img { object-position: 54% 48%; }

  .a2cp-home-hero__controls {
    display: none;
  }

  .a2cp-home-hero__caption {
    bottom: auto;
    left: max(1rem, calc((100vw - 72rem) / 2));
    max-width: 20rem;
    top: 1.25rem;
  }

  [data-a2cp-home-hero][data-motion="ready"] .a2cp-home-hero__media {
    clip-path: inset(0 100% 0 0);
  }

  [data-a2cp-home-hero][data-motion="entered"] .a2cp-home-hero__media {
    clip-path: inset(0 0 0 0);
  }

  [data-a2cp-home-hero][data-motion="entered"] .a2cp-home-hero__media:nth-of-type(2) { transition-delay: 120ms; }
  [data-a2cp-home-hero][data-motion="entered"] .a2cp-home-hero__media:nth-of-type(3) { transition-delay: 240ms; }

  .a2cp-home-hero__visual:hover .a2cp-home-hero__media img {
    filter: saturate(0.76) contrast(1.02);
  }

  .a2cp-home-hero__visual .a2cp-home-hero__media:hover img {
    filter: saturate(0.94) contrast(1.04);
    transform: translate3d(var(--a2cp-hero-x), calc(var(--a2cp-hero-y) + var(--a2cp-parallax)), 0) scale(1.055);
  }

  .a2cp-home-gallery,
  .a2cp-home-projects__grid.a2cp-home-gallery {
    height: clamp(36rem, 72svh, 48rem);
  }
}

@media (min-width: 64rem) {
  .a2cp-home-hero__copy {
    margin-top: -29rem !important;
    padding-top: 5rem;
  }

  .a2cp-home-hero__title h1,
  .a2cp-home-hero h1 {
    font-size: clamp(4rem, 5.8vw, 5.35rem);
  }

  .a2cp-about-hero {
    grid-template-columns: minmax(36rem, 1fr) minmax(0, 1fr);
    min-height: min(52rem, calc(100svh - 4.6rem));
  }

  .a2cp-about-hero__copy {
    padding-block: clamp(3.5rem, 6vh, 5rem);
  }

  .a2cp-about-hero__portrait {
    min-height: min(52rem, calc(100svh - 4.6rem));
  }
}

@media (prefers-reduced-motion: reduce) {
  .a2cp-home-hero__media,
  .a2cp-home-gallery-card,
  .a2cp-home-gallery-card__media img {
    clip-path: none !important;
    filter: none !important;
    transition: none !important;
  }
}

/* V10.1: a stable reading axis, static headings and a persistent navigation. */
.wp-site-blocks > .wp-block-template-part:first-child {
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  position: sticky;
  top: 0;
  width: 100vw;
  z-index: 1000;
}

.site-header {
  backdrop-filter: none !important;
  box-sizing: border-box;
  left: auto;
  margin-inline: 0 !important;
  max-width: none !important;
  padding-block: 0.45rem;
  position: relative;
  right: auto;
  top: auto !important;
  transition: background-color 220ms ease, box-shadow 220ms ease, padding 220ms ease;
  width: 100% !important;
}

.site-header__inner,
.site-wordmark a,
.site-wordmark img {
  transition: min-height 220ms ease, height 220ms ease, width 220ms ease;
}

.site-header__inner {
  box-sizing: border-box;
  max-width: 72rem !important;
  min-height: 3.5rem;
  padding-inline: 1rem;
  width: 100% !important;
}

.site-header.is-scrolled {
  padding-block: 0.22rem;
}

.site-header.is-scrolled .site-header__inner {
  min-height: 2.85rem;
}

.site-header.is-scrolled .site-wordmark img {
  height: 2.15rem;
  width: 2.15rem;
}

.site-navigation .wp-block-navigation__responsive-container-open {
  gap: 0.5rem;
  padding-inline: 0.7rem;
  width: auto;
}

.site-navigation .wp-block-navigation__responsive-container-open::before {
  content: "Menu";
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}

.site-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.site-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
  align-items: center !important;
  justify-content: flex-start !important;
  width: 100%;
}

.site-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
  align-items: center !important;
}

body.admin-bar .wp-site-blocks > .wp-block-template-part:first-child {
  top: 46px;
}

.a2cp-home-hero__visual {
  height: clamp(26rem, 52svh, 34rem);
}

.a2cp-home-hero__title,
.a2cp-home-hero__details {
  align-items: center;
  display: flex;
  flex-direction: column;
  margin-inline: auto !important;
  max-width: 72rem;
  text-align: center;
  width: 100% !important;
}

.a2cp-home-hero__title > *,
.a2cp-home-hero__details > * {
  margin-left: auto !important;
  margin-right: auto !important;
}

.a2cp-home-hero__title h1,
.a2cp-home-hero h1 {
  font-size: clamp(1.95rem, 8.2vw, 5.35rem);
  line-height: 0.98;
  max-width: none;
  text-align: center;
  width: 100%;
}

.a2cp-home-hero__line {
  display: block;
  white-space: nowrap;
}

.a2cp-home-hero__details .a2cp-home-hero__lead {
  max-width: 44rem;
}

.a2cp-home-hero__details .a2cp-actions {
  margin-inline: auto !important;
}

.a2cp-home-hero__proofs {
  margin-inline: auto !important;
  max-width: 64rem;
  text-align: center;
  width: 100%;
}

.a2cp-home-hero__area {
  text-align: center;
}

.a2cp-local-service-section .a2cp-local-section-heading h2 {
  font-size: clamp(1.5rem, 7.8vw, 4rem);
  max-width: none;
  text-wrap: wrap;
  width: 100%;
}

main h1,
main h2 {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  text-wrap: balance;
}

main :is(
  .a2cp-home-section-heading,
  .a2cp-about-section-heading,
  .a2cp-zone-section-heading,
  .a2cp-local-section-heading,
  .a2cp-section-heading,
  .a2cp-cta
) {
  align-items: center !important;
  box-sizing: border-box;
  display: flex !important;
  flex-direction: column;
  left: auto;
  margin-left: 50% !important;
  margin-right: 0 !important;
  max-width: 72rem !important;
  position: relative;
  text-align: center;
  transform: translateX(-50%);
  width: min(72rem, calc(100vw - 2rem)) !important;
}

:where(
  .a2cp-home-section-heading,
  .a2cp-about-section-heading,
  .a2cp-zone-section-heading,
  .a2cp-local-section-heading,
  .a2cp-section-heading,
  .a2cp-cta
) > :where(.a2cp-kicker, h1, h2, .a2cp-lead, .a2cp-actions) {
  margin-left: auto !important;
  margin-right: auto !important;
}

:where(
  .a2cp-home-section-heading,
  .a2cp-about-section-heading,
  .a2cp-zone-section-heading,
  .a2cp-local-section-heading,
  .a2cp-section-heading,
  .a2cp-cta
) > :where(h1, h2) {
  max-width: 24ch;
  width: 100%;
}

:where(
  .a2cp-home-section-heading,
  .a2cp-about-section-heading,
  .a2cp-zone-section-heading,
  .a2cp-local-section-heading,
  .a2cp-section-heading,
  .a2cp-cta
) > .a2cp-lead {
  max-width: 52rem;
}

.a2cp-cta .a2cp-actions {
  justify-content: center;
}

:where(
  .a2cp-page-hero,
  .a2cp-hero__copy,
  .a2cp-about-hero__copy,
  .a2cp-attic-hero__copy,
  .a2cp-zone-hero__copy,
  .a2cp-local-hero__copy,
  .a2cp-editorial-hero,
  .a2cp-editorial-single-hero
) {
  text-align: center;
}

:where(
  .a2cp-page-hero,
  .a2cp-hero__copy,
  .a2cp-about-hero__copy,
  .a2cp-attic-hero__copy,
  .a2cp-zone-hero__copy,
  .a2cp-local-hero__copy,
  .a2cp-editorial-hero,
  .a2cp-editorial-single-hero
) > :where(.a2cp-kicker, h1, h2, .a2cp-lead, .a2cp-actions) {
  margin-left: auto !important;
  margin-right: auto !important;
}

:where(
  .a2cp-page-hero,
  .a2cp-hero__copy,
  .a2cp-about-hero__copy,
  .a2cp-attic-hero__copy,
  .a2cp-zone-hero__copy,
  .a2cp-local-hero__copy
) .a2cp-actions {
  justify-content: center;
}

@media (min-width: 30rem) {
  .site-header.is-scrolled .site-wordmark span {
    transform: scale(0.92);
    transform-origin: left center;
  }
}

@media (min-width: 48rem) {
  body.admin-bar .wp-site-blocks > .wp-block-template-part:first-child {
    top: 32px;
  }

  .a2cp-home-hero__visual {
    height: clamp(40rem, 78svh, 56rem);
  }

  .a2cp-home-hero__title h1,
  .a2cp-home-hero h1 {
    font-size: clamp(3.5rem, 5.8vw, 5.35rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-header,
  .site-header__inner,
  .site-wordmark a,
  .site-wordmark img {
    transition: none;
  }
}

/* Keep every section label on the same centered visual axis. */
main .a2cp-kicker {
  align-items: center;
  box-sizing: border-box;
  display: flex;
  flex-wrap: nowrap;
  font-size: clamp(0.6rem, 2.5vw, 0.72rem);
  gap: clamp(0.35rem, 1.6vw, 0.65rem);
  justify-content: center;
  letter-spacing: clamp(0.055em, 0.25vw, 0.13em);
  max-width: 100%;
  text-align: center;
  white-space: nowrap;
  width: 100%;
}

main .a2cp-kicker::before {
  content: none;
  display: none;
}

/* V11: resolve older high-specificity offsets on full-width editorial pages. */
main .a2cp-editorial-hero > h1,
main .a2cp-editorial-single-hero > h1,
main .a2cp-editorial-intro > h2 {
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}

/* Long-form headings follow the reading column instead of the viewport axis. */
main .a2cp-editorial-article__body > h2 {
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: 100%;
  text-align: left !important;
}

.a2cp-form__privacy {
  border-left: 0.2rem solid var(--a2cp-blue);
  color: var(--a2cp-muted);
  font-size: 0.9rem;
  line-height: 1.55;
  margin: 0;
  max-width: 54rem;
  padding-left: 0.9rem;
}

.a2cp-form__privacy a {
  color: var(--a2cp-carbon);
  font-weight: 800;
}

/* V12: continuous territory, scroll-led chantier stories and shared chrome. */
:root {
  --a2cp-territory: #dfe9e7;
  --a2cp-sticky-offset: 4.5rem;
}

/* The fixed chrome is deliberately opaque: content never ghosts underneath. */
.wp-site-blocks > .wp-block-template-part:first-child,
.site-header,
.site-header.is-scrolled {
  background: var(--a2cp-paper) !important;
}

.site-header,
.site-header.is-scrolled {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* The chrome may compact internally without moving the document below it. */
.wp-site-blocks > .wp-block-template-part:first-child {
  box-sizing: border-box;
  height: var(--a2cp-sticky-offset);
  min-height: var(--a2cp-sticky-offset);
}

.site-header,
.site-header.is-scrolled {
  align-items: center;
  display: flex;
  height: 100%;
}

.site-navigation .wp-block-navigation__responsive-container-open {
  background: var(--a2cp-carbon);
  border: 0;
  border-radius: 2rem;
  color: var(--a2cp-paper);
  min-height: 2.75rem;
  padding: 0.55rem 0.8rem;
  transition: background-color 180ms ease, transform 180ms ease;
}

.site-navigation .wp-block-navigation__responsive-container-open::before {
  color: inherit;
}

.site-navigation .wp-block-navigation__responsive-container-open svg {
  fill: currentColor;
}

.site-navigation .wp-block-navigation__responsive-container-open:hover,
.site-navigation .wp-block-navigation__responsive-container-open:focus-visible {
  background: var(--a2cp-blue);
  transform: translateY(-1px);
}

/* Hero and territory are one uninterrupted material surface. */
.a2cp-home-hero__copy {
  background: linear-gradient(
    180deg,
    rgba(52, 56, 50, 0),
    rgba(52, 56, 50, 0.93) 6rem,
    var(--a2cp-carbon) 10rem,
    var(--a2cp-carbon) 80%,
    var(--a2cp-paper) 100%
  ) !important;
}

.a2cp-home-area {
  background:
    linear-gradient(180deg, var(--a2cp-territory), rgba(223, 233, 231, 0) 8rem),
    radial-gradient(circle at 82% 26%, rgba(147, 170, 170, 0.22), transparent 27rem),
    var(--a2cp-territory) !important;
  box-sizing: border-box;
  margin: 0 calc(50% - 50vw) !important;
  max-width: none !important;
  padding: clamp(3.5rem, 9vw, 6.5rem) 1rem clamp(5.5rem, 12vw, 8rem) !important;
  width: 100vw !important;
}

.a2cp-home-area__copy {
  align-items: center;
  margin-inline: auto !important;
  max-width: 42rem;
  text-align: center;
}

.a2cp-home-area__cities {
  justify-content: center;
}

.a2cp-home-map {
  background: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  margin: 0 -1rem !important;
  max-width: none !important;
  overflow: visible;
  padding: 0 !important;
  width: calc(100% + 2rem) !important;
}

.a2cp-home-map__coverage circle {
  fill: url(#a2cp-map-coverage) !important;
  stroke: none !important;
}

.a2cp-home-map__route {
  opacity: 0.6;
  stroke-dasharray: 7 10;
  stroke-width: 3;
}

.a2cp-home-map text {
  font-size: 25px;
  stroke: var(--a2cp-territory);
  stroke-width: 7px;
}

.a2cp-home-map g.is-base text {
  font-size: 19px;
}

.a2cp-home-map a:focus-visible g circle:first-of-type {
  outline: none;
  stroke: var(--a2cp-carbon);
  stroke-width: 7;
}

/* Reviews move directly below the territory and form a soft glass transition. */
.a2cp-home-reviews {
  border-radius: clamp(2rem, 8vw, 5rem) clamp(2rem, 8vw, 5rem) 0 0;
  box-sizing: border-box;
  isolation: isolate;
  margin: -2.75rem calc(50% - 50vw) 0 !important;
  max-width: none !important;
  overflow: visible;
  position: relative;
  width: 100vw !important;
}

.a2cp-home-reviews::before {
  background: linear-gradient(180deg, rgba(223, 233, 231, 0), rgba(52, 56, 50, 0.28) 58%, rgba(52, 56, 50, 0.78));
  border-radius: inherit;
  content: "";
  height: 5rem;
  inset: -3.75rem 0 auto;
  pointer-events: none;
  position: absolute;
  z-index: -1;
}

.a2cp-home-reviews__summary,
.a2cp-home-reviews__carousel {
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

/* The new process wrapper remains harmless in static/reduced-motion mode. */
.a2cp-home-steps__stage {
  margin-inline: auto !important;
  max-width: 72rem;
  width: 100%;
}

/* Footer: true full bleed, a vertical material fade and complete local links. */
.wp-site-blocks > .wp-block-template-part:last-child {
  background: var(--a2cp-carbon) !important;
  margin: 0 calc(50% - 50vw) !important;
  max-width: none !important;
  width: 100vw !important;
}

.site-footer {
  background: linear-gradient(145deg, var(--a2cp-carbon), #44483f) !important;
  border-top: 0 !important;
  box-sizing: border-box;
  margin: 0 !important;
  max-width: none !important;
  overflow: visible;
  position: relative;
  width: 100% !important;
}

.site-footer::before {
  background: linear-gradient(180deg, rgba(52, 56, 50, 0), rgba(52, 56, 50, 0.45) 48%, var(--a2cp-carbon));
  content: "";
  height: clamp(4rem, 10vw, 7rem);
  left: 0;
  pointer-events: none;
  position: absolute;
  right: 0;
  top: calc(0rem - clamp(4rem, 10vw, 7rem));
}

.site-footer__grid {
  box-sizing: border-box;
  margin-inline: auto !important;
  max-width: 72rem !important;
  padding-inline: 1rem;
  width: 100% !important;
}

/* The current breadcrumb label now shares the exact axis of the home link. */
.a2cp-breadcrumbs ol {
  align-items: center;
}

.a2cp-breadcrumbs li {
  align-items: center;
  display: inline-flex;
  min-height: 2.75rem;
}

.a2cp-breadcrumbs li + li::before {
  align-items: center;
  align-self: stretch;
  display: inline-flex;
  line-height: 1;
}

.a2cp-breadcrumbs li > a,
.a2cp-breadcrumbs li > span {
  align-items: center;
  display: inline-flex;
  line-height: 1.35;
  min-height: 2.75rem;
}

@media (max-width: 47.999rem) {
  .a2cp-home-about__portrait {
    min-height: calc((100vw - 2rem) * 1.25);
    width: 100%;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open {
    background:
      radial-gradient(circle at 88% 8%, rgba(63, 108, 114, 0.42), transparent 18rem),
      linear-gradient(155deg, #343832, #282d29) !important;
    background-color: var(--a2cp-carbon) !important;
    color: var(--a2cp-paper) !important;
    isolation: isolate;
    padding: 1rem !important;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open::before {
    background: linear-gradient(90deg, var(--a2cp-blue) 0 62%, var(--a2cp-green) 62% 100%);
    height: 0.42rem;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open::after {
    bottom: 1.25rem;
    color: rgba(246, 243, 237, 0.58);
    content: "Plâtrerie · Carrelage · Yonne";
    font-size: 0.7rem;
    font-weight: 800;
    left: 1.25rem;
    letter-spacing: 0.12em;
    position: absolute;
    text-transform: uppercase;
  }

  .site-navigation .wp-block-navigation__responsive-container-close {
    background: rgba(246, 243, 237, 0.08);
    border: 1px solid rgba(246, 243, 237, 0.42);
    border-radius: 50%;
    color: var(--a2cp-paper);
  }

  .site-navigation .wp-block-navigation__responsive-container-close svg {
    fill: currentColor;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    padding: 5rem 0.75rem 4.5rem;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    counter-reset: a2cp-menu;
    gap: 0 !important;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    border-top: 1px solid rgba(246, 243, 237, 0.14);
    counter-increment: a2cp-menu;
    display: grid;
    grid-template-columns: 2.2rem minmax(0, 1fr);
    width: 100%;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item::before {
    align-self: center;
    color: var(--a2cp-green-soft);
    content: "0" counter(a2cp-menu);
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.08em;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    color: var(--a2cp-paper);
    font-size: clamp(1.65rem, 7.2vw, 2.35rem);
    min-height: 3.7rem;
    padding: 0.55rem 0;
    width: 100%;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open .nav-cta {
    border-top: 0;
    margin-top: 1rem;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open .nav-cta::before {
    color: var(--a2cp-paper);
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open .nav-cta .wp-block-navigation-item__content {
    background: var(--a2cp-blue);
    border-radius: 0.75rem;
    clip-path: none;
    justify-content: center;
    margin: 0;
  }

  /* Manual, complete fallback before JS and with reduced motion. */
  .a2cp-home-services__grid {
    display: flex;
    gap: 0.8rem;
    margin-inline: -1rem !important;
    max-width: none !important;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    padding: 0.25rem 1rem 1rem;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
    width: calc(100% + 2rem);
  }

  .a2cp-home-service-card {
    flex: 0 0 calc(100vw - 2rem);
    scroll-snap-align: center;
  }

  .a2cp-scroll-stories [data-scroll-story="ready"].a2cp-home-services,
  .a2cp-scroll-stories .a2cp-home-projects {
    overflow: visible;
    padding-bottom: 2rem;
    position: relative;
  }

  .a2cp-scroll-stories [data-scroll-story="ready"].a2cp-home-services::after,
  .a2cp-scroll-stories .a2cp-home-projects::after {
    content: "";
    display: block;
    height: var(--a2cp-story-runway, 100svh);
    pointer-events: none;
  }

  .a2cp-scroll-stories [data-scroll-story="ready"].a2cp-home-services__grid,
  .a2cp-scroll-stories .a2cp-home-gallery {
    contain: paint;
    display: block !important;
    height: calc(100svh - 5.15rem);
    margin: 1.5rem 0 0 !important;
    max-height: 44rem;
    min-height: 34rem;
    overflow: hidden;
    padding: 0 !important;
    position: sticky;
    top: var(--a2cp-sticky-offset, 4.35rem);
    width: 100% !important;
    will-change: transform;
  }

  .a2cp-scroll-stories [data-scroll-story="ready"].a2cp-home-services__grid {
    max-height: 40rem;
  }

  .a2cp-scroll-stories [data-scroll-story="ready"].a2cp-home-service-card,
  .a2cp-scroll-stories .a2cp-home-gallery-card {
    height: 100%;
    inset: 0;
    margin: 0 !important;
    opacity: var(--a2cp-story-opacity, 0) !important;
    pointer-events: none;
    position: absolute;
    transition: none !important;
    visibility: visible !important;
    width: 100%;
  }

  .a2cp-scroll-stories [data-scroll-story="ready"].a2cp-home-service-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: minmax(12rem, 43%) minmax(0, 1fr) !important;
    transform: translate3d(var(--a2cp-story-x, 104%), 0, 0) scale(var(--a2cp-story-scale, 0.965));
  }

  .a2cp-scroll-stories [data-scroll-story="ready"].a2cp-home-service-card[data-prime="true"],
  .a2cp-scroll-stories .a2cp-home-gallery-card[data-prime="true"] {
    pointer-events: auto;
  }

  .a2cp-scroll-stories [data-scroll-story="ready"].a2cp-home-service-card__media {
    aspect-ratio: auto;
    grid-column: 1;
    grid-row: 1;
    height: 100%;
    width: 100%;
  }

  .a2cp-scroll-stories [data-scroll-story="ready"].a2cp-home-service-card__copy {
    box-sizing: border-box;
    min-height: 0;
    overflow: auto;
    padding: 1.25rem;
    grid-column: 1;
    grid-row: 2;
  }

  .a2cp-scroll-stories [data-scroll-story="ready"].a2cp-home-service-card__copy h3 {
    font-size: clamp(1.45rem, 7vw, 2rem);
  }

  .a2cp-scroll-stories [data-scroll-story="ready"].a2cp-home-service-card__copy > p:not(.a2cp-home-service-card__number):not(.a2cp-home-service-card__link) {
    font-size: 1rem;
    line-height: 1.5;
  }

  .a2cp-scroll-stories .a2cp-home-gallery-card {
    border-radius: 1.25rem 1.25rem 0.4rem 1.25rem;
    box-shadow: 0 1.5rem 4rem rgba(31, 35, 31, 0.28) !important;
    transform:
      translate3d(var(--a2cp-story-x, 116%), 0, 0)
      rotate(var(--a2cp-story-rotate, 0deg))
      scale(var(--a2cp-story-scale, 0.965));
    transform-origin: center bottom;
  }

  .a2cp-scroll-stories .a2cp-home-gallery [data-a2cp-gallery-pause] {
    display: none;
  }

  .a2cp-home-reviews {
    padding-inline: 1rem;
  }
}

/* A process scene whose rail, title and active step remain visible together. */
.a2cp-process-scroll-story .a2cp-home-steps {
  overflow: visible;
  padding: 4rem 1rem 2rem;
  position: relative;
}

.a2cp-process-scroll-story .a2cp-home-steps::after {
  content: "";
  display: block;
  height: var(--a2cp-story-runway, 100svh);
  pointer-events: none;
}

.a2cp-process-scroll-story .a2cp-home-steps__stage {
  background:
    radial-gradient(circle at 86% 12%, rgba(63, 108, 114, 0.48), transparent 22rem),
    linear-gradient(145deg, var(--a2cp-carbon), #292e2a);
  border: 1px solid rgba(246, 243, 237, 0.16);
  border-radius: 2.25rem 2.25rem 0.65rem 2.25rem;
  box-shadow: 0 2rem 5rem rgba(52, 56, 50, 0.2);
  box-sizing: border-box;
  color: var(--a2cp-paper);
  contain: paint;
  height: calc(100svh - 5.15rem);
  max-height: 46rem;
  min-height: 38rem;
  overflow: hidden;
  padding: 1.25rem;
  position: sticky;
  top: var(--a2cp-sticky-offset, 4.35rem);
  will-change: transform;
}

html.a2cp-process-scroll-story main .a2cp-home-steps__stage > .a2cp-home-section-heading {
  align-items: center !important;
  left: auto;
  margin: 0 !important;
  max-width: 39rem !important;
  min-width: 0;
  text-align: center;
  transform: none;
  width: 100% !important;
}

.a2cp-process-scroll-story .a2cp-home-steps__stage .a2cp-kicker {
  color: var(--a2cp-green-soft);
  justify-content: center;
  margin: 0 0 1rem !important;
  text-align: center;
}

.a2cp-process-scroll-story .a2cp-home-steps__stage h2 {
  color: var(--a2cp-paper);
  font-size: clamp(1.8rem, 7vw, 3.6rem);
  margin: 0 auto !important;
  max-width: 14ch;
  text-align: center;
}

.a2cp-process-scroll-story .a2cp-home-steps__progress {
  background: transparent;
  height: 4.75rem;
  margin: 1rem 0 0;
  max-width: none;
  overflow: visible;
  position: relative;
}

.a2cp-process-scroll-story .a2cp-home-steps__progress::before {
  background: rgba(246, 243, 237, 0.18);
  content: "";
  height: 0.28rem;
  inset: auto 0 0;
  position: absolute;
}

.a2cp-process-scroll-story .a2cp-home-steps__progress > span {
  background: linear-gradient(90deg, var(--a2cp-blue-soft), var(--a2cp-green-soft));
  bottom: 0;
  height: 0.28rem;
  left: 0;
  position: absolute;
  transform: scaleX(var(--a2cp-process-progress, 0));
  transform-origin: left;
  transition: none;
  width: 100%;
}

.a2cp-process-scroll-story .a2cp-home-steps__progress p {
  align-items: baseline;
  display: flex;
  gap: 0.55rem;
  justify-content: flex-end;
  margin: 0 !important;
}

.a2cp-process-scroll-story .a2cp-home-steps__progress strong {
  color: var(--a2cp-paper);
  font-family: "Barlow", sans-serif;
  font-size: 2.75rem;
  line-height: 1;
}

.a2cp-process-scroll-story .a2cp-home-steps__progress small {
  color: rgba(246, 243, 237, 0.64);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.a2cp-process-scroll-story .a2cp-home-steps__list {
  display: block !important;
  grid-template-columns: none !important;
  grid-template-rows: none !important;
  height: calc(100% - 14.5rem);
  margin: 1rem 0 0;
  min-height: 17rem;
  min-width: 0;
  position: relative;
  width: 100% !important;
}

.a2cp-process-scroll-story .a2cp-home-steps__list li {
  align-items: center;
  background: linear-gradient(145deg, rgba(246, 243, 237, 0.13), rgba(246, 243, 237, 0.06));
  border: 1px solid rgba(246, 243, 237, 0.18);
  border-radius: 1.5rem 1.5rem 0.35rem 1.5rem;
  box-sizing: border-box;
  display: grid;
  gap: 1rem;
  grid-template-columns: 3.75rem minmax(0, 1fr);
  height: 100%;
  inset: 0;
  opacity: var(--a2cp-process-opacity, 0);
  padding: clamp(1.1rem, 5vw, 2rem);
  position: absolute;
  transform: translate3d(0, var(--a2cp-process-y, 108%), 0) scale(var(--a2cp-process-scale, 0.955));
  transition: none;
  width: 100%;
}

.a2cp-process-scroll-story .a2cp-home-steps__list li > span {
  align-items: center;
  background: var(--a2cp-blue);
  border: 1px solid rgba(246, 243, 237, 0.28);
  color: var(--a2cp-paper);
  display: inline-flex;
  font-size: 1.25rem;
  height: 3.75rem;
  justify-content: center;
  width: 3.75rem;
}

.a2cp-process-scroll-story .a2cp-home-steps__list small {
  color: var(--a2cp-green-soft);
}

.a2cp-process-scroll-story .a2cp-home-steps__list strong {
  color: var(--a2cp-paper);
  display: block;
  font-size: clamp(1.45rem, 6.5vw, 2.5rem);
  line-height: 1.05;
}

.a2cp-process-scroll-story .a2cp-home-steps__list p {
  color: rgba(246, 243, 237, 0.75);
  font-size: clamp(0.95rem, 3.8vw, 1.08rem);
  line-height: 1.55;
}

.a2cp-process-scroll-story .a2cp-home-steps__list li[data-prime="true"] {
  pointer-events: auto;
}

@media (min-width: 48rem) {
  :root {
    --a2cp-sticky-offset: 5rem;
  }

  .a2cp-home-area {
    gap: clamp(2.5rem, 6vw, 6rem);
    grid-template-columns: minmax(19rem, 0.82fr) minmax(0, 1.18fr);
    padding-inline: max(2rem, calc((100vw - 72rem) / 2)) !important;
  }

  .a2cp-home-area__copy {
    align-items: flex-start;
    text-align: left;
  }

  .a2cp-home-area__copy h2 {
    margin-left: 0 !important;
    text-align: left;
  }

  .a2cp-home-area__cities {
    justify-content: flex-start;
  }

  .a2cp-home-map {
    justify-self: stretch;
    margin: 0 !important;
    width: 100% !important;
  }

  .a2cp-process-scroll-story .a2cp-home-steps {
    padding-inline: 2rem;
  }

  .a2cp-process-scroll-story .a2cp-home-steps__stage {
    display: grid;
    gap: clamp(2rem, 5vw, 4.5rem);
    grid-template-columns: minmax(18rem, 0.82fr) minmax(0, 1.18fr);
    grid-template-rows: 1fr auto;
    padding: clamp(2rem, 4vw, 3.25rem);
  }

  .a2cp-process-scroll-story .a2cp-home-steps__stage > .a2cp-home-section-heading {
    grid-column: 1;
    grid-row: 1;
  }

  .a2cp-process-scroll-story .a2cp-home-steps__progress {
    align-self: end;
    grid-column: 1;
    grid-row: 2;
  }

  .a2cp-process-scroll-story .a2cp-home-steps__list {
    grid-column: 2;
    grid-row: 1 / 3;
    height: 100%;
    margin: 0;
  }
}

@media (min-width: 64rem) {
  .site-footer__grid {
    gap: clamp(1.75rem, 3vw, 3rem);
    grid-template-columns: 1.1fr 0.9fr 1fr 0.95fr !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-navigation .wp-block-navigation__responsive-container-open,
  .a2cp-home-service-card,
  .a2cp-home-gallery-card,
  .a2cp-home-steps__list li {
    transition: none !important;
  }

  .a2cp-home-steps__stage {
    position: static;
  }
}


/* ------------------------------------------------------------------ */
/* Fluidite du mouvement : les cartes animees sont promues sur leur    */
/* propre couche, et la barre de progression passe par une animation   */
/* liee au scroll quand le navigateur la supporte, ce qui evite        */
/* d invalider :root a chaque frame.                                   */
/* ------------------------------------------------------------------ */

.a2cp-scroll-stories [data-scroll-story="ready"].a2cp-home-service-card,
.a2cp-scroll-stories .a2cp-home-gallery-card,
.a2cp-process-scroll-story .a2cp-home-steps__stage [data-a2cp-home-step] {
  backface-visibility: hidden;
  will-change: transform, opacity;
}

@supports (animation-timeline: scroll()) {
  body::before {
    animation: a2cp-scroll-progress linear;
    animation-timeline: scroll(root block);
    height: 100%;
    transform-origin: top center;
  }
}

@keyframes a2cp-scroll-progress {
  from {
    transform: scaleY(0);
  }

  to {
    transform: scaleY(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .a2cp-scroll-stories [data-scroll-story="ready"].a2cp-home-service-card,
  .a2cp-scroll-stories .a2cp-home-gallery-card,
  .a2cp-process-scroll-story .a2cp-home-steps__stage [data-a2cp-home-step] {
    will-change: auto;
  }

  body::before {
    animation: none;
  }
}

/* V12.1: one corner language, without nested white wedges or fake overlaps. */
.a2cp-home-service-card,
.a2cp-scroll-stories [data-scroll-story="ready"].a2cp-home-service-card,
.a2cp-home-gallery,
.a2cp-scroll-stories .a2cp-home-gallery,
.a2cp-home-gallery-card,
.a2cp-scroll-stories .a2cp-home-gallery-card {
  border-radius: 1.25rem;
}

.a2cp-process-scroll-story .a2cp-home-steps__stage {
  border-radius: 2rem;
}

.a2cp-process-scroll-story .a2cp-home-steps__list li,
.a2cp-home-reviews__summary,
.a2cp-home-review {
  border-radius: 1.5rem;
}

.a2cp-home-reviews {
  box-shadow: 0 -1rem 0 1rem var(--a2cp-territory);
  margin: 0 calc(50% - 50vw) !important;
  overflow: hidden;
}

.a2cp-home-reviews::before {
  display: none;
}

/* V12.2: field-review corrections, readable holds and true full-bleed surfaces. */
.a2cp-home-hero__copy {
  --a2cp-hero-fade-span: 10rem;
  background: linear-gradient(
    180deg,
    rgba(52, 56, 50, 0),
    rgba(52, 56, 50, 0.93) 6rem,
    var(--a2cp-carbon) 10rem,
    var(--a2cp-carbon) calc(100% - var(--a2cp-hero-fade-span)),
    var(--a2cp-paper) 100%
  ) !important;
  padding-bottom: calc(var(--a2cp-hero-fade-span) + 2rem) !important;
}

.a2cp-home-services,
.a2cp-home-projects,
.a2cp-home-steps,
.a2cp-home-contact {
  box-sizing: border-box;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  max-width: none !important;
  width: 100vw !important;
}

.a2cp-home-contact {
  border-radius: 0;
  overflow: hidden;
}

/* V12.3: two explicit, readable actions at the moment a trade is understood. */
.a2cp-home-service-card__actions {
  display: grid;
  gap: 0.55rem;
  margin-top: auto;
  width: 100%;
}

.a2cp-home-service-card__actions a,
.a2cp-home-service-card__copy .a2cp-home-service-card__actions a {
  align-items: center;
  border: 1px solid var(--a2cp-blue);
  border-radius: 1.25rem;
  box-sizing: border-box;
  display: grid;
  font-size: 0.9375rem;
  font-weight: 800;
  gap: 0.65rem;
  grid-template-columns: minmax(0, 1fr) auto;
  justify-content: stretch;
  line-height: 1.2;
  margin: 0;
  min-height: 2.75rem;
  padding: 0.65rem 0.85rem;
  text-align: left;
  text-decoration: none;
  width: 100%;
}

.a2cp-home-service-card__actions .a2cp-home-service-card__quote {
  background: var(--a2cp-blue);
  color: var(--a2cp-paper);
}

.a2cp-home-service-card__actions .a2cp-home-service-card__detail {
  background: rgba(246, 243, 237, 0.72);
  color: var(--a2cp-blue);
}

.a2cp-home-service-card__actions a span {
  font-size: 1.05em;
  line-height: 1;
}

.a2cp-home-service-card__actions a:hover,
.a2cp-home-service-card__actions a:focus-visible {
  background: var(--a2cp-carbon);
  border-color: var(--a2cp-carbon);
  color: var(--a2cp-paper);
}

/* The shell stays exactly 72px; only the mark and inner contents compact. */
.site-header__inner {
  align-items: center !important;
  height: 100%;
  min-height: 0;
}

.site-header .site-wordmark,
.site-header .site-wordmark a {
  align-items: center;
  align-self: center;
  height: 100%;
}

.site-header .site-wordmark img {
  height: 3.4rem;
  width: 3.4rem;
}

.site-header.is-scrolled .site-wordmark img {
  height: 2.8rem;
  width: 2.8rem;
}

@media (max-width: 47.999rem) {
  .a2cp-home-hero__copy {
    --a2cp-hero-fade-span: 9rem;
    padding-bottom: 10rem !important;
  }

  .a2cp-home-area {
    padding-top: 1rem !important;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    max-height: 100%;
    overflow-y: auto;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open :is(.nav-zones-mobile, .nav-services-menu) {
    grid-template-columns: 2.2rem minmax(0, 1fr);
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open :is(.nav-zones-mobile, .nav-services-menu) > .wp-block-navigation-item__content {
    grid-column: 2;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open :is(.nav-zones-mobile, .nav-services-menu) > .wp-block-navigation__submenu-icon {
    display: none;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open :is(.nav-zones-mobile, .nav-services-menu) > .wp-block-navigation__submenu-container {
    background: transparent !important;
    border: 0;
    display: grid !important;
    gap: 0.45rem;
    grid-column: 1 / -1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    height: auto;
    left: auto;
    margin: -0.15rem 0 0;
    opacity: 1;
    padding: 0 0 0.75rem 2.2rem;
    position: static;
    visibility: visible;
    width: 100%;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open :is(.nav-zones-mobile, .nav-services-menu) .wp-block-navigation-item {
    border: 0;
    counter-increment: none;
    display: block;
    width: 100%;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open :is(.nav-zones-mobile, .nav-services-menu) .wp-block-navigation-item::before {
    content: none;
    display: none;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open :is(.nav-zones-mobile, .nav-services-menu) .wp-block-navigation-item__content {
    align-items: center;
    background: rgba(246, 243, 237, 0.08);
    border: 1px solid rgba(246, 243, 237, 0.16);
    border-radius: 0.65rem;
    display: flex;
    font-family: var(--wp--preset--font-family--body);
    font-size: 0.9rem;
    font-weight: 750;
    justify-content: center;
    letter-spacing: 0;
    line-height: 1.2;
    min-height: 2.75rem;
    padding: 0.55rem;
    text-align: center;
  }

  .a2cp-home-reviews {
    align-content: center;
    gap: 0.7rem;
    padding: 0.6rem 1rem;
  }

  .a2cp-home-reviews__summary {
    padding: 1rem;
  }

  .a2cp-home-reviews__eyebrow {
    margin-bottom: 0.5rem;
  }

  .a2cp-home-reviews h2 {
    font-size: 1.75rem;
    line-height: 1.02;
  }

  .a2cp-home-reviews__score {
    align-items: center;
    column-gap: 0.75rem;
    grid-template-columns: auto 1fr;
    margin: 0.625rem 0 0.25rem;
    row-gap: 0.1rem;
  }

  .a2cp-home-reviews__score strong {
    font-size: 2rem;
    grid-row: 1 / 3;
  }

  .a2cp-home-reviews__score > span {
    font-size: 0.95rem;
  }

  .a2cp-home-reviews__score small {
    font-size: 0.75rem;
  }

  .a2cp-home-reviews__link {
    min-height: 2.75rem;
    padding-block: 0.35rem;
  }

  .a2cp-home-reviews__carousel {
    padding: 0;
  }

  .a2cp-home-reviews__controls {
    margin-bottom: 0.25rem;
  }

  .a2cp-home-reviews__track {
    padding: 0.2rem 0.1rem 0.35rem;
  }

  .a2cp-home-review {
    min-height: 0;
    padding: 1rem;
  }

  .a2cp-home-review blockquote {
    font-size: 1rem;
    line-height: 1.45;
    margin-top: 0.45rem;
  }

  .a2cp-home-review footer {
    margin-top: 1rem;
    padding-top: 0.75rem;
  }
}

@media (min-width: 48rem) {
  .site-navigation .nav-zones-mobile {
    display: none !important;
  }
}

/* ------------------------------------------------------------------ */
/* V12.4 - passe terrain : axes de lecture, densité et footer net.    */
/* ------------------------------------------------------------------ */

.a2cp-home-reviews__summary > h2,
.a2cp-home-about__copy > h2 {
  margin-left: 0 !important;
  margin-right: 0 !important;
  text-align: left !important;
}

.site-footer {
  background: var(--a2cp-carbon) !important;
  border: 0 !important;
}

.site-footer::before {
  background: none !important;
  content: none;
  display: none;
}

main .a2cp-editorial-hero,
main .a2cp-editorial-intro {
  text-align: left;
}

main .a2cp-editorial-hero > :where(.a2cp-kicker, h1, .a2cp-lead),
main .a2cp-editorial-intro > :where(h2, p) {
  margin-left: 0 !important;
  margin-right: 0 !important;
  text-align: left !important;
}

main .a2cp-editorial-hero > h1,
main .a2cp-editorial-intro > h2 {
  margin-left: 0 !important;
  margin-right: 0 !important;
  text-align: left !important;
}

main .a2cp-editorial-hero .a2cp-kicker {
  justify-content: flex-start;
}

main .a2cp-editorial-card .wp-block-post-title {
  text-align: left;
}

.a2cp-about-hero__copy,
.a2cp-about-territory__copy {
  text-align: left;
}

.a2cp-about-hero__copy > :where(.a2cp-kicker, h1, .a2cp-lead, .a2cp-actions),
.a2cp-about-territory__copy > :where(.a2cp-kicker, h2, .a2cp-lead) {
  margin-left: 0 !important;
  margin-right: 0 !important;
  text-align: left !important;
}

.a2cp-about-hero__copy .a2cp-kicker,
.a2cp-about-territory__copy .a2cp-kicker {
  justify-content: flex-start;
}

.a2cp-about-hero__copy .a2cp-actions {
  justify-content: flex-start;
}

.a2cp-about-territory {
  align-items: start;
  column-gap: 0;
  row-gap: clamp(1.15rem, 4vw, 2rem);
}

.a2cp-about-territory__copy {
  max-width: 38rem;
}

.a2cp-about-territory__label {
  margin: 0 !important;
}

.a2cp-about-territory__cities {
  border: 0;
  margin: 0;
}

.a2cp-about-territory__cities a {
  border: 1px solid rgba(246, 243, 237, 0.2);
  border-radius: 0.75rem 0.75rem 0.2rem 0.75rem;
  padding: 0.75rem 1rem;
}

@media (min-width: 48rem) {
  .a2cp-process-scroll-story .a2cp-home-steps__stage {
    align-content: center;
    column-gap: clamp(2rem, 5vw, 4.5rem);
    grid-template-rows: min-content min-content;
    height: min(calc(100svh - 6rem), 38rem);
    max-height: 38rem;
    min-height: 34rem;
    row-gap: 1.5rem;
  }

  html.a2cp-process-scroll-story main .a2cp-home-steps__stage > .a2cp-home-section-heading {
    align-items: flex-start !important;
    align-self: end;
    text-align: left;
  }

  .a2cp-process-scroll-story .a2cp-home-steps__stage .a2cp-kicker {
    justify-content: flex-start;
    text-align: left;
  }

  .a2cp-process-scroll-story .a2cp-home-steps__stage h2 {
    margin-left: 0 !important;
    margin-right: 0 !important;
    text-align: left;
  }

  .a2cp-process-scroll-story .a2cp-home-steps__progress {
    align-self: start;
    margin: 0;
    width: 100% !important;
  }

  .a2cp-process-scroll-story .a2cp-home-steps__progress p {
    justify-content: flex-start;
  }

  .a2cp-process-scroll-story .a2cp-home-steps__list {
    align-self: center;
    height: clamp(18rem, 34vh, 20rem);
    min-height: 18rem;
  }

  .a2cp-about-territory {
    align-items: start;
    column-gap: clamp(3rem, 7vw, 7rem);
    grid-template-columns: minmax(0, 0.9fr) minmax(28rem, 1.1fr);
    grid-template-rows: auto auto;
    padding-block: clamp(5rem, 8vw, 7rem);
    row-gap: 1rem;
  }

  .a2cp-about-territory__copy {
    align-self: center;
    grid-column: 1;
    grid-row: 1 / 3;
  }

  .a2cp-about-territory__label {
    align-self: end;
    grid-column: 2;
    grid-row: 1;
  }

  .a2cp-about-territory__cities {
    display: grid;
    gap: 0.75rem;
    grid-column: 2;
    grid-row: 2;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .a2cp-about-territory__cities a {
    font-size: clamp(1.35rem, 2.2vw, 1.85rem);
    min-height: 4rem;
  }
}

/* ------------------------------------------------------------------ */
/* V12.5 - raccords hero courts et diffuses vers la surface suivante. */
/* ------------------------------------------------------------------ */

.a2cp-home-hero__copy,
.a2cp-zone-hero__copy,
.a2cp-local-hero__copy {
  --a2cp-hero-join-span: 3.5rem;
  isolation: isolate;
  position: relative;
}

.a2cp-home-hero__copy {
  --a2cp-hero-fade-span: 3.5rem;
  --a2cp-hero-join-color: var(--a2cp-paper);
  background: linear-gradient(
    180deg,
    rgba(52, 56, 50, 0),
    rgba(52, 56, 50, 0.93) 6rem,
    var(--a2cp-carbon) 10rem,
    var(--a2cp-carbon) calc(100% - var(--a2cp-hero-join-span)),
    color-mix(in srgb, var(--a2cp-carbon) 96%, var(--a2cp-hero-join-color)) calc(100% - 3.1rem),
    color-mix(in srgb, var(--a2cp-carbon) 82%, var(--a2cp-hero-join-color)) calc(100% - 2.6rem),
    color-mix(in srgb, var(--a2cp-carbon) 50%, var(--a2cp-hero-join-color)) calc(100% - 1.9rem),
    color-mix(in srgb, var(--a2cp-carbon) 18%, var(--a2cp-hero-join-color)) calc(100% - 1.2rem),
    color-mix(in srgb, var(--a2cp-carbon) 4%, var(--a2cp-hero-join-color)) calc(100% - 0.55rem),
    var(--a2cp-paper) 100%
  ) !important;
  padding-bottom: calc(var(--a2cp-hero-join-span) + 2rem) !important;
}

.a2cp-zone-hero__copy,
.a2cp-local-hero__copy {
  --a2cp-hero-join-color: var(--a2cp-paper);
  background: linear-gradient(
    180deg,
    rgba(52, 56, 50, 0) 0,
    rgba(52, 56, 50, 0.9) 4.75rem,
    var(--a2cp-carbon) 8rem,
    var(--a2cp-carbon) calc(100% - var(--a2cp-hero-join-span)),
    color-mix(in srgb, var(--a2cp-carbon) 96%, var(--a2cp-hero-join-color)) calc(100% - 3.1rem),
    color-mix(in srgb, var(--a2cp-carbon) 82%, var(--a2cp-hero-join-color)) calc(100% - 2.6rem),
    color-mix(in srgb, var(--a2cp-carbon) 50%, var(--a2cp-hero-join-color)) calc(100% - 1.9rem),
    color-mix(in srgb, var(--a2cp-carbon) 18%, var(--a2cp-hero-join-color)) calc(100% - 1.2rem),
    color-mix(in srgb, var(--a2cp-carbon) 4%, var(--a2cp-hero-join-color)) calc(100% - 0.55rem),
    var(--a2cp-paper) 100%
  ) !important;
}

.a2cp-home-hero__copy::before,
.a2cp-zone-hero__copy::before,
.a2cp-local-hero__copy::before {
  background:
    radial-gradient(
      ellipse 44% 125% at 16% -8%,
      color-mix(in srgb, var(--a2cp-carbon) 68%, transparent) 0%,
      color-mix(in srgb, var(--a2cp-carbon) 24%, transparent) 48%,
      transparent 78%
    ),
    radial-gradient(
      ellipse 52% 138% at 76% -14%,
      color-mix(in srgb, var(--a2cp-carbon) 58%, transparent) 0%,
      color-mix(in srgb, var(--a2cp-carbon) 20%, transparent) 52%,
      transparent 80%
    );
  bottom: -0.1rem;
  content: "";
  filter: blur(42px);
  height: 3rem;
  left: -4rem;
  opacity: 0.62;
  pointer-events: none;
  position: absolute;
  right: -4rem;
  transform: scaleX(1.06);
}

.a2cp-home-hero__copy::after,
.a2cp-zone-hero__copy::after,
.a2cp-local-hero__copy::after {
  background: linear-gradient(
    180deg,
    transparent 0%,
    transparent 12%,
    color-mix(in srgb, var(--a2cp-hero-join-color) 8%, transparent) 26%,
    color-mix(in srgb, var(--a2cp-hero-join-color) 30%, transparent) 46%,
    color-mix(in srgb, var(--a2cp-hero-join-color) 64%, transparent) 68%,
    color-mix(in srgb, var(--a2cp-hero-join-color) 90%, transparent) 86%,
    var(--a2cp-hero-join-color) 100%
  );
  bottom: 0;
  content: "";
  filter: blur(28px);
  height: var(--a2cp-hero-join-span);
  left: -2rem;
  pointer-events: none;
  position: absolute;
  right: -2rem;
  transform: scaleX(1.02);
}

@media (min-width: 48rem) {
  .a2cp-zone-hero__copy,
  .a2cp-local-hero__copy {
    background: linear-gradient(
      180deg,
      rgba(52, 56, 50, 0) 0,
      rgba(52, 56, 50, 0.92) 6rem,
      var(--a2cp-carbon) 10rem,
      var(--a2cp-carbon) calc(100% - var(--a2cp-hero-join-span)),
      color-mix(in srgb, var(--a2cp-carbon) 96%, var(--a2cp-hero-join-color)) calc(100% - 3.1rem),
      color-mix(in srgb, var(--a2cp-carbon) 82%, var(--a2cp-hero-join-color)) calc(100% - 2.6rem),
      color-mix(in srgb, var(--a2cp-carbon) 50%, var(--a2cp-hero-join-color)) calc(100% - 1.9rem),
      color-mix(in srgb, var(--a2cp-carbon) 18%, var(--a2cp-hero-join-color)) calc(100% - 1.2rem),
      color-mix(in srgb, var(--a2cp-carbon) 4%, var(--a2cp-hero-join-color)) calc(100% - 0.55rem),
      var(--a2cp-paper) 100%
    ) !important;
  }
}

@media (min-width: 64rem) {
  .a2cp-zone-hero__copy,
  .a2cp-local-hero__copy {
    background: linear-gradient(
      180deg,
      rgba(52, 56, 50, 0) 0,
      rgba(52, 56, 50, 0.94) 7rem,
      var(--a2cp-carbon) 12rem,
      var(--a2cp-carbon) calc(100% - var(--a2cp-hero-join-span)),
      color-mix(in srgb, var(--a2cp-carbon) 96%, var(--a2cp-hero-join-color)) calc(100% - 3.1rem),
      color-mix(in srgb, var(--a2cp-carbon) 82%, var(--a2cp-hero-join-color)) calc(100% - 2.6rem),
      color-mix(in srgb, var(--a2cp-carbon) 50%, var(--a2cp-hero-join-color)) calc(100% - 1.9rem),
      color-mix(in srgb, var(--a2cp-carbon) 18%, var(--a2cp-hero-join-color)) calc(100% - 1.2rem),
      color-mix(in srgb, var(--a2cp-carbon) 4%, var(--a2cp-hero-join-color)) calc(100% - 0.55rem),
      var(--a2cp-paper) 100%
    ) !important;
  }
}

@media (max-width: 47.999rem) {
  .site-navigation .wp-block-navigation__responsive-container.is-menu-open
    li:is(.nav-zones-mobile, .nav-services-menu) > .wp-block-navigation-item__content {
    margin-top: 0.55rem;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open
    li:is(.nav-zones-mobile, .nav-services-menu) > .wp-block-navigation__submenu-container {
    margin-top: 0.45rem;
  }
}

/* ------------------------------------------------------------------ */
/* V13 - architecture éditoriale et équilibre photographique du hero. */
/* ------------------------------------------------------------------ */

.a2cp-realisation-index,
.a2cp-realisation-case,
.a2cp-realisation-case__next {
  box-sizing: border-box;
  padding: clamp(4rem, 8vw, 8rem) max(1rem, calc((100vw - 72rem) / 2));
}

.a2cp-realisation-index__heading {
  max-width: 48rem;
}

.a2cp-realisation-index__grid {
  display: grid;
  gap: 1rem;
  margin-top: 2.5rem;
}

.a2cp-realisation-card {
  background: var(--a2cp-paper);
  border: 1px solid color-mix(in srgb, var(--a2cp-carbon) 14%, transparent);
  border-radius: 1.5rem;
  display: grid;
  overflow: hidden;
}

.a2cp-realisation-card__media {
  aspect-ratio: 4 / 3;
  margin: 0 !important;
  overflow: hidden;
}

.a2cp-realisation-card__media img,
.a2cp-realisation-case__image img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.a2cp-realisation-card__copy {
  align-content: start;
  display: grid;
  padding: clamp(1.25rem, 3vw, 2rem);
}

.a2cp-realisation-card__copy h2 {
  font-size: clamp(1.7rem, 3vw, 2.5rem);
}

.a2cp-realisation-case {
  display: grid;
  gap: clamp(2rem, 5vw, 5rem);
}

.a2cp-realisation-case__facts {
  align-self: start;
}

.a2cp-realisation-case__gallery {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.a2cp-realisation-case__image {
  aspect-ratio: 4 / 5;
  border-radius: 1rem;
  margin: 0 !important;
  overflow: hidden;
}

.a2cp-realisation-case__image:nth-child(3n + 1) {
  grid-column: 1 / -1;
  aspect-ratio: 16 / 10;
}

.a2cp-realisation-case__next {
  background: var(--a2cp-paper);
}

/* The copy begins later: the triptych remains legible before the dense fade. */
.a2cp-home-hero__copy {
  margin-top: -6.5rem !important;
  padding-top: 2.25rem;
}

@media (min-width: 48rem) {
  .site-navigation .wp-block-navigation__submenu-icon {
    align-items: center;
    display: inline-flex;
    height: 2.75rem;
    justify-content: center;
    margin-left: -0.65rem;
    min-height: 2.75rem;
    min-width: 2.75rem;
    width: 2.75rem;
  }

  .site-navigation .wp-block-navigation__submenu-icon svg {
    height: 0.5rem !important;
    width: 0.75rem !important;
  }

  .a2cp-realisation-index__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .a2cp-realisation-card {
    grid-template-rows: auto 1fr;
  }

  .a2cp-realisation-case {
    grid-template-columns: minmax(16rem, 0.72fr) minmax(0, 1.28fr);
  }

  .a2cp-home-hero__copy {
    margin-top: -8rem !important;
    padding-top: 2.75rem;
  }
}

@media (min-width: 64rem) {
  .a2cp-home-hero__copy {
    margin-top: -23rem !important;
    padding-top: 4.5rem;
  }
}

/* V13.1: keep the final quote invitation on one calm reading axis. */
main .a2cp-home-contact__copy > :where(.a2cp-kicker, h2, .a2cp-lead) {
  margin-left: 0 !important;
  margin-right: 0 !important;
  text-align: left !important;
}

main .a2cp-home-contact__copy > .a2cp-kicker {
  justify-content: flex-start;
}

/* V13.2: the mobile veil becomes opaque before the photograph ends. */
@media (max-width: 47.999rem) {
  .a2cp-home-hero__copy {
    background: linear-gradient(
      180deg,
      rgba(52, 56, 50, 0) 0,
      rgba(52, 56, 50, 0.22) 1rem,
      rgba(52, 56, 50, 0.58) 2.7rem,
      rgba(52, 56, 50, 0.86) 4.2rem,
      rgba(52, 56, 50, 0.98) 5.5rem,
      var(--a2cp-carbon) 6.1rem,
      var(--a2cp-carbon) calc(100% - var(--a2cp-hero-join-span)),
      color-mix(in srgb, var(--a2cp-carbon) 96%, var(--a2cp-hero-join-color)) calc(100% - 3.1rem),
      color-mix(in srgb, var(--a2cp-carbon) 82%, var(--a2cp-hero-join-color)) calc(100% - 2.6rem),
      color-mix(in srgb, var(--a2cp-carbon) 50%, var(--a2cp-hero-join-color)) calc(100% - 1.9rem),
      color-mix(in srgb, var(--a2cp-carbon) 18%, var(--a2cp-hero-join-color)) calc(100% - 1.2rem),
      color-mix(in srgb, var(--a2cp-carbon) 4%, var(--a2cp-hero-join-color)) calc(100% - 0.55rem),
      var(--a2cp-paper) 100%
    ) !important;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item:is(.nav-services-menu, .nav-zones-mobile) {
    grid-template-columns: 2.2rem minmax(0, 1fr) 2.75rem;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item:is(.nav-services-menu, .nav-zones-mobile)::before {
    grid-column: 1;
    grid-row: 1;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item:is(.nav-services-menu, .nav-zones-mobile)
    > .wp-block-navigation-item__content {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 0;
    display: flex;
    font-family: inherit;
    font-size: clamp(1.65rem, 7.2vw, 2.35rem);
    font-weight: inherit;
    grid-column: 2;
    grid-row: 1;
    justify-content: flex-start;
    letter-spacing: inherit;
    line-height: inherit;
    min-height: 3.7rem;
    padding: 0.55rem 0;
    text-align: left;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item:is(.nav-services-menu, .nav-zones-mobile)
    > .wp-block-navigation__submenu-icon {
    align-items: center;
    align-self: center;
    background: rgba(246, 243, 237, 0.06);
    border: 1px solid rgba(246, 243, 237, 0.25);
    border-radius: 50%;
    color: var(--a2cp-paper);
    display: inline-flex !important;
    grid-column: 3;
    grid-row: 1;
    height: 2.75rem;
    justify-content: center;
    justify-self: end;
    margin: 0;
    min-height: 2.75rem;
    min-width: 2.75rem;
    padding: 0;
    width: 2.75rem;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item:is(.nav-services-menu, .nav-zones-mobile)
    > .wp-block-navigation__submenu-icon svg {
    height: 0.75rem;
    stroke: currentColor;
    transition: transform 180ms ease;
    width: 0.75rem;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item:is(.nav-services-menu, .nav-zones-mobile)
    > .wp-block-navigation__submenu-icon[aria-expanded="true"] svg {
    transform: rotate(180deg);
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item:is(.nav-services-menu, .nav-zones-mobile)
    > .wp-block-navigation__submenu-container {
    background: transparent !important;
    border: 0;
    border-left: 1px solid rgba(169, 207, 202, 0.3);
    display: none !important;
    gap: 0;
    grid-column: 2 / -1;
    grid-row: 2;
    grid-template-columns: minmax(0, 1fr);
    height: auto;
    left: auto;
    margin: 0 0 0.85rem;
    opacity: 1;
    padding: 0 0 0 0.9rem;
    position: static;
    visibility: visible;
    width: 100%;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item:is(.nav-services-menu, .nav-zones-mobile)
    > .wp-block-navigation__submenu-icon[aria-expanded="true"]
    + .wp-block-navigation__submenu-container {
    display: grid !important;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item:is(.nav-services-menu, .nav-zones-mobile)
    > .wp-block-navigation__submenu-container
    > .wp-block-navigation-item {
    border: 0;
    border-bottom: 1px solid rgba(246, 243, 237, 0.11);
    counter-increment: none;
    display: block;
    width: 100%;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item:is(.nav-services-menu, .nav-zones-mobile)
    > .wp-block-navigation__submenu-container
    > .wp-block-navigation-item::before {
    content: none;
    display: none;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item:is(.nav-services-menu, .nav-zones-mobile)
    > .wp-block-navigation__submenu-container
    > .wp-block-navigation-item
    > .wp-block-navigation-item__content {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 0;
    color: rgba(246, 243, 237, 0.82);
    display: flex;
    font-family: inherit;
    font-size: 0.95rem;
    font-weight: 650;
    justify-content: flex-start;
    letter-spacing: 0;
    line-height: 1.25;
    min-height: 2.75rem;
    padding: 0.55rem 0.4rem;
    text-align: left;
    width: 100%;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item:is(.nav-services-menu, .nav-zones-mobile)
    > .wp-block-navigation__submenu-container
    > .wp-block-navigation-item
    > .wp-block-navigation-item__content:is(:hover, :focus-visible) {
    background: rgba(246, 243, 237, 0.07);
    color: var(--a2cp-paper);
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__container
    > .wp-block-navigation-item:not(.nav-cta)
    > .wp-block-navigation-item__content {
    font-size: clamp(1.4rem, 6.2vw, 1.7rem);
    line-height: 1.1;
  }
}

@media (max-width: 47.999rem) and (prefers-reduced-motion: reduce) {
  .site-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item:is(.nav-services-menu, .nav-zones-mobile)
    > .wp-block-navigation__submenu-icon svg {
    transition: none;
  }
}

/* ------------------------------------------------------------------ */
/* V13.3: six vraies vues, visibles sans carrousel ni action préalable. */
/* ------------------------------------------------------------------ */

.a2cp-home-projects {
  background: var(--a2cp-carbon);
  color: var(--a2cp-paper);
  padding: clamp(4.5rem, 8vw, 7rem) max(1rem, calc((100vw - 72rem) / 2));
}

.a2cp-home-projects > * {
  margin-inline: auto;
  max-width: 72rem;
  width: 100%;
}

.a2cp-home-projects__intro {
  align-items: end;
  display: grid;
  gap: 1.5rem;
}

.a2cp-home-projects__intro-copy,
.a2cp-home-projects__intro-copy > *,
.a2cp-home-showcase-card__copy > * {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.a2cp-home-projects__intro-copy {
  max-width: 47rem;
}

.a2cp-home-projects .a2cp-kicker {
  color: var(--a2cp-blue-soft);
}

.a2cp-home-projects h2 {
  color: var(--a2cp-paper);
  margin-top: 0.65rem;
}

.a2cp-home-projects__intro .a2cp-lead {
  color: rgba(246, 243, 237, 0.74);
  margin-top: 1rem;
  max-width: 42rem;
}

.a2cp-home-projects__all-wrap {
  margin: 0;
}

.a2cp-home-projects__all {
  align-items: center;
  border: 1px solid rgba(246, 243, 237, 0.34);
  border-radius: 2rem;
  color: var(--a2cp-paper);
  display: inline-flex;
  font-size: 0.95rem;
  font-weight: 800;
  gap: 0.7rem;
  justify-content: center;
  min-height: 3rem;
  padding: 0.65rem 1rem;
  text-decoration: none;
}

.a2cp-home-projects__all:is(:hover, :focus-visible) {
  background: var(--a2cp-paper);
  color: var(--a2cp-carbon);
}

.a2cp-home-showcase__grid {
  display: grid;
  gap: 1rem;
  margin-top: clamp(2rem, 5vw, 3.5rem);
}

.a2cp-home-showcase-card {
  background: #292d29;
  border: 1px solid rgba(246, 243, 237, 0.16);
  border-radius: 1.35rem;
  box-shadow: 0 1.35rem 3.5rem rgba(8, 12, 9, 0.2);
  display: grid;
  min-width: 0;
  overflow: hidden;
  position: relative;
}

.a2cp-home-showcase-card__media {
  display: grid;
  gap: 0.35rem;
  grid-template-columns: minmax(0, 1.22fr) minmax(0, 0.78fr);
  height: clamp(17rem, 72vw, 22rem);
  margin: 0 !important;
  max-width: none !important;
  overflow: hidden;
}

.a2cp-home-showcase-card__image {
  height: 100%;
  margin: 0 !important;
  max-width: none !important;
  min-width: 0;
  overflow: hidden;
  width: 100%;
}

.a2cp-home-showcase-card__image img {
  display: block;
  filter: saturate(0.92) contrast(1.025);
  height: 100%;
  object-fit: cover;
  transition: filter 450ms ease, transform 650ms cubic-bezier(0.16, 1, 0.3, 1);
  width: 100%;
}

.a2cp-home-showcase-card__image:nth-child(2) img {
  object-position: 62% center;
}

.a2cp-home-showcase-card__copy {
  align-content: start;
  box-sizing: border-box;
  display: grid;
  max-width: none !important;
  padding: 1.25rem;
  position: static;
  width: 100%;
}

.a2cp-home-showcase-card__meta {
  color: var(--a2cp-blue-soft);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.09em;
  margin: 0;
  text-transform: uppercase;
}

.a2cp-home-showcase-card h3 {
  color: var(--a2cp-paper);
  font-family: "Barlow", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: clamp(1.45rem, 5vw, 2rem);
  letter-spacing: -0.025em;
  line-height: 1.05;
  margin: 0.55rem 0 0;
}

.a2cp-home-showcase-card__copy > p:last-child {
  margin: 0.8rem 0 0;
  min-height: 2.75rem;
}

.a2cp-home-showcase-card__link {
  align-items: flex-end;
  box-sizing: border-box;
  color: var(--a2cp-paper);
  display: flex;
  font-size: 0.92rem;
  font-weight: 800;
  gap: 0.55rem;
  inset: 0;
  justify-content: flex-start;
  min-height: 2.75rem;
  padding: 0 1.25rem 1.25rem;
  position: absolute;
  text-decoration: none;
  z-index: 3;
}

.a2cp-home-showcase-card__link::after {
  content: none;
  display: none;
}

.a2cp-home-showcase-card:has(.a2cp-home-showcase-card__link:focus-visible) {
  outline: 3px solid var(--a2cp-blue-soft);
  outline-offset: 4px;
}

.a2cp-home-showcase-card:is(:hover, :focus-within) .a2cp-home-showcase-card__image:first-child img {
  filter: saturate(1) contrast(1.04);
  transform: scale(1.025);
}

.a2cp-scroll-stories .a2cp-home-projects::after {
  content: none;
  display: none;
}

@media (min-width: 48rem) {
  .a2cp-home-projects__intro {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .a2cp-home-projects__all-wrap {
    justify-self: end;
  }

  .a2cp-home-showcase__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .a2cp-home-showcase-card:first-child {
    grid-column: 1 / -1;
  }

  .a2cp-home-showcase-card__media {
    height: 20rem;
  }

  .a2cp-home-showcase-card:first-child .a2cp-home-showcase-card__media {
    height: 30rem;
  }
}

@media (min-width: 64rem) {
  .a2cp-home-showcase__grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(0, 1fr));
  }

  .a2cp-home-showcase-card:first-child {
    grid-column: 1 / 8;
    grid-row: 1 / 3;
  }

  .a2cp-home-showcase-card:nth-child(2),
  .a2cp-home-showcase-card:nth-child(3) {
    grid-column: 8 / -1;
  }

  .a2cp-home-showcase-card:first-child .a2cp-home-showcase-card__media {
    height: 36rem;
  }

  .a2cp-home-showcase-card:not(:first-child) .a2cp-home-showcase-card__media {
    height: 14.5rem;
  }

  .a2cp-home-showcase-card__copy {
    padding: 1.4rem 1.5rem;
  }

  .a2cp-home-showcase-card__link {
    padding: 0 1.5rem 1.4rem;
  }
}

.a2cp-realisation-case__gallery .a2cp-realisation-case__image:only-child {
  aspect-ratio: 4 / 3;
  grid-column: 1 / -1;
}

@media (prefers-reduced-motion: reduce) {
  .a2cp-home-showcase-card__image img {
    transition: none;
  }
}

/* V14: direct quote journey and customer-facing project details. */
.a2cp-quote-intro {
  margin-inline: auto !important;
  max-width: 52rem !important;
  padding: clamp(2rem, 5vw, 4rem) 1rem 1.5rem;
  text-align: center;
}

.a2cp-quote-intro h1 {
  font-size: clamp(2rem, 5vw, 3.5rem);
  line-height: 1.08;
  max-width: 23ch;
  margin-inline: auto !important;
  text-wrap: balance;
}

.a2cp-quote-intro .a2cp-lead {
  max-width: 44rem;
  margin-inline: auto !important;
}

.a2cp-quote-content {
  margin-inline: auto !important;
  width: 100%;
  padding-top: 1rem;
  max-width: 52rem !important;
}

.a2cp-quote-content > h2 {
  border: 0;
  font-size: 1.35rem;
  line-height: 1.3;
  margin-bottom: 1rem;
  padding-top: 0;
}

.a2cp-quote-content .a2cp-service-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
}

.a2cp-quote-content .a2cp-service-list li {
  border: 0;
  display: block;
  flex: 1 1 12rem;
  margin: 0;
  padding: 0;
}

.a2cp-quote-content .a2cp-service-list li::before {
  display: none;
}

.a2cp-quote-content .a2cp-service-list a {
  align-items: center;
  border: 1px solid var(--a2cp-blue);
  border-radius: 0.4rem;
  display: flex;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.65rem 0.8rem;
  text-align: center;
  text-decoration: none;
}

.a2cp-quote-content .a2cp-service-list a:hover,
.a2cp-quote-content .a2cp-service-list a[aria-current="true"] {
  background: var(--a2cp-paper);
}

.a2cp-quote-content .a2cp-form {
  border-color: var(--a2cp-line);
  border-top-color: var(--a2cp-blue);
  border-radius: 0.6rem;
  margin-top: 1.5rem;
}

.a2cp-quote-content .a2cp-form__header h2 {
  border: 0;
  font-size: clamp(1.75rem, 4vw, 2.4rem);
  line-height: 1.15;
  padding-top: 0;
}

.a2cp-realisation-case__next > .a2cp-related {
  max-width: 72rem;
}

.a2cp-realisation-case__next .a2cp-related strong {
  font-size: clamp(1.25rem, 2vw, 1.65rem);
  line-height: 1.2;
}

.a2cp-cta-band {
  padding: clamp(3rem, 7vw, 5rem) max(1rem, calc((100vw - 72rem) / 2));
  text-align: center;
}

.a2cp-cta-band > * {
  margin-inline: auto !important;
  max-width: 48rem;
}

.a2cp-cta-band h2 {
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  line-height: 1.15;
}

.a2cp-cta-band .a2cp-actions {
  justify-content: center;
  margin-top: 1.5rem;
}

.a2cp-about-hero__copy > .a2cp-kicker {
  color: #b5cecb;
}

.a2cp-realisation-index__grid {
  max-width: none !important;
  width: 100%;
}

.a2cp-realisation-index__grid > .a2cp-realisation-card {
  margin: 0 !important;
}

.a2cp-realisation-card__copy {
  gap: 1rem;
  text-align: left;
}

.a2cp-realisation-card__copy > * {
  margin: 0 !important;
}

.a2cp-realisation-card__copy h2 {
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  line-height: 1.1;
  text-align: left;
}

.a2cp-realisation-card__copy .a2cp-kicker {
  justify-content: flex-start;
  text-align: left;
}

.a2cp-home-about__portrait {
  min-width: 0;
  width: 100%;
}

.a2cp-zone-city-card .a2cp-photo-credit {
  color: #515b56;
}

/* V15: one readable photograph per subject, equal space for the two crafts. */
.a2cp-home-showcase__grid {
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: none;
  gap: clamp(1rem, 2vw, 1.75rem);
}
.a2cp-home-showcase__grid .a2cp-home-showcase-card {
  margin-block: 0; /* The grid gap handles spacing between WordPress blocks. */
  grid-column: auto;
  grid-row: auto;
  grid-template-rows: auto 1fr;
}
.a2cp-home-showcase__grid .a2cp-home-showcase-card .a2cp-home-showcase-card__media {
  grid-template-columns: minmax(0, 1fr);
  aspect-ratio: 4 / 3;
  height: auto;
}
.a2cp-home-showcase-card__copy { min-height: 10rem; }
.a2cp-home-guides {
  box-sizing: border-box;
  padding: clamp(3.5rem, 7vw, 6rem) var(--a2cp-gutter, 1.5rem);
}
.a2cp-home-guides > :not(.a2cp-related) { text-align: center; }
.a2cp-home-guides > .a2cp-related { margin-top: 2rem; }
.a2cp-home-faq { padding-block: clamp(3.5rem, 7vw, 6rem); }
@media (min-width: 48rem) {
  .a2cp-home-showcase__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .a2cp-home-hero__visual { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.a2cp-home-guides > h2,
.a2cp-realisation-index__heading > h2 {
  font-size: clamp(2rem, 4.2vw, 3.4rem);
  line-height: 1.06;
  letter-spacing: -0.035em;
}
@media (max-width: 47.999rem) {
  .a2cp-home-services__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
    margin-inline: 0 !important;
    overflow: visible;
    padding: 0;
    width: 100%;
    scroll-snap-type: none;
  }
}
