body{
  background:
    linear-gradient(180deg, #f4f1ea 0%, #ebe6db 100%);
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background-image: 
    repeating-radial-gradient(circle at 50% 50%, 
      rgba(0,0,0,.03) 0px,
      rgba(0,0,0,.03) 1px,
      transparent 1px,
      transparent 20px);
}
/* VDLC Programme — Bright & playful (mobile-first) */
:root{
  --bg1:#fff7e6;
  --bg2:#f0fbff;
  --ink:#172033;
  --muted:#51607a;

  --red:#ff2d2d;
  --yellow:#ffd000;
  --blue:#2b6cff;
  --mint:#00c2a8;
  --violet:#7b5cff;

  --card: rgba(255,255,255,.80);
  --card2: rgba(255,255,255,.66);

  --radius: 18px;
  --shadow: 0 18px 40px rgba(18, 31, 52, .12);
  --shadow2: 0 10px 24px rgba(18, 31, 52, .10);
  --max: 980px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}


a{color:inherit}
.skip{
  position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden;
}
.skip:focus{
  left:12px; top:12px; width:auto; height:auto; padding:10px 12px; z-index:9999;
  background:#ffffff; border-radius:12px; outline:2px solid rgba(23,32,51,.25);
  box-shadow: var(--shadow2);
}

/* Background decorations */
.bg-decor{ position:fixed; inset:0; pointer-events:none; overflow:hidden; z-index:-1; }
.blob{
  position:absolute;
  width: 520px; height: 520px;
  opacity:.85;
  border-radius: 40% 60% 55% 45% / 45% 35% 65% 55%;
  mix-blend-mode: multiply;
  animation: floaty 10s ease-in-out infinite;
}
.blob--1{ left:-160px; top:-160px; background: radial-gradient(circle at 30% 30%, rgba(255,45,45,.55), rgba(255,208,0,.25)); }
.blob--2{ right:-220px; top:40px; background: radial-gradient(circle at 40% 40%, rgba(43,108,255,.45), rgba(123,92,255,.28)); animation-duration: 12s;}
.blob--3{ left:30%; bottom:-260px; background: radial-gradient(circle at 40% 40%, rgba(0,194,168,.45), rgba(255,208,0,.22)); animation-duration: 14s;}
@keyframes floaty{
  0%,100%{ transform: translate(0,0) rotate(0deg); }
  50%{ transform: translate(18px, -14px) rotate(6deg); }
}
.confetti{
  position:absolute; inset:-40px;
  background-image:
    radial-gradient(circle, rgba(255,45,45,.22) 2px, transparent 3px),
    radial-gradient(circle, rgba(43,108,255,.18) 2px, transparent 3px),
    radial-gradient(circle, rgba(0,194,168,.18) 2px, transparent 3px),
    radial-gradient(circle, rgba(255,208,0,.20) 2px, transparent 3px);
  background-size: 120px 120px, 140px 140px, 160px 160px, 180px 180px;
  background-position: 0 0, 40px 20px, 20px 60px, 70px 90px;
  opacity:.55;
}

/* HERO */
.hero{
  min-height: 100svh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding: 18px 14px 26px;
  gap: 14px;
}
.hero__frame{
  width: min(560px, 92vw);
  border-radius: 22px;
  overflow:hidden;
  box-shadow: var(--shadow);
  background: rgba(255,255,255,.6);
  border: 1px solid rgba(255,255,255,.75);
}
.hero__img{ width:100%; height:auto; display:block; }
.hero__actions{ display:flex; gap:10px; flex-wrap:wrap; justify-content:center; }
.hero__hint{
  margin:0;
  text-align:center;
  color: var(--muted);
  max-width: min(66ch, 92vw);
  font-size: .98rem;
}

/* TOPBAR */
.topbar{
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255,255,255,.66);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(23,32,51,.08);
}
.topbar__inner{
  max-width: var(--max);
  margin: 0 auto;
  padding: 10px 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
}
.brand{
  display:flex; align-items:center; gap:10px;
  color: var(--ink); text-decoration:none;
  font-weight: 900; letter-spacing:.2px;
}
.brand__dot{
  width: 12px; height:12px; border-radius:999px;
  background: linear-gradient(135deg, var(--red), var(--yellow));
  box-shadow: 0 0 0 6px rgba(255,45,45,.12);
}
.brand__text{ font-size: 1.05rem; }

