/* =========================================================================
   CHAMPIONNAT DU MONDE 2026 — section de l'accueil + page mondial-2026.html
   -------------------------------------------------------------------------
   Reprend les codes du site (noir, or, Oswald, filets fins). Les contenus
   viennent de assets/js/mondial-2026.js (généré), le rendu de
   assets/js/rendu-mondial.js.
   ========================================================================= */

/* ---------------------------------------------------------------- Accueil */
.mondial{ padding-block:clamp(48px,6vw,88px); background:var(--anthracite);
  border-block:1px solid var(--line); transition:background .3s var(--ease); }
.mondial:hover{ background:var(--anthracite-2); }
/* bande pleine largeur, sans cadre : tout le contenu est un seul lien */
.mondial__lien{ display:grid; grid-template-columns:auto 1fr; gap:clamp(24px,4vw,64px); align-items:center;
  color:inherit; text-decoration:none; }
.mondial__photo{ height:clamp(260px,24vw,340px); width:auto; aspect-ratio:4/3; }
/* photo paysage : cadrée sur le joueur (visage et maillot FRANCE) */
.mondial__photo img{ object-position:62% 45%; }
.mondial__titre{ margin:16px 0 0; display:inline-block; position:relative; transition:color .3s var(--ease); }
/* survol : le titre passe en or, un trait doré se déploie dessous et une flèche apparaît -> on voit que c'est cliquable */
.mondial__titre::after{ content:""; position:absolute; left:0; bottom:-8px; height:2px; width:100%; background:var(--accent);
  transform:scaleX(0); transform-origin:left; transition:transform .4s var(--ease); }
.mondial__titre .fl{ display:inline-block; margin-left:.3em; color:var(--accent); opacity:0; transform:translateX(-10px);
  transition:opacity .3s var(--ease), transform .3s var(--ease); }
.mondial__lien:hover .mondial__titre, .mondial__lien:focus-visible .mondial__titre{ color:var(--accent); }
.mondial__lien:hover .mondial__titre::after, .mondial__lien:focus-visible .mondial__titre::after{ transform:scaleX(1); }
.mondial__lien:hover .mondial__titre .fl, .mondial__lien:focus-visible .mondial__titre .fl{ opacity:1; transform:none; }
.mondial__lien:hover .mondial__photo img{ transform:scale(1.04); }
.mondial__photo img{ transition:transform .6s var(--ease); }
.mondial__lien{ cursor:pointer; }
@media (hover:none){ .mondial__titre .fl{ opacity:1; transform:none; } }   /* téléphone : flèche toujours visible */
.mondial__tuiles{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,2vw,28px); margin-top:clamp(20px,2.6vw,32px); }
.mondial__lien .btn{ margin-top:clamp(20px,2.6vw,30px); }
.mondial__lien:hover .btn{ border-color:var(--accent); color:var(--accent); }
@media (max-width:860px){
  .mondial__lien{ grid-template-columns:1fr; justify-items:center; text-align:center; }
  .mondial__photo{ width:100%; height:auto; }
  .mondial__tuiles{ grid-template-columns:1fr; text-align:left; width:100%; }
}

/* --------------------------------------------- Tuile de résultat (partagée) */
.md-tuile{ border-top:1px solid var(--line); padding-top:16px; }
.md-tuile__k{ display:block; font-family:var(--f-display); text-transform:uppercase; letter-spacing:.24em;
  font-size:.6rem; font-weight:400; color:var(--grey); }
.md-tuile__v{ display:block; margin-top:10px; font-family:var(--f-display); font-weight:500; text-transform:uppercase;
  font-size:clamp(1.15rem,1.8vw,1.5rem); line-height:1.1; letter-spacing:.02em; color:var(--white); }
.md-tuile__s{ display:block; margin-top:8px; font-size:.86rem; color:var(--grey); }
.md-tuile--or .md-tuile__v{ color:var(--accent); }
.md-tuile--or{ border-top-color:var(--accent); }
.md-tuile--encours .md-tuile__v::before{ content:""; display:inline-block; width:7px; height:7px; border-radius:50%;
  background:var(--accent); margin-right:10px; vertical-align:middle; animation:mdPulse 1.8s infinite; }
@keyframes mdPulse{ 0%,100%{ opacity:1 } 50%{ opacity:.25 } }
@media (prefers-reduced-motion:reduce){ .md-tuile--encours .md-tuile__v::before{ animation:none; } }

/* ------------------------------------------------------------ Page dédiée */
.md-tuiles{ display:grid; grid-template-columns:repeat(auto-fit,minmax(clamp(160px,20vw,220px),1fr)); gap:clamp(14px,2vw,28px); }
.md-bloc + .md-bloc{ margin-top:clamp(48px,6vw,84px); }
.md-bloc .sec-head{ margin-bottom:clamp(18px,2.4vw,28px); }
.md-resume{ color:var(--grey); max-width:62ch; margin-top:12px; }
.md-table{ font-family:var(--f-display); }
.md-ligne{ display:grid; grid-template-columns:110px 130px 1fr 90px 120px; gap:clamp(10px,1.6vw,22px);
  align-items:center; padding-block:14px; border-top:1px solid var(--line); }
