/* ==========================================================================
   RACING WHITE WOLUWE — Design system
   ========================================================================== */

@font-face{
  font-family:"Bordonaro Spur";
  src:url("../fonts/Bordonaro-Spur_Regular.otf") format("opentype");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
/* Bordonaro n'existe qu'en Regular : on interdit au navigateur de fabriquer
   un faux gras ou un faux italique, qui déformeraient le dessin des lettres. */
h1,h2,h3,h4,.nav-primary a,
.team-card-media .num,
.stat b,.partner-strip div,.player-media span,.player-body b,.timeline-item b,
.value .n,.staff-media span,.staff-body b,.pack .price,.match-crest.is-placeholder,
.match-comp b,.match-info,.faq-q{
  font-synthesis:none;
  font-synthesis-weight:none;
  font-synthesis-style:none;
}
@font-face{
  font-family:"DM Sans";
  src:url("../fonts/DMSans-VariableFont_opsz_wght.ttf") format("truetype-variations");
  font-weight:100 1000;
  font-style:normal;
  font-display:swap;
}

:root{
  /* --- brand --- */
  --black:      #1d1d1b;
  --black-2:    #131311;
  --black-soft: #262623;
  --red:        #e52e2c;
  --red-dark:   #b81f1d;
  --sand:       #d5c9ad;
  --sand-dim:   #a8987a;
  --sand-pale:  #efe9db;
  --white:      #f7f5f0;
  --line:       rgba(247,245,240,.14);
  --line-dark:  rgba(29,29,27,.12);

  /* --- type --- */
  --display: "Bordonaro Spur", "Arial Narrow", sans-serif;
  --body: "DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;

  --container: 1240px;
  --radius: 2px;
  --ease: cubic-bezier(.16,.84,.44,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--white);
  color:var(--black);
  font-family:var(--body);
  font-weight:400;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  font-optical-sizing:auto;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
h1,h2,h3,h4{margin:0;font-family:var(--display);font-weight:400;text-transform:uppercase;}
p{margin:0;}
button{font-family:var(--body);cursor:pointer;}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.001ms !important;transition-duration:.001ms !important;}
}

:focus-visible{
  outline:2px solid var(--red);
  outline-offset:3px;
}

.container{
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:24px;
}

.eyebrow{
  display:flex;
  align-items:center;
  gap:10px;
  font-family:var(--body);
  font-weight:700;
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--red);
}
.eyebrow::before{
  content:"";
  width:9px;height:9px;border-radius:50%;
  background:var(--red);
  box-shadow:0 0 0 3px rgba(229,46,44,.18);
  flex:none;
}
.eyebrow.on-dark{color:var(--sand);}
.eyebrow.on-dark::before{background:var(--red);box-shadow:0 0 0 3px rgba(229,46,44,.3);}

.section-title{
  font-size:clamp(2rem,4.4vw,3.4rem);
  line-height:.98;
  margin-top:10px;
}
.section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:44px;
  flex-wrap:wrap;
}
.section-head p{
  max-width:38ch;
  color:var(--black-soft);
  font-size:.98rem;
}
.section-head.on-dark p{color:rgba(247,245,240,.72);}

section{padding:96px 0;}
@media (max-width:720px){section{padding:64px 0;}}

.section-dark{background:var(--black);color:var(--white);}
.section-sand{background:var(--sand-pale);}

/* --- buttons --- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:15px 26px;
  font-family:var(--body);
  font-weight:700;
  font-size:.82rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  border:1px solid transparent;
  border-radius:var(--radius);
  transition:transform .25s var(--ease),background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease);
  white-space:nowrap;
}
.btn:hover{transform:translateY(-2px);}
.btn-red{background:var(--red);color:var(--white);}
.btn-red:hover{background:var(--red-dark);}
.btn-outline{border-color:rgba(247,245,240,.4);color:var(--white);}
.btn-outline:hover{background:var(--white);color:var(--black);border-color:var(--white);}
.btn-outline-dark{border-color:var(--black);color:var(--black);}
.btn-outline-dark:hover{background:var(--black);color:var(--white);}
.btn-sand{background:var(--sand);color:var(--black);}
.btn-sand:hover{background:var(--white);}

.btn-arrow{transition:transform .25s var(--ease);}
.btn:hover .btn-arrow{transform:translateX(4px);}

/* ==========================================================================
   HEADER / NAV
   ========================================================================== */