/* DRAWER */
.drawer{ position: fixed; inset:0; z-index: 200; }
.drawer__backdrop{ position:absolute; inset:0; background: rgba(23,32,51,.35); }
.drawer__panel{
  position:absolute; right:0; top:0;
  width: min(420px, 92vw); height: 100%;
  background: rgba(255,255,255,.90);
  backdrop-filter: blur(16px);
  box-shadow: var(--shadow);
  display:flex; flex-direction:column;
}
.drawer__head{
  padding: 14px 14px 10px;
  display:flex; justify-content:space-between; align-items:flex-start; gap:10px;
  border-bottom: 1px solid rgba(23,32,51,.08);
}
.drawer__title{ font-weight: 950; font-size: 1.08rem; color: var(--ink); }
.drawer__subtitle{ color: var(--muted); font-size: .92rem; margin-top: 2px; }
.drawer__links{
  padding: 10px;
  display:flex; flex-direction:column; gap: 8px;
  overflow:auto;
}
.navlink{
  padding: 12px 12px;
  border-radius: 14px;
  text-decoration:none;
  color: var(--ink);
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(23,32,51,.08);
  box-shadow: 0 8px 18px rgba(18,31,52,.06);
}
.navlink:hover{ transform: translateY(-1px); transition: transform .12s ease; }
.drawer__foot{
  margin-top:auto;
  padding: 12px 14px;
  color: var(--muted);
  border-top: 1px solid rgba(23,32,51,.08);
}

/* CONTENT */
.content{
  max-width: var(--max);
  margin: 0 auto;
  padding: 16px 14px 44px;
}
.card{
  background: var(--card);
  border-radius: var(--radius);
  padding: 18px 16px;
  box-shadow: var(--shadow2);
  margin: 16px 0;
  border: 1px solid rgba(255,255,255,.70);
}
.card--flow{ position: relative; overflow: hidden; }
.card--flow::before{
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(900px 220px at 10% 0%, rgba(255,208,0,.18), transparent 60%),
    radial-gradient(700px 200px at 90% 20%, rgba(43,108,255,.14), transparent 60%);
  opacity: .95;
  pointer-events:none;
}
.card--flow > *{ position: relative; }

h2{ margin: 0 0 10px; font-size: 1.34rem; }
h3{ margin: 0 0 8px; font-size: 1.08rem; }
p{ margin: 10px 0; }
.muted{ color: var(--muted); }
.small{ font-size: .92rem; }

.grid-2{
  display:grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-top: 10px;
}
@media (min-width: 860px){
  .grid-2{ grid-template-columns: 1fr 1fr; }
}

.panel{
  background: var(--card2);
  border-radius: 16px;
  padding: 14px 12px;
  box-shadow: 0 10px 24px rgba(18,31,52,.08);
  border: 1px solid rgba(255,255,255,.65);
}

.list{ margin: 10px 0 0; padding-left: 18px; }
.list li{ margin: 8px 0; }

.notice{
  padding: 12px 12px;
  border-radius: 16px;
  background: rgba(255,45,45,.10);
  border: 1px solid rgba(255,45,45,.18);
}

/* Buttons */
.actions{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top: 10px; }
.btn{
  appearance:none;
  border: 1px solid rgba(23,32,51,.10);
  background: rgba(255,255,255,.80);
  color: var(--ink);
  padding: 11px 14px;
  border-radius: 999px;
  text-decoration:none;
  font-weight: 900;
  cursor:pointer;
  box-shadow: 0 10px 22px rgba(18,31,52,.10);
}
.btn:hover{ transform: translateY(-1px); transition: transform .12s ease; }
.btn--primary{
  background: linear-gradient(135deg, rgba(255,45,45,.95), rgba(255,208,0,.92));
  border-color: rgba(255,255,255,.70);
}
.btn--secondary{
  background: linear-gradient(135deg, rgba(43,108,255,.22), rgba(255,255,255,.82));
}
.btn--ghost{ background: rgba(255,255,255,.62); }

