/* DRC GAMES WEEK — Expérience : palette de l'affiche, effets néon, animations légères,
   et composants des widgets (programme, podium, actualités, partenaires, compte à rebours,
   rubriques, inscriptions). Chargé après la feuille du thème : rien n'y est supprimé. */

:root {
  /* Fonds de l'affiche : indigo profond plutôt que noir. */
  --graphite: #0F0828;
  --nuit: #090419;
  --violet-profond: #24096B;

  /* Les six couleurs des rubriques de l'affiche. */
  --x-bleu: #2E9BFF;
  --x-jaune: #FFE23A;
  --x-vert: #19D39B;
  --x-orange: #FF6A1F;
  --x-violet: #9B6BFF;
  --x-rouge: #FF4530;
  --x-rose: #F03BC8;

  /* Numéro de version du décor : le script ne s'active que si cette feuille (et non une copie périmée gardée par un cache) est chargée. */
  --x-decor: 4;
  --x-police: 'Chakra Petch', 'Outfit', system-ui, sans-serif;
  --x-arc: linear-gradient(90deg, var(--x-bleu), var(--x-violet) 28%, var(--x-rose) 52%, var(--x-orange) 76%, var(--x-jaune));
  --x-verre: rgba(245, 243, 250, .045);
  --x-bord: rgba(167, 139, 250, .24);
}

/* ---------- Habillage des éléments existants ---------- */
.clair { background: #F5F1FF; }
.sombre { background: radial-gradient(1200px 520px at 12% 0%, rgba(124, 58, 237, .16), transparent 62%), radial-gradient(900px 480px at 100% 100%, rgba(46, 155, 255, .10), transparent 60%), var(--graphite); }
.violet { background: radial-gradient(900px 480px at 85% 10%, rgba(240, 59, 200, .16), transparent 60%), radial-gradient(900px 520px at 0% 100%, rgba(46, 155, 255, .14), transparent 60%), var(--violet-profond); }

.surtitre, .dgwx-surtitre { font-family: var(--x-police); }
.chiffre-nb, .carte-num, .jam-24 { font-family: var(--x-police); }

/* Boutons : reflet au survol, halo néon. */
.btn, .bouton .elementor-button { position: relative; overflow: hidden; isolation: isolate; }
.btn-plein, .bouton-plein .elementor-button { background: linear-gradient(135deg, #7C3AED, #9B4DFF 55%, #B14DF0); box-shadow: 0 8px 28px -10px rgba(124, 58, 237, .9), inset 0 0 0 1px rgba(255, 255, 255, .12); }
.btn-plein:hover, .bouton-plein .elementor-button:hover { background: linear-gradient(135deg, #8B4DF5, #A85CFF 55%, #C45CF5); box-shadow: 0 0 0 1px rgba(196, 181, 253, .5), 0 12px 38px -8px rgba(155, 77, 255, .95), 0 0 34px -6px rgba(240, 59, 200, .55); }
.btn-plein::after, .bouton-plein .elementor-button::after { content: ''; position: absolute; z-index: -1; top: 0; bottom: 0; left: -60%; width: 45%; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .35), transparent); transform: skewX(-18deg); transition: left .6s ease; pointer-events: none; }
.btn-plein:hover::after, .bouton-plein .elementor-button:hover::after { left: 120%; }
.btn .dgwx-ico { width: 18px; height: 18px; }

/* En-tête : filet arc-en-ciel de l'affiche une fois la page défilée. */
.entete::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: var(--x-arc); opacity: 0; transition: opacity .3s; }
.entete.defile::after { opacity: .7; }
.nav-liens a::before { content: ''; position: absolute; left: 0; right: 100%; bottom: -4px; height: 2px; border-radius: 2px; background: var(--x-arc); transition: right .25s ease; }
.nav-liens a:hover::before { right: 0; }
.nav-liens a[aria-current="page"]::before { display: none; }

/* Menu mobile : ouverture animée, liens plus lisibles. */
.menu-mobile:not([hidden]) { animation: dgwx-menu .28s cubic-bezier(.2, .7, .2, 1) both; -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); background: rgba(15, 8, 40, .97); max-height: calc(100vh - var(--entete-h)); max-height: calc(100dvh - var(--entete-h)); overflow-y: auto; }
.menu-mobile li a { display: flex; align-items: center; justify-content: space-between; min-height: 56px; }
.menu-mobile li a::after { content: ''; width: 9px; height: 9px; border-top: 2px solid var(--violet-clair); border-right: 2px solid var(--violet-clair); transform: rotate(45deg); opacity: .7; }
.menu-mobile li a[aria-current="page"] { color: var(--violet-clair); }
@keyframes dgwx-menu { from { opacity: 0; transform: translateY(-10px); } }

/* Barre de progression de lecture (filet arc-en-ciel en haut d'écran). */
.dgwx-progression { position: fixed; z-index: 70; top: 0; left: 0; right: 0; height: 3px; transform-origin: 0 50%; transform: scaleX(0); background: var(--x-arc); pointer-events: none; will-change: transform; }

/* Décor des hero : lignes diagonales et symboles de manette de l'affiche. */
.dgwx-decor { position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.dgwx-decor-lignes { position: absolute; top: 0; width: 240px; height: 240px; opacity: .85;
  background: repeating-linear-gradient(135deg, transparent 0 20px, var(--x-bleu) 20px 22px, transparent 22px 44px, var(--x-rose) 44px 46px, transparent 46px 68px, var(--x-jaune) 68px 70px, transparent 70px 92px, var(--x-vert) 92px 94px, transparent 94px 116px, var(--x-orange) 116px 118px, transparent 118px 140px);
  -webkit-mask-image: linear-gradient(135deg, #000 0, #000 34%, transparent 58%); mask-image: linear-gradient(135deg, #000 0, #000 34%, transparent 58%); }
.dgwx-decor-lignes.droite { right: 0; transform: scaleX(-1); }
.dgwx-decor-lignes.gauche { left: 0; top: auto; bottom: 0; transform: scaleY(-1); opacity: .5; }
.dgwx-symbole { position: absolute; width: var(--t, 46px); height: var(--t, 46px); color: var(--c, var(--x-violet)); opacity: .5; animation: dgwx-flotte var(--v, 9s) ease-in-out infinite; animation-delay: var(--r, 0s); }
.dgwx-symbole svg { width: 100%; height: 100%; display: block; }
@keyframes dgwx-flotte { 0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg); } 50% { transform: translate3d(0, -18px, 0) rotate(12deg); } }
@media (max-width: 900px) { .dgwx-decor-lignes { width: 140px; height: 140px; } .dgwx-decor-lignes.gauche { display: none; } .dgwx-symbole { opacity: .32; } }

/* Hero : halo animé derrière le titre, mot en dégradé qui scintille. */
.hero-contenu { position: relative; }
.hero-contenu::before { content: ''; position: absolute; z-index: -1; left: -10%; top: 6%; width: 620px; max-width: 90vw; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(closest-side, rgba(155, 77, 255, .38), rgba(46, 155, 255, .12) 55%, transparent 72%); animation: dgwx-halo 9s ease-in-out infinite; pointer-events: none; }
@keyframes dgwx-halo { 0%, 100% { transform: scale(1) translate3d(0, 0, 0); opacity: .9; } 50% { transform: scale(1.12) translate3d(3%, -3%, 0); opacity: 1; } }
.signature .elementor-heading-title, .signature { font-family: var(--x-police); }

/* Cartes existantes : reflet qui suit le pointeur, bord néon au survol. */
.carte-temps, .carte-jeu, .chiffre, .etape, .valeur, .carte-duo, .theme, .billet { --mx: 50%; --my: 0%; }
.carte-temps, .chiffre { position: relative; transition: transform .3s cubic-bezier(.2, .7, .2, 1), border-color .3s, box-shadow .3s; }
.carte-temps:hover, .chiffre:hover { transform: translateY(-6px); border-color: rgba(167, 139, 250, .55); box-shadow: 0 24px 60px -30px rgba(155, 77, 255, .9), 0 0 0 1px rgba(167, 139, 250, .25); }
.carte-temps::after { content: ''; position: absolute; top: 0; right: 0; bottom: 0; left: 0; border-radius: inherit; background: radial-gradient(260px circle at var(--mx) var(--my), rgba(155, 107, 255, .2), transparent 62%); opacity: 0; transition: opacity .3s; pointer-events: none; }
.carte-temps:hover::after { opacity: 1; }
.carte-jeu { transition: transform .35s cubic-bezier(.2, .7, .2, 1), box-shadow .35s; }
.carte-jeu:hover { transform: translateY(-8px); box-shadow: 0 30px 70px -28px rgba(124, 58, 237, .95), 0 0 0 1px rgba(196, 181, 253, .45); }
.carte-jeu .image-fond img, .carte-jeu img { transition: transform .8s cubic-bezier(.2, .7, .2, 1); }
.carte-jeu:hover .image-fond img { transform: scale(1.06); }
.intro-photo img, .jam-photo img, .media-visuel img, .fiche-visuel img { transition: transform .8s cubic-bezier(.2, .7, .2, 1); }
.intro-visuel:hover .intro-photo img, .jam-visuel:hover .jam-photo img { transform: scale(1.03); }

/* Titres de section : trait néon. */
.dgwx-entete { max-width: 780px; margin-bottom: 48px; }
.dgwx-entete-centre { margin-left: auto; margin-right: auto; text-align: center; }
.dgwx-surtitre { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 16px; font-size: 13px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--violet-clair); }
.dgwx-surtitre::before { content: ''; width: 28px; height: 2px; border-radius: 2px; background: var(--x-arc); }
.clair .dgwx-surtitre { color: var(--violet); }
.dgwx-entete-texte { margin: 18px 0 0; font-size: 19px; line-height: 1.55; color: var(--texte-doux); }
.clair .dgwx-entete-texte { color: var(--encre-douce); }
.dgwx-centre { display: flex; justify-content: center; margin: 44px 0 0; }
.dgwx-aide-editeur { margin: 0; padding: 18px 20px; border: 1px dashed rgba(167, 139, 250, .6); border-radius: 12px; background: rgba(124, 58, 237, .08); font-size: 14px; color: inherit; }

/* Apparition au défilement des blocs de l'extension (décalée d'un bloc à l'autre). */
.js .dgwx-anim { opacity: 0; transform: translateY(26px); transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .2, 1); }
.js .dgwx-anim.visible { opacity: 1; transform: none; }
.elementor-editor-active .dgwx-anim { opacity: 1; transform: none; }

