/* MOTOR FEST® : harmonie des pages Médias, Partenaires et Boutique.
   Spécifique à ces trois pages : aucune modification du menu général. */
main.mf-page-harmonie,
main.mf-page-harmonie .section-head,
main.mf-page-harmonie .media-profile-body,
main.mf-page-harmonie .media-join-card,
main.mf-page-harmonie .track-body,
main.mf-page-harmonie .shop-copy,
main.mf-page-harmonie .shop-promo,
main.mf-page-harmonie .form-card { text-align: center; }

main.mf-page-harmonie .page-hero .wrap,
main.mf-page-harmonie .section-head,
main.mf-page-harmonie .section-head > div,
main.mf-page-harmonie .section-head > p { margin-inline: auto; }
main.mf-page-harmonie .section-head {
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px;
}
main.mf-page-harmonie .section-head > p,
main.mf-page-harmonie .page-hero p { max-width:67ch; margin-inline:auto; }
main.mf-page-harmonie .eyebrow { justify-content:center; }
main.mf-page-harmonie h1.display,
main.mf-page-harmonie h2.display,
main.mf-page-harmonie h3 {
  text-align:center; text-wrap:balance; margin-left:auto; margin-right:auto;
}
main.mf-page-harmonie .btn-row { justify-content:center; align-items:center; }
main.mf-page-harmonie p { text-align:center; text-wrap:pretty; }