.site-header{
  position:fixed;
  inset:0 0 auto 0;
  z-index:200;
  padding:18px 0;
  transition:background .35s var(--ease),padding .35s var(--ease),box-shadow .35s var(--ease);
}
.site-header .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.site-header.is-scrolled,
.site-header.is-solid{
  background:var(--black);
  padding:10px 0;
  box-shadow:0 8px 30px rgba(0,0,0,.25);
}

.brand{display:flex;align-items:center;}
.brand img{
  height:76px;width:auto;
  transition:height .3s var(--ease);
}
.is-scrolled .brand img,.is-solid .brand img{height:54px;}
@media (max-width:720px){
  .brand img{height:58px;}
  .is-scrolled .brand img,.is-solid .brand img{height:46px;}
}

.nav-primary{display:flex;align-items:center;gap:2px;}
.nav-primary a{
  position:relative;
  padding:10px 16px;
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:rgba(247,245,240,.82);
  transition:color .25s var(--ease);
}
.nav-primary a::after{
  content:"";
  position:absolute;
  left:16px;right:16px;bottom:5px;
  height:2px;
  background:var(--red);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .3s var(--ease);
}
.nav-primary a:hover,.nav-primary a.is-active{color:var(--white);}
.nav-primary a:hover::after,.nav-primary a.is-active::after{transform:scaleX(1);}

.nav-cta{display:flex;align-items:center;gap:10px;}
.nav-toggle{
  display:none;
  flex-direction:column;
  gap:5px;
  background:none;border:none;padding:8px;
}
.nav-toggle span{width:24px;height:2px;background:var(--white);display:block;}

/* Bouton de fermeture, visible uniquement quand le menu mobile est ouvert */
.nav-close{
  display:none;
  position:absolute;top:18px;right:18px;
  width:46px;height:46px;
  align-items:center;justify-content:center;
  background:none;border:1px solid rgba(247,245,240,.3);border-radius:50%;
  color:var(--white);font-size:1.5rem;line-height:1;padding:0;
  transition:background .25s var(--ease),border-color .25s var(--ease);
}
.nav-close:hover{background:var(--red);border-color:var(--red);}

@media (max-width:980px){
  .nav-primary.is-open .nav-close{display:flex;}
  .nav-primary{
    position:fixed;inset:0;
    background:var(--black);
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    padding:32px;
    gap:6px;
    transform:translateX(100%);
    transition:transform .4s var(--ease);
  }
  .nav-primary.is-open{transform:translateX(0);}
  .nav-primary a{font-size:1.6rem;font-family:var(--display);font-weight:400;letter-spacing:normal;text-transform:uppercase;padding:12px 0;}
  .nav-toggle{display:flex;}
  .nav-cta .btn-outline{display:none;}
}

/* ==========================================================================
   HERO
   ========================================================================== */
.hero{
  position:relative;
  min-height:100svh;
  display:flex;
  align-items:flex-end;
  background:
    linear-gradient(180deg, rgba(19,19,17,.35) 0%, rgba(19,19,17,.55) 45%, var(--black) 96%),
    radial-gradient(120% 90% at 15% 0%, rgba(229,46,44,.28), transparent 55%),
    var(--black-2);
  color:var(--white);
  overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute; inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cg fill='%23f7f5f0' fill-opacity='0.035'%3E%3Cpath d='M0 0h1v120H0zM40 0h1v120h-1zM80 0h1v120h-1z'/%3E%3C/g%3E%3C/svg%3E");
  opacity:.5;
}
.hero-inner{position:relative;z-index:2;width:100%;padding-bottom:120px;}
.hero-kicker{
  display:flex;align-items:center;gap:10px;
  font-weight:700;font-size:.76rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--sand);margin-bottom:22px;
}
.hero-kicker::before{content:"";width:34px;height:1px;background:var(--red);}
.hero h1{
  font-size:clamp(3rem,9vw,7.6rem);
  line-height:.92;
  max-width:16ch;
}
.hero h1 em{color:var(--red);font-style:normal;}
.hero-sub{
  max-width:46ch;
  margin-top:24px;
  font-size:1.05rem;
  color:rgba(247,245,240,.78);
}
.hero-actions{display:flex;gap:14px;margin-top:38px;flex-wrap:wrap;}
/* ==========================================================================
   CARDS / GRIDS
   ========================================================================== */