/* Icon buttons */
.iconbtn{
  width: 44px; height: 44px;
  border-radius: 14px;
  border: 1px solid rgba(23,32,51,.10);
  background: rgba(255,255,255,.78);
  cursor:pointer;
  display:grid; place-items:center;
  box-shadow: 0 10px 22px rgba(18,31,52,.10);
}
.iconbtn:hover{ transform: translateY(-1px); transition: transform .12s ease; }
.iconbtn__bars{
  width: 18px; height: 12px;
  border-top: 2px solid rgba(23,32,51,.84);
  border-bottom: 2px solid rgba(23,32,51,.84);
  position: relative;
}
.iconbtn__bars::after{
  content:"";
  position:absolute; left:0; right:0; top: 4px;
  border-top: 2px solid rgba(23,32,51,.84);
}
.iconbtn__x{ width: 18px; height: 18px; position: relative; }
.iconbtn__x::before, .iconbtn__x::after{
  content:"";
  position:absolute; inset: 8px 0 0 0;
  border-top: 2px solid rgba(23,32,51,.84);
}
.iconbtn__x::before{ transform: rotate(45deg); }
.iconbtn__x::after{ transform: rotate(-45deg); }

/* Logos */
.logos{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 10px;
}
@media (min-width: 860px){
  .logos{ grid-template-columns: repeat(4, 1fr); }
}
.logo{
  border-radius: 16px;
  padding: 18px 10px;
  text-align:center;
  color: var(--muted);
  background: rgba(255,255,255,.78);
  border: 1px dashed rgba(23,32,51,.18);
}

/* Footer */
.footer{ margin-top: 18px; padding: 14px 8px 0; color: var(--muted); }
.footer__inner{ display:flex; justify-content:space-between; align-items:center; gap: 10px; flex-wrap:wrap; }
.link{ color: rgba(23,32,51,.92); text-decoration:none; font-weight: 800; }
.link:hover{ text-decoration:underline; }

/* Print */
@media print{
  .topbar, .drawer, .hero, #btnPrint, #btnCopy, .skip, .bg-decor { display:none !important; }
  
  .card{ break-inside: avoid; box-shadow:none; border: 1px solid #ddd; }
}

/* Programme images */
.progGrid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:12px;}
@media (min-width:860px){.progGrid{grid-template-columns:1fr 1fr;}}
.imgCard{position:relative;border:0;padding:0;border-radius:18px;overflow:hidden;cursor:pointer;background:transparent;box-shadow:var(--shadow);}
.imgCard img{width:100%;height:auto;display:block;}
.imgCard__tag{position:absolute;left:12px;top:12px;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.88);border:1px solid rgba(23,32,51,.10);font-weight:900;}
.imgCard::after{content:"Agrandir";position:absolute;right:12px;bottom:12px;padding:7px 10px;border-radius:999px;background:rgba(23,32,51,.72);color:white;font-weight:850;font-size:.9rem;}

/* Lightbox */
.lightbox{position:fixed;inset:0;z-index:500;background:rgba(0,0,0,.72);display:none;align-items:center;justify-content:center;padding:14px;}
.lightbox.open{display:flex;}
.lightbox__img{max-width:min(980px,96vw);max-height:92vh;border-radius:18px;box-shadow:0 24px 60px rgba(0,0,0,.35);}
.lightbox__close{position:fixed;top:14px;right:14px;width:46px;height:46px;border-radius:14px;border:0;background:rgba(255,255,255,.92);cursor:pointer;font-size:20px;font-weight:900;}

/* Specials */
.tableWrap{overflow:auto;border-radius:16px;box-shadow:0 10px 24px rgba(18,31,52,.08);}
.sumTable{width:100%;border-collapse:collapse;min-width:760px;background:rgba(255,255,255,.80);}
.sumTable th,.sumTable td{padding:10px 10px;border-bottom:1px solid rgba(23,32,51,.08);text-align:left;font-size:.95rem;}
.sumTable thead th{position:sticky;top:0;background:rgba(255,255,255,.95);z-index:1;font-weight:950;}

.spCard{
  margin-top: 18px;
  border-radius: 20px;
  padding: 18px 16px;

  background: rgba(255,255,255,.92); /* plus opaque */
  border: 1px solid rgba(23,32,51,.12);

  box-shadow:
    0 22px 50px rgba(18,31,52,.18),  /* ombre principale */
    0 6px 18px rgba(0,0,0,.08);      /* ombre secondaire */

  backdrop-filter: blur(6px);
}
.spHead{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap;}
.spKicker{font-weight:950;color:rgba(23,32,51,.72);letter-spacing:.2px;font-size:.92rem;}
.spBadges{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 0;}
.badge{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.86);border:1px solid rgba(23,32,51,.10);font-weight:850;font-size:.92rem;}
.badge--green{background:rgba(0,194,168,.14);border-color:rgba(0,194,168,.18);}
.badge--hot{background:rgba(255,45,45,.12);border-color:rgba(255,45,45,.18);}

