.site-header{position:sticky;top:0;z-index:30;background:#fffaf3f2;backdrop-filter:blur(12px)}.site-header .brand>span:last-child{display:grid}.site-header .brand small{font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:#7c6f6d}.crest{background:var(--wine);color:#fff;font-weight:950;font-style:italic;padding:14px 9px;border-radius:50%;box-shadow:0 0 0 3px #fff,0 0 0 5px var(--wine)}.menu-button{display:none;margin-left:auto;border:0;background:var(--wine);color:#fff;width:42px;height:42px}.punch{min-height:650px;background:#fffaf3}.punch .hero-copy{position:relative}.punch .hero-copy:before{content:"";position:absolute;width:80px;height:9px;top:75px;left:0;background:var(--gold);transform:skewX(-26deg)}.punch h1{font-size:clamp(65px,7.4vw,112px);line-height:.82}.punch .photo{margin:26px 26px 26px 0;border-radius:0 0 0 90px}.slash{position:absolute;left:-22px;bottom:34px;background:var(--wine);color:#fff;font:clamp(26px,4vw,64px) Impact;padding:15px 30px;transform:rotate(-5deg)}.hero-numbers{display:flex;gap:32px;margin-top:32px}.hero-numbers span{display:grid;font-size:10px;text-transform:uppercase}.hero-numbers b{font:34px Impact;color:var(--wine)}
.match-strip{background:var(--wine2);color:#fff;padding:46px max(24px,calc((100% - 1180px)/2));display:grid;grid-template-columns:220px 1fr 55px;gap:30px;align-items:center}.match-strip h2{font-size:40px}.match-strip .eyebrow{color:var(--gold)}.match-strip #matches-list{display:grid;grid-template-columns:repeat(3,1fr)}.match-strip article{padding:12px 20px;border-left:1px solid #ffffff2d;display:flex;gap:15px}.match-strip time{font:26px Impact;color:var(--gold);text-transform:uppercase}.match-strip article div{display:grid}.match-strip span{font-size:11px}.match-strip em{font-style:normal;color:#b893a0;margin:0 5px}.circle-arrow{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:#1b1114;font-size:24px}.section-heading{display:flex;justify-content:space-between;align-items:end}.section-heading>a{font-weight:900;color:var(--wine)}.team-rail{display:grid;grid-auto-flow:column;grid-auto-columns:min(300px,78vw);gap:14px;overflow-x:auto;padding:22px 0 14px;scroll-snap-type:x mandatory}.team-card{height:320px;padding:24px;display:flex;flex-direction:column;justify-content:end;color:#fff;scroll-snap-align:start;background:linear-gradient(145deg,#a01b43,#3c0718)}.team-card.tone-1{background:linear-gradient(145deg,#e3aa11,#6e4600)}.team-card.tone-2{background:linear-gradient(145deg,#242021,#060606)}.team-card.tone-3{background:linear-gradient(145deg,#bb5273,#541128)}.team-card span,.catalog-card small{text-transform:uppercase;font-size:9px;letter-spacing:.15em}.team-card b{font:46px Impact;text-transform:uppercase}.team-card i{font-style:normal;font-size:28px;margin-top:18px}.story-panel{padding:80px max(24px,calc((100% - 1180px)/2));display:grid;grid-template-columns:.8fr 1fr .7fr;gap:28px;align-items:center;background:#fff}.story-panel h2{font-size:56px}.story-photo img{width:100%;height:450px;object-fit:cover;border-radius:90px 12px}.story-panel blockquote{font-size:24px;line-height:1.35;color:var(--wine);margin:0;border-left:4px solid var(--gold);padding-left:24px}.sponsor-teaser{background:var(--gold);padding:75px max(24px,calc((100% - 1180px)/2));display:grid;grid-template-columns:1fr 1fr;align-items:end}.sponsor-teaser h2{font-size:64px}.sponsor-teaser>strong{font:170px Impact;color:var(--wine);display:flex;align-items:end}.sponsor-teaser sup{font-size:60px}.sponsor-teaser small{font:13px Arial;max-width:210px;margin:0 0 22px 16px}
.page-hero{padding:90px max(24px,calc((100% - 1180px)/2));min-height:390px;display:flex;flex-direction:column;justify-content:center}.page-hero h1{font:clamp(62px,8vw,112px)/.86 Impact;text-transform:uppercase;margin:15px 0}.page-hero>p:last-child{max-width:650px;line-height:1.65}.page-hero.wine{background:var(--wine);color:#fff}.page-hero.wine .eyebrow,.page-hero.dark .eyebrow{color:var(--gold)}.page-hero.dark{background:#181415;color:#fff}.filter-bar,.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0 34px}.filter-bar button,.tabs button{border:1px solid var(--wine);background:transparent;padding:10px 15px;font-weight:800}.filter-bar button:hover,.filter-bar button.active,.tabs button:hover{background:var(--wine);color:#fff}.team-catalog{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.catalog-card{background:#fff;border:1px solid var(--line);padding:12px}.catalog-image{height:210px;background:var(--wine);display:grid;place-items:center;overflow:hidden}.catalog-image img{width:100%;height:100%;object-fit:cover}.catalog-image span{font:56px Impact;color:#fff}.catalog-card h2{font-size:38px;margin:14px 0 4px}.catalog-card>div:last-child{border-top:1px solid var(--line);padding-top:14px;display:flex;gap:5px;align-items:center}.catalog-card>div:last-child i{font-style:normal;margin-left:auto;font-weight:900;color:var(--wine)}
.profile-layout{display:grid;gap:60px}.team-visual img{width:100%;height:min(60vw,600px);object-fit:cover;border-radius:20px 100px}.profile-stats{display:grid;grid-template-columns:1fr 1fr;background:var(--gold)}.profile-stats span{padding:35px;display:grid;text-transform:uppercase;font-size:11px}.profile-stats b{font:60px Impact;color:var(--wine)}.staff{display:grid;grid-template-columns:1fr 1fr;gap:14px}.staff article{background:#fff;padding:28px;border:1px solid var(--line);display:grid;gap:8px}.staff small{text-transform:uppercase;color:var(--wine);font-weight:900}.staff a{font-size:12px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.gallery img{width:100%;height:260px;object-fit:cover}.planning-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;background:#fff;padding:18px;margin-bottom:22px}.planning-controls label{display:grid;gap:7px;font-size:10px;text-transform:uppercase;font-weight:900}.planning-controls select{padding:12px;border:1px solid var(--line);background:#fff}.planning-board{display:grid;gap:7px}.planning-board article{background:#fff;border:1px solid var(--line);display:grid;grid-template-columns:150px 1fr 1fr 150px;gap:20px;align-items:center;padding:18px}.planning-board time,.planning-board article>div{display:grid}.planning-board small{color:var(--wine);text-transform:uppercase;font-weight:800}.planning-board a{font-weight:900;color:var(--wine)}
.match-calendar{display:grid;gap:10px}.match-calendar article{background:#fff;border:1px solid var(--line);padding:20px;display:grid;grid-template-columns:200px 1fr;gap:8px}.match-calendar article>div{grid-column:1/-1;display:grid;grid-template-columns:1fr 100px 1fr;text-align:center;align-items:center;font-size:18px}.match-calendar strong{font:36px Impact;color:var(--wine)}.standings table{width:100%;border-collapse:collapse;background:#fff}.standings th,.standings td{text-align:left;padding:14px;border-bottom:1px solid var(--line)}.data-note,.legal-note{font-size:11px;color:#756b68;line-height:1.55}.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.contact-grid article{background:#fff;border:1px solid var(--line);padding:25px;display:flex;flex-direction:column;align-items:start}.contact-grid article>span{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--wine);color:#fff;font-weight:900}.contact-grid h2{font-size:30px}.contact-grid small{text-transform:uppercase;color:var(--wine);font-weight:900;margin-top:16px}.contact-grid a{font-size:12px;margin-top:10px;text-decoration:underline}.contact-grid em{font-size:11px;margin-top:14px}
.sponsor-hero{display:grid;grid-template-columns:1fr 1fr;min-height:650px;padding:60px max(24px,calc((100% - 1180px)/2));gap:50px;align-items:center}.sponsor-hero h1{font:clamp(70px,8vw,120px)/.82 Impact;text-transform:uppercase;margin:18px 0;color:var(--wine)}.sponsor-hero>div:first-child>p:last-of-type{font-size:20px;line-height:1.55}.sponsor-collage{position:relative}.sponsor-collage img{width:100%;height:540px;object-fit:cover;border-radius:100px 18px}.sponsor-collage strong{position:absolute;bottom:28px;left:-34px;background:var(--gold);font:60px Impact;padding:12px 20px;transform:rotate(-5deg)}.impact-intro{padding:90px max(24px,calc((100% - 1180px)/2));display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;background:#fff}.impact-intro h2,.project-focus h2,.tax-panel h2,.packages h2,.sponsor-contact h2{font-size:60px}.impact-grid{display:grid;grid-template-columns:1fr 1fr}.impact-grid article{padding:25px;border-left:1px solid var(--line);border-bottom:1px solid var(--line)}.impact-grid article>b{font:42px Impact;color:var(--wine)}.project-focus{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:90px max(24px,calc((100% - 1180px)/2));align-items:center}.project-picture img{width:100%;height:620px;object-fit:cover;border-radius:20px 120px}.budget{display:grid;grid-template-columns:1fr 1fr;margin-top:30px}.budget span{padding:20px;border-top:1px solid var(--wine);display:grid}.budget b{font:30px Impact;color:var(--wine)}
.tax-panel{background:var(--wine);color:#fff;padding:70px max(24px,calc((100% - 1180px)/2));display:grid;grid-template-columns:.65fr 1.35fr;gap:60px;align-items:center}.tax-panel>strong{font:180px Impact;color:var(--gold)}.tax-panel sup{font-size:50px}.tax-panel .eyebrow{color:var(--gold)}.tax-panel small{color:#dcbec8}.package-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.package-grid article{background:#fff;border:1px solid var(--line);padding:26px;min-height:310px}.package-grid article.featured{background:var(--gold);transform:translateY(-12px)}.package-grid small{text-transform:uppercase;font-weight:900}.package-grid strong{font:48px Impact;color:var(--wine);display:block;margin:20px 0}.package-grid li{margin:12px 0;line-height:1.35}.sponsor-contact{padding:70px max(24px,calc((100% - 1180px)/2));background:#fff;display:grid;grid-template-columns:1fr 280px 60px;gap:30px;align-items:center}.sponsor-contact>div:nth-child(2){display:grid;gap:7px}.sponsor-contact a:not(.circle-arrow){text-decoration:underline;font-size:13px}
@media(max-width:900px){.site-header nav{display:none;position:absolute;top:84px;left:0;right:0;background:#fffaf3;padding:20px}.site-header nav.open{display:flex}.menu-button{display:block}.punch .photo{margin:0;border-radius:0}.match-strip,.story-panel,.sponsor-teaser,.sponsor-hero,.impact-intro,.project-focus,.tax-panel,.sponsor-contact{grid-template-columns:1fr}.match-strip #matches-list{grid-template-columns:1fr}.team-catalog,.contact-grid{grid-template-columns:repeat(2,1fr)}.planning-board article{grid-template-columns:1fr 1fr}.package-grid{grid-template-columns:1fr 1fr}.package-grid article.featured{transform:none}.story-photo img,.project-picture img{height:440px}}
@media(max-width:600px){.site-header{padding:0 16px}.site-header .brand>span:last-child{display:none}.punch h1{font-size:67px}.slash{font-size:28px}.match-strip{grid-template-columns:1fr}.match-strip .circle-arrow{display:none}.team-catalog,.contact-grid,.package-grid,.staff,.profile-stats,.planning-controls,.impact-grid{grid-template-columns:1fr}.planning-board article{grid-template-columns:1fr}.story-panel blockquote{font-size:19px}.story-photo img,.project-picture img{height:330px}.sponsor-teaser h2,.impact-intro h2,.project-focus h2,.tax-panel h2,.packages h2,.sponsor-contact h2{font-size:45px}.sponsor-teaser>strong,.tax-panel>strong{font-size:105px}.sponsor-collage img{height:380px}.sponsor-collage strong{font-size:38px;left:-10px}.match-calendar article{grid-template-columns:1fr}.match-calendar article>div{grid-template-columns:1fr 60px 1fr}.standings{overflow-x:auto}}

/* Tournois */
.tournament-grid{display:grid;gap:16px}.tournament-card{display:grid;grid-template-columns:220px 1fr;background:#fff;border:1px solid var(--line);border-left:7px solid var(--wine);padding:28px;gap:32px}.tournament-card:nth-child(2n){border-left-color:var(--gold)}.tournament-date{display:grid;align-content:start;gap:6px;color:var(--wine)}.tournament-date b{font:32px Impact,'Arial Narrow',sans-serif;text-transform:uppercase}.tournament-date span{font-size:12px}.tournament-card small{color:var(--wine);font-weight:900;text-transform:uppercase;letter-spacing:.11em}.tournament-card h2{font-size:44px}.tournament-card p{line-height:1.6;max-width:720px}.tournament-place{font-weight:800}.tournament-actions{display:flex;gap:10px;margin-top:20px}.tournament-actions a{padding:12px 15px;border:1px solid var(--wine);font-size:12px;font-weight:900}.tournament-actions a:first-child{background:var(--wine);color:#fff}.empty-state{background:#fff;padding:32px;border-left:7px solid var(--gold)}.all-results{display:inline-block;margin-top:18px;color:var(--wine);font-weight:900}.team-results{margin-top:26px;padding-top:36px;border-top:7px solid var(--gold)}

/* Navigation mobile et rythme de l’accueil */
.site-header nav{gap:clamp(10px,1.2vw,18px)}.site-header nav a{white-space:nowrap}
.menu-button{position:relative;overflow:hidden}.menu-button i{position:absolute;left:9px;width:25px;height:4px;background:var(--gold);transform:skewX(-25deg);transition:.2s}.menu-button i:nth-child(1){top:11px}.menu-button i:nth-child(2){top:19px;width:20px}.menu-button i:nth-child(3){top:27px;width:15px}.menu-button[aria-expanded="true"] i:nth-child(1){top:19px;transform:rotate(45deg)}.menu-button[aria-expanded="true"] i:nth-child(2){opacity:0}.menu-button[aria-expanded="true"] i:nth-child(3){top:19px;width:25px;transform:rotate(-45deg)}
@media(max-width:1080px){.site-header nav{display:none;position:absolute;top:84px;left:0;right:0;background:#fffaf3;flex-direction:column;gap:0;padding:10px 20px 22px;border-top:5px solid var(--gold);border-bottom:7px solid var(--wine);box-shadow:0 20px 30px #2506112b}.site-header nav.open{display:flex}.site-header nav a{font-size:15px;padding:14px 5px;border-bottom:1px solid #ded3cf}.site-header nav a:after{content:'→';float:right;color:var(--wine);font-weight:900}.menu-button{display:block}}
@media(max-width:900px){.site-header nav{top:84px;flex-direction:column;gap:0;padding:10px 20px 22px;border-top:5px solid var(--gold);border-bottom:7px solid var(--wine);box-shadow:0 20px 30px #2506112b}.site-header nav a{font-size:15px;padding:14px 5px;border-bottom:1px solid #ded3cf}.site-header nav a:after{content:'→';float:right;color:var(--wine);font-weight:900}}
@media(max-width:600px){.punch .hero-copy:before{display:none}.punch .eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:24px}.punch .eyebrow:before{content:'';width:38px;height:4px;background:var(--wine);box-shadow:12px 6px 0 var(--gold);transform:skewX(-25deg);flex:none}.punch h1{font-family:Arial,sans-serif;font-size:clamp(52px,17vw,68px);font-weight:950;line-height:.86;letter-spacing:-.07em}.punch .photo{margin-top:6px}.punch .slash{top:16px;bottom:auto;left:14px;font-family:Arial,sans-serif;font-size:17px;font-weight:950;transform:rotate(-2deg);padding:10px 14px;box-shadow:5px 5px 0 #161212}.section-heading h2,.story-panel h2{font-family:Arial,sans-serif;font-weight:950;letter-spacing:-.055em;line-height:.95}.section-heading h2{font-size:39px}.story-panel h2{font-size:43px}.story-panel{padding-top:58px;padding-bottom:58px}.tournament-card{grid-template-columns:1fr;padding:22px;gap:12px}.tournament-date b{font-family:Arial,sans-serif;font-size:24px;font-weight:950}.tournament-card h2{font-family:Arial,sans-serif;font-size:34px;font-weight:950;line-height:.95}.tournament-actions{flex-direction:column}.team-results{margin-top:12px}}

/* La photo d'équipe n'apparaît qu'une fois la bonne source chargée. */
.team-visual{height:min(60vw,600px);min-height:280px;border-radius:20px 100px;background:linear-gradient(135deg,#eee6e1,#fffaf3 48%,#e7d9dc);overflow:hidden}.team-visual img{height:100%;border-radius:0;opacity:0;transition:opacity .25s ease}.team-visual img.is-ready{opacity:1}

/* Fiche équipe : plusieurs engagements doivent rester lisibles et équilibrés. */
.profile-stats{grid-template-columns:minmax(220px,.55fr) minmax(0,1.45fr)}
.profile-stat{min-width:0;padding:32px 36px}
.profile-stat-count{display:grid;align-content:center}
.profile-stat-count>b{font:clamp(48px,6vw,72px)/1 Impact,'Arial Narrow',sans-serif;color:var(--wine)}
.profile-stats .profile-stat-count>span,.profile-stats .profile-stat-label{display:block;padding:0;font:800 11px/1.25 Arial,sans-serif;text-transform:uppercase;letter-spacing:.06em}
.profile-stat-engagements{border-left:1px solid #9f1a1a33}
.profile-stats .engagement-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-top:12px}
.profile-stats .engagement-chip{display:grid;gap:4px;padding:11px 13px;background:#fff8d6;border-left:4px solid var(--wine);text-transform:none;font-size:initial}
.profile-stats .engagement-chip strong{font:900 15px/1.15 Arial,sans-serif;color:var(--ink)}
.profile-stats .engagement-chip small{font:700 12px/1.3 Arial,sans-serif;color:#6b4a43}
@media(max-width:600px){.profile-stats{grid-template-columns:1fr}.profile-stat{padding:22px}.profile-stat-engagements{border-left:0;border-top:1px solid #9f1a1a33}.profile-stats .engagement-list{grid-template-columns:1fr}}


/* FCE site visual system v5 */

:root{
  --fce-card-border:#e2d8cf;
  --fce-soft:#f3eee8;
  --fce-card-shadow:
    0 18px 45px rgba(41,25,20,.075),
    0 2px 8px rgba(41,25,20,.04);
}


/* =========================
   Équipes
   ========================= */

.team-catalog{
  gap:22px;
}

.catalog-card{
  overflow:hidden;

  border:1px solid var(--fce-card-border)!important;
  border-top:0!important;
  border-radius:18px;

  padding:12px;

  background:#fff;

  box-shadow:var(--fce-card-shadow);

  transition:
    transform .18s ease,
    box-shadow .18s ease;
}

.catalog-card:hover{
  transform:translateY(-3px);

  box-shadow:
    0 22px 50px rgba(41,25,20,.11),
    0 3px 9px rgba(41,25,20,.05);
}

.catalog-image{
  overflow:hidden;
  border-radius:12px;
}

.catalog-card>div:last-child{
  border-top:1px solid #eee5df;
}


/* =========================
   Fiche équipe
   ========================= */

.profile-layout{
  gap:34px;
}

.team-visual{
  overflow:hidden;

  border-radius:18px;

  box-shadow:var(--fce-card-shadow);
}

.team-visual img{
  border-radius:18px;
}


.profile-stats{
  overflow:hidden;

  border:1px solid var(--fce-card-border);
  border-radius:18px;

  background:#fff;

  box-shadow:var(--fce-card-shadow);
}

.profile-stat-count{
  background:
    radial-gradient(
      circle at 90% 12%,
      rgba(255,205,52,.20),
      transparent 35%
    ),
    linear-gradient(
      120deg,
      #67101d,
      #9d171d
    );

  color:#fff;
}

.profile-stat-count>b{
  color:var(--gold)!important;
}

.profile-stats .profile-stat-count>span{
  color:#fff;
}

.profile-stat-engagements{
  background:#fff;
}

.profile-stats .engagement-chip{
  border:1px solid #e4d9d0;
  border-left:4px solid var(--wine);
  border-radius:10px;

  background:#faf8f5;

  box-shadow:0 4px 12px rgba(41,25,20,.035);
}


.staff{
  gap:18px;
}

.staff article{
  position:relative;
  overflow:hidden;

  border:1px solid var(--fce-card-border);
  border-radius:16px;

  padding:25px;

  box-shadow:
    0 12px 30px rgba(41,25,20,.06);
}

.staff article::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:4px;
  background:var(--wine);
}

.staff article.is-referent::before{
  background:var(--gold);
}


#team-training.rows{
  display:grid;
  gap:12px;
}

#team-training.rows article{
  grid-template-columns:
    130px
    minmax(0,1fr)
    minmax(150px,.8fr)
    auto;

  align-items:center;
  gap:18px;

  padding:18px 20px;

  border:1px solid var(--fce-card-border);
  border-top:0;
  border-radius:14px;

  background:#fff;

  box-shadow:
    0 10px 26px rgba(41,25,20,.05);
}

#team-training.rows article b:first-child{
  color:var(--wine);
  font-weight:900;
}

#team-training.rows article a{
  padding:8px 11px;

  border:1px solid var(--wine);
  border-radius:999px;

  color:var(--wine);
  font-size:11px;
  font-weight:900;
}


.team-results{
  margin-top:12px;
  padding-top:12px;
  border-top:0;
}


/* =========================
   Filtres généraux
   ========================= */

.filter-bar{
  gap:10px;
}

.filter-bar button{
  border:1px solid var(--wine);
  border-radius:999px;

  padding:10px 17px;

  background:#fff;
  color:var(--wine);

  cursor:pointer;

  transition:
    background .18s ease,
    color .18s ease,
    transform .18s ease;
}

.filter-bar button:hover{
  transform:translateY(-1px);
}

.filter-bar button.active,
.filter-bar button[aria-pressed="true"]{
  background:var(--wine);
  color:#fff;

  box-shadow:
    0 7px 18px rgba(91,14,26,.18);
}


/* =========================
   Planning
   ========================= */

.planning-controls{
  gap:16px;

  border:1px solid var(--fce-card-border);
  border-radius:18px;

  padding:20px;

  box-shadow:
    0 14px 34px rgba(41,25,20,.055);
}

.planning-controls select{
  min-height:46px;

  border:1px solid #ddd2c9;
  border-radius:10px;

  background:#faf8f5;
}


.planning-board{
  gap:14px;
}

.planning-board article{
  overflow:hidden;

  border:1px solid var(--fce-card-border);
  border-left:0;
  border-radius:16px;

  padding:20px;

  background:#fff;

  box-shadow:
    0 12px 30px rgba(41,25,20,.055);
}

.planning-board article::before{
  content:"";
  align-self:stretch;

  width:5px;

  background:var(--wine);
}

.planning-board article a{
  padding:8px 11px;

  border:1px solid var(--wine);
  border-radius:999px;

  text-decoration:none;
}


/* =========================
   Contacts
   ========================= */

.contact-routing{
  gap:18px;
}

.contact-routing article,
.contact-grid article{
  overflow:hidden;

  border:1px solid var(--fce-card-border);
  border-left:0;
  border-radius:16px;

  background:#fff;

  box-shadow:
    0 12px 30px rgba(41,25,20,.055);
}

.contact-routing article{
  position:relative;
}

.contact-routing article::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;

  width:5px;

  background:var(--wine);
}

.contact-routing article:last-child::before{
  background:var(--gold);
}

.contact-grid{
  gap:18px;
}


/* =========================
   Tournois
   ========================= */

.tournament-grid{
  gap:22px;
}

.tournament-card{
  overflow:hidden;

  border:1px solid var(--fce-card-border);
  border-left:0!important;
  border-radius:18px;

  background:#fff;

  box-shadow:var(--fce-card-shadow);
}

.tournament-card::before{
  content:"";

  width:6px;
  align-self:stretch;

  background:var(--wine);
}

.tournament-card:nth-child(2n)::before{
  background:var(--gold);
}

.tournament-actions a{
  border-radius:999px;
}


/* =========================
   Mécénat
   ========================= */

.package-grid{
  gap:18px;
}

.package-grid article{
  overflow:hidden;

  border:1px solid var(--fce-card-border);
  border-radius:18px;

  box-shadow:
    0 14px 34px rgba(41,25,20,.055);
}

.package-grid article.featured{
  box-shadow:
    0 22px 48px rgba(41,25,20,.12);
}


/* =========================
   États vides
   ========================= */

.empty-state{
  border:1px solid var(--fce-card-border);
  border-left:6px solid var(--gold);
  border-radius:14px;

  box-shadow:
    0 10px 24px rgba(41,25,20,.045);
}


/* =========================
   Smartphone
   ========================= */

@media(max-width:720px){

  .profile-layout{
    gap:25px;
  }

  .team-visual,
  .team-visual img,
  .profile-stats,
  .catalog-card,
  .planning-controls,
  .planning-board article,
  .contact-routing article,
  .contact-grid article,
  .tournament-card,
  .package-grid article{
    border-radius:13px;
  }

  #team-training.rows article{
    grid-template-columns:1fr 1fr;
    gap:8px 12px;

    padding:15px;
  }

  #team-training.rows article small{
    grid-column:1/-1;
  }

  #team-training.rows article a{
    justify-self:start;
  }

  /*
   * Un peu moins d'air vertical sur petit écran :
   * on garde la respiration sans multiplier
   * les écrans de défilement.
   */
  .content{
    padding-top:45px;
    padding-bottom:45px;
  }

  .team-catalog,
  .contact-grid{
    gap:14px;
  }

  .tournament-card{
    gap:17px;
    padding:20px;
  }
}


/* FCE visual polish v6 */


/* ========================================
   PLANNING — regroupé par journée
   ======================================== */

.planning-board{
  display:grid;
  gap:24px;
}


.planning-day{
  overflow:hidden;

  border:1px solid var(--fce-card-border);
  border-radius:18px;

  background:#fff;

  box-shadow:var(--fce-card-shadow);
}


.planning-day__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;

  padding:18px 22px;

  background:
    radial-gradient(
      circle at 92% 12%,
      rgba(255,205,52,.20),
      transparent 34%
    ),
    linear-gradient(
      120deg,
      #67101d 0%,
      #8e1424 60%,
      #a41a2b 100%
    );

  color:#fff;
}


.planning-day__header>div{
  display:grid;
  gap:3px;
}


.planning-day__eyebrow{
  color:var(--gold);

  font-size:9px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}


.planning-day__header h2{
  margin:0;

  color:#fff;

  font-size:25px;
  line-height:1;
}


.planning-day__count{
  flex:none;

  padding:7px 10px;

  border:1px solid rgba(255,255,255,.28);
  border-radius:999px;

  background:rgba(255,255,255,.10);

  color:#fff;

  font-size:10px;
  font-weight:900;

  white-space:nowrap;
}


.planning-day__sessions{
  display:grid;
}


.planning-board .planning-session{
  display:grid;

  grid-template-columns:
    105px
    minmax(135px,.7fr)
    minmax(230px,1.35fr)
    auto;

  align-items:center;

  gap:20px;

  margin:0;
  padding:17px 20px;

  border:0;
  border-bottom:1px solid #eee7e1;
  border-radius:0;

  background:#fff;

  box-shadow:none;
}


.planning-board .planning-session::before{
  display:none;
}


.planning-board .planning-session:last-child{
  border-bottom:0;
}


.planning-session:hover{
  background:#faf8f5;
}


.planning-session time{
  display:grid;
  gap:1px;

  width:max-content;

  padding:9px 11px;

  border-radius:10px;

  background:#241c1b;

  color:#fff;
}


.planning-session time strong{
  color:var(--gold);

  font-size:17px;
  line-height:1;
}


.planning-session time span{
  color:#ddd4d1;

  font-size:10px;
}


.planning-session__team,
.planning-session__venue{
  display:grid;
  gap:3px;

  min-width:0;
}


.planning-session__team small,
.planning-session__venue small{
  color:var(--wine);

  font-size:9px;
  font-weight:900;
  letter-spacing:.07em;
  text-transform:uppercase;
}


.planning-session__team h3{
  margin:0;

  font-size:18px;
}


.planning-session__venue strong{
  font-size:14px;
  line-height:1.25;
}


.planning-session__venue span{
  color:#756963;

  font-size:12px;
  line-height:1.35;
}


.planning-board
.planning-session__map{
  display:inline-flex;
  align-items:center;
  gap:10px;

  justify-self:end;

  padding:9px 12px;

  border:1px solid var(--wine);
  border-radius:999px;

  color:var(--wine);

  font-size:11px;
  font-weight:900;

  text-decoration:none;

  white-space:nowrap;

  transition:
    background .18s ease,
    color .18s ease;
}


.planning-board
.planning-session__map:hover{
  background:var(--wine);
  color:#fff;
}


/* ========================================
   FICHE ÉQUIPE
   ======================================== */

#team-profile .team-results>h2{
  margin-bottom:18px;
}


#team-profile .all-results{
  display:inline-flex;

  margin-top:18px;
  padding:10px 14px;

  border:1px solid var(--wine);
  border-radius:999px;

  color:var(--wine);

  font-size:11px;
  font-weight:900;

  text-decoration:none;
}


#team-profile .all-results:hover{
  background:var(--wine);
  color:#fff;
}


/* ========================================
   PARTENAIRES
   ======================================== */

.sponsor-logos a{
  overflow:hidden;

  border-radius:14px;

  box-shadow:
    0 8px 22px rgba(41,25,20,.045);

  transition:
    transform .18s ease,
    box-shadow .18s ease;
}


.sponsor-logos a:hover{
  transform:translateY(-2px);

  box-shadow:
    0 13px 28px rgba(41,25,20,.075);
}


/* ========================================
   SMARTPHONE
   ======================================== */

@media(max-width:720px){

  .planning-board{
    gap:17px;
  }


  .planning-day{
    border-radius:13px;
  }


  .planning-day__header{
    padding:15px 16px;
  }


  .planning-day__header h2{
    font-size:21px;
  }


  .planning-board .planning-session{
    grid-template-columns:
      74px
      minmax(0,1fr);

    gap:8px 12px;

    padding:14px;
  }


  .planning-session time{
    grid-column:1;
    grid-row:1 / 4;

    align-self:start;

    padding:8px 9px;
  }


  .planning-session time strong{
    font-size:15px;
  }


  .planning-session__team{
    grid-column:2;
    grid-row:1;
  }


  .planning-session__venue{
    grid-column:2;
    grid-row:2;
  }


  .planning-board
  .planning-session__map{
    grid-column:2;
    grid-row:3;

    justify-self:start;

    margin-top:4px;
  }


  .planning-session__team h3{
    font-size:16px;
  }


  .planning-session__venue strong{
    font-size:13px;
  }

}

/* Page Équipes — millésimes calculés depuis la saison active */
.catalog-birthyears{
  display:flex;
  align-items:center;
  gap:9px;
  width:max-content;
  max-width:100%;
  margin:9px 0 12px;
  padding:6px 9px;
  border-radius:999px;
  background:#f4eee8;
  color:#5f171f;
}
.catalog-birthyears span{
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.catalog-birthyears strong{
  font-size:13px;
  line-height:1;
  white-space:nowrap;
}
.catalog-level{
  margin:0 0 15px;
  color:#746965;
  font-size:13px;
}
@media(max-width:600px){
  .catalog-birthyears{margin-top:7px}
  .catalog-birthyears strong{font-size:12px}
}

/* Page Équipes — finition des cartes */
.team-catalog{
  align-items:stretch;
}
.catalog-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  height:100%;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 8px 24px rgba(57,39,31,.08);
}
.catalog-card .catalog-image{
  flex:0 0 auto;
  border-radius:10px 10px 0 0;
}
.catalog-card>small{
  margin-top:14px;
}
.catalog-card h2{
  margin:12px 0 7px;
  font-size:clamp(28px,2.5vw,38px);
  line-height:.98;
  text-wrap:balance;
}
.catalog-birthyears{
  display:inline-flex;
  align-items:center;
  align-self:flex-start;
  width:auto;
  max-width:100%;
  margin:2px 0 12px;
  padding:7px 10px;
  border-radius:999px;
  background:#f3ebe6;
  color:var(--wine);
  font-size:11px;
  font-weight:900;
  line-height:1;
  letter-spacing:.015em;
  white-space:nowrap;
}
.catalog-level{
  min-height:20px;
  margin:0 0 14px;
  color:#5f5551;
  font-size:13px;
  line-height:1.35;
}
.catalog-card>.catalog-card__footer{
  margin-top:auto;
  padding-top:14px;
  border-top:1px solid var(--line);
  display:flex;
  gap:10px;
  align-items:center;
}
.catalog-card__footer span{
  min-width:0;
  font-size:13px;
}
.catalog-card__footer i{
  margin-left:auto;
  flex:0 0 auto;
  font-style:normal;
  font-weight:900;
  color:var(--wine);
  white-space:nowrap;
}
@media(max-width:900px){
  .team-catalog{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:600px){
  .team-catalog{
    grid-template-columns:1fr;
  }
  .catalog-card h2{
    font-size:32px;
  }
  .catalog-birthyears{
    font-size:11px;
  }
  .catalog-level{
    min-height:0;
  }
}


/* Page Équipes — années de naissance */
.team-catalog{align-items:stretch}
.catalog-card{display:flex;flex-direction:column;min-width:0;height:100%}
.catalog-card h2{margin:12px 0 7px;line-height:.98;text-wrap:balance}
.catalog-birthyears{display:inline-flex;align-items:center;align-self:flex-start;width:auto;margin:2px 0 12px;padding:7px 10px;border-radius:999px;background:#f3ebe6;color:var(--wine);font-size:11px;font-weight:900;line-height:1;white-space:nowrap}
.catalog-level{min-height:20px;margin:0 0 14px;color:#5f5551;font-size:13px}
.catalog-card>.catalog-card__footer{margin-top:auto;padding-top:14px;border-top:1px solid var(--line);display:flex;gap:10px;align-items:center}
.catalog-card__footer span{min-width:0;font-size:13px}
.catalog-card__footer i{margin-left:auto;flex:0 0 auto;font-style:normal;font-weight:900;color:var(--wine);white-space:nowrap}
@media(max-width:900px){.team-catalog{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.team-catalog{grid-template-columns:1fr}.catalog-card h2{font-size:32px}.catalog-level{min-height:0}}


/* Accueil — années de naissance dans le carrousel équipes */
.team-card b{
  line-height:.96;
  text-wrap:balance;
}
.team-card-birthyears{
  width:max-content;
  max-width:100%;
  margin:9px 0 0;
  padding:6px 9px;
  border-radius:999px;
  background:#fff2;
  color:var(--gold);
  font:900 11px/1 Arial,sans-serif;
  letter-spacing:.02em;
  text-transform:none;
}
.team-card-level{
  margin-top:10px;
  font-size:10px;
  line-height:1.2;
  opacity:.92;
}
@media(max-width:600px){
  .team-card b{
    font-size:42px;
  }
  .team-card-birthyears{
    font-size:10px;
  }
}