.grid{display:grid;gap:26px;}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-2{grid-template-columns:repeat(2,1fr);}
@media (max-width:900px){.grid-3{grid-template-columns:1fr;}.grid-2{grid-template-columns:1fr;}}

/* team preview cards */
.team-card{
  background:var(--white);
  border:1px solid var(--line-dark);
  border-radius:var(--radius);
  overflow:hidden;
  transition:box-shadow .3s var(--ease),transform .3s var(--ease);
}
.team-card:hover{box-shadow:0 20px 40px rgba(29,29,27,.12);transform:translateY(-4px);}
.team-card-media{
  height:260px;
  background:linear-gradient(160deg,var(--black),var(--black-2));
  position:relative;
  display:flex;align-items:flex-end;
  overflow:hidden;
}
.team-card-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55;}
.team-card-media .num{
  position:relative;z-index:2;
  font-family:var(--display);font-weight:400;
  color:var(--red);
  font-size:5.4rem;
  line-height:1;
  padding:16px 20px;
  opacity:.9;
}
.team-card-body{padding:26px;}
.team-card-body h3{font-size:1.75rem;}
.team-card-body p{margin-top:10px;font-size:.88rem;color:var(--black-soft);}
.team-card-cats{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px;}
.chip{
  font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  padding:5px 10px;border:1px solid var(--line-dark);border-radius:20px;color:var(--black-soft);
}
.team-card-link{
  margin-top:20px;display:inline-flex;align-items:center;gap:8px;
  font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--red);
}

/* stats trio */
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:40px;}
@media (max-width:700px){.stat-row{grid-template-columns:1fr;}}
.stat{padding-top:18px;border-top:2px solid var(--red);}
.stat b{display:block;font-family:var(--display);font-weight:400;font-size:2.6rem;color:var(--black);}
.stat.on-dark b{color:var(--white);}
.stat span{font-size:.82rem;color:var(--black-soft);}
.stat.on-dark span{color:rgba(247,245,240,.68);}

/* split section */
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
@media (max-width:900px){.split{grid-template-columns:1fr;gap:36px;}}
.split-media{position:relative;}
.split-media img{border-radius:var(--radius);}
.split-media .frame{
  position:absolute;inset:20px -20px -20px 20px;
  border:2px solid var(--sand);
  z-index:-1;
}

/* diagonal band */
.band-cta{
  position:relative;
  overflow:hidden;
  color:var(--white);
  padding:96px 32px;
  text-align:center;
  border-radius:var(--radius);
}
.band-cta .band-bg{
  position:absolute;inset:0;z-index:0;
  background-size:cover;background-position:center;
}
/* Voile noir → rouge : garantit la lisibilité même sans photo de fond */
.band-cta::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(135deg, rgba(19,19,17,.94) 0%, rgba(19,19,17,.82) 42%, rgba(229,46,44,.86) 100%),
    radial-gradient(80% 120% at 50% 0%, rgba(229,46,44,.5), transparent 62%);
}
.band-cta .band-inner{
  position:relative;z-index:2;
  max-width:660px;margin-inline:auto;
  display:flex;flex-direction:column;align-items:center;gap:20px;
}
.band-cta h2{font-size:clamp(2rem,4.6vw,3.2rem);line-height:1;}
.band-cta p{color:rgba(247,245,240,.88);max-width:46ch;}
@media (max-width:720px){.band-cta{padding:64px 22px;}}

/* --- Classement condensé --- */
.home-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:26px;align-items:start;}
@media (max-width:980px){.home-grid{grid-template-columns:1fr;}}