.spMeta{min-width:220px;background:rgba(255,255,255,.72);border:1px solid rgba(23,32,51,.08);border-radius:16px;padding:10px 10px;}
.metaRow{display:flex;justify-content:space-between;gap:8px;padding:4px 0;}
.metaKey{color:var(--muted);font-weight:800;}
.metaVal{font-weight:950;}

.mediaRow{display:grid;grid-template-columns:1fr;gap:12px;margin-top:12px;}
@media (min-width:860px){.mediaRow{grid-template-columns:1fr 1fr;}}
.mediaBlock{background:rgba(255,255,255,.72);border:1px solid rgba(23,32,51,.08);border-radius:16px;padding:12px;}
.mediaTitle{font-weight:950;margin-bottom:10px;}

.videoThumb{width:100%;border:0;padding:0;cursor:pointer;border-radius:16px;overflow:hidden;position:relative;background:#000;}
.videoThumb img{width:100%;height:auto;display:block;opacity:.94;}
.videoThumb .play{position:absolute;inset:0;display:grid;place-items:center;font-size:54px;color:white;text-shadow:0 10px 24px rgba(0,0,0,.35);}
.videoThumb .videoLabel{position:absolute;left:10px;bottom:10px;padding:8px 10px;border-radius:999px;background:rgba(0,0,0,.55);color:white;font-weight:900;font-size:.9rem;}
.videoFrame{width:100%;aspect-ratio:16/9;border:0;border-radius:16px;}

.fileCard{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:rgba(255,255,255,.78);border:1px solid rgba(23,32,51,.08);border-radius:16px;padding:12px;}
.fileIcon{font-size:22px;}
.fileBody{flex:1;min-width:200px;}
.fileName{font-weight:950;}
.fileSub{color:var(--muted);font-size:.92rem;margin-top:2px;}

/* Sponsor */
.spCard--sponsor{border:1px solid rgba(23,32,51,.10);background:linear-gradient(180deg, rgba(255,255,255,.82), rgba(255,255,255,.70));position:relative;overflow:hidden;}
.spCard--sponsor::before{content:"";position:absolute;inset:-80px -60px auto -60px;height:260px;background:radial-gradient(circle at 30% 40%, rgba(0,166,255,.25), transparent 60%),radial-gradient(circle at 70% 50%, rgba(0,166,255,.16), transparent 62%);opacity:.9;}
.spCard--mercedes{border:1px solid rgba(23,32,51,.10);background:linear-gradient(180deg, rgba(255,255,255,.82), rgba(255,255,255,.70));position:relative;overflow:hidden;}
.spCard--mercedes::before{content:"";position:absolute;inset:-80px -60px auto -60px;height:260px;background:radial-gradient(circle at 30% 40%, rgba(164, 170, 174,0.3), transparent 60%),radial-gradient(circle at 70% 50%, rgba(164, 170, 174,.16), transparent 62%);opacity:.9;}
.spCard--custines{border:1px solid rgba(23,32,51,.10);background:linear-gradient(180deg, rgba(255,255,255,.82), rgba(255,255,255,.70));position:relative;overflow:hidden;}
.spCard--custines::before{content:"";position:absolute;inset:-80px -60px auto -60px;height:260px;background:radial-gradient(circle at 30% 40%, rgba(245, 243, 152,0.3), transparent 60%),radial-gradient(circle at 70% 50%, rgba(245, 243, 152,.16), transparent 62%);opacity:.9;}
.spCard--gris{border:1px solid rgba(23,32,51,.10);background:linear-gradient(180deg, rgba(255,255,255,.82), rgba(255,255,255,.70));position:relative;overflow:hidden;}
.spCard--gris::before{content:"";position:absolute;inset:-80px -60px auto -60px;height:260px;background:radial-gradient(circle at 30% 40%, rgba(16, 170, 174,0.3), transparent 60%),radial-gradient(circle at 70% 50%, rgba(16, 170, 174,.16), transparent 62%);opacity:.9;}

.spSponsorBar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;position:relative;}
.sLogo{height:42px;width:auto;}
.sTag{padding:8px 12px;border-radius:999px;background:linear-gradient(135deg, rgba(0,166,255,.95), rgba(0,166,255,.55));color:white;font-weight:950;}

