/* ==========================================================
   MOTOR FEST® — HARMONISATION CENTRÉE V2 — 08/10/2026
   Feuille de style commune chargée après site.css.
   Le bandeau, ses états actifs et son néon restent inchangés.
   ========================================================== */

/* Centrage typographique dans le contenu, jamais sur la navigation */
main { text-align:center; }
main h1, main h2, main h3, main h4,
main p, main li, main small, main .eyebrow,
main .chip, main .btn, main .quote,
main .muted, main .kicker {
  text-align:center;
}
main h1, main h2, main h3, main h4,
main .display {
  text-wrap:balance;
  overflow-wrap:normal;
  hyphens:none;
}
main p, main li, main .muted {
  text-wrap:pretty;
}
main .section-head, main .upcoming-head {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:16px;
  text-align:center;
}
main .section-head > div, main .section-head > p,
main .upcoming-head > div, main .upcoming-head > p {
  max-width:100%;
  width:auto;
  margin-inline:auto;
}
main .section-head p,
main .page-hero p,
main .hero-copy,
main .impact-intro p,
main .split p,
main .event-info > p,
main .tdf-copy p,
main .tdf-story p,
main .ypp-hero-content p {
  margin-left:auto;
  margin-right:auto;
}
main .eyebrow { justify-content:center; }
main .btn-row, main .hero-pills, main .social-row,
main .filters, main .upcoming-actions {
  justify-content:center;
  align-items:center;
}
main .btn-row .btn { text-align:center; }
main .hero-event-strip { text-align:center; }
main .hero-event-strip > div { margin-inline:auto; }
main .list-check { justify-items:center; margin-inline:auto; }
main .list-check li { display:block; text-align:center; }
main .list-check li::before { display:inline-block; margin-right:8px; }
main .event-point, main .event-info, main .notice,
main .card-body, main .track-body, main .action-card,
main .form-card, main .application-intro { text-align:center; }
main .person-card .card-body { text-align:center; }
main .action-card { align-items:center; justify-content:center; }
main .action-card > div { width:100%; }
main .action-card .chip { align-self:center; }
main .timeline-item { align-items:center; text-align:center; }
main .timeline-date { text-align:center; }
main .upcoming-date { align-items:center; text-align:center; }
main .upcoming-card, main .upcoming-card-top { text-align:center; }
main .upcoming-card-top { justify-content:center; }
main .upcoming-card-top > div { margin-inline:auto; }
main .track-link { justify-content:center; }
main .data-table th, main .data-table td { text-align:center; }
main .logo-tile { text-align:center; }
main .faq summary, main .faq p { text-align:center; }
main .form-card .field label { text-align:center; }
main .form-card .application-consent {
  justify-content:center;
  align-items:center;
  text-align:center;
}
/* Données saisies volontairement alignées à gauche pour la lecture et l'édition. */
main input:not([type="checkbox"]):not([type="radio"]),
main textarea, main select { text-align:left; }

/* Les longues pages : titres centrés sans largeur artificiellement étriquée. */
main .page-hero .wrap, main .section-head > div { min-width:0; }
main .page-hero h1, main h2.display { margin-left:auto; margin-right:auto; }
main .page-hero h1 { max-width:1050px; font-size:clamp(3.2rem,7.3vw,6.4rem); }
main .section-head h2.display { max-width:1100px; font-size:clamp(2.5rem,5.3vw,4.5rem); }
main .display { line-height:1.02; }
main .mf-title-line { display:block; }
/* Les groupes sémantiques restent ensemble lorsque la place le permet. */
@media (min-width:700px) {
  main .mf-title-line { white-space:nowrap; }
}
/* En cas de textes très longs, une fonte mesurée garde 2 lignes sans débordement. */
main .mf-title-pair { max-width:100%; }
main .mf-title-pair.mf-title-long { font-size:clamp(2.6rem,5.5vw,5.3rem); }
main .mf-title-pair.mf-title-xlong { font-size:clamp(2.25rem,4.45vw,4.4rem); }
main .hero-video-bg h1.mf-title-pair {
  max-width:1120px;
  font-size:clamp(3.4rem,7.1vw,6.9rem);
  line-height:.99;
}
main .home-yaris-panel h2.mf-title-pair {
  font-size:clamp(2.8rem,5vw,5.1rem);
  line-height:1.02;
}

/* Pied de page identique et aligné sur chaque page. */
.footer, .footer-grid, .footer-grid > div { text-align:center; }
.footer .brand { justify-content:center; }
.footer .footer-links { justify-items:center; }
.footer p { margin-left:auto; margin-right:auto; max-width:55ch; }