.standings{
  background:var(--black);color:var(--white);
  border-radius:var(--radius);padding:30px 28px;
}
.standings h3{font-size:1.6rem;}
.standings .comp{
  font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--sand);margin-bottom:8px;display:block;
}
.standings table{width:100%;border-collapse:collapse;margin-top:20px;}
.standings th{
  font-size:.64rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(247,245,240,.55);text-align:right;padding:0 0 10px;
}
.standings th:nth-child(1),.standings th:nth-child(2){text-align:left;}
.standings td{
  padding:11px 0;font-size:.92rem;text-align:right;
  border-top:1px solid rgba(247,245,240,.12);
}
.standings td:nth-child(1){text-align:left;width:30px;color:rgba(247,245,240,.55);font-size:.85rem;}
.standings td:nth-child(2){text-align:left;}
.standings tr.is-club td{color:var(--white);}
.standings tr.is-club td:nth-child(1){color:var(--red);}
.standings tr.is-club td:nth-child(2){font-weight:700;}
.standings .more{
  display:inline-flex;align-items:center;gap:8px;margin-top:22px;
  font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--sand);
  transition:color .25s var(--ease);
}
.standings .more:hover{color:var(--white);}

/* --- Cartes prochaines rencontres --- */
.fixtures-head{
  display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap;
}
.fixtures-head h3{font-size:1.6rem;}
.fixtures-head a{
  font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--red);
}
.fixtures{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
@media (max-width:620px){.fixtures{grid-template-columns:1fr;}}
.fixture{
  background:var(--sand-pale);
  border:1px solid var(--line-dark);
  border-radius:var(--radius);
  padding:24px 20px;
  display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px;
  transition:box-shadow .3s var(--ease),transform .3s var(--ease);
}
.fixture:hover{box-shadow:0 16px 34px rgba(29,29,27,.1);transform:translateY(-3px);}
.fixture .when{font-size:.9rem;font-weight:700;}
.fixture .comp{font-size:.78rem;color:var(--black-soft);}
.fixture .versus{display:flex;align-items:center;justify-content:center;gap:18px;width:100%;}
.fixture .side{display:flex;flex-direction:column;align-items:center;gap:8px;flex:1;min-width:0;}
.fixture .side img{height:52px;width:auto;object-fit:contain;}
.fixture .side .ph{
  height:52px;width:52px;border-radius:50%;
  border:1px solid var(--line-dark);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--display);font-weight:400;font-size:.8rem;color:var(--sand-dim);
}
.fixture .side span{font-size:.8rem;font-weight:700;line-height:1.2;}
.fixture .btn{width:100%;justify-content:center;}
.fixture .sep{
  font-family:var(--display);font-weight:400;color:var(--sand-dim);font-size:1rem;flex:none;
}

/* partner strip */
.partner-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line-dark);border:1px solid var(--line-dark);}
.partner-strip div{
  background:var(--white);
  min-height:132px;
  display:flex;align-items:center;justify-content:center;
  padding:22px;
  transition:background .3s var(--ease);
}
.partner-strip img{
  max-width:100%;max-height:74px;
  width:auto;height:auto;object-fit:contain;
  transition:transform .3s var(--ease);
}
.partner-strip div:hover img{transform:scale(1.05);}
@media (max-width:900px){.partner-strip{grid-template-columns:repeat(2,1fr);}}
@media (max-width:480px){.partner-strip{grid-template-columns:1fr;}}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.site-footer{
  background:var(--black-2);
  color:rgba(247,245,240,.7);
  padding:80px 0 30px;
  position:relative;
  overflow:hidden;
}
.site-footer .crest-watermark{
  position:absolute;
  right:-8%;bottom:-18%;
  width:44vw;max-width:560px;
  opacity:.05;
  pointer-events:none;
}
.footer-top{
  display:grid;
  grid-template-columns:1.4fr repeat(3,1fr);
  gap:40px;
  padding-bottom:56px;
  border-bottom:1px solid var(--line);
  position:relative;z-index:2;
}
@media (max-width:900px){.footer-top{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.footer-top{grid-template-columns:1fr;}}
.footer-brand img{height:52px;margin-bottom:18px;}
.footer-brand p{max-width:32ch;font-size:.88rem;}
.footer-col h4{
  font-family:var(--body);font-weight:700;font-size:.72rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--sand);margin-bottom:18px;
}
.footer-col li{margin-bottom:10px;}
.footer-col a{font-size:.88rem;transition:color .2s;}
.footer-col a:hover{color:var(--white);}
.footer-social{display:flex;gap:10px;margin-top:20px;}
.footer-social a{
  width:36px;height:36px;border:1px solid var(--line);border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700;
  transition:background .2s,border-color .2s;
}
.footer-social a:hover{background:var(--red);border-color:var(--red);color:var(--white);}
.footer-bottom{
  display:flex;justify-content:space-between;align-items:center;
  padding-top:26px;font-size:.76rem;flex-wrap:wrap;gap:10px;
  position:relative;z-index:2;
}