/* Pom-poms icon (silhouette) */
.ico{display:inline-block; width:18px; height:18px; vertical-align:-3px; margin-right:6px;}
.ico--pompom{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%23172033' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='33' cy='14' r='6' fill='%23172033'/%3E%3Cpath d='M27 21c-6 2-10 7-11 13'/%3E%3Cpath d='M39 21c5 3 8 7 9 13'/%3E%3Cpath d='M21 36l-7 5'/%3E%3Cpath d='M45 36l7 5'/%3E%3Cpath d='M28 26l-6 10'/%3E%3Cpath d='M38 26l6 10'/%3E%3Cpath d='M30 28c-3 4-4 9-4 14'/%3E%3Cpath d='M36 28c3 4 4 9 4 14'/%3E%3Cpath d='M26 42c2 4 6 7 11 7s9-3 11-7'/%3E%3Cpath d='M24 51l-4 10'/%3E%3Cpath d='M40 51l4 10'/%3E%3Cpath d='M29 49l-2 12'/%3E%3Cpath d='M35 49l2 12'/%3E%3C/g%3E%3Cg fill='%23ff2d2d'%3E%3Cpath d='M10 40c6-6 10-8 16-7-4 4-6 9-7 16-4-3-7-6-9-9z'/%3E%3Cpath d='M54 40c-6-6-10-8-16-7 4 4 6 9 7 16 4-3 7-6 9-9z'/%3E%3C/g%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
}

/* Tips */
.tips{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:10px;}
.tips li{display:flex;gap:10px;align-items:flex-start;padding:10px 10px;border-radius:14px;background:rgba(255,255,255,.70);border:1px solid rgba(23,32,51,.08);}
.tipIco{width:26px;height:26px;display:grid;place-items:center;border-radius:10px;background:rgba(43,108,255,.12);border:1px solid rgba(43,108,255,.16);flex:0 0 auto;}


/* Icones */
.ico{
  width: 18px;
  height: 18px;
  display:inline-block;
  vertical-align: -3px;
  background-repeat:no-repeat;
  background-size:contain;
}
.ico--pompom{
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2064%2064%27%3E%0A%3Cpath%20fill%3D%27black%27%20d%3D%27M22%2010c-4%200-7%203-7%207%200%202%201%204%202%205-5%202-8%206-8%2011%200%206%205%2011%2011%2011h7v6l-6%204c-1%201-2%202-1%204%201%202%203%202%204%201l6-4%206%204c2%201%204%201%205-1%201-2%200-3-2-4l-6-4v-6h8c6%200%2011-5%2011-11%200-5-3-9-8-11%201-1%202-3%202-5%200-4-3-7-7-7-3%200-5%201-7%203-1-2-4-3-7-3zm0%206c1%200%202%201%202%202s-1%202-2%202-2-1-2-2%201-2%202-2zm20%200c1%200%202%201%202%202s-1%202-2%202-2-1-2-2%201-2%202-2zM18%2028h28c2%200%204%202%204%204s-2%204-4%204H18c-2%200-4-2-4-4s2-4%204-4z%27/%3E%0A%3C/svg%3E");
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.18));
}

/* Mobile vertical optimisation */
@media (max-width: 520px){
  .content{ padding: 12px 12px 36px; }
  .card{ padding: 14px 12px; border-radius: 16px; }
  h2{ font-size: 1.22rem; }
  h3{ font-size: 1.02rem; }

  /* Programme images: full-bleed inside card */
  .progGrid{ gap: 10px; }
  .imgCard{ border-radius: 18px; }
  .imgCard img{ width:100%; }
  #programme-images .progGrid{ margin-left: -12px; margin-right: -12px; }
  #programme-images .imgCard{ border-radius: 0; }
  #programme-images .imgCard__tag{ left: 10px; top: 10px; }
  #programme-images .imgCard::after{ right: 10px; bottom: 10px; }

  /* Summary table: easier to scroll */
  .tableWrap{ border-radius: 14px; }
  .sumTable{ min-width: 680px; }
  .sumTable th, .sumTable td{ padding: 9px 9px; font-size: .92rem; }

  /* Specials layout */
  .spHead{ gap: 10px; }
  .spMeta{ width: 100%; min-width: 0; }
  .mediaRow{ grid-template-columns: 1fr; }
  .videoThumb .play{ font-size: 48px; }
  .videoThumb .videoLabel{ font-size: .88rem; }

  /* Sponsor bar stack */
  .spSponsorBar{ align-items: flex-start; }
  .sLogo{ height: 36px; }
  .sTag{ width: fit-content; }
}

