/* BCEI, maquette v3 « Le dauphin et l'éclair » : identité réelle du club (dauphin, titre jaune à halo bleu, noir et rouge)
   Polices : Sofia Sans Condensed (titres, chiffres, interface) + Public Sans (texte) */
:root{
  --noir:#08090C;        /* barre de navigation, feuille de match */
  --nuit:#04122F;        /* fond du bandeau d'origine */
  --nuit-2:#0B2152;
  --eclair:#3C8DFF;      /* halo bleu du titre */
  --dauphin:#309CD5;     /* bleu du dauphin */
  --jaune:#F4D628;       /* jaune du titre : parties à 200+ */
  --rouge:#E2182A;       /* rouge des bandeaux du site : actions, onglets */
  --rouge-fonce:#AC1421;
  --papier:#F2F3F6;
  --encre:#0C0E14;
  --gris:#5A6072;
  --titre:"Sofia Sans Condensed","Arial Narrow",Arial,sans-serif;
  --texte:"Public Sans",Arial,sans-serif;
  --marge:clamp(20px,5vw,72px);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:var(--encre);font:400 1.0625rem/1.6 var(--texte)}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration-thickness:2px;text-underline-offset:3px}
a:hover{text-decoration-color:var(--rouge)}
:focus-visible{outline:3px solid var(--jaune);outline-offset:3px}
h1,h2,h3{font-family:var(--titre);margin:0;line-height:1;font-weight:800}
p{margin:0 0 1em}
sup{font-size:.62em;line-height:0}