/* Responsive : garder de l'air et éviter les titres éclatés en 4 lignes. */
@media (max-width:1040px) {
  main .section-head { align-items:center; }
  main .upcoming-card-top { flex-wrap:wrap; gap:10px; }
}
@media (max-width:699px) {
  main .display { line-height:1.04; }
  main .page-hero h1 { font-size:clamp(2.75rem,10vw,4.1rem); }
  main .section-head h2.display { font-size:clamp(2.05rem,8.5vw,3.4rem); }
  main .hero-video-bg h1.mf-title-pair { font-size:clamp(2.2rem,8.7vw,3.6rem); }
  main .home-yaris-panel h2.mf-title-pair { font-size:clamp(2.25rem,7.5vw,3.6rem); }
  main .mf-title-pair.mf-title-long { font-size:clamp(2.2rem,7.6vw,3.3rem); }
  main .mf-title-pair.mf-title-xlong { font-size:clamp(1.9rem,6.5vw,3rem); }
  main .mf-title-line { white-space:normal; }
  main .application-intro { text-align:center; }
  main .timeline-item { grid-template-columns:1fr; }
  main .upcoming-date { padding-left:0; padding-right:0; }
  main .section-head p { margin-top:0; }
  main .upcoming-actions { flex-wrap:wrap; }
  main .tdf-weekend-copy, main .ypp-access-copy { text-align:center; }
  .footer-grid { grid-template-columns:1fr; }
}

/* Réglages fins des titres longs et du vrai rendu mobile. */
main .display {
  /* En l'absence de Bebas Neue, utiliser une police étroite, jamais une large Noto Sans. */
  font-family:"Bebas Neue","Roboto Condensed","Liberation Sans Narrow",Impact,sans-serif;
}
main .ypp-hero-content h1 {
  max-width:100%;
  margin-left:auto;
  margin-right:auto;
  font-size:clamp(3.4rem,7.8vw,6.8rem);
  line-height:1.03;
}
main .impact-intro h2,
main .tdf-final h2,
main .tdf-weekend-copy h2,
main .tdf-event-teaser-copy h2 {
  font-size:clamp(2.7rem,5.4vw,4.7rem);
  line-height:1.02;
}
main .tdf-story h2 {
  font-size:clamp(2.3rem,4.1vw,4rem);
}
main .tdf-story .mf-title-line { white-space:normal; }
main .tdf-meta { justify-content:center; }
main .tdf-event-teaser-copy { align-items:center; text-align:center; }
main .tdf-event-teaser-copy > * { margin-left:auto; margin-right:auto; }
main .tdf-baptism-card { text-align:center; }
main .ypp-final { justify-content:center; text-align:center; }
main .ypp-final > * { margin-left:auto; margin-right:auto; }

@media (max-width:699px) {
  main .ypp-hero-content h1 {
    font-size:clamp(2.45rem,8.5vw,3.7rem);
    line-height:1.07;
  }
  main .impact-intro h2,
  main .tdf-final h2,
  main .tdf-weekend-copy h2,
  main .tdf-event-teaser-copy h2 {
    font-size:clamp(2.2rem,8.1vw,3.3rem);
  }
  main .tdf-story h2 { font-size:clamp(2.1rem,7.6vw,3rem); }
  main .tdf-weekend, main .tdf-hero-content { justify-items:center; }
  main .ypp-final { align-items:center; }
}

/* Cas particuliers dont les anciennes règles (y compris sur l'accueil)
   imposaient des tailles démesurées malgré le centrage global. */
#main .hero-bg-content h1.mf-title-pair {
  width:100%;
  max-width:1150px;
  margin-inline:auto;
  font-size:clamp(3.2rem,6.2vw,5.6rem);
  line-height:1.04;
}
#main .home-yaris-panel h2.mf-title-pair {
  font-size:clamp(2.35rem,3.7vw,3.55rem);
  line-height:1.05;
}
main .shop-copy h1.shop-title {
  font-size:clamp(3.5rem,7.2vw,6.6rem);
  line-height:1.03;
}
main .tdf-weekend-copy h2 {
  font-size:clamp(2rem,3.2vw,3.1rem);
}
@media (max-width:699px) {
  #main .hero-bg-content h1.mf-title-pair {
    font-size:clamp(1.85rem,8.2vw,3.15rem);
    line-height:1.07;
  }
  #main .home-yaris-panel h2.mf-title-pair {
    font-size:clamp(1.92rem,7.9vw,2.85rem);
  }
  main .shop-copy h1.shop-title {
    font-size:clamp(3rem,13vw,4.5rem);
  }
  main .tdf-weekend-copy h2 {
    font-size:clamp(1.78rem,7vw,2.35rem);
  }
}
@media (max-width:340px) {
  #main .hero-bg-content h1.mf-title-pair { font-size:1.74rem; }
  main .page-hero h1 { font-size:2.52rem; }
  main .section-head h2.display { font-size:2rem; }
}

/* Très petits téléphones : menu conservé à l'écran jusqu'à 320 px. */
@media (max-width:360px) {
  .site-header .nav { gap:8px !important; }
  .site-header .brand { min-width:0 !important; gap:7px !important; }
  .site-header .brand img { width:58px; height:46px; flex:0 0 58px; }
  .site-header .brand-text strong { font-size:1.3rem !important; }
  .site-header .menu-toggle { flex:0 0 42px; width:42px; height:42px; }
  main .ypp-final > div { min-width:0; width:100%; max-width:100%; }
  main .ypp-final h2.display { font-size:clamp(2.15rem,9vw,3rem); }
  main .ypp-final .btn { max-width:100%; }
}