/* Overflow safety */
img, svg, video, canvas{ max-width:100%; height:auto; }
.card, .panel, .spCard, .mediaBlock{ overflow:hidden; }
p, li, td, th{ overflow-wrap:anywhere; word-break:break-word; }
.tableWrap{ -webkit-overflow-scrolling: touch; }

/* Ultra-mobile: cards instead of table */
.sumCards{ display:none; margin-top: 12px; gap: 10px; }
.sumCard{
  display:block;
  text-decoration:none;
  color: inherit;
  border-radius: 18px;
  padding: 12px 12px;
  background: rgba(255,255,255,.80);
  border: 1px solid rgba(23,32,51,.08);
  box-shadow: 0 10px 24px rgba(18,31,52,.08);
}
.sumCard__top{
  display:flex;
  align-items:center;
  gap: 10px;
  flex-wrap:wrap;
  margin-bottom: 8px;
}
.sumCard__row{
  display:flex;
  justify-content:space-between;
  gap: 10px;
  padding: 6px 0;
  border-top: 1px dashed rgba(23,32,51,.12);
  font-weight: 750;
}
.sumCard__row span:first-child{ color: var(--muted); font-weight: 850; }
.pill{
  display:inline-flex;
  align-items:center;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(23,32,51,.08);
  font-weight: 950;
  font-size: .9rem;
}
.pill--soft{ background: rgba(43,108,255,.12); }
.pill--hot{ background: rgba(255,45,45,.12); }
.sumCard--sponsor{
  border-color: color-mix(in srgb, var(--s) 30%, rgba(23,32,51,.08));
  box-shadow: 0 18px 34px rgba(0,166,255,.14);
}

/* Switch to cards on narrow screens */
@media (max-width: 560px){
  .tableWrap{ display:none; }
  .sumCards{ display:grid; }
}

/* Programme inline */
.progStack{ display:flex; flex-direction:column; gap: 10px; }
.progTitle{ margin-top: 8px; }
.progImg{
  width: 100%;
  display:block;
  border-radius: 18px;
  box-shadow: var(--shadow2);
  border: 1px solid rgba(23,32,51,.08);
}
@media (max-width: 520px){
  .progImg{ border-radius: 14px; }
}

/* Mobile++ day filter */
.dayFilter{
  display:flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 12px 0 2px;
}
.dayBtn{
  appearance:none;
  border: 1px solid rgba(23,32,51,.12);
  background: rgba(255,255,255,.80);
  color: var(--ink);
  padding: 9px 12px;
  border-radius: 999px;
  font-weight: 950;
  cursor: pointer;
  box-shadow: 0 10px 22px rgba(18,31,52,.08);
}
.dayBtn--active{
  background: linear-gradient(135deg, rgba(255,45,45,.95), rgba(255,208,0,.92));
}
@media (max-width: 560px){
  .dayFilter{ position: sticky; top: 58px; z-index: 40; padding: 10px 0; backdrop-filter: blur(10px); }
}

/* Trace image zoom */
.imgZoom{
  width:100%;
  border: 0;
  padding: 0;
  cursor: pointer;
  border-radius: 16px;
  overflow:hidden;
  position: relative;
  background: rgba(255,255,255,.75);
  box-shadow: 0 10px 24px rgba(18,31,52,.10);
}
.imgZoom img{ width:100%; height:auto; display:block; }
.imgZoom__hint{
  position:absolute;
  right: 10px;
  bottom: 10px;
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(23,32,51,.72);
  color: #fff;
  font-weight: 950;
  font-size: .9rem;
}

/* Google My Maps embed */
.mapEmbed{
  width: 100%;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(23,32,51,.10);
  box-shadow: var(--shadow2);
  background: rgba(255,255,255,.72);
}
.mapEmbed iframe{
  width: 100%;
  height: min(62vh, 520px);
  border: 0;
  display:block;
}
@media (max-width: 560px){
  .mapEmbed iframe{ height: 58vh; }
}

/* Simple clickable TOC (no JS) */
.toc{
  display:grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin-top: 12px;
}
@media (min-width: 860px){
  .toc{ grid-template-columns: 1fr 1fr; }
}
.toc__item{
  display:block;
  text-decoration:none;
  color: var(--ink);
  padding: 12px 12px;
  border-radius: 16px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(23,32,51,.08);
  box-shadow: 0 10px 24px rgba(18,31,52,.08);
  font-weight: 950;
}
.toc__item:hover{ transform: translateY(-1px); transition: transform .12s ease; }