/* ==========================================================================
   PAGE HEADER (sous-pages)
   ========================================================================== */
.page-header{
  position:relative;
  background:
    linear-gradient(180deg, rgba(19,19,17,.55), var(--black) 90%),
    var(--black-2);
  color:var(--white);
  padding:190px 0 90px;
  overflow:hidden;
}
.page-header::before{
  content:"";position:absolute;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cg fill='%23f7f5f0' fill-opacity='0.035'%3E%3Cpath d='M0 0h1v120H0zM40 0h1v120h-1zM80 0h1v120h-1z'/%3E%3C/g%3E%3C/svg%3E");
}
.page-header .container{position:relative;z-index:2;}
.breadcrumb{font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:var(--sand);margin-bottom:18px;}
.page-header h1{font-size:clamp(2.6rem,6.4vw,5rem);line-height:.96;max-width:20ch;}
.page-header p{margin-top:18px;max-width:52ch;color:rgba(247,245,240,.75);font-size:1.02rem;}

/* ==========================================================================
   TABS (page équipes)
   ========================================================================== */
.tabs{display:flex;gap:10px;flex-wrap:wrap;margin-top:34px;}
.tab-btn{
  padding:12px 22px;
  border:1px solid var(--line);
  border-radius:30px;
  background:transparent;
  color:var(--white);
  font-weight:700;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;
  transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease);
}
.tab-btn.is-active,.tab-btn:hover{background:var(--red);border-color:var(--red);color:var(--white);}

.cat-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:36px;}
.cat-btn{
  padding:9px 16px;border:1px solid var(--line-dark);border-radius:30px;background:var(--white);
  font-weight:700;font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;color:var(--black-soft);
  transition:.25s var(--ease);
}
.cat-btn.is-active,.cat-btn:hover{background:var(--black);color:var(--white);border-color:var(--black);}

.tab-panel{display:none;}
.tab-panel.is-active{display:block;}

.player-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
@media (max-width:980px){.player-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.player-grid{grid-template-columns:1fr 1fr;gap:14px;}}
.player{
  background:var(--white);border:1px solid var(--line-dark);border-radius:var(--radius);overflow:hidden;
}
.player-media{
  height:190px;background:linear-gradient(150deg,var(--black),var(--black-2));
  display:flex;align-items:center;justify-content:center;position:relative;
}
.player-media span{font-family:var(--display);font-weight:400;font-size:3.2rem;color:rgba(213,201,173,.4);}
.player-body{padding:16px 18px;}
.player-body b{display:block;font-family:var(--display);font-weight:400;font-size:1.45rem;line-height:1.1;}
.player-body small{font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:var(--red);font-weight:700;}

.cat-group{margin-bottom:64px;}

/* --- Classement complet --- */
.league-table{width:100%;border-collapse:collapse;}
.league-table th{
  font-size:.64rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--sand-dim);text-align:right;padding:0 8px 12px;white-space:nowrap;
}
.league-table th:nth-child(1),.league-table th:nth-child(2){text-align:left;}
.league-table td{
  padding:14px 8px;font-size:.92rem;text-align:right;
  border-top:1px solid var(--line-dark);white-space:nowrap;
}
.league-table td:nth-child(1){text-align:left;width:36px;color:var(--sand-dim);}
.league-table td:nth-child(2){text-align:left;width:auto;}
.league-table td:last-child{font-weight:700;}
.league-table tr.is-club td{background:var(--sand-pale);}
.league-table tr.is-club td:nth-child(1){color:var(--red);font-weight:700;}
.league-table tr.is-club td:nth-child(2){font-weight:700;}
@media (max-width:720px){
  .league-table{display:block;overflow-x:auto;}
  .league-table td,.league-table th{padding:12px 6px;font-size:.85rem;}
}
.cat-group h3{font-size:2rem;margin-bottom:8px;}
.cat-group .cat-meta{font-size:.85rem;color:var(--black-soft);margin-bottom:24px;}

/* ==========================================================================
   CLUB PAGE
   ========================================================================== */