.demo{margin:0;padding:8px var(--marge);background:#000;color:#C9CDD8;font:400 .8125rem/1.45 var(--texte);border-bottom:1px solid #1E2230}
.demo strong{color:var(--jaune);font-weight:700}

/* Barre noire du site d'origine, nettoyée */
.tete{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 var(--marge);background:var(--noir);color:#fff;min-height:72px}
.marque{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff;padding:10px 0}
.marque img{width:52px;height:auto}
.marque b{font:900 2rem/1 var(--titre);letter-spacing:.01em}
.marque span{font:500 .78rem/1.15 var(--texte);color:#AEB4C4}
.nav{display:flex;align-self:stretch;font:700 1.12rem/1 var(--titre)}
.nav a{display:flex;align-items:center;text-decoration:none;padding:0 clamp(12px,1.8vw,24px);border-bottom:5px solid transparent;border-top:5px solid transparent;color:#E6E8EE}
.nav a:hover{color:#fff;border-bottom-color:#5A1018}
.nav a[aria-current]{color:#fff;border-bottom-color:var(--rouge)}

/* L'éclair : le bandeau du club, recomposé */
.eclair{position:relative;overflow:hidden;background:var(--nuit);color:#fff;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px clamp(24px,4vw,64px);padding:clamp(48px,6vw,88px) var(--marge) clamp(48px,5.5vw,80px)}
.eclair-boule{position:absolute;left:-30px;top:-50px;width:min(500px,40vw);opacity:.8;pointer-events:none;
  -webkit-mask-image:radial-gradient(closest-side,#000 62%,transparent 100%);mask-image:radial-gradient(closest-side,#000 62%,transparent 100%)}
.eclair-texte{position:relative;z-index:1;max-width:780px}
.eclair h1{margin:0 0 26px}
.titre-club{width:min(100%,760px);filter:drop-shadow(0 0 1.5px #4D9BFF) drop-shadow(0 0 1.5px #4D9BFF) drop-shadow(0 0 6px #2F7BFF) drop-shadow(0 0 18px rgba(42,110,245,.6))}
.titre-suite{display:block;margin-top:18px;font:700 clamp(1.25rem,2vw,1.6rem)/1.15 var(--titre);color:#fff}
.chapeau{font-size:1.12rem;line-height:1.55;max-width:34em;color:#C9D3EA}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin:26px 0 0}
.bouton{display:inline-block;background:var(--rouge);color:#fff;font:800 1.2rem/1 var(--titre);text-decoration:none;padding:16px 26px 15px;border-radius:3px;box-shadow:inset 0 -3px 0 var(--rouge-fonce)}
.bouton:hover{background:#F02436}
.lien-fort{font:700 1.15rem/1.3 var(--titre);text-decoration:underline;text-decoration-color:var(--rouge);text-decoration-thickness:3px}
.eclair .lien-fort{color:#fff;text-decoration-color:var(--jaune)}
.eclair-dauphin{position:relative;z-index:1;width:clamp(240px,27vw,400px);filter:drop-shadow(0 0 28px rgba(60,141,255,.45))}

/* Bandeau rouge des créneaux */
.creneaux{display:grid;grid-template-columns:auto auto 1fr;align-items:center;padding:0 var(--marge);background:var(--rouge);color:#fff}
.creneau{margin:0;padding:22px 40px 20px 0;margin-right:40px;border-right:1px solid rgba(255,255,255,.35);display:flex;align-items:baseline;gap:14px}
.creneau .jour{font:700 1.25rem/1 var(--titre)}
.creneau .heure{font:900 clamp(2.6rem,4.6vw,3.8rem)/.85 var(--titre);white-space:nowrap}
.creneau-lieu{margin:0;padding:18px 0;max-width:34em;font-size:.98rem;line-height:1.5}
.creneau-lieu strong{font-weight:700}

/* Onglet rouge, repris des titres « Calendrier » et « Recherche » du site */
.onglet,.agenda-tete h2,.saison h2,.tournois-tete h2,.docs h2,.etapes h2,.contact h2,.regle h2{display:inline-block;background:var(--rouge);color:#fff;font:800 clamp(1.5rem,2.4vw,2rem)/1 var(--titre);padding:10px 16px 9px;border-radius:3px 3px 0 0;margin-bottom:0;box-shadow:0 4px 0 var(--noir)}

/* Le club */
.accueil{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(32px,5vw,80px);align-items:center;padding:clamp(56px,8vw,104px) var(--marge)}
.photo{margin:0}
.photo img{width:100%;border-radius:3px}
.photo figcaption{font-size:.85rem;color:var(--gris);margin-top:10px}
.accroche{font:800 clamp(2.2rem,4vw,3.4rem)/1 var(--titre);margin:26px 0 22px;max-width:11em}
blockquote{margin:0 0 22px;padding:0 0 0 20px;border-left:5px solid var(--dauphin)}
blockquote p{font-size:clamp(1.2rem,1.7vw,1.4rem);line-height:1.45;font-style:italic;margin:0}

/* Agenda sur le bleu nuit du bandeau */
.agenda{background:var(--nuit);color:#fff;padding:clamp(56px,7vw,96px) var(--marge);display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:32px 64px}
.agenda-tete h2{box-shadow:0 4px 0 #000}
.agenda-tete p{color:#C1CBE2;max-width:22em;margin-top:24px}
.dates{list-style:none;margin:0;padding:0;border-top:1px solid #23366A}
.dates li{display:grid;grid-template-columns:10rem 1fr auto;gap:24px;align-items:baseline;padding:24px 0;border-bottom:1px solid #23366A}
.d{margin:0;font:700 1.2rem/1 var(--titre);color:var(--jaune)}
.d b{display:block;font-size:3.6rem;font-weight:900;margin-bottom:4px;white-space:nowrap}
.dates h3{font-size:1.5rem;font-weight:700;line-height:1.15;margin-bottom:8px}
.dates li p:not(.d):not(.ou){margin:0;color:#C1CBE2}
.ou{margin:0;font:700 1.05rem/1.2 var(--titre);text-align:right;white-space:nowrap;color:var(--dauphin)}
.agenda-pied{grid-column:2;margin:8px 0 0}
.agenda .lien-fort{color:#fff;text-decoration-color:var(--jaune)}

/* Feuille de match : le noir du site */
.resultat{background:var(--noir);color:#fff;padding:clamp(56px,7vw,96px) var(--marge)}
.resultat-tete{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"rec h2" "rec p";gap:14px clamp(32px,5vw,72px);align-items:end;margin-bottom:40px}
.record{grid-area:rec;display:flex;flex-direction:column;gap:10px;max-width:22rem}
.partie{margin:0;font:900 clamp(7rem,13vw,11rem)/.78 var(--titre);color:var(--jaune);letter-spacing:-.02em;text-shadow:0 0 3px #3C8DFF,0 0 18px rgba(42,110,245,.7)}
.record-qui{margin:0;font-size:.95rem;color:#B7BDCC;border-top:3px solid var(--rouge);padding-top:12px}
.record-qui strong{color:#fff}
.resultat-tete h2{grid-area:h2;font-size:clamp(2.4rem,4.2vw,3.6rem);font-weight:800}
.resultat-tete>p{grid-area:p;margin:0;max-width:36em;color:#C3C8D4}
.defile{overflow-x:auto;-webkit-overflow-scrolling:touch}
.scores{width:100%;border-collapse:collapse;font:600 1.15rem/1 var(--titre);font-variant-numeric:tabular-nums;min-width:760px}
.scores thead th{font-weight:700;font-size:1rem;color:var(--gris);text-align:center;padding:0 6px 12px;border-bottom:3px solid var(--rouge)}
.scores thead th.j{text-align:left}
.scores th.j{text-align:left;font-weight:700;font-size:1.2rem;padding:15px 16px 15px 0;white-space:nowrap;position:sticky;left:0;background:#fff;z-index:1}
.scores th.j small{display:block;font:400 .8rem/1 var(--texte);color:var(--gris);margin-top:6px}
.scores td{text-align:center;padding:15px 6px;border-bottom:1px solid #DDE0E7;width:6.4%}
.scores td.h{color:var(--encre);background:#FFF6C2;font-weight:800;box-shadow:inset 0 -4px 0 var(--jaune)}
.scores td.x{background:var(--rouge);color:#fff;font-weight:900}
.scores td.t{font-weight:900;font-size:1.4rem;border-left:3px solid var(--encre)}
.scores td.m{font-weight:600;color:var(--gris);white-space:nowrap}
.scores tr.equipe th,.scores tr.equipe td{border-bottom:0;border-top:3px solid var(--encre);font-weight:800;background:var(--papier)}
.scores tr.equipe th.j{background:var(--papier);padding-left:12px}
.scores td.forfait{text-align:left;font:italic 400 1rem/1 var(--texte);color:var(--gris);padding-left:14px}
/* sur fond noir */
.resultat .scores thead th{color:#8D94A6}
.resultat .scores th.j{background:var(--noir);color:#fff}
.resultat .scores th.j small{color:#8D94A6}
.resultat .scores td{border-bottom-color:#232733}
.resultat .scores td.h{background:rgba(244,214,40,.14);color:var(--jaune)}
.resultat .scores td.t{border-left-color:#3A3F4D;color:#fff}
.resultat .scores td.m{color:#8D94A6}
.resultat .scores tr.equipe th,.resultat .scores tr.equipe td{background:#151821;border-top-color:var(--rouge)}

/* Saison */
.saison{padding:clamp(56px,7vw,96px) var(--marge);display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:32px 64px;align-items:start}
.saison dl{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:36px 48px}
.saison dt{font:800 1.3rem/1.2 var(--titre);margin-bottom:8px;padding-top:14px;border-top:3px solid var(--noir)}
.saison dd{margin:0}
.prix{font:900 3rem/1 var(--titre);color:var(--rouge);display:block;margin-bottom:6px}

/* Pages intérieures */
.titre-page{position:relative;overflow:hidden;background:var(--nuit);color:#fff;padding:clamp(44px,6vw,80px) var(--marge);display:grid;grid-template-columns:auto minmax(0,7fr) minmax(0,5fr);gap:24px clamp(28px,4vw,56px);align-items:center;border-bottom:8px solid var(--rouge)}
.titre-dauphin{width:clamp(110px,12vw,170px);filter:drop-shadow(0 0 20px rgba(60,141,255,.45))}
.titre-page h1{font-size:clamp(2.8rem,6vw,5.4rem);font-weight:900;line-height:.92}
.titre-page p{margin:0;font-size:1.08rem;max-width:30em;color:#C9D3EA}

.journee{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:24px 56px;padding:clamp(44px,6vw,80px) var(--marge);border-bottom:1px solid #D9DCE4}
.journee-date{position:sticky;top:20px;align-self:start}
.journee-date .d{color:var(--rouge);font-size:1.5rem}
.journee-date .d b{font-size:clamp(4.4rem,7vw,6.6rem);line-height:.82;text-shadow:none}
.journee-date p:not(.d){font-size:.95rem;line-height:1.45;color:var(--gris);margin:14px 0 0}
.journee-date p.etat{display:inline-block;font:800 1rem/1 var(--titre);color:#fff;background:var(--gris);padding:7px 11px 6px;border-radius:3px}
.journee-date p.etat.avenir{background:var(--noir);color:var(--jaune)}
.journee-corps h2{font-size:clamp(1.9rem,3vw,2.6rem);line-height:1.05;margin-bottom:16px}
.journee-corps>p{max-width:40em}
.journee-corps h3{font:600 1.2rem/1.45 var(--titre);margin:40px 0 14px;display:flex;flex-wrap:wrap;gap:6px 18px;align-items:baseline}
.journee-corps h3 strong{font-weight:800}
.journee-corps h3 a{font:600 .92rem/1.4 var(--texte);color:#1567A8}

.liste{width:100%;border-collapse:collapse;font:400 1rem/1.4 var(--texte);margin-top:22px}
.liste thead th{text-align:left;font:700 1rem/1 var(--titre);color:var(--gris);padding:0 18px 10px 0;border-bottom:3px solid var(--rouge)}
.liste td,.liste tbody th{text-align:left;padding:15px 18px 15px 0;border-bottom:1px solid #DDE0E7;vertical-align:top}
.liste tbody th{font:900 1.7rem/1 var(--titre);color:var(--rouge);width:4rem}
.liste-tournois{min-width:640px}
.liste-tournois .quand{font:800 1.12rem/1.3 var(--titre);white-space:nowrap}
.liste-tournois tr.passe td,.liste-tournois tr.passe a{color:#9298A6}
.liste a{color:#1567A8}

.tournois{background:var(--papier);padding:clamp(56px,7vw,96px) var(--marge);display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:28px 64px}
.tournois-tete p{margin-top:24px}
.docs{padding:clamp(48px,6vw,80px) var(--marge);display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:20px 64px;align-items:start}
.docs ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
.docs li{border-top:1px solid #D0D4DE;padding:16px 0;font:700 1.15rem/1.3 var(--titre)}

/* Page club */
.etapes{padding:clamp(56px,7vw,96px) var(--marge)}
.etapes ol{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:0;counter-reset:e}
.etapes li{counter-increment:e;padding:8px 36px 8px 0;margin-right:36px;border-right:1px solid #D0D4DE}
.etapes li:last-child{border-right:0;margin-right:0}
.etapes li::before{content:counter(e);display:block;font:900 5.8rem/.8 var(--titre);color:var(--rouge);margin-bottom:20px}
.etapes h3{font-size:1.6rem;font-weight:800;line-height:1.1;margin-bottom:12px}
.regle{background:var(--noir);color:#fff;padding:clamp(56px,7vw,96px) var(--marge);display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:40px 72px;align-items:start}
.regle h2{box-shadow:0 4px 0 #000;margin-bottom:24px}
.regle-texte p{color:#C3C8D4;max-width:34em}
.cartons{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.cartons li{display:grid;grid-template-columns:52px 1fr;column-gap:20px;align-items:center;padding:16px 0;border-bottom:1px solid #262A36}
.cartons li::before{content:"";grid-row:span 2;width:52px;height:72px;border-radius:3px;background:#fff}
.cartons li.c-jaune::before{background:var(--jaune)}
.cartons li.c-rouge::before{background:var(--rouge)}
.cartons strong{font:800 1.45rem/1.1 var(--titre)}
.cartons span{color:#B7BDCC}
.contact{padding:clamp(56px,7vw,96px) var(--marge);display:grid;grid-template-columns:5fr 7fr;gap:40px 72px;align-items:start}
.contact h2{margin-bottom:26px}
.mail{font:800 clamp(1.7rem,3.2vw,2.8rem)/1.1 var(--titre);word-break:break-word}
.mail a{text-decoration-color:var(--rouge);text-decoration-thickness:3px}
address{font-style:normal;font-size:1.1rem;margin-bottom:12px}
.bowlcenter{margin:0 0 22px}
.bowlcenter img{width:100%;max-width:488px;border-radius:3px}
.bowlcenter figcaption{font-size:.85rem;color:var(--gris);margin-top:8px}

/* Pied : le dauphin et le titre, sur noir */
.pied{background:var(--noir);color:#fff;padding:clamp(44px,6vw,72px) var(--marge);display:grid;grid-template-columns:auto minmax(0,1fr);gap:28px 64px;align-items:center;border-top:8px solid var(--rouge)}
.pied-marque{display:flex;align-items:center;gap:22px}
.pied-dauphin{width:120px}
.pied-titre{width:min(380px,70vw);filter:drop-shadow(0 0 2px #3C8DFF) drop-shadow(0 0 8px #2A6EF5)}
.pied-infos{max-width:34em;font-size:.98rem;color:#B7BDCC}
.pied-infos p:last-child{margin:0}
.pied-infos strong{color:#fff}

/* Tablette */
@media (max-width:980px){
  .eclair{grid-template-columns:minmax(0,1fr) auto}
  .eclair-dauphin{width:clamp(150px,24vw,240px);align-self:start}
  .agenda,.saison,.tournois,.docs,.journee,.regle,.contact{grid-template-columns:minmax(0,1fr)}
  .titre-page{grid-template-columns:auto minmax(0,1fr)}
  .titre-page p{grid-column:1/-1}
  .resultat-tete{grid-template-columns:minmax(0,1fr);grid-template-areas:"h2" "p" "rec"}
  .record{flex-direction:row;align-items:flex-end;max-width:none;gap:24px}
  .record-qui{max-width:22em}
  .agenda-pied{grid-column:1}
  .accueil{grid-template-columns:1fr}
  .journee-date{position:static;display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 24px}
  .journee-date p:not(.d){margin:0}
  .creneaux{grid-template-columns:1fr 1fr}
  .creneau:nth-child(2){border-right:0;margin-right:0}
  .creneau-lieu{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.35)}
}
/* Mobile */
@media (max-width:640px){
  body{font-size:1rem}
  .tete{flex-direction:column;align-items:stretch;gap:0;padding:0 var(--marge);min-height:0}
  .marque{padding:12px 0 8px}
  .marque img{width:44px}
  .marque b{font-size:1.7rem}
  .nav{font-size:1.05rem;overflow-x:auto;margin:0 calc(var(--marge) * -1);padding:0 calc(var(--marge) - 10px);border-top:1px solid #1E2230}
  .nav a{padding:13px 10px 10px;white-space:nowrap}
  .eclair{grid-template-columns:1fr;padding-top:24px}
  .eclair-dauphin{grid-row:1;justify-self:end;width:150px;margin-bottom:-6px}
  .eclair-boule{width:330px;left:-90px;top:-30px;opacity:.7}
  .eclair h1{margin-bottom:18px}
  .chapeau{font-size:1rem}
  .creneau{padding:18px 12px 14px 0;margin-right:12px;flex-direction:column;gap:6px}
  .creneau .heure{font-size:2.8rem}
  .creneau-lieu{font-size:.92rem;padding:14px 0 18px}
  .titre-page{grid-template-columns:1fr}
  .titre-dauphin{width:96px}
  .titre-page h1{font-size:clamp(2.5rem,12vw,3.4rem)}
  .dates li{grid-template-columns:1fr;gap:8px}
  .ou{text-align:left}
  .d b{display:inline;font-size:2.8rem;margin-right:6px}
  .record{flex-direction:column;align-items:flex-start}
  .partie{font-size:7.5rem}
  .saison dl,.docs ul,.etapes ol{grid-template-columns:1fr}
  .etapes li{border-right:0;margin-right:0;border-bottom:1px solid #D0D4DE;padding:24px 0}
  .etapes li::before{font-size:4.2rem;margin-bottom:12px}
  /* feuille de score : une fiche par joueur */
  .scores{min-width:0;display:block;font-size:1.05rem}
  .scores thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .scores tbody{display:block;border-top:3px solid var(--rouge)}
  .scores tr{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));column-gap:3px;row-gap:8px;padding:14px 0;border-bottom:1px solid #DDE0E7}
  .scores.huit tr{grid-template-columns:repeat(8,minmax(0,1fr))}
  .scores th.j{grid-row:1;grid-column:1/span 4;position:static;padding:0;background:none}
  .scores.huit th.j{grid-column:1/span 5}
  .scores td{grid-row:2;width:auto;padding:9px 0;border:0;font-size:1rem;background:var(--papier)}
  .scores td.t{grid-row:1;grid-column:-4/span 2;border:0;background:none;padding:0 6px 0 0;text-align:right;font-size:1.3rem}
  .scores td.m{grid-row:1;grid-column:-2/span 1;background:none;padding:3px 0 0;text-align:right;font-size:.9rem}
  .scores td.forfait{grid-column:1/-1;text-align:left;padding:9px 10px}
  .scores tr.equipe{background:var(--papier);padding:14px 8px}
  .scores tr.equipe th,.scores tr.equipe td{border:0}
  .scores tr.equipe td:not(.t):not(.m){background:#fff}
  .resultat .scores tr{border-bottom-color:#232733}
  .resultat .scores th.j{background:none}
  .resultat .scores td{background:#151821}
  .resultat .scores td.t,.resultat .scores td.m{background:none}
  .resultat .scores tr.equipe{background:#151821}
  .resultat .scores tr.equipe td:not(.t):not(.m){background:#232733}
  .pied{grid-template-columns:1fr}
  .pied-dauphin{width:84px}
  .pied-titre{width:min(240px,60vw)}
}
.onglet,.agenda-tete h2,.saison h2,.tournois-tete h2,.docs h2,.etapes h2,.contact h2,.regle h2{justify-self:start;align-self:start;width:fit-content}
.resultat .scores td.x{background:var(--rouge);color:#fff}
@media (max-width:640px){.resultat .scores td.h{background:rgba(244,214,40,.14)}.resultat .scores td.x{background:var(--rouge)}}
