/* Accueil : bloc « À l'affiche » (courses phares de la semaine et previews liées) */
.affiche{padding:64px 0 70px;background:linear-gradient(180deg,#10151c,#141c26);border-top:1px solid #5B91CE30;color:#fff;scroll-margin-top:12px}
.affiche[hidden]{display:none}
.affiche-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:end;gap:14px 36px;margin-bottom:30px}
.affiche-head h2{margin:10px 0 0;font:800 clamp(2.6rem,4.6vw,4.4rem)/.9 'Barlow Condensed',Impact,sans-serif;text-transform:uppercase;letter-spacing:-.01em}
.affiche-period{margin:0;color:#b5c0cc;font-size:1rem;line-height:1.5;max-width:520px}
.affiche-all{justify-self:end;color:var(--electric2,#5b91ce);font:700 1rem 'Barlow Condensed',sans-serif;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;white-space:nowrap;border-bottom:2px solid currentColor;padding-bottom:2px}
.affiche-all:hover{color:#a9d2ff}
.affiche-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.affiche-card{display:flex;flex-direction:column;gap:10px;padding:20px 20px 18px;border:1px solid #ffffff12;border-radius:9px;background:linear-gradient(145deg,#233040,#18212c);box-shadow:0 4px 0 #080d13,0 10px 18px #00000040,inset 0 1px 0 #ffffff12}
.affiche-card.has-preview{border-color:#f5c54255;box-shadow:0 4px 0 #080d13,0 10px 18px #00000040,inset 0 1px 0 #ffffff12,inset 3px 0 0 #f5c542}
.affiche-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 12px;font:700 .9rem 'Barlow Condensed',sans-serif;letter-spacing:.08em;text-transform:uppercase}
.affiche-when{color:#a9d2ff}
.affiche-level{color:#8fa0b2}
.affiche-card h3{margin:0;font:800 1.55rem/1.05 'Barlow Condensed',Impact,sans-serif;text-transform:uppercase;overflow-wrap:anywhere}
.affiche-meta{margin:0;color:#c4ced5;font-size:.92rem;line-height:1.45}
.affiche-cta{align-self:flex-start;margin-top:auto;display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:9px 16px;border:1px solid #5b91ce;border-radius:7px;background:transparent;color:#e2edfa;font:700 .95rem 'Barlow Condensed',sans-serif;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.affiche-cta::after{content:'→'}
.affiche-cta:hover,.affiche-cta:focus-visible{background:#295e99;border-color:#295e99;color:#fff}
.affiche-cta.is-preview{border-color:#f5c542;background:#f5c542;color:#10151c}
.affiche-cta.is-preview:hover,.affiche-cta.is-preview:focus-visible{background:#ffd86b;border-color:#ffd86b;color:#10151c}
.affiche-cta:focus-visible{outline:2px solid #a9d2ff;outline-offset:3px}
@media(max-width:1000px){.affiche-list{grid-template-columns:repeat(2,minmax(0,1fr))}.affiche-head{grid-template-columns:1fr auto}.affiche-period{grid-column:1/-1;grid-row:2}}
@media(max-width:640px){.affiche{padding:50px 0 54px}.affiche-list{grid-template-columns:1fr;gap:14px}.affiche-head{margin-bottom:22px}.affiche-card h3{font-size:1.4rem}}
@media(prefers-reduced-motion:reduce){.affiche-cta{transition:none}}

/* Calendrier : courses avec une preview */
.calendar-day>.calendar-day-preview,.slide-button--surface>.calendar-day-preview{position:absolute;z-index:2;top:8px;right:8px;padding:1px 6px;border-radius:999px;background:#f5c542;color:#10151c;font:800 .68rem/1.35 'Barlow Condensed',sans-serif;letter-spacing:.06em;text-transform:uppercase}
.calendar-day-name.has-preview{color:#ffe08a}
.calendar-day.is-selected .calendar-day-name.has-preview{color:#fff}
.calendar-preview-badge{justify-self:start;margin-top:4px;padding:1px 8px;border-radius:999px;background:#f5c542;color:#10151c;font:800 .75rem/1.5 'Barlow Condensed',sans-serif;letter-spacing:.08em;text-transform:uppercase}
.calendar-agenda-copy .calendar-preview-badge{display:inline-block;width:max-content}
.calendar-preview-link{display:flex;flex-direction:column;gap:2px;margin-top:14px;padding:11px 14px;border:1px solid #f5c54260;border-left:3px solid #f5c542;border-radius:7px;background:#f5c54212;color:#fff;text-decoration:none;transition:background-color .2s}
.calendar-preview-link:hover,.calendar-preview-link:focus-visible{background:#f5c54226}
.calendar-preview-link:focus-visible{outline:2px solid #f5c542;outline-offset:2px}
.calendar-preview-kicker{color:#f5c542;font:700 .85rem 'Barlow Condensed',sans-serif;letter-spacing:.1em;text-transform:uppercase}
.calendar-preview-kicker::after{content:' →'}
.calendar-preview-title{font-size:.95rem;line-height:1.35}
@media(max-width:700px){.calendar-day-preview{top:5px;right:4px;padding:0 4px;font-size:.58rem}}
@media(max-width:430px){.calendar-day-preview{width:8px;height:8px;padding:0;font-size:0;top:6px;right:6px}}
@media(prefers-reduced-motion:reduce){.calendar-preview-link{transition:none}}

/* Horaires TV (velotv.fr) */
.calendar-tv{margin-top:14px;padding:11px 14px;border:1px solid #ffffff18;border-left:3px solid #a9d2ff;border-radius:7px;background:#ffffff08}
.calendar-tv-title{display:block;margin-bottom:4px;color:#a9d2ff;font:700 .85rem 'Barlow Condensed',sans-serif;letter-spacing:.1em;text-transform:uppercase}
.calendar-tv-title::before{content:'📺 '}
.calendar-tv ul{margin:0;padding:0;list-style:none}
.calendar-tv li{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;padding:3px 0;color:#e0e7ee;font-size:.93rem;line-height:1.4}
.calendar-tv li b{min-width:56px;color:#fff;font:700 1rem 'Barlow Condensed',sans-serif;letter-spacing:.03em}
.calendar-tv-extra{color:#9fb0c1;font-size:.84rem}
.calendar-tv-credit{display:inline-block;margin-top:6px;color:#8fa0b2;font-size:.78rem;text-decoration:underline}
.calendar-tv-credit:hover{color:#cfe3f7}
.affiche-tv{margin:0;color:#dbe6f0;font-size:.92rem;line-height:1.4}
.affiche-tv::before{content:'📺 '}
.affiche-tv-day{margin-right:6px;color:#a9d2ff;font:700 .9rem 'Barlow Condensed',sans-serif;letter-spacing:.06em;text-transform:uppercase}
.affiche-tv-credit{margin-top:-6px;color:#8fa0b2;font-size:.75rem;text-decoration:underline}
.affiche-tv-credit:hover{color:#cfe3f7}
