html { scroll-behavior: smooth; scroll-padding-top: 5rem; }
.text-gradient { background: linear-gradient(90deg,#D72638,#B3121F); -webkit-background-clip: text; background-clip: text; color: transparent; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; padding:.85rem 1.75rem; border-radius:9999px; font-weight:600; transition:transform .2s, box-shadow .2s, background .2s; }
.btn:hover { transform: translateY(-2px); }
.btn-primary { background: linear-gradient(90deg,#D72638,#B3121F); color:#fff; box-shadow:0 8px 24px -8px rgba(215,38,56,.6); }
.btn-outline { border:1px solid rgba(255,255,255,.25); color:#fff; }
.btn-outline:hover { background: rgba(255,255,255,.08); }
.card { background:#161616; border:1px solid rgba(255,255,255,.06); border-radius:1rem; transition:transform .25s, border-color .25s; }
section.bg-coal .card { background:#0B0B0B; }
.card:hover { border-color: rgba(215,38,56,.45); }
article.card:hover { transform: translateY(-4px); }
.card-icon { display:inline-flex; align-items:center; justify-content:center; width:3rem; height:3rem; border-radius:.75rem; background:rgba(215,38,56,.12); color:#B3121F; }
.section-title::after { content:''; display:block; width:4rem; height:3px; margin-top:.75rem; background:linear-gradient(90deg,#D72638,#B3121F); }
.section-title.centered::after { margin-inline:auto; }
#navbar { transition: background .3s, backdrop-filter .3s; }
#navbar.scrolled { background: rgba(11,11,11,.9); backdrop-filter: blur(12px); border-bottom:1px solid rgba(255,255,255,.06); }
.nav-link { position:relative; }
.nav-link::after { content:''; position:absolute; left:0; bottom:-4px; width:0; height:2px; background:#D72638; transition:width .25s; }
.nav-link:hover::after { width:100%; }
#burger { display:flex; flex-direction:column; gap:5px; }
#burger span { display:block; width:24px; height:2px; background:#fff; transition:transform .3s, opacity .3s; }
#burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
#burger.open span:nth-child(2) { opacity:0; }
#burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
#mobile-menu { transform: translateY(-110%); transition: transform .35s ease; }
#mobile-menu.open { transform: translateY(0); }
.hero-glow { position:absolute; width:40rem; height:40rem; max-width:120vw; top:50%; left:50%; transform:translate(-50%,-55%); background: radial-gradient(circle, rgba(215,38,56,.25), transparent 65%); pointer-events:none; }
#particles { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.logo-blend { object-fit:contain; filter: drop-shadow(0 0 30px rgba(215,38,56,.35)); }
.ticker-badge { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); }
.ticker-badge .dot { animation: pulse 1.6s infinite; }
@keyframes pulse { 0%,100% { opacity:1; transform:scale(1); } 50% { opacity:.4; transform:scale(1.4); } }
.scroll-hint { animation: bounce 1.8s infinite; }
@keyframes bounce { 0%,100% { transform:translateY(0); } 50% { transform:translateY(6px); } }
.gallery-item { display:block; overflow:hidden; border-radius:.75rem; border:1px solid rgba(255,255,255,.06); }
.gallery-item img { transition: transform .4s; }
.gallery-item:hover img { transform: scale(1.06); }
#lightbox { position:fixed; inset:0; z-index:100; display:none; align-items:center; justify-content:center; padding:1.5rem; background:rgba(0,0,0,.92); }
#lightbox.open { display:flex; }
#lightbox img { max-width:100%; max-height:90vh; border-radius:.5rem; }
.timeline { position:relative; }
.timeline::before { content:''; position:absolute; left:.9rem; top:0; bottom:0; width:2px; background:linear-gradient(#D72638,#B3121F,transparent); }
.timeline-dot { position:absolute; left:-2.35rem; top:1.6rem; width:1rem; height:1rem; border-radius:50%; background:#D72638; box-shadow:0 0 0 5px rgba(215,38,56,.2); }
.faq-answer { display:grid; grid-template-rows:0fr; transition:grid-template-rows .3s ease; }
.faq-answer > div { overflow:hidden; }
.faq-item.open .faq-answer { grid-template-rows:1fr; }
.faq-item .chevron { transition: transform .3s; }
.faq-item.open .chevron { transform: rotate(180deg); }
.form-input { width:100%; padding:.75rem 1rem; border-radius:.75rem; background:#161616; border:1px solid rgba(255,255,255,.12); color:#fff; transition:border-color .2s, box-shadow .2s; }
.form-input:focus { outline:none; border-color:#D72638; box-shadow:0 0 0 3px rgba(215,38,56,.25); }
.form-input.invalid { border-color:#D72638; }
.fab { display:inline-flex; align-items:center; justify-content:center; width:2.75rem; height:2.75rem; border-radius:50%; background:#161616; border:1px solid rgba(255,255,255,.12); color:#fff; transition:transform .2s, background .2s; }
.fab:hover { transform:translateY(-2px); background:#222; }
#back-to-top { opacity:0; pointer-events:none; transition:opacity .3s; }
#back-to-top.show { opacity:1; pointer-events:auto; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation:none !important; transition:none !important; } html { scroll-behavior:auto; } }

/* ---------- Page « liens » ---------- */
.link-btn { display:flex; align-items:center; gap:1rem; width:100%; padding:.9rem 1.1rem; border-radius:1rem; background:#161616; border:1px solid rgba(255,255,255,.1); color:#fff; opacity:0; animation: linkIn .5s ease forwards; transition:transform .2s, border-color .2s, background .2s; }
.link-btn:hover { transform:translateY(-2px); border-color:rgba(215,38,56,.6); background:#1d1d1d; }
.link-btn.primary { background:linear-gradient(90deg,#D72638,#FF4D5E); border-color:transparent; box-shadow:0 8px 24px -8px rgba(215,38,56,.6); }
.link-icon { display:inline-flex; align-items:center; justify-content:center; width:2.5rem; height:2.5rem; border-radius:.65rem; background:rgba(255,255,255,.08); flex-shrink:0; }
@keyframes linkIn { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
noscript .link-btn { opacity:1; animation:none; }

/* Bandeau tournoi multi-lignes : pastille arrondie mais pas ovale */
.ticker-badge.rounded-full { border-radius:1.25rem; text-align:center; }