.timeline{border-left:2px solid var(--line-dark);margin-top:20px;}
.timeline-item{position:relative;padding:0 0 40px 30px;}
.timeline-item::before{
  content:"";position:absolute;left:-7px;top:2px;width:12px;height:12px;border-radius:50%;
  background:var(--red);border:3px solid var(--white);box-shadow:0 0 0 1px var(--line-dark);
}
.timeline-item b{font-family:var(--display);font-weight:400;color:var(--red);font-size:1.5rem;line-height:1.1;display:block;margin-bottom:10px;}
.timeline-item p{font-size:.92rem;color:var(--black-soft);}

/* Frise placée sur un fond sombre : le texte et le trait doivent s'inverser,
   sinon on obtient du gris foncé sur du noir (illisible). */
.section-dark .timeline{border-left-color:rgba(247,245,240,.18);}
.section-dark .timeline-item p{color:var(--white);}
.section-dark .timeline-item::before{
  border-color:var(--black);
  box-shadow:0 0 0 1px rgba(247,245,240,.28);
}

.value-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:20px;}
@media (max-width:900px){.value-grid{grid-template-columns:repeat(2,1fr);}}
.value{padding:28px 22px;background:var(--white);border:1px solid var(--line-dark);}
.value .n{font-family:var(--display);font-weight:400;font-size:1.6rem;color:var(--sand-dim);}
.value h4{font-size:1.5rem;line-height:1.1;margin-top:14px;text-transform:none;}
.value p{margin-top:8px;font-size:.86rem;color:var(--black-soft);}

.staff-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:30px;}
@media (max-width:900px){.staff-grid{grid-template-columns:repeat(2,1fr);}}
.staff{text-align:left;}
.staff-media{height:220px;background:linear-gradient(150deg,var(--black),var(--black-2));position:relative;overflow:hidden;}
.staff-media span{position:absolute;bottom:12px;left:14px;font-family:var(--display);font-weight:400;color:var(--sand);font-size:.85rem;}
.staff-body{padding:14px 2px;}
.staff-body b{display:block;font-family:var(--display);font-weight:400;font-size:1.45rem;line-height:1.1;}
.staff-body small{font-size:.76rem;color:var(--red);font-weight:700;text-transform:uppercase;}

/* ==========================================================================
   PARTENAIRES PAGE
   ========================================================================== */
.tier{margin-bottom:70px;}
.tier-head{display:flex;align-items:baseline;gap:16px;margin-bottom:26px;border-bottom:2px solid var(--black);padding-bottom:14px;}
.tier-head h3{font-size:2rem;}
.tier-head span{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--sand-dim);font-weight:700;}
.tier-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
@media (max-width:900px){.tier-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.tier-grid{grid-template-columns:1fr;}}

/* Tuile logo partenaire */
.tier-logo{
  aspect-ratio:2/1;
  background:var(--white);
  border:1px solid var(--line-dark);
  border-radius:var(--radius);
  display:flex;align-items:center;justify-content:center;
  padding:26px;
  transition:box-shadow .3s var(--ease),transform .3s var(--ease);
}
.tier-logo img{
  max-width:100%;max-height:100%;
  width:auto;height:auto;
  object-fit:contain;
  transition:transform .3s var(--ease);
}
.tier-logo:hover{box-shadow:0 14px 30px rgba(29,29,27,.1);transform:translateY(-3px);}
.tier-logo:hover img{transform:scale(1.04);}

/* --- Formulaire de contact --- */
.form-card{
  background:var(--white);
  border:1px solid var(--line-dark);
  border-radius:var(--radius);
  padding:40px;
}
@media (max-width:600px){.form-card{padding:26px 22px;}}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
@media (max-width:700px){.form-grid{grid-template-columns:1fr;}}
.field{display:flex;flex-direction:column;gap:8px;}
.field.is-full{grid-column:1 / -1;}
.field label{
  font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--sand-dim);
}
.field input,
.field textarea,
.field select{
  font-family:var(--body);font-size:.96rem;color:var(--black);
  background:var(--sand-pale);
  border:1px solid transparent;
  border-radius:var(--radius);
  padding:14px 16px;
  transition:border-color .25s var(--ease),background .25s var(--ease);
  width:100%;
}
.field textarea{min-height:150px;resize:vertical;}
.field input:focus,
.field textarea:focus,
.field select:focus{
  outline:none;background:var(--white);border-color:var(--red);
}
.field .hint{font-size:.78rem;color:var(--black-soft);}
/* Piège à robots : invisible pour les humains */
.field-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

