/* MEV 2.0 — About / À propos motion witness — FR302 / EN304 — 2026-09-09. */
body.mev-about-motion{
  --mev-about-red:#FD0600;
  --mev-about-black:#000000;
  --mev-about-d4-ms:1280ms;
  --mev-about-d4-line:3px;
}

html.mev-about-js body.mev-about-motion .mev-about-hero-boundary,
html.mev-about-js body.mev-about-motion .mev-p16a-separator.mev-about-d4-separator,
html.mev-about-js body.mev-about-motion .mev-about-hline,
html.mev-about-js body.mev-about-motion .mev-about-doctrinal{
  position:relative;
}

/* D4 — hero to first section. */
html.mev-about-js body.mev-about-motion .mev-about-hero-boundary{
  border-bottom-color:transparent!important;
  overflow:visible;
}
html.mev-about-js body.mev-about-motion .mev-about-hero-boundary::after,
html.mev-about-js body.mev-about-motion .mev-p16a-separator.mev-about-d4-separator::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  z-index:8;
  height:var(--mev-about-d4-line);
  background:var(--mev-about-red);
  transform:scaleX(0);
  transform-origin:50% 50%;
  pointer-events:none;
}
html.mev-about-js body.mev-about-motion .mev-p16a-separator.mev-about-d4-separator{
  background:transparent!important;
  overflow:visible;
}
html.mev-about-js body.mev-about-motion .is-about-d4-building::after{
  animation:mev-about-d4-balanced var(--mev-about-d4-ms) linear forwards;
}
html.mev-about-js body.mev-about-motion .is-about-d4-built::after{
  transform:scaleX(1)!important;
}
@keyframes mev-about-d4-balanced{
  0%{transform:scaleX(0)}
  20%{transform:scaleX(.08)}
  45%{transform:scaleX(.48)}
  70%{transform:scaleX(.80)}
  100%{transform:scaleX(1)}
}

/* Existing internal horizontal rules: same final geometry, progressive construction only. */
html.mev-about-js body.mev-about-motion .mev-about-hline.mev-about-h-top{
  border-top-color:transparent!important;
}
html.mev-about-js body.mev-about-motion .mev-about-hline.mev-about-h-bottom{
  border-bottom-color:transparent!important;
}
html.mev-about-js body.mev-about-motion .mev-about-hline::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  z-index:6;
  height:1px;
  background:var(--mev-about-line-color,var(--mev-about-black));
  transform:scaleX(0);
  transition:transform var(--mev-about-h-ms,1000ms) cubic-bezier(.18,.72,.22,1);
  pointer-events:none;
}
html.mev-about-js body.mev-about-motion .mev-about-h-top::after{top:0}
html.mev-about-js body.mev-about-motion .mev-about-h-bottom::after{bottom:0}
html.mev-about-js body.mev-about-motion .mev-about-hline[data-mev-about-dir="ltr"]::after{transform-origin:0 50%}
html.mev-about-js body.mev-about-motion .mev-about-hline[data-mev-about-dir="rtl"]::after{transform-origin:100% 50%}
html.mev-about-js body.mev-about-motion .mev-about-hline.is-about-h-built::after{transform:scaleX(1)}

/* Structural vertical dividers: only where native desktop geometry already exists. */
html.mev-about-js body.mev-about-motion .mev-p16a-profiles.mev-about-vline::before{
  transform:translateX(-.5px) scaleY(0)!important;
  transform-origin:50% 100%!important;
  transition:transform var(--mev-about-v-ms,1000ms) cubic-bezier(.18,.72,.22,1)!important;
}
html.mev-about-js body.mev-about-motion .mev-p16a-profiles.mev-about-vline.is-about-v-built::before{
  transform:translateX(-.5px) scaleY(1)!important;
}
html.mev-about-js body.mev-about-motion .mev-p16a-origin-marker.mev-about-vline::after,
html.mev-about-js body.mev-about-motion .mev-p16a-pov-label.mev-about-vline::after{
  transform:scaleY(0)!important;
  transform-origin:50% 100%!important;
  transition:transform var(--mev-about-v-ms,1000ms) cubic-bezier(.18,.72,.22,1)!important;
}
html.mev-about-js body.mev-about-motion .mev-p16a-origin-marker.mev-about-vline.is-about-v-built::after,
html.mev-about-js body.mev-about-motion .mev-p16a-pov-label.mev-about-vline.is-about-v-built::after{
  transform:scaleY(1)!important;
}