/* Variables des cartes : sombres par défaut, claires dans une section claire. */
.dgwx-programme, .dgwx-actus, .dgwx-disciplines, .dgwx-podium, .dgwx-rebours { --c-fond: var(--x-verre); --c-bord: var(--x-bord); --c-titre: var(--blanc); --c-doux: var(--texte-doux); }
.clair .dgwx-programme, .clair .dgwx-actus, .clair .dgwx-disciplines, .clair .dgwx-podium { --c-fond: #fff; --c-bord: rgba(13, 11, 22, .1); --c-titre: var(--encre); --c-doux: var(--encre-douce); }

/* ---------- Programme ---------- */
.dgwx-jours { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(104px, 1fr); gap: 12px; margin-bottom: 36px; overflow-x: auto; padding: 6px 2px 14px; scroll-snap-type: x proximity; scrollbar-width: thin; scrollbar-color: rgba(167, 139, 250, .5) transparent; }
.dgwx-jour { position: relative; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 14px 10px 12px; border-radius: 16px; border: 1px solid var(--c-bord); background: var(--c-fond); color: var(--c-doux); font: inherit; cursor: pointer; scroll-snap-align: start; transition: transform .25s, border-color .25s, background .25s, color .25s, box-shadow .25s; }
.dgwx-jour-sem, .dgwx-jour-mois { font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.dgwx-jour b { font-family: var(--x-police); font-size: 34px; line-height: 1.05; color: var(--c-titre); }
.dgwx-jour:hover { transform: translateY(-3px); border-color: rgba(167, 139, 250, .6); }
.dgwx-jour.est-actif { color: #fff; border-color: transparent; background: linear-gradient(160deg, rgba(124, 58, 237, .95), rgba(155, 77, 255, .75) 60%, rgba(240, 59, 200, .7)); box-shadow: 0 14px 34px -14px rgba(155, 77, 255, .95), inset 0 0 0 1px rgba(255, 255, 255, .22); }
.dgwx-jour.est-actif b { color: #fff; }
.dgwx-jour-nb { position: absolute; top: 8px; right: 8px; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--x-jaune); color: #1B0F4D; font: 700 11px/20px var(--x-police); font-style: normal; text-align: center; }

.dgwx-legende { display: flex; flex-wrap: wrap; gap: 12px 26px; margin: 0 0 40px; padding: 16px 20px; list-style: none; border-radius: 14px; border: 1px solid var(--c-bord); background: var(--c-fond); }
.dgwx-legende li { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--c-doux); }

.dgwx-badge { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px 5px 9px; border-radius: 999px; border: 1px solid currentColor; font: 700 12px/1.2 var(--x-police); letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; color: var(--b, var(--x-vert)); background: rgba(255, 255, 255, .07); }
.dgwx-badge .dgwx-ico { width: 15px; height: 15px; }
.dgwx-badge-gratuit { --b: var(--x-vert); }
.dgwx-badge-invitation { --b: #C4A5FF; }
.dgwx-badge-billet { --b: #FFB02E; }
.clair .dgwx-badge-gratuit { --b: #0A8F68; }
.clair .dgwx-badge-invitation { --b: #6D28D9; }
.clair .dgwx-badge-billet { --b: #C25A00; }

.dgwx-journee { margin-bottom: 56px; }
.dgwx-journee:last-of-type { margin-bottom: 0; }
.js .dgwx-journee.dgwx-js-masque { display: none; }
.dgwx-journee[hidden] { display: none; }
.dgwx-journee-titre { display: flex; align-items: center; gap: 16px; margin: 0 0 24px; font-size: clamp(22px, 2.6vw, 30px); color: var(--c-titre); }
.dgwx-journee-titre::after { content: ''; flex: 1; height: 1px; background: linear-gradient(90deg, var(--c-bord), transparent); }
.dgwx-journee-num { flex: none; padding: 6px 12px; border-radius: 8px; background: rgba(124, 58, 237, .24); border: 1px solid rgba(167, 139, 250, .45); font: 700 12px/1 var(--x-police); letter-spacing: .12em; text-transform: uppercase; color: var(--violet-clair); }
.clair .dgwx-journee-num { color: var(--violet); background: rgba(124, 58, 237, .08); }
.dgwx-vide { margin: 0; padding: 26px 24px; border-radius: 16px; border: 1px dashed var(--c-bord); color: var(--c-doux); font-size: 16px; }
.dgwx-reste { margin: 20px 0 0; }

.dgwx-activites { display: grid; gap: 22px; }
.dgwx-activite { --mx: 50%; --my: 0%; position: relative; display: grid; overflow: hidden; border-radius: 20px; border: 1px solid var(--c-bord); background: var(--c-fond); transition: transform .3s cubic-bezier(.2, .7, .2, 1), border-color .3s, box-shadow .3s; }
.dgwx-activite::before { content: ''; position: absolute; z-index: 1; left: 0; top: 0; bottom: 0; width: 3px; background: var(--a, var(--x-vert)); box-shadow: 0 0 18px var(--a, var(--x-vert)); }
.dgwx-activite::after { content: ''; position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: radial-gradient(320px circle at var(--mx) var(--my), rgba(155, 107, 255, .16), transparent 62%); opacity: 0; transition: opacity .3s; pointer-events: none; }
.dgwx-activite:hover { transform: translateY(-4px); border-color: rgba(167, 139, 250, .55); box-shadow: 0 26px 60px -34px rgba(155, 77, 255, .95); }
.dgwx-activite:hover::after { opacity: 1; }
.dgwx-acces-gratuit { --a: var(--x-vert); }
.dgwx-acces-invitation { --a: var(--x-violet); }
.dgwx-acces-billet { --a: #FFB02E; }
.dgwx-activite-image { position: relative; margin: 0; overflow: hidden; background: linear-gradient(135deg, #2A1178, #120836); }
.dgwx-activite-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2, .7, .2, 1); }
.dgwx-activite:hover .dgwx-activite-image img { transform: scale(1.05); }
.dgwx-sans-image { display: grid; place-items: center; width: 100%; height: 100%; min-height: 150px; color: rgba(196, 181, 253, .55); background: radial-gradient(closest-side, rgba(155, 77, 255, .35), transparent), repeating-linear-gradient(135deg, rgba(167, 139, 250, .08) 0 2px, transparent 2px 18px); }
.dgwx-sans-image .dgwx-ico { width: 54px; height: 54px; stroke-width: 1.2; }
.dgwx-activite-date { position: absolute; left: 14px; top: 14px; display: flex; flex-direction: column; align-items: center; min-width: 52px; padding: 7px 8px 6px; border-radius: 12px; background: rgba(15, 8, 40, .82); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border: 1px solid rgba(245, 243, 250, .16); color: #fff; }
.dgwx-activite-date b { font: 700 22px/1 var(--x-police); }
.dgwx-activite-date span { font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; opacity: .8; }
.dgwx-activite-corps { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 24px 26px 26px; min-width: 0; }
.dgwx-activite-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.dgwx-activite-jour { font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--c-doux); }
.dgwx-activite-titre { margin: 0; font-size: clamp(20px, 2.1vw, 26px); line-height: 1.2; color: var(--c-titre); }
.dgwx-activite-infos { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 0; padding: 0; list-style: none; font-size: 15px; font-weight: 500; color: var(--c-titre); }
.dgwx-activite-infos li { display: inline-flex; align-items: center; gap: 8px; }
.dgwx-activite-infos .dgwx-ico { flex: none; color: var(--violet-clair); }
.clair .dgwx-activite-infos .dgwx-ico { color: var(--violet); }
.dgwx-activite-texte { margin: 0; font-size: 15.5px; line-height: 1.6; color: var(--c-doux); }
.dgwx-activite-texte p { margin: 0 0 .7em; color: inherit; }
.dgwx-activite-texte p:last-child { margin-bottom: 0; }
.dgwx-activite-texte ul { margin: 0 0 .7em; padding-left: 1.2em; list-style: disc; }
.dgwx-activite-action { margin: 6px 0 0; }

/* Page Programme : image à gauche, détail à droite. */
.dgwx-programme-complet .dgwx-activite { grid-template-columns: minmax(220px, 340px) 1fr; }
.dgwx-programme-complet .dgwx-activite-image { min-height: 230px; }
.dgwx-programme-complet .dgwx-activite-image img { position: absolute; top: 0; right: 0; bottom: 0; left: 0; }
/* Page d'accueil : cartes en colonnes. */
.dgwx-programme-apercu .dgwx-activites { grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); }
.dgwx-programme-apercu .dgwx-activite { grid-template-rows: auto 1fr; }
.dgwx-programme-apercu .dgwx-activite-image { aspect-ratio: 16 / 9; }
.dgwx-programme-apercu .dgwx-activite-jour { display: none; }
.dgwx-programme-apercu .dgwx-journee-titre { font-size: 20px; }
@media (max-width: 760px) {
  .dgwx-programme-complet .dgwx-activite { grid-template-columns: 1fr; }
  .dgwx-programme-complet .dgwx-activite-image { min-height: 0; aspect-ratio: 16 / 9; }
  .dgwx-activite-corps { padding: 20px 20px 22px; }
  .dgwx-jours { grid-auto-columns: 96px; margin-left: calc(-1 * var(--gouttiere)); margin-right: calc(-1 * var(--gouttiere)); padding-left: var(--gouttiere); padding-right: var(--gouttiere); }
  .dgwx-legende { flex-direction: column; gap: 10px; }
  .dgwx-jour { padding-top: 18px; }
  .dgwx-jour-sem, .dgwx-jour-mois { font-size: 11px; letter-spacing: .06em; }
  .dgwx-jour-nb { top: 4px; right: 4px; min-width: 17px; height: 17px; padding: 0 4px; font-size: 10px; line-height: 17px; }
  .dgwx-entete { margin-bottom: 34px; }
}

/* ---------- Podium ---------- */
.dgwx-podium { position: relative; display: grid; grid-template-columns: 1fr 1.24fr 1fr; grid-template-areas: "deux un trois"; align-items: end; gap: 26px; max-width: 1180px; margin: 0 auto; padding-top: 60px; }
.dgwx-marche { --m: #C9D6FF; --m2: rgba(201, 214, 255, .26); --h: 120px; position: relative; display: flex; flex-direction: column; min-width: 0; text-align: center; }
.dgwx-marche-1 { grid-area: un; --m: #FFD84A; --m2: rgba(255, 216, 74, .26); --h: 200px; z-index: 2; }
.dgwx-marche-2 { grid-area: deux; --m: #B9D4FF; --m2: rgba(185, 212, 255, .26); --h: 130px; }
.dgwx-marche-3 { grid-area: trois; --m: #FF9A4D; --m2: rgba(255, 154, 77, .26); --h: 84px; }
.dgwx-marche-haut { position: relative; display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 0 0 20px; }
.dgwx-couronne { position: relative; z-index: 3; color: var(--m); animation: dgwx-couronne 3.2s ease-in-out infinite; margin-bottom: -6px; }
.dgwx-couronne svg { display: block; }
@keyframes dgwx-couronne { 0%, 100% { transform: translateY(0) rotate(-4deg); } 50% { transform: translateY(-10px) rotate(4deg); } }
/* Grande carte photo : elle occupe toute la largeur de la marche. */
.dgwx-marche-photo { position: relative; width: 100%; border-radius: 26px; padding: 4px; background: linear-gradient(160deg, var(--m), var(--m2) 48%, var(--m)); box-shadow: 0 0 0 1px rgba(255, 255, 255, .08), 0 30px 70px -30px var(--m); isolation: isolate; transition: transform .45s cubic-bezier(.16, 1, .3, 1), box-shadow .45s; }
.dgwx-marche-1 .dgwx-marche-photo { border-radius: 32px; padding: 5px; box-shadow: 0 0 0 1px rgba(255, 255, 255, .12), 0 0 90px -14px rgba(255, 216, 74, .85), 0 40px 90px -34px var(--m); }
.dgwx-marche:hover .dgwx-marche-photo { transform: translateY(-10px) scale(1.02); }
.dgwx-marche-photo::before { content: ''; display: block; padding-bottom: 125%; }
.dgwx-marche-photo img, .dgwx-marche-photo .dgwx-sans-image { position: absolute; top: 4px; left: 4px; display: block; width: calc(100% - 8px); height: calc(100% - 8px); min-height: 0; object-fit: cover; object-position: 50% 12%; border-radius: 22px; background: #1A0E4A; }
.dgwx-marche-1 .dgwx-marche-photo img, .dgwx-marche-1 .dgwx-marche-photo .dgwx-sans-image { top: 5px; left: 5px; width: calc(100% - 10px); height: calc(100% - 10px); border-radius: 27px; }
/* Halo tournant derrière le vainqueur (une seule couche, déplacée par la carte graphique). */
.dgwx-marche-1 .dgwx-marche-haut::before { content: ''; position: absolute; z-index: -1; left: -25%; top: -8%; width: 150%; padding-bottom: 150%; border-radius: 50%; background: radial-gradient(closest-side, rgba(255, 216, 74, .34), rgba(255, 216, 74, .1) 55%, transparent 72%); animation: dgwx-pulse 4s ease-in-out infinite alternate; pointer-events: none; }
@keyframes dgwx-pulse { from { transform: scale(.86); opacity: .7; } to { transform: scale(1.06); opacity: 1; } }
@keyframes dgwx-tourne { to { transform: rotate(360deg); } }
.dgwx-marche-legende { position: absolute; z-index: 3; left: 4px; right: 4px; bottom: 4px; padding: 70px 14px 18px; border-radius: 0 0 22px 22px; background: linear-gradient(180deg, transparent, rgba(9, 4, 25, .78) 46%, rgba(9, 4, 25, .96)); display: flex; flex-direction: column; align-items: center; gap: 4px; }
.dgwx-marche-1 .dgwx-marche-legende { left: 5px; right: 5px; bottom: 5px; border-radius: 0 0 27px 27px; padding-bottom: 22px; }
.dgwx-marche-medaille { position: absolute; z-index: 4; left: -10px; top: -10px; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--m); color: #1B0F4D; font: 700 26px/1 var(--x-police); box-shadow: 0 0 0 5px rgba(15, 8, 40, .9), 0 0 28px var(--m); }
.dgwx-marche-1 .dgwx-marche-medaille { width: 72px; height: 72px; font-size: 34px; left: -14px; top: -14px; }
.dgwx-marche-place { margin: 0; font: 700 13px/1 var(--x-police); letter-spacing: .18em; text-transform: uppercase; color: var(--m); }
.dgwx-marche-nom { margin: 0; font-size: clamp(20px, 2.3vw, 30px); line-height: 1.1; color: #fff; overflow-wrap: anywhere; text-shadow: 0 2px 18px rgba(0, 0, 0, .6); }
.dgwx-marche-1 .dgwx-marche-nom { font-size: clamp(26px, 3.2vw, 42px); }
.dgwx-marche-projet { margin: 2px 0 0; font-size: 15px; font-weight: 600; color: #D9CCFF; }
.dgwx-marche-texte { margin: 0; max-width: 38ch; font-size: 15px; line-height: 1.55; color: var(--c-doux); }
.dgwx-socle { position: relative; height: var(--h); border-radius: 18px 18px 0 0; border: 1px solid var(--m2); border-bottom: 0; background: linear-gradient(180deg, var(--m2), transparent); display: grid; place-items: center; overflow: hidden; transform-origin: 50% 100%; }
.dgwx-socle::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--m); box-shadow: 0 0 30px 3px var(--m); }
.dgwx-socle::after { content: ''; position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: repeating-linear-gradient(135deg, rgba(255, 255, 255, .06) 0 2px, transparent 2px 16px); }
.dgwx-socle span { position: relative; font: 700 clamp(44px, 7vw, 92px)/1 var(--x-police); color: var(--m); opacity: .92; text-shadow: 0 0 30px var(--m2); }
.dgwx-marche-1 .dgwx-socle span { font-size: clamp(64px, 10vw, 140px); }
/* Entrée : les marches montent l'une après l'autre, le socle grandit, le vainqueur arrive en dernier. */
.js .dgwx-marche.dgwx-anim { opacity: 0; transform: translateY(120px) scale(.9); transition: opacity .7s ease, transform 1.1s cubic-bezier(.2, 1.4, .3, 1); }
.js .dgwx-marche.dgwx-anim.visible { opacity: 1; transform: none; }
.js .dgwx-marche.dgwx-anim .dgwx-socle { transform: scaleY(0); transition: transform .9s cubic-bezier(.16, 1, .3, 1) .15s; }
.js .dgwx-marche.dgwx-anim.visible .dgwx-socle { transform: none; }
.dgwx-marche-2.dgwx-anim, .dgwx-marche-2.dgwx-anim .dgwx-socle { -webkit-transition-delay: 0s !important; transition-delay: 0s !important; }
.dgwx-marche-3.dgwx-anim, .dgwx-marche-3.dgwx-anim .dgwx-socle { -webkit-transition-delay: .25s !important; transition-delay: .25s !important; }
.dgwx-marche-1.dgwx-anim, .dgwx-marche-1.dgwx-anim .dgwx-socle { -webkit-transition-delay: .55s !important; transition-delay: .55s !important; }
/* Confettis du podium (pixels et symboles de manette), lancés une fois à l'apparition. */
.dgwx-confettis { position: absolute; top: -40px; right: 0; bottom: 0; left: 0; overflow: hidden; pointer-events: none; z-index: 5; }
.dgwx-confetti { position: absolute; top: -30px; width: 12px; height: 12px; border-radius: 2px; opacity: 0; -webkit-animation: dgwx-chute-a 3s ease-in 1s 1 both; animation: dgwx-chute-a 3s ease-in 1s 1 both; }
.dgwx-confetti.plein { background: currentColor; }
.dgwx-confetti.vb { -webkit-animation-name: dgwx-chute-b; animation-name: dgwx-chute-b; }
.dgwx-confetti.vc { -webkit-animation-name: dgwx-chute-c; animation-name: dgwx-chute-c; }
.dgwx-confetti svg { display: block; width: 100%; height: 100%; }
@-webkit-keyframes dgwx-chute-a { 0% { opacity: 0; -webkit-transform: translate3d(0, -20px, 0) rotate(0deg); } 8% { opacity: 1; } 80% { opacity: 1; } 100% { opacity: 0; -webkit-transform: translate3d(70px, 640px, 0) rotate(540deg); } }
@keyframes dgwx-chute-a { 0% { opacity: 0; transform: translate3d(0, -20px, 0) rotate(0deg); } 8% { opacity: 1; } 80% { opacity: 1; } 100% { opacity: 0; transform: translate3d(70px, 640px, 0) rotate(540deg); } }
@-webkit-keyframes dgwx-chute-b { 0% { opacity: 0; -webkit-transform: translate3d(0, -20px, 0) rotate(0deg); } 8% { opacity: 1; } 80% { opacity: 1; } 100% { opacity: 0; -webkit-transform: translate3d(-90px, 560px, 0) rotate(-620deg); } }
@keyframes dgwx-chute-b { 0% { opacity: 0; transform: translate3d(0, -20px, 0) rotate(0deg); } 8% { opacity: 1; } 80% { opacity: 1; } 100% { opacity: 0; transform: translate3d(-90px, 560px, 0) rotate(-620deg); } }
@-webkit-keyframes dgwx-chute-c { 0% { opacity: 0; -webkit-transform: translate3d(0, -20px, 0) rotate(0deg); } 8% { opacity: 1; } 80% { opacity: 1; } 100% { opacity: 0; -webkit-transform: translate3d(20px, 760px, 0) rotate(380deg); } }
@keyframes dgwx-chute-c { 0% { opacity: 0; transform: translate3d(0, -20px, 0) rotate(0deg); } 8% { opacity: 1; } 80% { opacity: 1; } 100% { opacity: 0; transform: translate3d(20px, 760px, 0) rotate(380deg); } }
@media (max-width: 700px) {
  /* Mobile : le 1er domine en haut, le 2e reste à gauche et le 3e à droite. */
  .dgwx-podium { grid-template-columns: 1fr 1fr; grid-template-areas: "un un" "deux trois"; gap: 30px 14px; padding-top: 40px; }
  .dgwx-marche-1 { --h: 80px; justify-self: center; width: min(100%, 340px); }
  .dgwx-marche-2 { --h: 60px; }
  .dgwx-marche-3 { --h: 40px; }
  .dgwx-marche-medaille { width: 44px; height: 44px; font-size: 20px; left: -6px; top: -6px; }
  .dgwx-marche-1 .dgwx-marche-medaille { width: 58px; height: 58px; font-size: 28px; left: -8px; top: -8px; }
  .dgwx-marche-legende { padding: 46px 8px 12px; }
  .dgwx-marche-place { font-size: 11px; letter-spacing: .12em; }
  .dgwx-marche-texte { font-size: 14px; }
}

/* ---------- Actualités ---------- */
.dgwx-actus { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; }
.dgwx-actu { border-radius: 20px; border: 1px solid var(--c-bord); background: var(--c-fond); overflow: hidden; transition: transform .3s cubic-bezier(.2, .7, .2, 1), border-color .3s, box-shadow .3s; }
.dgwx-actu:hover { transform: translateY(-6px); border-color: rgba(167, 139, 250, .55); box-shadow: 0 26px 60px -34px rgba(155, 77, 255, .95); }
.dgwx-actu-lien { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }
.dgwx-actu-image { aspect-ratio: 16 / 9; overflow: hidden; background: linear-gradient(135deg, #2A1178, #120836); }
.dgwx-actu-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2, .7, .2, 1); }
.dgwx-actu:hover .dgwx-actu-image img { transform: scale(1.05); }
.dgwx-actu-corps { display: flex; flex-direction: column; gap: 10px; padding: 22px 24px 26px; flex: 1; }
.dgwx-actu-meta { display: flex; flex-wrap: wrap; gap: 6px 12px; margin: 0; font: 600 12px/1.3 var(--x-police); letter-spacing: .1em; text-transform: uppercase; color: var(--c-doux); }
.dgwx-actu-meta span { color: var(--x-jaune); }
.clair .dgwx-actu-meta span { color: var(--violet); }
.dgwx-actu-titre { margin: 0; font-size: 21px; line-height: 1.25; color: var(--c-titre); }
.dgwx-actu-texte { margin: 0; font-size: 15px; line-height: 1.6; color: var(--c-doux); }
.dgwx-actu .lien-fleche { margin-top: auto; padding-top: 6px; }

/* ---------- Partenaires ---------- */
.dgwx-partenaires { display: grid; gap: 40px; }
.dgwx-part-titre { display: flex; align-items: center; gap: 18px; margin: 0 0 20px; font: 700 13px/1 var(--x-police); letter-spacing: .18em; text-transform: uppercase; color: var(--violet-clair); }
.clair .dgwx-part-titre { color: var(--violet); }
.dgwx-part-titre::before, .dgwx-part-titre::after { content: ''; flex: 1; height: 1px; background: linear-gradient(90deg, transparent, rgba(167, 139, 250, .45)); }
.dgwx-part-titre::after { transform: scaleX(-1); }
.dgwx-part-grille { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin: 0; padding: 0; list-style: none; }
.dgwx-part { flex: 0 1 184px; }
.dgwx-part a, .dgwx-part > span { display: grid; place-items: center; height: 112px; padding: 18px 20px; border-radius: 18px; background: #fff; border: 1px solid rgba(13, 11, 22, .06); box-shadow: 0 12px 30px -22px rgba(15, 8, 40, .7); transition: transform .3s cubic-bezier(.2, .7, .2, 1), box-shadow .3s; }
.dgwx-part img { width: auto; height: auto; max-width: 100%; max-height: 72px; object-fit: contain; transition: transform .3s; }
.dgwx-part a:hover, .dgwx-part > span:hover { transform: translateY(-5px); box-shadow: 0 0 0 2px rgba(155, 107, 255, .7), 0 20px 46px -20px rgba(155, 77, 255, .95); }
.dgwx-part a:hover img, .dgwx-part > span:hover img { transform: scale(1.05); }
@media (max-width: 560px) { .dgwx-part { flex-basis: calc(50% - 8px); } .dgwx-part a, .dgwx-part > span { height: 96px; padding: 14px; } .dgwx-part img { max-height: 60px; } }

/* ---------- Compte à rebours ---------- */
.dgwx-rebours-etiquette { margin: 0 0 12px; font: 700 13px/1 var(--x-police); letter-spacing: .18em; text-transform: uppercase; color: var(--violet-clair); }
.dgwx-rebours-chiffres { display: inline-grid; grid-template-columns: repeat(4, minmax(68px, 96px)); gap: 10px; }
.dgwx-rebours-bloc { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 14px 6px 12px; border-radius: 14px; border: 1px solid rgba(167, 139, 250, .35); background: rgba(15, 8, 40, .55); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.dgwx-rebours-bloc b { font: 700 clamp(26px, 3.4vw, 40px)/1 var(--x-police); color: #fff; font-variant-numeric: tabular-nums; text-shadow: 0 0 18px rgba(155, 107, 255, .9); }
.dgwx-rebours-bloc span { font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--texte-doux); }
.dgwx-rebours-fin { margin: 0; font: 700 22px/1.3 var(--x-police); color: var(--x-jaune); }
.dgwx-rebours.est-termine .dgwx-rebours-chiffres, .dgwx-rebours.est-termine .dgwx-rebours-etiquette { display: none; }
.hero .elementor-widget-dgwx-rebours { margin-top: 34px; }
@media (max-width: 480px) { .dgwx-rebours-chiffres { grid-template-columns: repeat(4, 1fr); display: grid; gap: 8px; } }

/* ---------- Bande des rubriques ---------- */
.dgwx-rubriques { overflow: hidden; padding: 22px 0; background: rgba(9, 4, 25, .7); border-top: 1px solid rgba(167, 139, 250, .2); border-bottom: 1px solid rgba(167, 139, 250, .2); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.dgwx-rubriques-piste { display: flex; width: max-content; animation: dgwx-defile 34s linear infinite; }
.dgwx-rubriques:hover .dgwx-rubriques-piste { animation-play-state: paused; }
.dgwx-rubriques ul { display: flex; gap: 18px; margin: 0; padding: 0 9px; list-style: none; }
.dgwx-rubrique { padding: 9px 22px; border-radius: 12px; border: 1px solid var(--r); color: var(--r); font: 700 clamp(18px, 2.2vw, 26px)/1.1 var(--x-police); letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.dgwx-c-bleu { --r: var(--x-bleu); } .dgwx-c-jaune { --r: var(--x-jaune); } .dgwx-c-vert { --r: var(--x-vert); }
.dgwx-c-orange { --r: var(--x-orange); } .dgwx-c-violet { --r: var(--x-violet); } .dgwx-c-rouge { --r: var(--x-rouge); }
@keyframes dgwx-defile { to { transform: translateX(-50%); } }
.e-con.dgwx-bande { padding: 0; }

/* ---------- Inscriptions aux compétitions ---------- */
.dgwx-disciplines { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 20px; }
.dgwx-discipline { --mx: 50%; --my: 0%; position: relative; display: flex; flex-direction: column; gap: 14px; padding: 24px; border-radius: 20px; border: 1px solid var(--c-bord); background: var(--c-fond); overflow: hidden; transition: transform .3s cubic-bezier(.2, .7, .2, 1), border-color .3s, box-shadow .3s; }
.dgwx-discipline::after { content: ''; position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: radial-gradient(260px circle at var(--mx) var(--my), rgba(155, 107, 255, .18), transparent 62%); opacity: 0; transition: opacity .3s; pointer-events: none; }
.dgwx-discipline:hover { transform: translateY(-5px); border-color: rgba(167, 139, 250, .55); box-shadow: 0 26px 60px -34px rgba(155, 77, 255, .95); }
.dgwx-discipline:hover::after { opacity: 1; }
.dgwx-discipline-etat { display: inline-flex; align-items: center; gap: 8px; margin: 0; font: 700 12px/1 var(--x-police); letter-spacing: .12em; text-transform: uppercase; color: var(--c-doux); }
.dgwx-discipline-etat i { width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.dgwx-etat-ouvert .dgwx-discipline-etat { color: var(--x-vert); }
.clair .dgwx-etat-ouvert .dgwx-discipline-etat { color: #0A8F68; }
.dgwx-etat-ouvert .dgwx-discipline-etat i { box-shadow: 0 0 0 0 currentColor; animation: dgwx-pouls 2s ease-out infinite; }
.dgwx-etat-bientot .dgwx-discipline-etat { color: #FFB02E; }
@keyframes dgwx-pouls { 0% { box-shadow: 0 0 0 0 rgba(25, 211, 155, .7); } 100% { box-shadow: 0 0 0 10px rgba(25, 211, 155, 0); } }
.dgwx-discipline-nom { margin: 0; font-size: 23px; line-height: 1.15; color: var(--c-titre); }
.dgwx-discipline-frais { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin: 0; padding: 12px 0 0; border-top: 1px solid var(--c-bord); font-size: 13px; color: var(--c-doux); }
.dgwx-discipline-frais b { font: 700 20px/1 var(--x-police); color: var(--c-titre); }
.dgwx-discipline .btn { position: relative; z-index: 1; margin-top: auto; width: 100%; }
.dgwx-inactif { opacity: .55; cursor: default; pointer-events: none; }

/* ---------- Sections ajoutées par la refonte ---------- */
/* Une section dont le bloc n'a encore rien à montrer (aucune activité, aucun article, aucun gagnant) ne laisse pas de vide. */
.e-con.dgwx-auto:not(:has(.dgwx-programme, .dgwx-podium, .dgwx-actus, .dgwx-partenaires, .dgwx-disciplines, .dgwx-aide-editeur)) { display: none; }
.e-con.dgwx-appel { align-items: center; text-align: center; max-width: 820px; margin: 0 auto; gap: 18px; }
.dgwx-appel .boutons { justify-content: center; margin-top: 14px; }
.dgwx-appel-texte { font-size: 19px; color: var(--texte-doux); }
.e-con.dgwx-trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.e-con.dgwx-carte { position: relative; overflow: hidden; padding: 34px 30px 36px; border-radius: 20px; border: 1px solid var(--x-bord); background: var(--x-verre); gap: 0; transition: transform .3s cubic-bezier(.2, .7, .2, 1), border-color .3s, box-shadow .3s; }
.e-con.dgwx-carte::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--x-arc); opacity: .85; }
.e-con.dgwx-carte:hover { transform: translateY(-5px); border-color: rgba(167, 139, 250, .55); box-shadow: 0 26px 60px -34px rgba(155, 77, 255, .95); }
.dgwx-carte .surtitre { margin-bottom: 14px; }
.dgwx-carte-texte, .dgwx-carte-texte p { margin: 0; font-size: 16.5px; line-height: 1.65; color: var(--texte-doux); }
.e-con.dgwx-consortium-grille { display: grid; grid-template-columns: minmax(260px, 420px) 1fr; gap: 64px; align-items: center; }
.e-con.dgwx-consortium-logos { display: grid; gap: 18px; }
.dgwx-consortium-logo { display: grid; place-items: center; min-height: 170px; padding: 28px 34px; border-radius: 24px; background: #fff; box-shadow: 0 30px 70px -34px rgba(9, 4, 25, .9), 0 0 0 1px rgba(255, 255, 255, .5); transition: transform .3s cubic-bezier(.2, .7, .2, 1), box-shadow .3s; }
.dgwx-consortium-logo:hover { transform: translateY(-5px); box-shadow: 0 0 0 2px rgba(196, 181, 253, .8), 0 30px 70px -28px rgba(155, 77, 255, .95); }
.dgwx-consortium-logo img { width: auto; max-width: 100%; max-height: 120px; object-fit: contain; }
.dgwx-consortium-texte .titre-section { --marge-bas: 24px; }
.dgwx-consortium-texte .chapo { --marge-bas: 14px; }
.dgwx-carte .surtitre { --marge-bas: 14px; }
.dgwx-appel .titre-section { --marge-bas: 4px; }
.dgwx-consortium-texte .chapo { color: var(--blanc); margin-bottom: 14px; }
.dgwx-consortium-texte .media-corps, .dgwx-consortium-texte .media-corps p { color: var(--texte-doux); }
@media (max-width: 980px) {
  .e-con.dgwx-trio { grid-template-columns: 1fr; }
  .e-con.dgwx-consortium-grille { grid-template-columns: 1fr; gap: 36px; }
  .e-con.dgwx-consortium-logos { grid-template-columns: 1fr 1fr; }
  .dgwx-consortium-logo { min-height: 120px; padding: 18px; }
  .dgwx-consortium-logo img { max-height: 80px; }
}

/* ---------- Paiement des inscriptions (formulaire, espace membre, page de paiement) ---------- */
.dgwx-note-frais { grid-column: 1 / -1; margin: 0; padding: 18px 20px; border-radius: 14px; border: 1px solid rgba(255, 176, 46, .5); background: rgba(255, 176, 46, .1); font-size: 14.5px; line-height: 1.55; color: inherit; }
.dgwx-note-frais p { margin: 10px 0 0; color: inherit; opacity: .88; }
.dgwx-note-frais .dgwx-note-titre { margin: 0; opacity: 1; font: 700 13px/1.3 var(--x-police); letter-spacing: .12em; text-transform: uppercase; color: #FFB02E; }
.dgwx-note-liste { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px; margin: 12px 0 2px; padding: 0; list-style: none; }
.dgwx-note-liste li { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding: 9px 12px; border-radius: 10px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .1); }
.dgwx-note-liste b { font: 700 16px/1 var(--x-police); white-space: nowrap; }
/* Photo des maillots et pièce d'identité dans le formulaire d'inscription. */
.dgwx-maillots { margin: 0; padding: 0; border: 0; min-width: 0; }
.dgwx-maillots legend { padding: 0; margin-bottom: 10px; font-size: 14px; font-weight: 600; }
.dgwx-maillots-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.dgwx-maillots-1 .dgwx-maillots-grille { grid-template-columns: minmax(0, 420px); }
.dgwx-maillot { position: relative; display: flex; flex-direction: column; margin: 0; border-radius: 14px; overflow: hidden; border: 2px solid rgba(167, 139, 250, .3); background: rgba(255, 255, 255, .04); }
.dgwx-maillot-image { display: block; background: rgba(9, 4, 25, .5); }
.dgwx-maillot-image img { display: block; width: 100%; height: 190px; object-fit: contain; }
.dgwx-maillots-1 .dgwx-maillot-image img { height: auto; max-height: 420px; }
.dgwx-maillot-nom { display: block; padding: 9px 12px; font-size: 14px; font-weight: 600; text-align: center; }
.dgwx-maillots-choix .dgwx-maillot { cursor: pointer; transition: border-color .2s, box-shadow .2s, transform .2s; }
.dgwx-maillots-choix .dgwx-maillot:hover { border-color: rgba(167, 139, 250, .8); }
.dgwx-maillots-choix .dgwx-maillot input { position: absolute; top: 10px; left: 10px; width: 20px; height: 20px; margin: 0; padding: 0; accent-color: #7C3AED; z-index: 1; }
.dgwx-maillots-choix .dgwx-maillot.est-choisi { border-color: #FFE23A; box-shadow: 0 0 0 3px rgba(255, 226, 58, .22); transform: translateY(-2px); }
.champ input.dgw-fichier { padding: 10px 12px; height: auto; cursor: pointer; font-size: 14px; }
.champ input.dgw-fichier::file-selector-button { margin-right: 12px; padding: 8px 14px; border: 0; border-radius: 8px; background: #7C3AED; color: #fff; font: 600 13px/1 var(--police); cursor: pointer; }
.champ input.dgw-fichier::-webkit-file-upload-button { margin-right: 12px; padding: 8px 14px; border: 0; border-radius: 8px; background: #7C3AED; color: #fff; font: 600 13px/1 var(--police); cursor: pointer; }
.dgw-note-piece { margin: -6px 0 0; font-size: 13px; line-height: 1.5; opacity: .75; }
.dgwx-a-payer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 20px; margin: 16px 0; padding: 16px 18px; border-radius: 14px; border: 1px solid rgba(255, 138, 0, .4); background: rgba(255, 176, 46, .1); }
.dgwx-a-payer strong { display: block; font-size: 16px; color: var(--encre); }
.dgwx-a-payer p { margin: 4px 0 0; font-size: 14px; color: var(--encre-douce); }
.dgwx-a-payer > div { flex: 1 1 240px; }
.dgwx-a-payer .dgwx-a-payer-info { margin-top: 8px; padding-top: 8px; border-top: 1px dashed rgba(255, 138, 0, .4); }
.dgwx-a-payer-retard { border-color: rgba(255, 69, 48, .55); background: rgba(255, 69, 48, .08); }
.dgwx-confirmation { display: flex; gap: 18px; align-items: flex-start; margin: 0 0 28px; padding: 24px; border-radius: 18px; border: 1px solid rgba(124, 58, 237, .28); background: rgba(124, 58, 237, .06); color: var(--encre); }
.dgwx-confirmation h2 { margin: 0 0 8px; font-size: 24px; }
.dgwx-confirmation p { margin: 0 0 16px; color: var(--encre-douce); }
.dgwx-confirmation-ok { border-color: rgba(10, 143, 104, .4); background: rgba(25, 211, 155, .1); }
.dgwx-confirmation-echec { border-color: rgba(255, 69, 48, .4); background: rgba(255, 69, 48, .07); }
.dgwx-confirmation-icone { flex: none; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: #0A8F68; color: #fff; }
.dgwx-confirmation-icone .dgwx-ico { width: 26px; height: 26px; stroke-width: 2.4; }
.dgwx-paiement-entete { margin: 0 0 26px; padding: 22px 24px; border-radius: 18px; background: linear-gradient(135deg, #24096B, #3A14A0); color: #fff; }
.dgwx-paiement-entete h2 { margin: 0 0 8px; font-size: 26px; color: #fff; }
.dgwx-paiement-entete p { margin: 0; color: rgba(245, 243, 250, .82); }
.dgwx-paiement-entete .dgwx-surtitre { color: #C4B5FD; margin-bottom: 10px; }

/* Boutons des encarts de paiement : texte toujours lisible sur fond clair. */
.dgwx-confirmation a.btn.btn-plein, .dgwx-a-payer a.btn.btn-plein { color: #fff; text-decoration: none; }
.dgwx-confirmation a.btn.btn-encre { color: var(--blanc); text-decoration: none; }

/* Pages sans en-tête illustré (paiement, panier, pages légales, articles) : barre de navigation sombre
   dès le haut de page, pour que le menu reste lisible sur fond clair. */
.page-classique .entete { background: rgba(15, 8, 40, .94); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-bottom-color: var(--ligne); }

/* ---------- Articles (actualités) : lecture confortable ---------- */
.single-post .page-standard .enveloppe, .blog .page-standard .enveloppe { max-width: 860px; }

/* ====================================================================
   DÉCOR VIVANT (version légère) — chaque section reçoit quelques formes du
   jeu vidéo (symboles de manette, pixels, croix directionnelle), un ruban
   néon, un anneau et un grand mot en filigrane. Seules les sections à
   l'écran sont animées, et uniquement par des déplacements (transform) :
   pas d'ombre, pas de flou, aucun recalcul de mise en page.
   Compatible Safari / iPhone : aucune propriété récente.
   ==================================================================== */
.dgwx-scene { position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.e-con.hero > .dgwx-scene, .e-con.hero-page > .dgwx-scene { z-index: -1; }
.e-con.section > .e-con, .dgwx-test > .enveloppe { position: relative; z-index: 1; }
.dgwx-couche { position: absolute; top: 0; right: 0; bottom: 0; left: 0; -webkit-transition: -webkit-transform .6s ease-out; transition: transform .6s ease-out; }
.dgwx-scene.hors-vue * { -webkit-animation-play-state: paused !important; animation-play-state: paused !important; }

.dgwx-forme { position: absolute; -webkit-animation: dgwx-derive-a 7s ease-in-out 0s infinite alternate; animation: dgwx-derive-a 7s ease-in-out 0s infinite alternate; }
.dgwx-forme.vb { -webkit-animation-name: dgwx-derive-b; animation-name: dgwx-derive-b; }
.dgwx-forme.vc { -webkit-animation-name: dgwx-derive-c; animation-name: dgwx-derive-c; }
.dgwx-forme.vd { -webkit-animation-name: dgwx-derive-d; animation-name: dgwx-derive-d; }
.dgwx-forme svg { display: block; width: 100%; height: 100%; overflow: visible; }
.dgwx-forme.plein { background: currentColor; border-radius: 2px; }
.dgwx-forme.rond { border-radius: 50%; }
@-webkit-keyframes dgwx-derive-a { from { -webkit-transform: translate3d(0, 0, 0) rotate(0deg); } to { -webkit-transform: translate3d(34px, -64px, 0) rotate(160deg); } }
@keyframes dgwx-derive-a { from { transform: translate3d(0, 0, 0) rotate(0deg); } to { transform: translate3d(34px, -64px, 0) rotate(160deg); } }
@-webkit-keyframes dgwx-derive-b { from { -webkit-transform: translate3d(0, 0, 0) rotate(0deg); } to { -webkit-transform: translate3d(-44px, -38px, 0) rotate(-190deg); } }
@keyframes dgwx-derive-b { from { transform: translate3d(0, 0, 0) rotate(0deg); } to { transform: translate3d(-44px, -38px, 0) rotate(-190deg); } }
@-webkit-keyframes dgwx-derive-c { from { -webkit-transform: translate3d(0, 0, 0) rotate(0deg); } to { -webkit-transform: translate3d(26px, 58px, 0) rotate(120deg); } }
@keyframes dgwx-derive-c { from { transform: translate3d(0, 0, 0) rotate(0deg); } to { transform: translate3d(26px, 58px, 0) rotate(120deg); } }
@-webkit-keyframes dgwx-derive-d { from { -webkit-transform: translate3d(0, 0, 0) rotate(0deg) scale(1); } to { -webkit-transform: translate3d(-30px, 66px, 0) rotate(-110deg) scale(1.25); } }
@keyframes dgwx-derive-d { from { transform: translate3d(0, 0, 0) rotate(0deg) scale(1); } to { transform: translate3d(-30px, 66px, 0) rotate(-110deg) scale(1.25); } }

/* Ruban : il se dessine une fois à l'arrivée de la section, puis reste fixe (aucun coût ensuite). */
.dgwx-rubans { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.dgwx-rubans path { fill: none; stroke-linecap: round; }
.dgwx-ruban-plein { stroke-width: 12; opacity: .3; -webkit-transition: stroke-dashoffset 2.2s ease-out .15s; transition: stroke-dashoffset 2.2s ease-out .15s; }
.dgwx-ruban-fin { stroke-width: 3; opacity: .5; stroke-dasharray: 2 16; }

.dgwx-anneau { position: absolute; width: 300px; height: 300px; border-radius: 50%; border: 16px solid currentColor; border-right-color: transparent; border-bottom-color: transparent; opacity: .36; -webkit-animation: dgwx-tourne 18s linear infinite; animation: dgwx-tourne 18s linear infinite; }
@-webkit-keyframes dgwx-tourne { to { -webkit-transform: rotate(360deg); } }
.dgwx-totem { position: absolute; width: 240px; height: 240px; opacity: .26; -webkit-animation: dgwx-totem 16s ease-in-out infinite alternate; animation: dgwx-totem 16s ease-in-out infinite alternate; }
.dgwx-totem svg { width: 100%; height: 100%; display: block; }
@-webkit-keyframes dgwx-totem { from { -webkit-transform: rotate(-12deg) scale(.94); } to { -webkit-transform: rotate(18deg) scale(1.08); } }
@keyframes dgwx-totem { from { transform: rotate(-12deg) scale(.94); } to { transform: rotate(18deg) scale(1.08); } }

.dgwx-filigrane { position: absolute; left: -3%; bottom: -.2em; white-space: nowrap; font: 700 150px/1 var(--x-police); font-size: clamp(110px, 21vw, 330px); letter-spacing: -.02em; text-transform: uppercase; color: transparent; -webkit-text-stroke: 2px rgba(245, 243, 250, .075); -webkit-user-select: none; user-select: none; }
.dgwx-filigrane.droite { left: auto; right: -3%; }

/* Sur fond clair : mêmes formes, plus douces. */
.clair > .dgwx-scene .dgwx-forme { opacity: .4 !important; }
.clair > .dgwx-scene .dgwx-ruban-plein { opacity: .18; }
.clair > .dgwx-scene .dgwx-ruban-fin { opacity: .34; }
.clair > .dgwx-scene .dgwx-anneau { opacity: .2; }
.clair > .dgwx-scene .dgwx-totem { opacity: .14; }
.clair > .dgwx-scene .dgwx-filigrane { -webkit-text-stroke-color: rgba(124, 58, 237, .11); }
/* Barre de navigation : bien opaque une fois la page défilée, quel que soit le fond de la section. */
.entete.defile { background: rgba(15, 8, 40, .94); }
@media (max-width: 760px) {
  .dgwx-anneau { width: 170px !important; height: 170px !important; border-width: 10px; }
  .dgwx-totem { width: 130px !important; height: 130px !important; }
  .dgwx-ruban-plein { stroke-width: 9; }
}

/* ---------- Entrées de contenu plus marquées ---------- */
.js .reveler { opacity: 0; transform: translateY(64px) scale(.95); transition: opacity .8s ease, transform 1s cubic-bezier(.16, 1, .3, 1); }
.js .reveler.visible { opacity: 1; transform: none; }
/* Cartes : elles basculent vers le visiteur. */
.js .carte-temps.reveler, .js .carte-jeu.reveler, .js .chiffre.reveler, .js .etape.reveler, .js .valeur.reveler, .js .index-jeu.reveler, .js .theme.reveler, .js .regle.reveler, .js .dgwx-carte.reveler { transform: perspective(900px) translateY(70px) rotateX(18deg) scale(.94); transform-origin: 50% 100%; }
.js .carte-temps.reveler.visible, .js .carte-jeu.reveler.visible, .js .chiffre.reveler.visible, .js .etape.reveler.visible, .js .valeur.reveler.visible, .js .index-jeu.reveler.visible, .js .theme.reveler.visible, .js .regle.reveler.visible, .js .dgwx-carte.reveler.visible { transform: none; }
/* Visuels : ils glissent depuis le côté, légèrement inclinés. */
.js .intro-visuel.reveler, .js .media-visuel.reveler, .js .fiche-visuel.reveler, .js .jam-visuel.reveler, .js .dgwx-consortium-logos.reveler { transform: translateX(-90px) rotate(-4deg) scale(.94); }
.js .inverse .media-visuel.reveler, .js .inverse .fiche-visuel.reveler, .js .intro-visuel.reveler { transform: translateX(90px) rotate(4deg) scale(.94); }
.js .intro-visuel.reveler.visible, .js .media-visuel.reveler.visible, .js .fiche-visuel.reveler.visible, .js .jam-visuel.reveler.visible, .js .dgwx-consortium-logos.reveler.visible, .js .inverse .media-visuel.reveler.visible, .js .inverse .fiche-visuel.reveler.visible { transform: none; }
.js .dgwx-anim { transform: translateY(60px) scale(.95); transition: opacity .8s ease, transform 1s cubic-bezier(.16, 1, .3, 1); }
.js .dgwx-activite.dgwx-anim, .js .dgwx-discipline.dgwx-anim, .js .dgwx-actu.dgwx-anim { transform: perspective(900px) translateY(70px) rotateX(18deg) scale(.94); transform-origin: 50% 100%; }
.js .dgwx-anim.visible, .js .dgwx-activite.dgwx-anim.visible, .js .dgwx-discipline.dgwx-anim.visible, .js .dgwx-actu.dgwx-anim.visible { transform: none; }
/* Logos des partenaires : ils apparaissent un à un. */
.js .dgwx-part-groupe.dgwx-anim .dgwx-part { opacity: 0; transform: translateY(26px) scale(.8); transition: opacity .5s ease, transform .7s cubic-bezier(.2, 1.5, .3, 1); }
.js .dgwx-part-groupe.dgwx-anim.visible .dgwx-part { opacity: 1; transform: none; }
/* Titres de section : un trait néon se déploie sous le titre. */
.entete-section .titre-section::after, .dgwx-entete .dgwx-titre::after { content: ''; display: block; height: 4px; width: 0; margin-top: 18px; border-radius: 4px; background: var(--x-arc); box-shadow: 0 0 18px rgba(155, 107, 255, .7); transition: width 1.1s cubic-bezier(.16, 1, .3, 1) .35s; }
.dgwx-entete-centre .dgwx-titre::after { margin-left: auto; margin-right: auto; }
.entete-section.visible .titre-section::after, .dgwx-entete.visible .dgwx-titre::after, .elementor-editor-active .titre-section::after { width: 96px; }
/* Titre du hero : les mots montent un à un. */
.dgwx-mot { display: inline-block; opacity: 0; transform: translateY(.7em) rotate(4deg); -webkit-animation: dgwx-mot .9s cubic-bezier(.16, 1, .3, 1) .15s forwards; animation: dgwx-mot .9s cubic-bezier(.16, 1, .3, 1) .15s forwards; }
@-webkit-keyframes dgwx-mot { to { opacity: 1; -webkit-transform: none; } }
@keyframes dgwx-mot { to { opacity: 1; transform: none; } }
/* Compte à rebours : la seconde « bat ». */
.dgwx-rebours-bloc b.bat { animation: dgwx-bat .45s cubic-bezier(.2, 1.6, .3, 1); }
@keyframes dgwx-bat { 0% { transform: translateY(-34%) scale(1.18); opacity: .35; } 100% { transform: none; opacity: 1; } }
.dgwx-progression { height: 4px; }

@supports not (aspect-ratio: 1) { .dgwx-activite-image, .dgwx-actu-image { min-height: 190px; } }

@media print { .js .dgwx-anim { opacity: 1; transform: none; } .dgwx-progression, .dgwx-decor { display: none; } }

/* ---------- Réglage « Réduire les animations » de l'appareil ----------
   Le décor, les entrées de contenu et le podium restent animés (demande de l'organisation : ils doivent
   être visibles sur tous les téléphones). Seuls les effets liés au défilement et à la souris sont coupés
   par le script, ainsi que le reflet des boutons. */
@media (prefers-reduced-motion: reduce) {
  .btn-plein::after, .bouton-plein .elementor-button::after { display: none; }
}

/* ---------- Écran de diagnostic (adresse terminée par ?dgwx=diag) ---------- */
.dgwx-diag { position: fixed; z-index: 99999; left: 8px; right: 8px; top: 8px; max-height: 86vh; overflow: auto; padding: 14px 16px; border-radius: 12px; background: #fff; color: #111; font: 13px/1.5 ui-monospace, Menlo, monospace; box-shadow: 0 10px 40px rgba(0, 0, 0, .5); white-space: pre-wrap; word-break: break-word; }
.dgwx-diag b { color: #6d28d9; }