.form-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:26px;}
.form-actions .legal{font-size:.78rem;color:var(--black-soft);max-width:42ch;}

.form-note{
  padding:16px 20px;border-radius:var(--radius);
  font-size:.9rem;margin-bottom:26px;
  border-left:3px solid var(--red);
  background:var(--sand-pale);
}
.form-note.is-ok{border-left-color:#2e7d32;}

.pack-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:20px;}
@media (max-width:900px){.pack-grid{grid-template-columns:1fr;}}
.pack{
  background:var(--black);color:var(--white);padding:34px 28px;border-radius:var(--radius);
  display:flex;flex-direction:column;
}
.pack.is-featured{background:var(--red);}
.pack h3{font-size:1.5rem;}
.pack .price{font-family:var(--display);font-weight:400;font-size:2.4rem;color:var(--sand);margin-top:10px;}
.pack.is-featured .price{color:var(--white);}
.pack ul{margin-top:20px;flex:1;}
.pack li{font-size:.86rem;padding:9px 0;border-top:1px solid rgba(247,245,240,.15);}
.pack li:first-child{border-top:none;}
.pack .btn{margin-top:26px;justify-content:center;width:100%;}

/* ==========================================================================
   BILLETTERIE PAGE
   ========================================================================== */
/* --- Bandeaux "prochains rendez-vous" --- */
.match-list{display:grid;gap:14px;}

.match-row{
  position:relative;
  display:grid;
  grid-template-columns:auto 1fr auto auto;
  align-items:center;
  gap:30px;
  min-height:158px;
  padding:26px 34px;
  border-radius:var(--radius);
  background:var(--black-2);
  color:var(--white);
  overflow:hidden;
  isolation:isolate;
}
/* photo de fond optionnelle */
.match-row .match-bg{
  position:absolute;inset:0;z-index:-2;
  background-size:cover;background-position:center;
  opacity:.4;
}
/* dégradé rouge → noir, façon bandeau de club */
.match-row::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,
    var(--red) 0%,
    rgba(229,46,44,.55) 16%,
    rgba(19,19,17,.94) 46%,
    rgba(19,19,17,.9) 70%,
    rgba(229,46,44,.42) 100%);
}

.match-crests{display:flex;align-items:center;gap:16px;}
.match-crest{
  width:74px;height:74px;
  display:flex;align-items:center;justify-content:center;
  flex:none;
}
.match-crest img{max-height:74px;max-width:74px;width:auto;object-fit:contain;}
.match-crest.is-placeholder{
  border:1px solid rgba(247,245,240,.35);
  border-radius:50%;
  font-family:var(--display);font-weight:400;font-size:.92rem;color:var(--sand);
  text-align:center;line-height:1.1;padding:6px;
}

.match-comp{text-align:center;}
.match-comp img{max-height:56px;width:auto;margin:0 auto;}
.match-comp b{
  display:block;font-family:var(--display);font-weight:400;
  font-size:clamp(1.4rem,2.4vw,2rem);line-height:1;
}
.match-comp span{
  display:block;margin-top:8px;
  font-size:.7rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--sand);
}

.match-when{text-align:right;}
.match-when b{display:block;font-size:1.02rem;font-weight:700;letter-spacing:.01em;}
.match-when span{display:block;margin-top:4px;font-size:.88rem;color:rgba(247,245,240,.72);}

.match-actions{display:flex;align-items:center;gap:12px;}
.match-info{
  width:46px;height:46px;flex:none;
  border:1px solid rgba(247,245,240,.4);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--display);font-weight:400;font-size:1rem;color:var(--white);
  transition:background .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease);
}
.match-info:hover{background:var(--white);color:var(--black);border-color:var(--white);}
.match-buy{
  background:var(--white);color:var(--black);
  padding:15px 24px;border-radius:var(--radius);
  font-weight:700;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;
  white-space:nowrap;
  transition:background .25s var(--ease),transform .25s var(--ease);
}
.match-buy:hover{background:var(--sand);transform:translateY(-2px);}
.match-buy.is-soon{
  background:transparent;color:rgba(247,245,240,.75);
  border:1px solid rgba(247,245,240,.4);cursor:default;
}
.match-buy.is-soon:hover{background:transparent;transform:none;}

