/* Adéma Afrik visual signature layer — progressive enhancement only. */
:root {
  --adema-gold: #b89552;
  --adema-black: #050505;
  --adema-ease: cubic-bezier(.16, 1, .3, 1);
}

/* Loader is hidden unless JS explicitly enables it. */
.site-loader { display: none; }
html.js-loader .site-loader {
  display: flex;
  position: fixed;
  inset: 0;
  z-index: 10000;
  align-items: center;
  justify-content: center;
  background: #000;
  color: #fff;
  overflow: hidden;
  isolation: isolate;
}
html.js-loader body { overflow: hidden !important; }
.site-loader::before {
  content: "";
  position: absolute;
  inset: -15%;
  background:
    radial-gradient(circle at 50% 45%, rgba(184,149,82,.10), transparent 34%),
    linear-gradient(135deg, rgba(255,255,255,.018), transparent 45%);
  animation: ademaLoaderGlow 3.2s ease-in-out infinite alternate;
}
.site-loader__inner {
  position: relative;
  z-index: 1;
  width: min(440px, 78vw);
  text-align: center;
}
.site-loader__logo-wrap {
  overflow: hidden;
  padding: 12px 0;
}
.site-loader__logo {
  display: block;
  width: min(330px, 68vw);
  height: auto;
  margin: 0 auto;
  opacity: 0;
  transform: translateY(20px) scale(.965);
  filter: blur(7px);
  animation: ademaLoaderLogo 900ms var(--adema-ease) 90ms forwards;
}
.site-loader__progress {
  width: min(320px, 64vw);
  height: 1px;
  margin: 30px auto 0;
  background: rgba(255,255,255,.16);
  overflow: hidden;
}
.site-loader__progress-bar {
  display: block;
  width: 0%;
  height: 100%;
  background: linear-gradient(90deg, rgba(184,149,82,.55), #d9bd7d);
  transition: width 160ms linear;
}
.site-loader__meta {
  width: min(320px, 64vw);
  margin: 10px auto 0;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  font-family: Montserrat, Arial, sans-serif;
  font-size: 9px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.54);
}
.site-loader.is-leaving {
  animation: ademaLoaderExit 720ms var(--adema-ease) forwards;
}
@keyframes ademaLoaderLogo {
  to { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}
@keyframes ademaLoaderGlow {
  from { transform: scale(1); opacity: .7; }
  to { transform: scale(1.06); opacity: 1; }
}
@keyframes ademaLoaderExit {
  0% { opacity: 1; clip-path: inset(0 0 0 0); }
  100% { opacity: 0; clip-path: inset(0 0 100% 0); visibility: hidden; }
}

/* Strong but restrained logo treatment. */
.site-brand-mark,
.footer-brand-mark,
.home-header-logo img {
  display: block;
  height: auto;
  object-fit: contain;
}
.home-header-logo {
  position: absolute;
  left: 24px;
  top: 22px;
  width: 126px;
  z-index: 2;
  transition: opacity 280ms ease, transform 520ms var(--adema-ease);
}
.home-header-logo:hover { opacity: .78; transform: translateY(-1px); }

/* Home hero enhancement — preserves original centered composition. */
.hero-signature-shell {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: min(92vw, 780px);
  text-align: center;
}
.hero-eyebrow {
  margin-top: 22px;
  font-family: Montserrat, Arial, sans-serif;
  font-size: 10px;
  letter-spacing: .34em;
  text-transform: uppercase;
  color: rgba(255,255,255,.82);
}
.hero-word-line { overflow: hidden; }
.hero-word {
  display: inline-block;
  opacity: 0;
  transform: translateY(18px);
}
body.site-entered .hero-word {
  animation: ademaWordReveal 780ms var(--adema-ease) forwards;
  animation-delay: calc(180ms + var(--word-index, 0) * 70ms);
}
@keyframes ademaWordReveal { to { opacity: 1; transform: translateY(0); } }

.hero-cta-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-top: 24px;
  opacity: 0;
  transform: translateY(12px);
}
body.site-entered .hero-cta-row {
  animation: ademaHeroCtaIn 820ms var(--adema-ease) 480ms forwards;
}
@keyframes ademaHeroCtaIn { to { opacity: 1; transform: translateY(0); } }
.hero-cta {
  min-width: 158px;
  padding: 11px 18px;
  border: 1px solid rgba(255,255,255,.72);
  color: #fff;
  background: rgba(0,0,0,.12);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  font-family: Montserrat, Arial, sans-serif;
  font-size: 9px;
  letter-spacing: .18em;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform 420ms var(--adema-ease), background-color 240ms ease, color 240ms ease, border-color 240ms ease;
}
.hero-cta--gold { border-color: rgba(184,149,82,.95); }
@media (hover:hover) and (pointer:fine) {
  .hero-cta:hover { transform: translateY(-3px); background: #fff; color: #000; border-color: #fff; }
  .hero-cta--gold:hover { background: var(--adema-gold); color: #fff; border-color: var(--adema-gold); }
}

.hero-badge {
  position: absolute;
  z-index: -1;
  padding: 8px 10px;
  border: 1px solid rgba(255,255,255,.24);
  color: rgba(255,255,255,.66);
  background: rgba(0,0,0,.16);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  font-family: Montserrat, Arial, sans-serif;
  font-size: 8px;
  letter-spacing: .20em;
  text-transform: uppercase;
  opacity: 0;
}
.hero-badge--one { left: 0; top: 9%; }
.hero-badge--two { right: 0; bottom: 12%; }
body.site-entered .hero-badge--one { animation: ademaBadgeFloat 900ms var(--adema-ease) 620ms forwards, ademaFloatOne 6s ease-in-out 1.6s infinite alternate; }
body.site-entered .hero-badge--two { animation: ademaBadgeFloat 900ms var(--adema-ease) 760ms forwards, ademaFloatTwo 7s ease-in-out 1.8s infinite alternate; }
@keyframes ademaBadgeFloat { from { opacity: 0; transform: translateY(12px); } to { opacity: .82; transform: translateY(0); } }
@keyframes ademaFloatOne { from { transform: translate3d(0,0,0); } to { transform: translate3d(4px,-7px,0); } }
@keyframes ademaFloatTwo { from { transform: translate3d(0,0,0); } to { transform: translate3d(-4px,7px,0); } }

/* Slow depth layer for the background video. */
body[data-motion-page="home"] > div[aria-hidden="true"] video {
  filter: saturate(.94) contrast(1.03);
}
body.site-entered[data-motion-page="home"] > div[aria-hidden="true"] video {
  transform-origin: center center;
}

/* Global micro-interactions. */
a, button { -webkit-tap-highlight-color: transparent; }
footer a, nav a {
  transition: opacity 260ms ease, color 260ms ease, transform 420ms var(--adema-ease);
}
@media (hover:hover) and (pointer:fine) {
  footer a:hover { transform: translateY(-1px); }
  button:not(:disabled):hover { transform: translateY(-1px); }
}
[data-purpose="model-item"],
[data-purpose="step-3-photos"] .border-t,
[data-purpose="faq-list"] article {
  transition: transform 520ms var(--adema-ease), box-shadow 420ms ease, opacity 260ms ease;
}
@media (hover:hover) and (pointer:fine) {
  [data-purpose="faq-list"] article:hover { transform: translateX(3px); }
}

/* Footer branding. */
.footer-brand-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.footer-brand-mark { width: 112px; max-height: 58px; }
.footer-adema-signature { white-space: nowrap; }
.home-footer-signature {
  position: fixed;
  left: 24px;
  right: 24px;
  bottom: 16px;
  z-index: 20;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  pointer-events: none;
  font-family: Montserrat, Arial, sans-serif;
}
.home-footer-signature .footer-brand-mark { width: 86px; opacity: .68; }
.home-footer-signature a {
  pointer-events: auto;
  color: rgba(255,255,255,.64);
  font-size: 9px;
  letter-spacing: .06em;
  text-decoration: none;
  transition: color 240ms ease;
}
.home-footer-signature a:hover { color: #fff; }

/* Keep loader/hero safe on mobile. */
@media (max-width: 767px) {
  .home-header-logo { left: 18px; top: 22px; width: 102px; }
  .hero-signature-shell { min-width: min(92vw, 520px); }
  .hero-eyebrow { max-width: 82vw; line-height: 1.7; font-size: 8px; letter-spacing: .26em; }
  .hero-cta-row { margin-top: 18px; gap: 8px; }
  .hero-cta { min-width: 132px; padding: 10px 12px; font-size: 8px; }
  .hero-badge { display: none; }
  .home-footer-signature { left: 18px; right: 18px; bottom: 12px; }
  .home-footer-signature .footer-brand-mark { width: 70px; }
  .home-footer-signature a { font-size: 8px; }
  .site-loader__meta { letter-spacing: .16em; }
}

@media (prefers-reduced-motion: reduce) {
  .site-loader::before,
  .site-loader__logo,
  .hero-word,
  .hero-cta-row,
  .hero-badge,
  body[data-motion-page="home"] > div[aria-hidden="true"] video {
    animation: none !important;
    transition-duration: .001ms !important;
  }
  .site-loader__logo,
  .hero-word,
  .hero-cta-row,
  .hero-badge { opacity: 1 !important; transform: none !important; filter: none !important; }
}

.hero-signature-shell > img,
.hero-signature-shell .hero-eyebrow,
.hero-signature-shell .hero-cta-row { position: relative; z-index: 2; }

/* 2026-09-30 — official transparent logo refined for stronger legibility.
   This only changes image clarity/contrast, without changing the Stitch layout. */
.home-header-logo img,
.site-loader__logo,
.home-footer-signature .footer-brand-mark {
  image-rendering: auto;
}
.home-header-logo img {
  filter: drop-shadow(0 2px 7px rgba(0,0,0,.92)) drop-shadow(0 0 15px rgba(0,0,0,.38));
}
.hero-signature-shell > img {
  filter: drop-shadow(0 3px 12px rgba(0,0,0,.85)) drop-shadow(0 0 22px rgba(0,0,0,.32));
}
html.motion-ready body[data-motion-page="home"] .hero-signature-shell > img.motion-in {
  filter: blur(0) drop-shadow(0 3px 12px rgba(0,0,0,.85)) drop-shadow(0 0 22px rgba(0,0,0,.32));
}
.home-footer-signature .footer-brand-mark { opacity: .95; filter: drop-shadow(0 1px 5px rgba(0,0,0,.65)); }
/* The same asset is shown in an actual media player on the L’Agence page. */
body[data-motion-page="agency"] [data-purpose="video-presentation"] video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: #000;
}