/* Anchor comfort */
section[id]{ scroll-margin-top: 14px; }

/* Palmarès compact */
.palTableWrap{ margin-top: 12px; }
.palTable{ min-width: 720px; }
.palTable td:first-child, .palTable th:first-child{ width: 92px; white-space: nowrap; }
.palTable td{ vertical-align: top; }
@media (max-width: 560px){
  .palTable{ min-width: 640px; }
}

.heroLogo{
  display:flex;
  justify-content:center;
  margin: 8px 0 12px;
}
.heroLogo img{
  max-width: 92%;
  height: auto;
}

/* Accordéons (sans JS, très compatible) */
.acc{
  border-radius: 18px;
  overflow: hidden;
}
.acc__sum{
  list-style: none;
  cursor: pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding: 14px 14px;
  user-select: none;
}
.acc__sum::-webkit-details-marker{ display:none; }
.acc__title{
  font-size: 1.14rem;
  font-weight: 1000;
}
.acc__chev{
  width: 12px;
  height: 12px;
  border-right: 3px solid rgba(23,32,51,.55);
  border-bottom: 3px solid rgba(23,32,51,.55);
  transform: rotate(45deg);
  transition: transform .18s ease;
  margin-left: auto;
}
details[open] .acc__chev{ transform: rotate(-135deg); }

.acc__

/* Tighten card padding because body provides padding now */
.card.card--flow{ padding: 10px 10px; }
@media (max-width: 520px){
  .acc__sum{ padding: 12px 12px; }
  .acc__
  .acc__title{ font-size: 1.08rem; }
}

/* Palmarès simple */
.palList{
  margin-top: 10px;
  padding-left: 18px;
}
.palList li{
  margin: 4px 0;
  line-height: 1.4;
}

