/* Comportements accessibles reconstruits ; styles visuels d'origine conservés. */
.projectGalleryLightbox[hidden], .lightbox[hidden] { display: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
}

/* Dynamisation premium — passe 2 : narration au scroll, sans décalage de mise en page. */
:root {
  --dc-motion-ease: cubic-bezier(.22, .61, .36, 1);
  --dc-motion-ease-out: cubic-bezier(.16, 1, .3, 1);
  --dc-motion-cinematic: cubic-bezier(.19, 1, .22, 1);
}

.dc-motion-ready .dc-reveal {
  opacity: 0;
  transform: translate3d(var(--dc-reveal-x, 0), var(--dc-reveal-y, 48px), 0);
  transition:
    opacity 1050ms var(--dc-motion-ease),
    transform 1300ms var(--dc-motion-cinematic),
    -webkit-clip-path 1350ms var(--dc-motion-cinematic),
    clip-path 1350ms var(--dc-motion-cinematic) !important;
  transition-delay: var(--dc-delay, 0ms) !important;
  will-change: opacity, transform;
}
.dc-motion-ready .dc-reveal.dc-reveal-soft {
  --dc-reveal-y: 32px;
}
.dc-motion-ready .dc-reveal.dc-reveal-left {
  --dc-reveal-x: 0;
  --dc-reveal-y: 24px;
}
.dc-motion-ready .dc-reveal.dc-reveal-right {
  --dc-reveal-x: 0;
  --dc-reveal-y: 24px;
}
.dc-motion-ready .dc-reveal.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  will-change: auto;
}