/* Profile cores contain two autonomous short statements: 2 phrases = horizontal doctrinal field, never a vertical rail. */
html.mev-about-js body.mev-about-motion .mev-p16a-profile-core.mev-about-doctrinal{
  box-sizing:border-box!important;
  width:100%!important;
  margin:0 0 20px!important;
  padding:14px 0!important;
  border-left:0!important;
  background:linear-gradient(to right,var(--p16a-grey) 0%,#f4f4ec 8%,var(--p16a-beige) 14%,var(--p16a-beige) 86%,#f4f4ec 92%,var(--p16a-grey) 100%)!important;
}
html.mev-about-js body.mev-about-motion .mev-p16a-profile-core.mev-about-doctrinal::before,
html.mev-about-js body.mev-about-motion .mev-p16a-profile-core.mev-about-doctrinal::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  height:1px;
  background:linear-gradient(to right,rgba(253,6,0,0) 0%,rgba(253,6,0,.42) 8%,var(--mev-about-red) 14%,var(--mev-about-red) 86%,rgba(253,6,0,.42) 92%,rgba(253,6,0,0) 100%);
  transform:scaleX(0);
  transform-origin:50% 50%;
  transition:transform var(--mev-about-doctrine-ms,1100ms) cubic-bezier(.18,.72,.22,1);
  pointer-events:none;
}
html.mev-about-js body.mev-about-motion .mev-p16a-profile-core.mev-about-doctrinal::before{top:0}
html.mev-about-js body.mev-about-motion .mev-p16a-profile-core.mev-about-doctrinal::after{bottom:0;transition-delay:var(--mev-about-doctrine-delay,110ms)}
html.mev-about-js body.mev-about-motion .mev-p16a-profile-core.mev-about-doctrinal.is-about-doctrinal-built::before,
html.mev-about-js body.mev-about-motion .mev-p16a-profile-core.mev-about-doctrinal.is-about-doctrinal-built::after{
  transform:scaleX(1);
}

/* CTA, links, portraits/landscape reservations and copy remain static. */
@media(max-width:780px){
  html.mev-about-js body.mev-about-motion .mev-p16a-profile-core.mev-about-doctrinal{
    margin:0 0 20px!important;
    padding:12px 0!important;
  }
}

@media(prefers-reduced-motion:reduce){
  html.mev-about-js body.mev-about-motion .mev-about-hero-boundary::after,
  html.mev-about-js body.mev-about-motion .mev-p16a-separator.mev-about-d4-separator::after{
    animation:none!important;
    transform:scaleX(1)!important;
  }
  html.mev-about-js body.mev-about-motion .mev-about-hline::after{
    transition:none!important;
    transform:scaleX(1)!important;
  }
  html.mev-about-js body.mev-about-motion .mev-about-vline::before,
  html.mev-about-js body.mev-about-motion .mev-about-vline::after{
    transition:none!important;
    transform:scaleY(1)!important;
  }
  html.mev-about-js body.mev-about-motion .mev-p16a-profiles.mev-about-vline::before{
    transform:translateX(-.5px) scaleY(1)!important;
  }
  html.mev-about-js body.mev-about-motion .mev-about-doctrinal::before,
  html.mev-about-js body.mev-about-motion .mev-about-doctrinal::after{
    transition:none!important;
    transform:scaleX(1)!important;
  }
}
