/*
Theme Name: Le Paddock 2.0
Theme URI: https://www.le-paddock.fr
Author: Tony Cuny
Description: Thème du Paddock (2026) : bandeau animé (galop de Muybridge en Lottie sur la piste), palette sombre vert pelouse et or, polices Barlow. Menus, zones de widgets et pied de page gérés depuis l'administration. Sans jQuery.
Version: 1.3.2
Requires at least: 6.0
Requires PHP: 8.0
Text Domain: paddock2
*/

/* Jetons : palette sombre unique, celle de la maquette validée le 04/10/2026 */
:root {
  --fond: #121a0e;
  --bandeau: #1e2a12;
  --carte: #1b2615;
  --carte-2: #151f10;
  --trait: #2f3f25;
  --encre: #e7efdc;
  --encre-2: #c9d4ba;
  --encre-3: #a5b394;
  --pelouse: #8fcf5f;
  --or: #f2b93b;
  --or-clair: #ffd677;
  --brun: #2e2306;
  --brun-trait: #4a3a12;
  --gazon: #3f6b22;
  --gazon-2: #4a7a2a;
  --sable: #b8935a;
  --gagne: #7fd081;
  --perd: #f08a72;
  /* places à l'arrivée : 1er, 2e, 3e */
  --place-1: #e5534b;
  --place-2: #4cc26a;
  --place-3: #4d9cf0;
  --display: "Barlow Condensed", "Arial Narrow", sans-serif;
  --texte: "Barlow", "Segoe UI", Arial, sans-serif;
  --largeur: 1240px;
  --rayon: 4px;
  --rayon-petit: 3px;
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 16px; }
body { margin: 0; background: var(--fond); color: var(--encre); font: 16px/1.55 var(--texte); }
img, video, iframe { max-width: 100%; height: auto; }
a { color: var(--or); text-decoration: none; }
a:hover { color: var(--or-clair); }
:focus-visible { outline: 2px solid var(--or); outline-offset: 2px; }
h1, h2, h3, h4, h5, h6 { font-family: var(--display); line-height: 1.1; text-wrap: balance; margin: 0 0 .5em; color: var(--encre); }
h1 { font-size: clamp(32px, 5vw, 48px); font-weight: 800; }
h2 { font-size: clamp(24px, 3.4vw, 32px); font-weight: 700; }
h3 { font-size: 22px; font-weight: 700; }
p { margin: 0 0 1em; }
.screen-reader-text, .sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.screen-reader-text:focus { position: static !important; width: auto; height: auto; clip: auto; }
.conteneur { max-width: var(--largeur); margin: 0 auto; padding-inline: 24px; }
@media (max-width: 600px) { .conteneur { padding-inline: 16px; } }