@media (max-width:1080px){
  .match-row{grid-template-columns:auto 1fr auto;gap:22px;padding:24px;}
  .match-actions{grid-column:1 / -1;justify-content:flex-start;}
}
@media (max-width:720px){
  .match-row{grid-template-columns:1fr;gap:18px;text-align:left;min-height:0;}
  .match-row::before{background:linear-gradient(160deg,var(--red) 0%,rgba(19,19,17,.94) 48%,var(--black-2) 100%);}
  .match-comp{text-align:left;}
  .match-comp img{margin:0;}
  .match-when{text-align:left;}
  .match-crest{width:58px;height:58px;}
  .match-crest img{max-height:58px;max-width:58px;}
  .match-buy{width:100%;text-align:center;}
}

.faq{border-top:1px solid var(--line-dark);}
.faq-item{border-bottom:1px solid var(--line-dark);}
.faq-q{
  width:100%;text-align:left;background:none;border:none;padding:22px 0;
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  font-family:var(--display);font-weight:400;font-size:1.1rem;color:var(--black);text-transform:none;
}
.faq-q .plus{font-size:1.4rem;color:var(--red);transition:transform .3s var(--ease);}
.faq-item.is-open .plus{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s var(--ease);}
.faq-a p{padding-bottom:22px;color:var(--black-soft);font-size:.92rem;max-width:70ch;}

/* FAQ sur fond sombre */
.section-dark .faq{border-top-color:var(--line);}
.section-dark .faq-item{border-bottom-color:var(--line);}
.section-dark .faq-q{color:var(--white);}
.section-dark .faq-a p{color:rgba(247,245,240,.78);}

/* fade-in on scroll */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease);}
.reveal.is-visible{opacity:1;transform:none;}

/* ==========================================================================
   STAGES
   ========================================================================== */
.stage-list{display:grid;gap:24px;}
.stage{
  display:grid;grid-template-columns:280px 1fr;
  border:1px solid var(--line-dark);border-radius:var(--radius);
  background:var(--white);overflow:hidden;
  transition:box-shadow .3s var(--ease),transform .3s var(--ease);
}
.stage:hover{box-shadow:0 18px 38px rgba(29,29,27,.1);transform:translateY(-3px);}
.stage.is-full,.stage.is-soon{opacity:.72;}
.stage.is-full:hover,.stage.is-soon:hover{transform:none;box-shadow:none;}
@media (max-width:820px){.stage{grid-template-columns:1fr;}}

.stage-media{
  position:relative;min-height:230px;
  background:linear-gradient(160deg,var(--black),var(--black-2));
  background-size:cover;background-position:center;
}
.stage-badge{
  position:absolute;top:14px;left:14px;
  background:var(--red);color:var(--white);
  font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  padding:6px 12px;border-radius:2px;
}
.stage-badge.is-soon{background:var(--sand);color:var(--black);}

.stage-body{padding:30px 32px;}
@media (max-width:620px){.stage-body{padding:24px 22px;}}
.stage-body h3{font-size:2rem;line-height:1;}
.stage-body > p{margin-top:16px;color:var(--black-soft);font-size:.94rem;max-width:62ch;}
.stage-body .btn{margin-top:22px;}

.stage-meta{
  display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:16px;
  padding-top:16px;border-top:1px solid var(--line-dark);
}
.stage-meta li{display:flex;flex-direction:column;gap:2px;}
.stage-meta b{
  font-family:var(--body);font-size:.66rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--sand-dim);
}
.stage-meta span{font-size:.92rem;font-weight:600;}

.stage-info{
  margin-top:34px;padding:28px 32px;
  background:var(--sand-pale);border-radius:var(--radius);
}
.stage-info h3{font-size:1.5rem;}
.stage-info p{margin-top:10px;color:var(--black-soft);font-size:.92rem;max-width:70ch;}

/* Bouton inactif (stage complet, inscriptions fermées) */
.btn-disabled{
  background:transparent;border:1px solid var(--line-dark);
  color:var(--sand-dim);cursor:not-allowed;
}
.btn-disabled:hover{transform:none;background:transparent;}