/* Les grands titres s'ouvrent comme un masque éditorial, sans découpage du texte. */
.dc-motion-ready .dc-title-reveal {
  -webkit-clip-path: inset(0 0 100% 0);
  clip-path: inset(0 0 100% 0);
  opacity: 0;
  transform: translate3d(0, 56px, 0);
  transition:
    opacity 1050ms var(--dc-motion-ease),
    transform 1400ms var(--dc-motion-cinematic),
    -webkit-clip-path 1400ms var(--dc-motion-cinematic),
    clip-path 1400ms var(--dc-motion-cinematic) !important;
  transition-delay: var(--dc-delay, 0ms) !important;
}
.dc-motion-ready .dc-title-reveal.is-visible {
  -webkit-clip-path: inset(0 0 0 0);
  clip-path: inset(0 0 0 0);
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* Les photographies se découvrent avant leur contenu associé. */
.dc-motion-ready .dc-media-reveal {
  -webkit-clip-path: inset(0 0 100% 0);
  clip-path: inset(0 0 100% 0);
  opacity: 0;
  transform: translate3d(0, 36px, 0) scale(.985);
  transition:
    opacity 1000ms var(--dc-motion-ease),
    transform 1400ms var(--dc-motion-cinematic),
    -webkit-clip-path 1450ms var(--dc-motion-cinematic),
    clip-path 1450ms var(--dc-motion-cinematic) !important;
  transition-delay: var(--dc-delay, 0ms) !important;
  will-change: opacity, transform, clip-path;
}
.dc-motion-ready .dc-media-reveal.is-visible {
  -webkit-clip-path: inset(0 0 0 0);
  clip-path: inset(0 0 0 0);
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  will-change: auto;
}

/* Entrées de hero : une séquence plus lisible et véritablement cinématographique. */
.dc-motion-ready .dc-hero-item {
  opacity: 0;
  transform: translate3d(0, 42px, 0);
  transition:
    opacity 1450ms var(--dc-motion-ease),
    transform 1850ms var(--dc-motion-cinematic);
  transition-delay: var(--dc-hero-delay, 160ms);
}
.dc-motion-ready.dc-page-entered .dc-hero-item {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}
.dc-motion-ready .dc-hero-title {
  -webkit-clip-path: inset(0 0 100% 0);
  clip-path: inset(0 0 100% 0);
  transform: translate3d(0, 58px, 0);
  transition:
    opacity 1500ms var(--dc-motion-ease),
    transform 1950ms var(--dc-motion-cinematic),
    -webkit-clip-path 1900ms var(--dc-motion-cinematic),
    clip-path 1900ms var(--dc-motion-cinematic);
  transition-delay: var(--dc-hero-delay, 320ms);
}
.dc-motion-ready.dc-page-entered .dc-hero-title {
  -webkit-clip-path: inset(0 0 0 0);
  clip-path: inset(0 0 0 0);
}
.homePage .homeHero {
  isolation: isolate;
  overflow: hidden;
  position: relative;
}
.homePage .homeHero::before {
  content: "";
  z-index: -2;
  background: url(/media/web/hero-accueil-dar-leon-1492.webp) 50% 58% / cover no-repeat;
  position: absolute;
  inset: -6%;
  transform: translate3d(0, var(--dc-hero-media-y, 0), 0) scale(1.11);
  transition: transform 2800ms var(--dc-motion-cinematic);
  will-change: transform;
}
.dc-motion-ready.dc-page-entered .homePage .homeHero::before {
  transform: translate3d(0, var(--dc-hero-media-y, 0), 0) scale(1.025);
}
.homePage .homeHeroShade {
  z-index: -1;
  opacity: var(--dc-hero-overlay-opacity, 1);
  transform: translate3d(0, var(--dc-hero-overlay-y, 0), 0) scale(1.02);
  transition: opacity 1400ms var(--dc-motion-ease), transform 1700ms var(--dc-motion-cinematic);
  will-change: transform, opacity;
}
.homePage .homeHeroInner {
  transform: translate3d(0, var(--dc-hero-content-y, 0), 0);
  transition: transform 1350ms var(--dc-motion-cinematic);
  will-change: transform;
}

/* Navigation : le changement d'état devient immédiatement perceptible. */
.siteNavigation {
  transition:
    background-color 420ms ease,
    box-shadow 420ms ease,
    border-color 420ms ease,
    backdrop-filter 420ms ease,
    -webkit-backdrop-filter 420ms ease;
}
.siteNavigation.is-scrolled {
  -webkit-backdrop-filter: blur(18px) saturate(122%);
  backdrop-filter: blur(18px) saturate(122%);
  background-color: rgba(13, 10, 7, .97) !important;
  border-bottom-color: rgba(202, 166, 108, .24) !important;
  box-shadow: 0 1px rgba(202, 166, 108, .28), 0 16px 38px rgba(0, 0, 0, .2);
}
.siteNavigationLinks a,
.siteNavigationCta,
.mobileCta,
.btn,
.darButton,
.projectDescriptionButton,
.projectProfitabilityAction a {
  transition:
    color 260ms ease,
    background-color 260ms ease,
    border-color 260ms ease,
    box-shadow 320ms ease,
    transform 280ms var(--dc-motion-ease-out) !important;
}
:is(.siteNavigationCta, .mobileCta, .btn, .darButton, .projectDescriptionButton, .projectProfitabilityAction a):hover,
:is(.siteNavigationCta, .mobileCta, .btn, .darButton, .projectDescriptionButton, .projectProfitabilityAction a):focus-visible {
  border-color: #d7b477 !important;
  transform: translate3d(0, -3px, 0);
  box-shadow: 0 14px 30px rgba(23, 19, 13, .22);
}

/* Cartes : profondeur et lecture interactive renforcées, sans langage e-commerce. */
.doorsGrid > a,
.journalCard,
.pillarNav > a,
.projectGalleryCard,
.galleryThumb {
  transition:
    opacity 1050ms var(--dc-motion-ease),
    transform 1300ms var(--dc-motion-cinematic),
    -webkit-clip-path 1350ms var(--dc-motion-cinematic),
    clip-path 1350ms var(--dc-motion-cinematic),
    box-shadow 480ms ease,
    border-color 380ms ease,
    background-color 380ms ease !important;
  transition-delay: var(--dc-delay, 0ms) !important;
}
.dc-motion-ready :is(.doorsGrid > a, .journalCard, .pillarNav > a, .projectGalleryCard, .galleryThumb):hover,
.dc-motion-ready :is(.doorsGrid > a, .journalCard, .pillarNav > a, .projectGalleryCard, .galleryThumb):focus-within {
  border-color: rgba(181, 138, 74, .7) !important;
  transform: translate3d(0, -8px, 0) !important;
  box-shadow: 0 24px 52px rgba(35, 27, 17, .18);
}
.doorsGrid > a :is(h3, strong),
.projectCardBody,
.journalCardBody {
  transition: transform 520ms var(--dc-motion-cinematic), opacity 520ms ease;
}
.doorsGrid > a:hover :is(h3, strong),
.doorsGrid > a:focus-visible :is(h3, strong),
.projectCard:hover .projectCardBody,
.projectCard:focus-visible .projectCardBody,
.journalCard:hover .journalCardBody,
.journalCard:focus-within .journalCardBody {
  transform: translate3d(0, -5px, 0);
}
.projectGalleryCard img,
.galleryThumb img,
.journalCardImage img {
  transition: transform 980ms var(--dc-motion-cinematic), filter 700ms ease !important;
}
.projectGalleryCard:hover img,
.projectGalleryCard:focus-within img,
.galleryThumb:hover img,
.galleryThumb:focus-within img,
.journalCard:hover .journalCardImage img,
.journalCard:focus-within .journalCardImage img {
  transform: scale(1.05);
}

/* Collection : l'image précède le contenu, puis la carte gagne en profondeur. */
.dc-motion-ready .projectCard.dc-project-reveal .projectCardVisual {
  -webkit-clip-path: inset(0 0 100% 0);
  clip-path: inset(0 0 100% 0);
  opacity: 0;
  transform: scale(1.035);
  transition:
    opacity 1050ms var(--dc-motion-ease),
    transform 1400ms var(--dc-motion-cinematic),
    -webkit-clip-path 1400ms var(--dc-motion-cinematic),
    clip-path 1400ms var(--dc-motion-cinematic) !important;
  transition-delay: calc(var(--dc-delay, 0ms) + 40ms) !important;
}
.dc-motion-ready .projectCard.dc-project-reveal .projectCardBody {
  opacity: 0;
  transform: translate3d(0, 32px, 0);
  transition: opacity 1000ms var(--dc-motion-ease), transform 1250ms var(--dc-motion-cinematic) !important;
  transition-delay: calc(var(--dc-delay, 0ms) + 220ms) !important;
}
.dc-motion-ready .projectCard.dc-project-reveal.is-visible .projectCardVisual {
  -webkit-clip-path: inset(0 0 0 0);
  clip-path: inset(0 0 0 0);
  opacity: 1;
  transform: scale(1);
}
.dc-motion-ready .projectCard.dc-project-reveal.is-visible .projectCardBody {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}
.dc-motion-ready .projectCard.dc-project-reveal:hover,
.dc-motion-ready .projectCard.dc-project-reveal:focus-visible {
  border-color: rgba(215, 180, 119, .82) !important;
  box-shadow: 0 30px 64px rgba(0, 0, 0, .38) !important;
  transform: translate3d(0, -10px, 0) !important;
}
.dc-motion-ready .projectCard.dc-project-reveal:hover .projectCardVisual > img:first-child,
.dc-motion-ready .projectCard.dc-project-reveal:focus-visible .projectCardVisual > img:first-child {
  transform: scale(1.052) !important;
}
.dc-motion-ready .projectCard.dc-project-reveal:hover .projectCardVisual::after,
.dc-motion-ready .projectCard.dc-project-reveal:focus-visible .projectCardVisual::after {
  background: linear-gradient(180deg, rgba(0,0,0,.03) 28%, rgba(0,0,0,.7));
}

/* Filet de sécurité : toute animation restée en attente est libérée globalement. */
.dc-motion-ready.dc-reveals-safe :is(.dc-reveal, .dc-hero-item, .dc-title-reveal, .dc-media-reveal),
.dc-motion-ready.dc-reveals-safe .projectCard.dc-project-reveal :is(.projectCardVisual, .projectCardBody) {
  -webkit-clip-path: inset(0 0 0 0) !important;
  clip-path: inset(0 0 0 0) !important;
  opacity: 1 !important;
  transform: translate3d(0, 0, 0) scale(1) !important;
  transition: none !important;
  visibility: visible !important;
  will-change: auto !important;
}

/* Un parallaxe mesuré sur quelques grandes images seulement. */
.dc-parallax-media {
  overflow: hidden;
}
.dc-parallax-media > img,
.dc-parallax-media .projectGalleryImage > img {
  transform: translate3d(0, var(--dc-parallax-y, 0), 0) scale(var(--dc-media-scale, 1.065));
  transform-origin: 50% 50%;
  transition: transform 220ms linear;
  will-change: transform;
}

@media (max-width: 850px) {
  .homePage .homeHero::before {
    inset: -2%;
    transform: scale(1.035);
    transition-duration: 1500ms;
  }
  .dc-motion-ready.dc-page-entered .homePage .homeHero::before {
    transform: scale(1.01);
  }
  .homePage .homeHeroShade,
  .homePage .homeHeroInner {
    transform: none;
    transition: none;
  }
  .dc-motion-ready .dc-reveal {
    --dc-reveal-x: 0;
    --dc-reveal-y: 26px;
    transition-duration: 620ms, 720ms, 760ms, 760ms;
  }
  .dc-motion-ready .dc-reveal.dc-reveal-left,
  .dc-motion-ready .dc-reveal.dc-reveal-right {
    --dc-reveal-x: 0;
    --dc-reveal-y: 26px;
  }
  .dc-motion-ready .dc-title-reveal {
    transform: translate3d(0, 32px, 0);
    transition-duration: 620ms, 780ms, 780ms, 780ms;
  }
  .dc-motion-ready .dc-media-reveal {
    -webkit-clip-path: inset(4% 0 4% 0);
    clip-path: inset(4% 0 4% 0);
    transform: translate3d(0, 24px, 0) scale(.992);
    transition-duration: 620ms, 760ms, 780ms, 780ms;
  }
  .dc-motion-ready .dc-hero-item {
    transform: translate3d(0, 28px, 0);
    transition-duration: 680ms, 820ms;
  }
  .dc-motion-ready .dc-hero-title {
    transform: translate3d(0, 34px, 0);
    transition-duration: 720ms, 880ms, 860ms, 860ms;
  }
  .dc-motion-ready :is(.doorsGrid > a, .journalCard, .pillarNav > a, .projectGalleryCard, .galleryThumb):hover,
  .dc-motion-ready :is(.doorsGrid > a, .journalCard, .pillarNav > a, .projectGalleryCard, .galleryThumb):focus-within,
  .dc-motion-ready .projectCard.dc-project-reveal:hover,
  .dc-motion-ready .projectCard.dc-project-reveal:focus-visible {
    transform: none !important;
    box-shadow: none !important;
  }
  .dc-parallax-media > img,
  .dc-parallax-media .projectGalleryImage > img {
    transform: none !important;
    transition: none !important;
    will-change: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    transition-delay: 0ms !important;
  }
  .dc-motion-ready :is(.dc-reveal, .dc-hero-item, .dc-title-reveal, .dc-media-reveal),
  .dc-motion-ready.dc-page-entered :is(.dc-reveal, .dc-hero-item, .dc-title-reveal, .dc-media-reveal),
  .dc-motion-ready .projectCard.dc-project-reveal :is(.projectCardVisual, .projectCardBody),
  .dc-motion-ready .projectCard.dc-project-reveal.is-visible :is(.projectCardVisual, .projectCardBody) {
    -webkit-clip-path: none !important;
    clip-path: none !important;
    opacity: 1 !important;
    transform: none !important;
    will-change: auto !important;
  }
  .homePage .homeHero::before,
  .dc-motion-ready.dc-page-entered .homePage .homeHero::before {
    transform: none !important;
  }
  .homePage .homeHeroShade,
  .homePage .homeHeroInner,
  .dc-parallax-media > img,
  .dc-parallax-media .projectGalleryImage > img {
    transform: none !important;
    will-change: auto !important;
  }
}

/* Barre de contact fixe, volontairement plus discrète. */
.compactContactBar {
  grid-template-columns: 56% 44% !important;
  width: min(420px, calc(100vw - 24px)) !important;
  min-height: 44px !important;
  bottom: 10px !important;
  box-shadow: 0 7px 18px #00000030 !important;
}
.compactContactBar::after {
  top: 9px !important;
  bottom: 9px !important;
}
.compactContactBar .compactContactLink {
  letter-spacing: 1.25px !important;
  gap: 9px !important;
  min-height: 44px !important;
  padding: 10px 16px !important;
  font-size: 9px !important;
}
.compactContactBar .contactIcon,
.compactContactBar .whatsappIcon {
  flex-basis: 14px !important;
  width: 14px !important;
  height: 14px !important;
}
@media (max-width: 850px) {
  .compactContactBar {
    width: min(350px, calc(100vw - 16px)) !important;
    min-height: 44px !important;
    bottom: 8px !important;
  }
  .compactContactBar .compactContactLink {
    letter-spacing: .9px !important;
    gap: 7px !important;
    min-height: 44px !important;
    padding: 9px 10px !important;
    font-size: 8px !important;
  }
  .compactContactBar .contactIcon,
  .compactContactBar .whatsappIcon {
    flex-basis: 13px !important;
    width: 13px !important;
    height: 13px !important;
  }
}