/* ---------- En-tête ---------- */
.entete { background: var(--brun); border-bottom: 3px solid var(--or); position: relative; z-index: 20; }
.entete-barre { position: relative; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 24px; padding-block: 12px; }
.logo { display: flex; align-items: center; gap: 10px; color: var(--encre); }
.logo:hover { color: var(--encre); }
.logo img { max-height: 52px; width: auto; }
.logo-texte { display: flex; flex-direction: column; line-height: 1; }
.logo-texte small { font: 600 13px var(--texte); letter-spacing: .28em; text-transform: uppercase; color: var(--or); }
.logo-texte strong { font: 800 34px var(--display); letter-spacing: .02em; text-transform: uppercase; }
.entete-actions { display: flex; align-items: center; gap: 10px; order: 3; }
.bouton, .entry-content .wp-block-button__link, button.bouton, input[type="submit"], input[type="button"], button[type="submit"] {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 8px 18px;
  font: 600 15px var(--texte); color: #2a1d00; background: var(--or); border: 1px solid var(--or); border-radius: var(--rayon); cursor: pointer; text-decoration: none;
}
.bouton:hover, input[type="submit"]:hover, button[type="submit"]:hover { background: var(--or-clair); border-color: var(--or-clair); color: #2a1d00; }
.bouton-discret, button.bouton-discret { background: transparent; color: var(--encre); border-color: var(--brun-trait); }
.bouton-discret:hover, button.bouton-discret:hover { background: rgba(242, 185, 59, .12); color: var(--encre); border-color: var(--or); }

/* menu principal (Apparence → Menus, emplacement « Menu principal ») */
.nav-principale { flex: 1 1 auto; display: flex; justify-content: center; order: 2; }
.menu-principal, .menu-principal ul { list-style: none; margin: 0; padding: 0; }
.menu-principal { display: flex; flex-wrap: wrap; gap: 2px; }
.menu-principal li { position: relative; }
.menu-principal a { display: block; padding: 10px 12px; color: var(--encre); font: 600 17px var(--display); letter-spacing: .04em; text-transform: uppercase; }
.menu-principal > li > a { border-bottom: 2px solid transparent; }
.menu-principal > .current-menu-item > a, .menu-principal > .current-menu-ancestor > a, .menu-principal > .current_page_item > a, .menu-principal > .current_page_ancestor > a { color: #fff; border-bottom-color: var(--or); }
.menu-principal a:hover { color: var(--or-clair); }
.menu-principal .sub-menu, .menu-principal .children {
  position: absolute; left: 0; top: 100%; min-width: 230px; background: var(--brun); border: 1px solid var(--brun-trait); border-radius: var(--rayon); padding: 6px;
  display: none; box-shadow: 0 10px 24px rgb(0 0 0 / .35);
}
.menu-principal .sub-menu .sub-menu, .menu-principal .children .children { left: 100%; top: 0; }
.menu-principal li:hover > .sub-menu, .menu-principal li:focus-within > .sub-menu, .menu-principal li:hover > .children, .menu-principal li:focus-within > .children { display: block; }
.menu-principal .sub-menu a, .menu-principal .children a { font-size: 16px; text-transform: none; letter-spacing: .01em; border-radius: var(--rayon-petit); }
.menu-principal .sub-menu a:hover, .menu-principal .children a:hover { background: rgba(242, 185, 59, .12); }
.bouton.menu-bascule { display: none; }

@media (max-width: 900px) {
  .bouton.menu-bascule { display: inline-flex; }
  .entete-actions { order: 2; }
  .nav-principale { order: 3; flex-basis: 100%; display: none; }
  .nav-principale.ouvert { display: block; }
  .menu-principal { flex-direction: column; padding-block: 6px 10px; }
  .menu-principal .sub-menu, .menu-principal .children { position: static; display: block; border: 0; box-shadow: none; background: transparent; padding: 0 0 0 14px; }
}

/* ---------- Bandeau animé : lice et piste qui défilent, cheval Lottie au galop ---------- */
.bandeau { position: relative; overflow: hidden; background: var(--bandeau); border-top: 1px solid var(--brun-trait); min-height: 270px; }
.bandeau-texte { position: relative; z-index: 2; padding-block: 24px 96px; display: grid; gap: 4px; max-width: 620px; }
.bandeau-surtitre { font: 600 13px var(--texte); letter-spacing: .14em; text-transform: uppercase; color: var(--or); }
.bandeau-titre { margin: 0; font: 800 clamp(34px, 5vw, 58px)/1 var(--display); }
.bandeau-titre span { color: var(--pelouse); }
.bandeau-intro { margin: 4px 0 0; color: var(--encre-2); }
/* décor plus large que la scène, déplacé d'un bloc (transform) : poteaux tous les 80 px, espacement constant ; 184 px/s
   (2,5 fois moins vite que les 460 px/s d'origine, jugés perturbants le 08/10/2026 ; js/theme.js ralentit le cheval d'autant) */
.lice, .piste { position: absolute; left: 0; width: calc(100% + 160px); will-change: transform; animation: paddock-defile .87s linear infinite; }
.lice { bottom: 30px; height: 56px; border-top: 3px solid var(--encre); background-image: linear-gradient(90deg, var(--encre) 0 6px, transparent 6px); background-size: 80px 100%; background-repeat: repeat-x; }
.piste { bottom: 0; height: 30px; border-top: 2px solid #2f5a1a; background-color: var(--gazon); background-image: linear-gradient(90deg, var(--gazon-2) 0 80px, transparent 80px); background-size: 160px 100%; background-repeat: repeat-x; }
.piste-sable { border-top-color: #8a6a3a; background-color: var(--sable);
  background-image: linear-gradient(90deg, rgba(104,72,32,.55) 0 26px, transparent 26px), linear-gradient(90deg, rgba(104,72,32,.4) 0 12px, transparent 12px), linear-gradient(90deg, rgba(236,212,160,.5) 0 18px, transparent 18px);
  background-size: 160px 3px, 80px 2px, 160px 2px; background-position: 0 7px, 40px 15px, 110px 22px; }
@keyframes paddock-defile { to { transform: translateX(-160px); } }
.cheval { position: absolute; z-index: 1; bottom: 6px; left: 50%; width: 340px; aspect-ratio: 638 / 351; }
.cheval svg { display: block; }
@media (max-width: 900px) { .cheval { left: auto; right: 4%; width: 260px; } .bandeau-texte { padding-bottom: 150px; } }
@media (prefers-reduced-motion: reduce) { .lice, .piste { animation: none; } }
.bandeau.en-pause .lice, .bandeau.en-pause .piste { animation-play-state: paused; }
.bandeau-pause { position: absolute; z-index: 3; right: 12px; bottom: 8px; min-height: 32px; padding: 4px 10px; font: 600 13px var(--texte); color: var(--encre); background: rgba(18, 26, 14, .75); border: 1px solid var(--trait); border-radius: var(--rayon-petit); cursor: pointer; }
.bandeau-pause:hover, .bandeau-pause:focus-visible { border-color: var(--or); }
@media (prefers-reduced-motion: reduce) { .bandeau-pause { display: none; } }

/* ---------- Mise en page ---------- */
.site-corps { padding-block: 28px 56px; }
.mise-en-page { display: flex; flex-wrap: wrap; gap: 24px; align-items: flex-start; }
.contenu-principal { flex: 999 1 640px; min-width: 0; }
.barre-laterale { flex: 1 1 280px; min-width: 0; display: grid; gap: 16px; }
.carte { background: var(--carte); border: 1px solid var(--trait); border-radius: var(--rayon); padding: 20px 22px; min-width: 0; }
.carte > :last-child { margin-bottom: 0; }

/* contenu des pages et articles, y compris ce qu'y affichent les plugins */
.entry-header h1 { margin-bottom: .2em; }
.entry-meta { color: var(--encre-3); font-size: 14px; margin-bottom: 1.2em; }
.entry-content { min-width: 0; overflow-wrap: break-word; }
.entry-content > * + * { margin-top: 0; }
.entry-content ul, .entry-content ol { padding-left: 1.3em; }
.entry-content blockquote { margin: 1em 0; padding: 8px 16px; border-left: 3px solid var(--or); color: var(--encre-2); }
.entry-content hr { border: 0; border-top: 1px solid var(--trait); margin: 1.6em 0; }
.entry-content details { margin: 1em 0; padding: 14px 18px; border: 1px solid var(--trait); border-radius: var(--rayon); background: var(--carte); }
.entry-content details > summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: 10px; font: 700 20px var(--display); color: var(--encre); }
.entry-content details > summary::-webkit-details-marker { display: none; }
.entry-content details > summary::before { content: "▸"; color: var(--or); transition: transform .2s; }
.entry-content details[open] > summary::before { transform: rotate(90deg); }
.entry-content details[open] > summary { margin-bottom: 12px; }
.entry-content table, .table-paddock { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; margin: 0 0 1em; }
.entry-content th, .table-paddock th { font: 600 11px var(--texte); letter-spacing: .08em; text-transform: uppercase; color: var(--encre-3); text-align: left; padding: 8px; border-bottom: 2px solid var(--trait); }
.entry-content td, .table-paddock td { padding: 8px; border-bottom: 1px solid var(--trait); vertical-align: middle; }
.defile { overflow-x: auto; }
input[type="text"], input[type="email"], input[type="password"], input[type="number"], input[type="search"], input[type="url"], input[type="date"], select, textarea {
  font: 500 15px var(--texte); color: var(--encre); background: var(--carte-2); border: 1px solid var(--trait); border-radius: var(--rayon-petit); padding: 8px 10px; max-width: 100%;
}
textarea { width: 100%; }
label { color: var(--encre-2); }
.wp-caption, figure { max-width: 100%; margin: 0 0 1em; }
.wp-caption-text, figcaption { font-size: 14px; color: var(--encre-3); }
.alignleft { float: left; margin: 0 1em 1em 0; } .alignright { float: right; margin: 0 0 1em 1em; } .aligncenter { display: block; margin-inline: auto; }

/* listes d'articles */
.liste-articles { display: grid; gap: 16px; }
.article-resume h2 { font-size: 26px; margin-bottom: .2em; }
.pagination-articles { display: flex; justify-content: space-between; gap: 12px; margin-top: 20px; }

/* widgets (barre latérale et pied de page) */
.widget { background: var(--carte); border: 1px solid var(--trait); border-radius: var(--rayon); padding: 16px 18px; min-width: 0; }
.widget-title, .widget h2 { font: 700 20px var(--display); margin: 0 0 10px; color: var(--encre); }
.widget ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.widget li ul { padding-left: 12px; margin-top: 6px; }

/* ---------- Pied de page ---------- */
.pied { background: var(--brun); border-top: 3px solid var(--or); margin-top: 24px; }
.pied-widgets { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; padding-block: 24px 8px; }
.pied-widgets .widget { background: rgba(0, 0, 0, .18); border-color: var(--brun-trait); }
.pied-bas { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 24px; padding-block: 18px 22px; font-size: 14px; color: var(--encre-2); }
.pied-bas strong { font: 800 20px var(--display); color: var(--encre); }
.menu-pied { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 16px; }
.menu-pied a { color: var(--encre-2); }
.menu-pied a:hover { color: var(--or); }

/* ---------- Accueil ---------- */
.accueil { display: grid; gap: 28px; }
.titre-section { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 12px; }
.titre-section h2 { margin: 0; font-size: 28px; }
.reunions { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; }
.reunion { display: grid; gap: 4px; padding: 12px 14px; border-radius: var(--rayon); background: var(--carte); border: 1px solid var(--trait); color: var(--encre); }
.reunion { font: inherit; text-align: left; cursor: pointer; width: 100%; }
.reunion:hover { border-color: var(--or); color: var(--encre); }
.reunion[aria-selected="true"] { outline: 2px solid var(--pelouse); outline-offset: -2px; }
.reunion.phare { background: var(--brun); border-color: var(--or); }
.reunion-tete { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.reunion-abr { font: 800 22px var(--display); color: var(--or); }
.reunion-heure { font: 600 14px var(--texte); color: var(--encre-2); }
.reunion-nom { font: 600 17px var(--display); letter-spacing: .02em; text-transform: uppercase; }
.reunion-courses { font-size: 13px; color: var(--encre-3); }

.phare-grille { display: flex; flex-wrap: wrap; gap: 20px; }
.phare-course { flex: 999 1 640px; display: grid; gap: 16px; }
.phare-cote { flex: 1 1 320px; display: grid; gap: 16px; align-content: start; }
.phare-tete { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: start; gap: 8px 16px; }
.phare-tete h2 { margin: 0; font-size: 34px; font-weight: 800; }
.surtitre { font: 600 12px var(--texte); letter-spacing: .12em; text-transform: uppercase; color: var(--encre-3); }
.etat-course { display: inline-flex; align-items: center; gap: 8px; background: #2c3d1f; color: var(--pelouse); font: 600 13px var(--texte); padding: 6px 12px; border-radius: var(--rayon); }
.etat-course i { width: 8px; height: 8px; border-radius: 50%; background: var(--pelouse); animation: paddock-pulse 1.6s ease-in-out infinite; }
@keyframes paddock-pulse { 50% { opacity: .35; } }
.onglets { display: flex; flex-wrap: wrap; gap: 6px; }
.onglet { font: 600 15px var(--texte); min-height: 40px; padding: 8px 14px; border-radius: var(--rayon); cursor: pointer; background: transparent; color: var(--encre); border: 1px solid var(--trait); }
.onglet[aria-selected="true"] { background: var(--pelouse); color: var(--fond); border-color: var(--pelouse); }
.prono-desc { margin: -6px 0 0; font-size: 14px; color: var(--encre-3); }
.prono-liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.prono-cheval { display: flex; align-items: center; gap: 14px; padding: 10px 14px; border-radius: var(--rayon); background: var(--carte-2); border: 1px solid var(--trait); }
.prono-cheval.place { border-color: #4f7a33; }
.prono-cheval.gagnant { background: #2c3d1f; }
.prono-num { font: 800 26px var(--display); color: var(--or); min-width: 36px; text-align: center; }
.prono-nom { display: grid; flex: 1 1 auto; min-width: 0; }
.prono-nom b { font: 700 19px var(--display); letter-spacing: .02em; }
.prono-nom small { font-size: 13px; color: var(--encre-3); }
.prono-place { font: 700 18px var(--display); min-width: 44px; text-align: right; color: #6f7c62; }
.prono-cote { font: 700 17px var(--display); min-width: 44px; text-align: right; color: var(--encre); white-space: nowrap; }
.prono-cote::before { content: 'cote '; font: 500 11px var(--texte); color: var(--encre-3); text-transform: uppercase; letter-spacing: .04em; }
.prono-cheval.place .prono-place { color: var(--pelouse); }
.prono-vide { margin: 0; padding: 18px; border: 1px dashed var(--trait); border-radius: var(--rayon); color: var(--encre-2); }
.arrivee-ligne { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; padding-top: 12px; border-top: 1px solid var(--trait); }
.carte-or { background: var(--brun); border-color: var(--brun-trait); }
.carte-or h3 { color: var(--or); }
.chiffres { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.chiffres span { display: block; font: 600 11px var(--texte); letter-spacing: .09em; text-transform: uppercase; color: var(--encre-3); }
.chiffres strong { font: 800 26px var(--display); }
.outils { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 900px) { .outils { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .outils { grid-template-columns: minmax(0, 1fr); } }
.outil { display: grid; gap: 6px; color: var(--encre); }
.outil:hover { border-color: var(--or); color: var(--encre); }
.outil b { font: 700 22px var(--display); color: var(--pelouse); }
.outil span { font-size: 15px; color: var(--encre-2); }
.outil em { font: 600 14px var(--texte); font-style: normal; color: var(--or); }
.ligne-phare td { background: var(--brun); }
.programme td.c { font: 800 18px var(--display); color: var(--or); }
.programme td.prix { font: 600 16px var(--display); letter-spacing: .02em; }

/* numéros de chevaux ; place à l'arrivée : encadré dans le prono, souligné dans l'arrivée (1er rouge, 2e vert, 3e bleu) */
.nums { display: inline-flex; flex-wrap: wrap; gap: 4px; }
.num { display: inline-grid; place-items: center; min-width: 28px; height: 26px; padding: 0 3px; border-radius: var(--rayon-petit); font: 500 15px var(--texte); font-variant-numeric: tabular-nums; color: var(--encre-3); border: 2px solid transparent; }
.num-prono { font-weight: 700; color: var(--encre); }
.num-prono.p1 { border-color: var(--place-1); } .num-prono.p2 { border-color: var(--place-2); } .num-prono.p3 { border-color: var(--place-3); }
.num-arr { border-radius: 0; border-width: 0 0 3px; }
.num-arr.p1, .num-arr.p2, .num-arr.p3 { color: var(--encre); }
.num-arr.p1 { border-bottom-color: var(--place-1); } .num-arr.p2 { border-bottom-color: var(--place-2); } .num-arr.p3 { border-bottom-color: var(--place-3); }
.vide { color: var(--encre-3); }

/* Pronostics réservés aux membres (accueil) : vitrine pour les visiteurs */
.verrou { color: var(--encre-3); }
.verrou-lien { font-size: 14px; color: var(--or); }
.vitrine-pronos { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; padding: 16px; border: 1px dashed var(--brun-trait); border-radius: var(--rayon); background: var(--carte-2); }
.vitrine-texte { flex: 1 1 260px; display: grid; gap: 8px; }
.vitrine-texte p { margin: 0; color: var(--encre-2); }
.vitrine-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.vitrine-apercu { flex: 1 1 240px; position: relative; filter: blur(4px); opacity: .55; pointer-events: none; user-select: none; }

/* Accueil en direct : course cliquable dans le programme, badge du départ, retour au direct */
.lien-course { padding: 0; background: none; border: 0; color: inherit; font: inherit; letter-spacing: inherit; text-align: left; cursor: pointer; }
.lien-course:hover, .lien-course:focus-visible { color: var(--or-clair); text-decoration: underline; }
.badge-quinte { margin-left: 6px; padding: 1px 7px; border-radius: var(--rayon); background: var(--or); color: #2a1d00; font: 700 11px var(--texte); letter-spacing: .04em; vertical-align: middle; }
.ligne-quinte td.c { color: var(--or-clair); }
.etat-course.imminent { background: var(--or); color: #2a1d00; }
.phare-direct { color: var(--pelouse); }
.phare-etat { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.phare-etat .phare-retour { font: 600 13px var(--texte); padding: 6px 12px; border-color: var(--or); }
.phare-etat .phare-retour[hidden] { display: none; }
.programme tbody tr[data-course] { cursor: pointer; }
.programme tbody tr[data-course]:hover td { background: var(--carte-2); }
.programme tbody tr.ligne-phare:hover td { background: var(--brun); }

/* ---------- Passe UI/UX du 05/10/2026 ---------- */

/* Pages intérieures : bandeau plus bas, qui porte le titre de la page */
.bandeau-compact .bandeau-texte { padding-block: 22px 78px; }
.bandeau-compact .bandeau-titre { font-size: clamp(30px, 4.4vw, 48px); }
.bandeau-compact .cheval { width: 260px; }
@media (max-width: 900px) {
  .bandeau-compact .bandeau-texte { padding-block: 16px 64px; }
  .bandeau-compact .cheval { width: 170px; }
}

/* Réunions du jour : bandeau horizontal à faire défiler sur téléphone (au lieu d'un écran entier de cartes) */
@media (max-width: 640px) {
  .reunions { display: flex; overflow-x: auto; gap: 8px; padding-bottom: 6px; scroll-snap-type: x proximity; }
  .reunion { flex: 0 0 auto; width: auto; min-width: 140px; scroll-snap-align: start; padding: 10px 12px; }
  .reunion-courses { display: none; }
}

/* Programme : sur téléphone, chaque course sur deux lignes (course, heure, prix / prono, arrivée), sans colonnes coupées */
@media (max-width: 640px) {
  .programme { min-width: 0 !important; }
  .programme thead { display: none; }
  .programme tr { display: grid; grid-template-columns: 2.6em 3.4em minmax(0, 1fr); grid-template-areas: "c h prix"; align-items: center; gap: 4px 8px; padding: 10px 4px; border-bottom: 1px solid var(--trait); }
  .programme td { padding: 0; border: 0; }
  .programme td.c { grid-area: c; align-self: start; }
  .programme td.h { grid-area: h; color: var(--encre-2); }
  .programme td.prix { grid-area: prix; min-width: 0; overflow-wrap: anywhere; }
  .programme td.prix .lien-course { white-space: normal; }
  .programme td.distance { display: none; }
  .programme td.cellule-prono { grid-column: 2 / 4; }
  .programme td.cellule-arrivee { grid-area: auto; grid-column: 2 / 4; }
  .programme td.cellule-prono::before { content: "Prono"; margin-right: 6px; display: inline-block; min-width: 3.4em; font-size: 12px; color: var(--encre-3); }
  .programme td.cellule-arrivee:has(.num)::before { content: "Arrivée"; margin-right: 6px; display: inline-block; min-width: 3.4em; font-size: 12px; color: var(--encre-3); }
  .programme td.cellule-arrivee:not(:has(.num)) { display: none; }
}

/* Bandeau cookies (plugin Creare) aux couleurs du site */
#cookie-law { position: fixed !important; left: 16px !important; right: 16px !important; bottom: 16px !important; z-index: 50 !important; max-width: 520px !important; margin: 0 auto !important; padding: 14px 44px 14px 18px !important; background: var(--brun) !important; color: var(--encre-2) !important; border: 1px solid var(--or) !important; border-radius: var(--rayon) !important; box-shadow: 0 10px 30px rgba(0, 0, 0, .45) !important; font: 14px/1.5 var(--texte) !important; width: auto !important; opacity: 1 !important; }
#cookie-law div { padding: 0 !important; margin: 0 !important; background: none !important; }
#cookie-law h4 { margin: 0 0 4px !important; font: 700 16px var(--display) !important; color: var(--encre) !important; }
#cookie-law p { margin: 0 !important; color: var(--encre-2) !important; font-size: 14px !important; }
#cookie-law a { color: var(--or) !important; }
#cookie-law .close-cookie-banner { position: absolute !important; top: 8px !important; right: 10px !important; width: 28px !important; height: 28px !important; display: grid !important; place-items: center !important; border-radius: 50% !important; background: transparent !important; color: var(--encre) !important; text-decoration: none !important; }
#cookie-law .close-cookie-banner span { font-size: 0 !important; background: none !important; }
#cookie-law .close-cookie-banner::before { content: "✕"; font-size: 16px; }

/* aucune carte ne doit élargir la page sur téléphone */
.accueil > section, .phare-grille > *, .carte { min-width: 0; }
.phare-tete h2, #titre-phare { overflow-wrap: anywhere; }

/* paragraphes vides que WordPress insère autour des volets <details> et des shortcodes */
.entry-content p:empty { display: none; }

/* Accueil, « À la une » : résumé du Challenge du jour */
.carte-challenge { display: grid; gap: 8px; justify-items: start; }
.carte-challenge h3 { margin: 0; font-size: 26px; }
.carte-challenge h3 a { color: var(--encre); }
.carte-challenge h3 a:hover { color: var(--or-clair); }
.carte-challenge p { margin: 0; }
.challenge-etat { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; color: var(--encre-2); font-size: 15px; }
.etat-course.ferme { background: #3a2a1c; color: var(--perd); }
.etat-course.ferme i { display: none; }
.challenge-arrivee { display: flex; align-items: center; gap: 10px; }
.carte-challenge .bouton { margin-top: 4px; }
/* Bandeau d'information cookies du thème (remplace Creare) */
.info-cookies { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 50; max-width: 560px; margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; padding: 14px 18px; background: var(--brun); color: var(--encre-2); border: 1px solid var(--or); border-radius: var(--rayon); box-shadow: 0 10px 30px rgba(0, 0, 0, .45); font: 14px/1.5 var(--texte); }
.info-cookies[hidden] { display: none; }
.info-cookies p { flex: 1 1 260px; margin: 0; }
.info-cookies a { color: var(--or); }
.info-cookies .bouton { padding: 8px 16px; }
/* Formulaire de contact du thème */
.contact { display: grid; gap: 4px; max-width: 640px; }
.contact p { margin: 0 0 10px; }
.contact label { display: block; margin-bottom: 4px; font-weight: 600; }
.contact input[type="text"], .contact input[type="email"] { width: 100%; }
.contact-piege { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.contact-note { font-size: 14px; color: var(--encre-3); }
.contact-retour { padding: 12px 16px; border-radius: var(--rayon); border: 1px solid; }
.contact-retour.succes { border-color: var(--pelouse); color: var(--pelouse); }
.contact-retour.erreur { border-color: var(--perd); color: var(--perd); }
/* Accessibilité (contrôle du 05/10/2026) : les liens au fil du texte se distinguent aussi par le soulignement, pas
   seulement par la couleur (pages, articles, widgets, carte d'information cookies) */
.entry-content :is(p, li, td, dd, blockquote) a:not(.bouton), .widget :is(p, li) a, .info-cookies p a, .contact-note a { text-decoration: underline; text-underline-offset: 2px; text-decoration-thickness: 1px; }