@media print {
  /* Fond blanc + pas d'effets */
  body {
    background: #fff !important;
  }

  /* Cache les éléments inutiles au PDF */
  .btn,
  #sommaire,
  .toc {
    display: none !important;
  }

  /* Affiche le contenu des accordéons et évite les chevrons */
  details > summary {
    display: none !important;
  }

  /* Évite les coupures moches */
  section, article, figure, table {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  /* Images proprement */
  img {
    max-width: 100% !important;
    height: auto !important;
  }
}

.photoGallery{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

@media (min-width: 860px){
  .photoGallery{
    grid-template-columns: repeat(4, 1fr);
  }
}

.galleryThumb{
  border: 0;
  padding: 0;
  background: transparent;
  border-radius: 14px;
  overflow: hidden;
  cursor: pointer;
  box-shadow: 0 10px 24px rgba(18,31,52,.10);
}

.galleryThumb img{
  display: block;
  width: 100%;
  height: 120px;
  object-fit: cover;
}

@media (max-width: 560px){
  .galleryThumb img{
    height: 100px;
  }
  
    .piloteNom{
    font-size: .84rem;
    line-height: 1.25;
  }

  .piloteEquipe{
    font-size: .8rem;
    line-height: 1.2;
  }
  
   .pilotesTableWrap{
    display:block !important;
    overflow-x:auto;
    -webkit-overflow-scrolling: touch;
    border-radius:14px;
  }

  .pilotesTable{
    min-width:520px;
    font-size:.84rem;
    background:rgba(255,255,255,.88);
  }

  .pilotesTable th,
  .pilotesTable td{
    padding:8px 8px;
    font-size:.82rem;
    vertical-align:middle;
  }

  .pilotesTable th{
    font-size:.78rem;
    white-space:nowrap;
  }

  .pilotesTable td:first-child{
    width:52px;
    white-space:nowrap;
    font-weight:900;
  }

  .pilotesTable td:nth-child(2){
    min-width:140px;
    white-space:normal;
    line-height:1.25;
  }

  .pilotesTable td:nth-child(3){
    white-space:nowrap;
    width:72px;
  }

  .pilotesTable td:nth-child(4){
    min-width:140px;
    white-space:normal;
    line-height:1.2;
  }
}

.partnersGrid{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap:16px;
  margin-top:16px;
}

@media (min-width:600px){
  .partnersGrid{
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width:900px){
  .partnersGrid{
    grid-template-columns: repeat(4, 1fr);
  }
}

.partnerLogo{
  background:white;
  border-radius:16px;
  padding:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(23,32,51,.08);
  box-shadow:0 10px 24px rgba(18,31,52,.08);
}

.partnerLogo img{
  max-width:100%;
  max-height:70px;
  object-fit:contain;
}
.pilotesTableWrap{
  display:block;
  overflow-x:auto;
  -webkit-overflow-scrolling: touch;
}

.pilotesTable{
  width:100%;
}

.piloteNom{
  font-weight:800;
}

.piloteEquipe{
  color:var(--muted);
}

.flag{
  display:inline-block;
  width:22px;
  height:16px;
  object-fit:cover;
  border-radius:3px;
  vertical-align:middle;
  margin-right:8px;
  box-shadow:0 2px 6px rgba(0,0,0,.15);
}

@media (max-width: 560px){
  #speciales .tableWrap{
    display:none;
  }

  #speciales .sumCards{
    display:grid;
  }

 

.flag{
  display:inline-block;
  width: 22px;
  height: 16px;
  object-fit: cover;
  border-radius: 3px;
  vertical-align: middle;
  margin-right: 8px;
  box-shadow: 0 2px 6px rgba(0,0,0,.15);
}

.piloteNom{
  font-weight: 800;
}

.piloteEquipe{
  color: var(--muted);
}

/* ===== Tableau des pilotes : lisible sur tous les écrans ===== */
.pilotesTableWrap{
  display:block !important;
  overflow-x:auto;
  -webkit-overflow-scrolling: touch;
  border-radius:14px;
}

.pilotesTable{
  width:100%;
  min-width:640px;
  background:rgba(255,255,255,.92);
  table-layout:auto;
}

.pilotesTable th,
.pilotesTable td{
  padding:10px 10px;
  font-size:.92rem;
  vertical-align:middle;
}

.pilotesTable th{
  white-space:nowrap;
  font-size:.84rem;
}

.pilotesTable td:first-child{
  width:60px;
  white-space:nowrap;
  font-weight:900;
  text-align:center;
}

.pilotesTable td:nth-child(2){
  min-width:180px;
  white-space:normal;
  line-height:1.3;
}

.pilotesTable td:nth-child(3){
  width:90px;
  white-space:nowrap;
}

.pilotesTable td:nth-child(4){
  min-width:180px;
  white-space:normal;
  line-height:1.25;
}

.flag{
  width:20px;
  height:14px;
  margin-right:6px;
}

@media (max-width: 768px){
  .pilotesTable{
    min-width:560px;
  }

  .pilotesTable th,
  .pilotesTable td{
    padding:8px 8px;
    font-size:.84rem;
  }

  .pilotesTable th{
    font-size:.76rem;
  }

  .pilotesTable td:nth-child(2){
    min-width:150px;
  }

  .pilotesTable td:nth-child(4){
    min-width:150px;
  }

  .flag{
    width:18px;
    height:13px;
    margin-right:5px;
  }
}

@media (max-width: 480px){
  .pilotesTable{
    min-width:520px;
  }

  .pilotesTable th,
  .pilotesTable td{
    padding:7px 7px;
    font-size:.8rem;
  }

  .pilotesTable td:first-child{
    width:48px;
  }

  .pilotesTable td:nth-child(2){
    min-width:135px;
  }

  .pilotesTable td:nth-child(4){
    min-width:135px;
  }

  .piloteNom{
    font-size:.82rem;
    line-height:1.2;
  }

  .piloteEquipe{
    font-size:.78rem;
    line-height:1.15;
  }
}

/* Accordéon des spéciales */

.spAccordion summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-weight:800;
  font-size:1.05rem;
  padding:4px 0;
}

.spAccordion summary::-webkit-details-marker{
  display:none;
}

.spChevron::after{
  content:"▾";
  font-size:1rem;
  transition:transform .25s ease;
}

.spAccordion[open] .spChevron::after{
  transform:rotate(180deg);
}

.spContent{
  margin-top:12px;
}

.fabCloseAcc{
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 300;
  border: 0;
  border-radius: 999px;
  padding: 12px 16px;
  background: rgba(23,32,51,.92);
  color: #fff;
  font-weight: 900;
  font-size: .9rem;
  cursor: pointer;
  box-shadow: 0 14px 30px rgba(0,0,0,.22);
  backdrop-filter: blur(10px);
}

.fabCloseAcc:hover{
  transform: translateY(-1px);
}

@media (max-width: 560px){
  .fabCloseAcc{
    right: 12px;
    bottom: 12px;
    padding: 11px 14px;
    font-size: .82rem;
  }
}