.md-ligne:last-child{ border-bottom:1px solid var(--line); }
.md-ligne--entete{ text-transform:uppercase; letter-spacing:.2em; font-size:.56rem; color:var(--grey-2); padding-block:10px; }
.md-ligne__date{ color:var(--grey); font-size:.8rem; letter-spacing:.06em; }
.md-ligne__tour{ text-transform:uppercase; letter-spacing:.12em; font-size:.72rem; color:var(--grey); }
.md-ligne__tour--fort{ color:var(--accent); }
.md-ligne__adv{ font-family:var(--f-body); font-size:.98rem; color:var(--white); }
.md-ligne__adv small{ color:var(--grey); margin-left:8px; font-size:.82rem; }
.md-ligne__score{ font-weight:500; font-size:1.15rem; letter-spacing:.04em; }
.md-ligne--victoire .md-ligne__score{ color:var(--white); }
.md-ligne--defaite .md-ligne__score{ color:var(--grey-2); }
.md-ligne__res{ text-transform:uppercase; letter-spacing:.18em; font-size:.6rem; }
.md-ligne--victoire .md-ligne__res{ color:var(--accent); }
.md-ligne--defaite .md-ligne__res{ color:var(--grey-2); }
.md-ligne--avenir .md-ligne__adv, .md-ligne--avenir .md-ligne__res{ color:var(--grey); }
.md-ligne__lui{ font-family:var(--f-body); font-size:.82rem; color:var(--grey); }
.md-ligne__lui b{ color:var(--white); font-weight:500; }
.md-maj{ margin-top:clamp(36px,4vw,56px); font-size:.82rem; color:var(--grey-2); }
@media (max-width:760px){
  .md-ligne{ grid-template-columns:1fr auto; gap:4px 14px; }
  .md-ligne--entete{ display:none; }
  .md-ligne__date{ grid-column:1; }
  .md-ligne__tour{ grid-column:2; text-align:right; }
  .md-ligne__adv{ grid-column:1; }
  .md-ligne__score{ grid-column:2; grid-row:2; text-align:right; }
  .md-ligne__res, .md-ligne__lui{ grid-column:1 / -1; }
}

/* ------------------------------------------------------------ Graphiques
   Or (#c9a961) = manches gagnées, gris (#7c7c86) = perdues : paire validée
   (écart daltonisme ΔE 18, contraste ≥ 3:1 sur le fond anthracite). */
.md-charts{ display:grid; grid-template-columns:1fr; gap:clamp(18px,2.4vw,32px); }
.md-chart{ border:1px solid var(--line); background:var(--anthracite); padding:clamp(16px,2vw,24px); margin:0; }
.md-chart:first-child{ grid-column:1 / -1; }
.md-chart figcaption b{ display:block; font-family:var(--f-display); font-weight:500; text-transform:uppercase; letter-spacing:.06em; font-size:1rem; color:var(--white); }
.md-chart figcaption span{ display:block; margin-top:6px; font-size:.84rem; color:var(--grey); }
.md-leg{ display:flex; gap:18px; margin-top:12px; font-size:.78rem; color:var(--grey); }
.md-leg i{ display:inline-block; width:10px; height:10px; border-radius:2px; margin-right:7px; vertical-align:-1px; }
.md-plot{ margin-top:10px; }
.md-svg{ width:100%; height:auto; display:block; overflow:visible; }
.md-grid{ stroke:rgba(255,255,255,.07); stroke-width:1; }
.md-base{ stroke:rgba(255,255,255,.28); stroke-width:1; }
.md-ax{ fill:var(--grey-2); font-family:var(--f-body); font-size:13px; }
.md-ax--x{ fill:var(--grey); font-family:var(--f-display); text-transform:uppercase; letter-spacing:.06em; font-size:13px; }
.md-val{ fill:var(--white); font-family:var(--f-display); font-weight:500; font-size:15px; }
.md-hit.on rect:first-child{ fill:rgba(255,255,255,.04); }
.md-tip{ position:fixed; z-index:50; pointer-events:none; opacity:0; transition:opacity .15s; max-width:300px;
  background:var(--black); color:var(--white); border:1px solid rgba(201,169,97,.5); padding:9px 12px; font-size:.84rem; line-height:1.4; }
@media (max-width:699px){ .md-ax, .md-ax--x{ font-size:15px; letter-spacing:0; } .md-val{ font-size:17px; } .md-leg{ flex-wrap:wrap; gap:6px 16px; } }

/* Safari d'avant 2021 (sans `aspect-ratio`) : le cadre photo n'aurait pas de
   largeur. On lui donne des dimensions fixes, comme le secours de style.css. */
@supports not (aspect-ratio: 4 / 3) {
  .mondial__photo{ width:clamp(346px,32vw,453px); min-height:260px; }
  @media (max-width:860px){ .mondial__photo{ width:100%; min-height:240px; } }
}
