:root{--red:#BF111B;--navy:#1C224E;--teal:#0F8CA0;--ink:#1c1b2e;--mut:#6a6880;--bg:#f5f4f0;--line:#e4e2db;--t:.18s cubic-bezier(.2,.7,.3,1)}
*{box-sizing:border-box}
body{margin:0;font-family:Barlow,system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.55;font-size:16px}
h1,h2,h3{font-family:'Barlow Condensed',Impact,sans-serif;text-transform:uppercase;line-height:1.05;margin:0}
a{color:var(--red)}
.wrap{max-width:1000px;margin:0 auto;padding:0 20px}
.top{background:#fff;border-bottom:4px solid var(--red);position:sticky;top:0;z-index:20}
.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:70px;flex-wrap:wrap}
.marque{display:flex;align-items:center;gap:14px;text-decoration:none;flex:none}
.marque img{height:52px;width:auto;display:block}
.marque small{font:500 12.5px Barlow;color:var(--mut);letter-spacing:.03em;max-width:17ch;line-height:1.25}
@media(max-width:560px){.marque img{height:42px}.marque small{display:none}}
.liens{display:flex;gap:4px;flex-wrap:wrap}
.liens a{color:var(--navy);text-decoration:none;font:600 14px Barlow;text-transform:uppercase;letter-spacing:.05em;padding:10px 11px;border-bottom:3px solid transparent}
.liens a:hover{color:var(--red);border-bottom-color:var(--red)}
.hero{position:relative;background:linear-gradient(135deg,var(--navy),#163A64);color:#fff;overflow:hidden;padding:64px 0 70px}
.hero:after{content:"";position:absolute;right:-10%;top:-30%;width:42%;height:170%;background:var(--red);transform:skewX(-14deg);opacity:.85}
.hero .wrap{position:relative;z-index:2}
.hero h1{font-size:clamp(36px,7vw,68px);font-weight:800;letter-spacing:-.01em}
.hero p{font-size:18px;color:#dcdbf0;max-width:34ch;margin:16px 0 26px}
/* L'accroche tient sur UNE ligne sur grand écran — `.hero p` lui imposait la
   largeur du texte de présentation (34ch) et la coupait n'importe où. Sur
   téléphone elle passe sur DEUX lignes, à la coupure choisie dans le texte :
   avec l'interlettrage, « Union Athlétique Intergadz'arts » débordait à
   droite, et la réduire encore l'aurait rendue illisible. */
.eyebrow{display:inline-flex;align-items:center;gap:12px;max-width:none;white-space:nowrap;
  font:700 15px 'Barlow Condensed';letter-spacing:.24em;text-transform:uppercase;margin:0 0 12px}
.eyebrow br{display:none}
.eyebrow:before{content:"";flex:none;width:clamp(20px,3vw,34px);height:3px;background:var(--teal)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;font:700 16px 'Barlow Condensed';text-transform:uppercase;letter-spacing:.07em;text-decoration:none;border-radius:3px;border:2px solid transparent;transition:transform var(--t),background var(--t),box-shadow var(--t)}
.btn:hover{transform:translateY(-2px)}
.btn.red{background:var(--red);color:#fff;box-shadow:0 4px 0 #7d0a12}
.btn.red:hover{box-shadow:0 7px 18px -5px #bf111b99,0 4px 0 #7d0a12}
.btn.ghost{border-color:#fff;color:#fff;background:#ffffff14}
.btn.ghost:hover{background:#fff;color:var(--navy)}
.btn.dark{border-color:var(--navy);color:var(--navy)}
.btn.dark:hover{background:var(--navy);color:#fff}
.cta{display:flex;gap:12px;flex-wrap:wrap}
.sec{padding:56px 0}
.sec.alt{background:#fff}
.sec h2{font-size:34px;font-weight:800;color:var(--navy);position:relative;padding-left:20px;margin-bottom:8px}
.sec h2:before{content:"";position:absolute;left:0;top:.06em;bottom:.06em;width:7px;background:var(--red);transform:skewX(-14deg)}
.sec .intro{color:var(--mut);margin:0 0 26px;max-width:62ch}
.grp{--c:var(--navy);background:#fff;border-left:5px solid var(--c);border-radius:3px;padding:18px 22px;box-shadow:0 2px 0 var(--line);margin-bottom:12px;transition:transform var(--t),box-shadow var(--t)}
.sec.alt .grp{background:var(--bg);box-shadow:none}
.grp:hover{transform:translateY(-2px);box-shadow:0 10px 24px -8px #1c224e33}
.grp h3{font-size:23px;color:var(--navy)}
.grp .ages{color:var(--mut);font-size:14px;margin:2px 0 12px}
.cre{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.cre span{display:inline-flex;align-items:baseline;gap:7px;background:#0f8ca012;border-left:3px solid var(--teal);padding:6px 11px;border-radius:2px;font-size:14.5px}
.cre b{font:700 14px 'Barlow Condensed';text-transform:uppercase;letter-spacing:.07em;color:var(--navy)}
.cre i{font-style:normal;color:var(--mut);font-size:13px}
.grp .staff{font-size:14px;color:var(--mut);border-top:1px solid var(--line);padding-top:10px;margin:0}
.grp .staff a{color:var(--navy)}
.duo{display:grid;grid-template-columns:1.1fr .9fr;gap:22px;align-items:start}
.fiche{background:#fff;border-left:6px solid var(--teal);padding:22px 24px;border-radius:0 3px 3px 0;box-shadow:0 2px 0 var(--line)}
.sec.alt .fiche{background:var(--bg)}
.fiche h3{font-size:24px;color:var(--navy);margin-bottom:6px}
.fiche dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:14px 0 0;font-size:15px}
.fiche dt{font:700 13px 'Barlow Condensed';text-transform:uppercase;letter-spacing:.08em;color:var(--red);padding-top:3px}
.fiche dd{margin:0}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{background:#fff;border-top:4px solid var(--red);border-radius:3px;padding:20px 22px;box-shadow:0 2px 0 var(--line);display:flex;flex-direction:column;transition:transform var(--t),box-shadow var(--t)}
.sec.alt .card{background:var(--bg);box-shadow:none}
.card:hover{transform:translateY(-3px);box-shadow:0 10px 24px -8px #1c224e33}
.card .date{color:var(--teal);font:700 13px 'Barlow Condensed';letter-spacing:.12em;text-transform:uppercase}
.card h3{font-size:20px;margin:8px 0;color:var(--navy)}
.card h3 a{color:inherit;text-decoration:none}
.card h3 a:hover{color:var(--red)}
.card p{font-size:14.5px;color:var(--mut);margin:0 0 14px}
.card .more{margin-top:auto;font-weight:700;text-decoration:none}
.note{color:var(--mut);font-size:14px}
.avert{background:#c9a2271f;border-left:5px solid #c9a227;padding:12px 16px;border-radius:0 3px 3px 0;font-size:14.5px;margin:0 0 24px}
/* Le tarif est la deuxième question d'un parent, juste après l'horaire. */
.tarif{display:inline-block;background:#0f8ca014;border-left:5px solid var(--teal);padding:12px 18px;border-radius:0 3px 3px 0;margin:0 0 22px;font-size:16px}
.tarif b{font:800 26px 'Barlow Condensed';color:var(--navy);vertical-align:-1px;margin-right:6px}
.grp .px{float:right;color:var(--navy);font-weight:700}
/* Chiffres du club, sous les boutons du hero. */
.faits{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:26px 0 0;color:#dcdbf0;font-size:15px}
.faits b{font:800 32px 'Barlow Condensed';color:#fff;margin-right:-6px}
.etat{display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border-radius:20px;font:700 12.5px Barlow;letter-spacing:.04em;text-transform:uppercase}
.etat:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.etat.ok{background:#2f9e5e2e;color:#7ff0b0}
.etat.off{background:#bf111b33;color:#ffb3b8}

/* Tableau des performances. Sur téléphone il défile plutôt que de se casser
   en lignes de trois mots. */
.tableau{overflow-x:auto;background:#fff;border-radius:3px;box-shadow:0 2px 0 var(--line)}
.sec.alt .tableau{background:var(--bg);box-shadow:none}
.tableau table{border-collapse:collapse;width:100%;font-size:15px}
.tableau th{background:var(--navy);color:#fff;font:700 13px 'Barlow Condensed';text-transform:uppercase;letter-spacing:.1em;text-align:left;padding:10px 14px;white-space:nowrap}
.tableau td{padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
.tableau tbody tr:last-child td{border-bottom:0}
.tableau tbody tr:nth-child(even){background:#1c224e06}
.tableau .n{text-align:right}
.tableau .qui{font-weight:600;color:var(--navy)}
.tableau .jour,.tableau .ou{color:var(--mut);font-size:14px}

/* La carte doit rester sous l'en-tête collant : Leaflet pose des z-index
   internes qui montent au-delà de 1000. */
.carte{height:320px;margin-bottom:20px;background:#e9e8ee;border-radius:3px;position:relative;z-index:0;isolation:isolate}
@media(max-width:820px){.carte{height:240px}}

.foot{background:var(--navy);color:#cfcee6;padding:40px 0 20px;border-top:6px solid var(--red)}
.foot a{color:#fff}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:26px}
.foot h4{color:#fff;font:700 18px 'Barlow Condensed';text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px}
.foot p{margin:0 0 6px;font-size:14.5px}
.legal{margin-top:26px;font-size:13px;color:#9b99bd;border-top:1px solid #ffffff22;padding-top:14px}
/* Menu replié sur téléphone : six entrées débordaient de la barre et
   passaient sous le logo. */
.burger{display:none;background:none;border:0;padding:10px;cursor:pointer}
.burger span{display:block;width:26px;height:3px;background:var(--navy);margin:5px 0;border-radius:2px;transition:transform var(--t),opacity var(--t)}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
@media(max-width:820px){
  .duo,.cards,.foot-grid{grid-template-columns:1fr}
  .hero{padding:46px 0 52px}
  .hero:after{width:58%;right:-26%;opacity:.5}
  .sec{padding:40px 0}
  .sec h2{font-size:27px}
  .bar{position:relative;min-height:62px}
  .burger{display:block}
  .liens{display:none;position:absolute;left:-20px;right:-20px;top:100%;background:#fff;flex-direction:column;
    align-items:stretch;padding:6px 0 12px;border-top:1px solid var(--line);box-shadow:0 14px 24px -10px #1c224e4d}
  .liens.open{display:flex}
  .liens a{padding:13px 22px;border-bottom:0;border-left:3px solid transparent;font-size:15px}
  .liens a:hover{border-bottom-color:transparent;border-left-color:var(--red);background:var(--bg)}
  /* Deux lignes, coupées entre « Athlétique » et « Intergadz'arts » : le trait
     teal se cale sur la première, pas au milieu du bloc. */
  .eyebrow{white-space:normal;align-items:flex-start;font-size:13px;letter-spacing:.2em;line-height:1.5}
  .eyebrow br{display:inline}
  .eyebrow:before{margin-top:.55em}
}
/* Bandeau d'installation, posé en bas et retiré après la réponse. */
.inst{position:fixed;left:14px;right:14px;bottom:14px;z-index:60;max-width:520px;margin:0 auto;background:#fff;
  border-top:4px solid var(--teal);border-radius:4px;padding:16px 18px;box-shadow:0 18px 44px -14px #1c224e73;
  transform:translateY(130%);opacity:0;transition:transform .32s cubic-bezier(.2,.8,.3,1),opacity .32s}
.inst.on{transform:none;opacity:1}
.inst p{margin:0 0 13px;font-size:15.5px;line-height:1.45}
.inst div{display:flex;gap:9px;flex-wrap:wrap}
.inst .btn{padding:10px 18px;font-size:14px}
@media(prefers-reduced-motion:reduce){.inst{transition:none}.burger span{transition:none}}
@media(prefers-reduced-motion:reduce){.btn,.grp,.card{transition:none}.btn:hover,.grp:hover,.card:hover{transform:none}}

/* ═══════════════════ pages intérieures et fiches athlètes ═══════════════════
   Ajouté lors du passage d'une page unique à une page par rubrique. */

/* Texte courant d'une page de présentation. */
.prose{max-width:68ch}
.prose p{font-size:17px;margin:0 0 14px}
.prose b{color:var(--navy)}

/* Les quatre portes de l'accueil vers les rubriques. */
.acces{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:30px}
.acces .tuile{display:flex;flex-direction:column;gap:6px;background:#fff;border-top:4px solid var(--red);
  border-radius:3px;padding:18px 20px;text-decoration:none;box-shadow:0 2px 0 var(--line);
  transition:transform var(--t),box-shadow var(--t)}
.acces .tuile:hover{transform:translateY(-3px);box-shadow:0 12px 26px -10px #1c224e40}
.acces .tuile b{font:700 20px 'Barlow Condensed';text-transform:uppercase;letter-spacing:.02em;color:var(--navy)}
.acces .tuile span{color:var(--mut);font-size:14.5px;line-height:1.4}
@media(max-width:820px){.acces{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.acces{grid-template-columns:1fr}}

/* Entrée active du menu. */
.liens a.on{color:var(--red);border-bottom-color:var(--red)}
@media(max-width:820px){.liens a.on{border-bottom-color:transparent;border-left-color:var(--red);background:var(--bg)}}

/* Fil d'Ariane des fiches. */
.fil{margin:0 0 18px}
.fil a{color:var(--mut);text-decoration:none;font-weight:600;font-size:14.5px}
.fil a:hover{color:var(--red)}

/* En-tête d'une fiche athlète. */
.fiche-tete{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:22px}
.fiche-nom{font:800 clamp(30px,5vw,46px)/1.02 'Barlow Condensed';text-transform:uppercase;color:var(--navy);margin:0}
.fiche-sous{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:8px 0 0;color:var(--mut);font-size:16px}
.etiq{display:inline-flex;align-items:center;gap:7px;padding:4px 12px;border-radius:20px;font:700 12.5px Barlow;letter-spacing:.04em;text-transform:uppercase}
.etiq:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.etiq.ok{background:#2f9e5e22;color:#1a7a46}
.etiq.off{background:#1c224e14;color:var(--mut)}
.niveau-bloc{display:flex;align-items:center;gap:12px;background:#fff;border-left:5px solid var(--teal);
  padding:12px 18px;border-radius:0 3px 3px 0;box-shadow:0 2px 0 var(--line)}
.niveau-bloc small{color:var(--mut);font-size:12.5px;line-height:1.35}

/* Pastille de niveau FFA : du départemental à l'international. */
.niv{display:inline-block;padding:4px 13px;border-radius:3px;background:var(--navy);color:#fff;
  font:800 19px 'Barlow Condensed';letter-spacing:.04em}
.niv.n-nat{background:var(--red)}
.niv.n-inter{background:#6b4bbf}
.niv.n-reg{background:var(--teal)}
.niv.n-dep{background:var(--mut)}

/* Chiffres d'une fiche. */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;background:#fff;
  border-top:4px solid var(--teal);box-shadow:0 2px 0 var(--line);margin-bottom:30px;border-radius:3px}
.stat{padding:18px 20px;border-right:1px solid var(--line)}
.stat:last-child{border-right:0}
.stat b{display:block;font:800 34px/1 'Barlow Condensed';color:var(--navy)}
.stat span{display:block;color:var(--mut);font-size:13.5px;margin-top:4px}
@media(max-width:560px){.stat{border-right:0;border-bottom:1px solid var(--line)}.stat:last-child{border-bottom:0}}

/* Titre de sous-section dans une page. */
.h-sec{font:800 27px 'Barlow Condensed';text-transform:uppercase;color:var(--navy);margin:34px 0 6px;
  position:relative;padding-left:18px}
.h-sec:before{content:"";position:absolute;left:0;top:.08em;bottom:.08em;width:6px;background:var(--red);transform:skewX(-14deg)}

/* Place d'un podium. */
.rang{display:inline-block;min-width:38px;text-align:center;padding:3px 10px;border-radius:12px;
  background:var(--navy);color:#fff;font:800 13px Barlow}
.rang.r1{background:#c9a227;color:#3a2d00}
.rang.r2{background:#737a84}
.rang.r3{background:#a8683a}

/* Filtres de la liste des athlètes. */
.chips{display:flex;gap:9px;flex-wrap:wrap;margin:0 0 16px}
.chip{display:inline-block;padding:8px 15px;border:2px solid var(--line);background:#fff;color:var(--navy);
  text-decoration:none;font:700 14px Barlow;border-radius:3px;transition:border-color var(--t),color var(--t),background var(--t)}
.chip:hover{border-color:var(--teal);color:var(--teal)}
.chip.on{background:var(--navy);border-color:var(--navy);color:#fff}
.filtres{margin:0 0 18px}
.filtres input{width:100%;max-width:380px;padding:11px 14px;font:500 15px Barlow;border:2px solid var(--line);
  background:#fff;border-radius:3px}
.filtres input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px #0f8ca026}

/* Lien et mention dans la liste des athlètes. */
.tableau .qui a{color:var(--navy);text-decoration:none;border-bottom:1px solid transparent}
.tableau .qui a:hover{color:var(--red);border-bottom-color:currentColor}
.parti{display:block;color:var(--mut);font-size:12.5px;font-weight:400}

/* Niveau d'un championnat : du départemental à l'international. */
.niv-c{display:inline-block;padding:3px 10px;border-radius:3px;font:700 12px Barlow;letter-spacing:.03em;
  text-transform:uppercase;background:#1c224e14;color:var(--mut);white-space:nowrap}
.niv-c.v-dep{background:#6a688022;color:#5a5870}
.niv-c.v-reg{background:#0f8ca01f;color:#0b6b7a}
.niv-c.v-interreg{background:#6b4bbf22;color:#54399b}
.niv-c.v-nat{background:#bf111b1f;color:#9d0e16}
.niv-c.v-euro,.niv-c.v-int{background:#c9a2272e;color:#7a6110}

/* Une sortie de la saison : la compétition, puis ses épreuves. */
.sortie{background:#fff;border-left:4px solid var(--teal);border-radius:0 3px 3px 0;padding:16px 20px;
  margin-bottom:12px;box-shadow:0 2px 0 var(--line)}
.sortie h3{font:700 20px 'Barlow Condensed';text-transform:uppercase;color:var(--navy);margin:0}
.sortie h3 a{color:inherit;text-decoration:none;border-bottom:1px solid transparent}
.sortie h3 a:hover{color:var(--red);border-bottom-color:currentColor}
.sortie-ou{color:var(--mut);font-size:13.5px;margin:3px 0 12px}
.sortie-l{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.sortie-l li{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-size:15px;
  border-top:1px solid var(--line);padding-top:7px}
.sortie-l li:first-child{border-top:0;padding-top:0}
.sortie-l b{color:var(--navy);min-width:11em}
.sortie-l .p{font:800 17px 'Barlow Condensed';color:var(--teal)}
.sortie-l .pl{background:#1c224e12;color:var(--navy);font:700 12px Barlow;padding:2px 9px;border-radius:12px}
.sortie-l small{color:var(--mut);font-size:12.5px}
@media(max-width:560px){.sortie-l b{min-width:0;width:100%}}

/* Menu déroulant : la barre tenait sur deux lignes dès sept rubriques. */
.dd{position:relative}
.dd-b{color:var(--navy);background:none;border:0;cursor:pointer;font:600 14px Barlow,sans-serif;
  text-transform:uppercase;letter-spacing:.05em;padding:10px 11px;border-bottom:3px solid transparent}
.dd-b:hover,.dd.on .dd-b{color:var(--red);border-bottom-color:var(--red)}
.dd-m{display:none;position:absolute;right:0;top:100%;background:#fff;min-width:214px;z-index:30;
  box-shadow:0 14px 30px -8px #1c224e59;border-top:3px solid var(--red);border-radius:0 0 3px 3px}
.dd:hover .dd-m,.dd.ouvert .dd-m{display:block}
.dd-m a{display:block;padding:11px 16px;color:var(--ink);text-decoration:none;font-weight:600;
  border-bottom:0;font-size:14.5px;text-transform:none;letter-spacing:0}
.dd-m a:hover,.dd-m a.on{background:var(--bg);color:var(--red)}
@media(max-width:820px){
  .dd{width:100%}
  .dd-b{width:100%;text-align:left;padding:13px 22px;border-bottom:0;border-left:3px solid transparent}
  .dd-m{display:block;position:static;box-shadow:none;border:0;border-radius:0;background:var(--bg);min-width:0}
  .dd-m a{padding:11px 22px 11px 38px}
}

.chip-sep{width:16px}