/* Boutons de contenu : mêmes styles que sur les autres pages, avec un survol visible. */
main.mf-page-harmonie a.btn {
  display:inline-flex; align-items:center; justify-content:center;
  min-height:48px; padding:12px 20px;
  border-radius:12px; font-weight:900;
  line-height:1.25; text-align:center;
  transform:translateZ(0) scale(1);
  transition:transform .22s ease,filter .22s ease,box-shadow .22s ease,border-color .22s ease;
}
@media (hover:hover) and (pointer:fine) {
  main.mf-page-harmonie a.btn:hover {
    transform:translateY(-2px) scale(1.055);
    filter:brightness(1.1);
  }
  main.mf-page-harmonie a.btn-primary:hover {
    box-shadow:0 0 13px rgba(46,227,87,.44),0 0 26px rgba(46,227,87,.2),0 10px 30px rgba(0,0,0,.22);
  }
  main.mf-page-harmonie a.btn-secondary:hover {
    border-color:rgba(46,227,87,.82);
    box-shadow:0 0 13px rgba(46,227,87,.19);
  }
}
main.mf-page-harmonie a.btn:focus-visible {
  outline:2px solid var(--green,#2ee357); outline-offset:4px;
  border-color:var(--green,#2ee357);
}

/* MÉDIAS — portrait fidèle, photo originale et texte intégral. */
.mf-page-medias .media-join-card {
  flex-direction:column; justify-content:center; align-items:center; gap:24px;
}
.mf-page-medias .media-join-card > div { width:100%; min-width:0; }
.mf-page-medias .media-join-card p { max-width:65ch; margin-inline:auto; }
.mf-page-medias .media-join-card .btn { align-self:center; }
.mf-page-medias .mf-media-feature {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.07fr);
  gap:0; overflow:hidden; align-items:stretch;
  border-color:rgba(46,227,87,.23);
  background:linear-gradient(145deg,#111a20 0%,#0b1117 100%);
}
.mf-media-feature-photo { position:relative; min-height:500px; overflow:hidden; background:#101822; }
.mf-media-feature-photo img {
  display:block; width:100%; height:100%; object-fit:cover; object-position:50% 43%;
  transition:transform .4s ease;
}
@media (hover:hover) and (pointer:fine) {
  .mf-media-feature:hover .mf-media-feature-photo img { transform:scale(1.025); }
}
.mf-media-feature-caption {
  position:absolute; right:20px; bottom:18px; left:20px;
  width:max-content; max-width:calc(100% - 40px);
  margin-inline:auto; padding:9px 15px; border-radius:999px;
  background:rgba(5,10,14,.76); backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.19);
  color:#fff; font-weight:800; font-size:.83rem; text-align:center;
}
.mf-media-feature-copy {
  min-width:0; display:flex; flex-direction:column; align-items:center;
  justify-content:center; padding:clamp(24px,3vw,42px);
}
.mf-media-feature-copy h3 {
  font-family:'Bebas Neue',Impact,sans-serif;
  font-size:clamp(3.4rem,6vw,5.8rem);
  line-height:1; color:#fff; margin:16px 0 2px;
}
.mf-media-feature-copy .mf-media-role {
  color:var(--green,#2ee357); font-weight:900; margin:0 auto 22px;
  font-size:clamp(.93rem,1.6vw,1.12rem);
}
.mf-media-feature-copy p:not(.mf-media-role) {
  max-width:57ch; margin:0 auto 13px; color:#d0d9df;
  line-height:1.72; font-size:.96rem;
}
.mf-media-feature-copy p strong { color:#f5faf7; }
.mf-media-feature-copy .mf-media-feature-signature {
  margin-top:10px !important; color:var(--green,#2ee357) !important;
  font-weight:900; font-style:italic; font-size:1.03rem !important;
}

/* PARTENAIRES : aligner tous les contenus des cartes au centre. */
.mf-page-partenaires .track-body {
  align-items:center; justify-content:center; padding:24px;
}
.mf-page-partenaires .track-body h3,
.mf-page-partenaires .track-body p { margin-inline:auto; }
.mf-page-partenaires .track-link { justify-content:center; }
.mf-page-partenaires .split > div { min-width:0; }
.mf-page-partenaires .split > div:first-child {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
}
.mf-page-partenaires .split > div:first-child p { max-width:58ch; margin-inline:auto; }
.mf-page-partenaires .form-card { display:flex; flex-direction:column; align-items:center; }
.mf-page-partenaires .form-card .list-check { width:100%; max-width:65ch; justify-items:center; padding:0; }
.mf-page-partenaires .form-card .list-check li { display:block; text-align:center; }
.mf-page-partenaires .form-card .list-check li::before { display:inline-block; margin-right:8px; }
.mf-page-partenaires .logo-wall .logo-tile { justify-content:center; text-align:center; }

/* BOUTIQUE : centrer les textes, boutons, étiquettes et panneaux. */
.mf-page-boutique .shop-hero-grid { justify-items:center; }
.mf-page-boutique .shop-copy {
  width:100%; min-width:0; margin-inline:auto;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
}
.mf-page-boutique .shop-copy h1 { width:100%; }
.mf-page-boutique .shop-lead,
.mf-page-boutique .shop-coming { margin-left:auto; margin-right:auto; }
.mf-page-boutique .shop-lead { max-width:39ch; }
.mf-page-boutique .shop-status-row,
.mf-page-boutique .shop-actions { justify-content:center; align-items:center; }
.mf-page-boutique .shop-status { justify-content:center; text-align:center; }
.mf-page-boutique .shop-visual { width:100%; min-width:0; }
.mf-page-boutique .shop-promo {
  align-items:center; justify-content:center; text-align:center;
}
.mf-page-boutique .shop-promo > * { margin-left:auto; margin-right:auto; }
.mf-page-boutique .shop-promo p { max-width:50ch; }
.mf-page-boutique .shop-progress { width:min(100%,420px); }
.mf-page-boutique .shop-online-badge { position:relative; top:auto; left:auto; right:auto; transform:none; order:-1; margin:0 auto 15px; }
.mf-page-boutique .shop-strip-track { justify-content:center; }

@media (max-width:960px) {
  .mf-page-medias .mf-media-feature { grid-template-columns:1fr; }
  .mf-page-medias .mf-media-feature-photo { min-height:0; aspect-ratio:16/9; }
  .mf-page-boutique .shop-hero-grid { grid-template-columns:1fr; gap:24px; }
  .mf-page-boutique .shop-copy { max-width:780px; }
}
@media (max-width:680px) {
  main.mf-page-harmonie .section-head h2.display { font-size:clamp(2.15rem,8.5vw,3.3rem); }
  main.mf-page-harmonie .page-hero h1 { font-size:clamp(2.65rem,10.2vw,4rem); }
  main.mf-page-harmonie a.btn { max-width:100%; width:100%; }
  .mf-page-medias .mf-media-feature-photo { aspect-ratio:16/10; }
  .mf-page-medias .mf-media-feature-copy { padding:25px 19px 27px; }
  .mf-page-medias .media-join-card { padding:25px 20px; }
  .mf-page-partenaires .track-body { padding:24px 16px; }
  .mf-page-boutique .shop-promo { padding:28px 20px; min-height:360px; }
  .mf-page-boutique .shop-status-row { display:flex; flex-wrap:wrap; justify-content:center; }
  .mf-page-boutique .shop-status { flex-wrap:wrap; }
}
@media (prefers-reduced-motion:reduce) {
  main.mf-page-harmonie a.btn,
  .mf-page-medias .mf-media-feature-photo img { transition:none !important; }
  main.mf-page-harmonie a.btn:hover,
  .mf-page-medias .mf-media-feature:hover img { transform:none !important; }
}
