/* =================================================
NDC — STYLE (fichier)
Mets ici TON CSS complet (le gros), sans les bugs du Customizer.
================================================= */

/* Safe base */
html,body{max-width:100%;overflow-x:hidden}
*,*::before,*::after{box-sizing:border-box}

/* Header scrollbar fix */
.main-header-bar,.ast-primary-header-bar{overflow:hidden!important}

/* >>> COLLE TON CSS COMPLET CI-DESSOUS <<< */

/* =========================================================
NDC FOOT TEMPLATE — CSS UNIQUE, PROPRE & STABLE
Objectif : garder ton design actuel, et homogénéiser UNIQUEMENT
les cartes de matchs/résultats + corriger les débordements.
Palette : #050667 (foncé) / #3a95f5 (clair)
========================================================= */

/* =================================================
TEMPLATE FOOT - PROPRE & STABLE
Palette : #050667 (foncé) / #3a95f5 (clair)
================================================= */

/* =================================================
0) HOME FULL WIDTH (fix principal)
- Astra met le contenu dans .ast-container (boxed)
- Sur la home, on veut full width
================================================= */
body.home .site-content > .ast-container{
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.home .site-content{
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* =================================================
1) HEADER - BLEU CLAIR
================================================= */
.main-header-bar{
  background:#3a95f5 !important;
  border-bottom:none !important;
}
.ast-primary-header-bar{
  min-height:90px;
  padding:0 24px;
  overflow:visible !important;
}
.ast-site-identity,
.site-branding{
  display:flex !important;
  align-items:center !important;
  gap:14px;
  min-height:90px;
}

/* Logo (anti-écrasement) */
.custom-logo-link{
  display:flex;
  align-items:center;
  line-height:0;
  flex-shrink:0;
}
.custom-logo-link img,
.custom-logo-link img.custom-logo{
  max-height:66px;
  width:auto !important;
  height:auto !important;
  max-width:none !important;
  object-fit:contain;
  display:block;
}

/* Titre */
.site-title a{
  color:#fff !important;
  font-weight:700;
  font-size:20px;
  white-space:nowrap;
}

/* Menu */
.main-header-menu > li > a{
  color:#fff !important;
  font-weight:600;
  padding:10px 14px;
}
.main-header-menu > li.current-menu-item > a{
  border-bottom:2px solid rgba(255,255,255,.95);
}

@media (max-width:768px){
  .ast-primary-header-bar{min-height:72px;}
  .custom-logo-link img{max-height:50px;}
  .site-title a{font-size:16px;}
}

/* =================================================
2) HEADER TRANSPARENT - ESPACE GLOBAL
================================================= */
.ast-theme-transparent-header #content,
.ast-theme-transparent-header .site-content{
  padding-top:110px;
}
@media (max-width:768px){
  .ast-theme-transparent-header #content,
  .ast-theme-transparent-header .site-content{
    padding-top:85px;
  }
}
.home.ast-theme-transparent-header #content,
.home.ast-theme-transparent-header .site-content{
  padding-top:0 !important;
}

/* =================================================
3) HERO - BLEU FONCÉ + CTA EN LIGNE
================================================= */
.ndc-hero{
  background:#050667;
  min-height:62vh;
  display:flex;
  align-items:center;
}
.home .ndc-hero{ padding-top:110px; }
@media (max-width:768px){
  .home .ndc-hero{ padding-top:85px; }
}

.ndc-hero .elementor-container,
.ndc-hero .e-con-inner{
  max-width:1100px;
  margin:0 auto;
  padding:55px 20px 70px;
  text-align:center;
}

/* BIENVENUE */
.ndc-hero .hero-welcome{
  color:#fff;
  display:block;
  font-weight:800;
  letter-spacing:2px;
  text-transform:uppercase;
  font-size:30px;
  margin:0;
  opacity:.95;
}
.ndc-hero .hero-welcome::after{
  content:"";
  display:block;
  width:64px;
  height:3px;
  margin:14px auto 18px;
  background:rgba(255,255,255,.85);
  border-radius:3px;
}

/* NOM DU CLUB */
.ndc-hero .hero-club{
  color:#3a95f5;
  display:block;
  font-weight:900;
  text-transform:uppercase;
  font-size:clamp(40px, 4.3vw, 76px);
  line-height:1.00;
  margin:0;
}
.ndc-hero .hero-club::after{
  content:"";
  display:block;
  width:64px;
  height:3px;
  margin:18px auto 14px;
  background:rgba(255,255,255,.85);
  border-radius:3px;
}

/* CTA */
.ndc-hero-ctas{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
  margin-top:32px;
}
.ndc-hero .elementor-button{
  padding:16px 28px !important;
  border-radius:999px !important;
  font-weight:900 !important;
  font-size:16px !important;
  min-width:200px;
  background-color:#3a95f5 !important;
  border-color:#3a95f5 !important;
  color:#fff !important;
	
}
.ndc-btn-outline .elementor-button{
  background:transparent !important;
  border:2px solid #3a95f5 !important;
  color:#3a95f5 !important;
	
}
.ndc-btn-outline .elementor-button:hover{
  background:rgba(58,149,245,.14) !important;
	
}

@media (max-width:768px){
  .ndc-hero{min-height:52vh;}
  .ndc-hero .hero-club{font-size:clamp(32px, 7vw, 48px);}
  .ndc-hero .elementor-button{
    min-width:180px;
    padding:14px 22px !important;
    font-size:15px !important;
  }
}

/* =================================================
4) PROCHAINS MATCHS + CARDS
================================================= */
.ndc-next-match{
  max-width:1100px;
  margin:34px auto;
  background:#fff;
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 10px 26px rgba(0,0,0,0.10);
  border:1px solid rgba(5,6,103,0.12);
}
.ndc-next-match .elementor-heading-title{
  background:#050667;
  color:#fff !important;
  padding:16px 20px !important;
  font-size:18px !important;
  font-weight:900 !important;
  text-transform:uppercase;
  letter-spacing:.7px;
  margin:0 !important;
}
/*.ndc-next-match .elementor-widget-shortcode{ padding:22px !important; }*/
.ndc-next-match .elementor-widget-shortcode .elementor-widget-container{ display:block !important; }

.ndc-next-match .elementor-widget-shortcode .elementor-widget-container > .elementor-shortcode{
  display:grid !important;
  grid-template-columns:repeat(auto-fit, minmax(360px, 1fr));
  gap:18px;
  align-items:start;
  justify-content:center;
}
.ndc-next-match .elementor-widget-shortcode .elementor-widget-container > .elementor-shortcode > p{
  margin:0 !important;
  padding:0 !important;
  display:contents;
}
.ndc-next-match .elementor-widget-shortcode .elementor-widget-container > .elementor-shortcode br{
  display:none !important;
}

.ndc-next-card{
  width:100%;
  margin:0 !important;
  background:#fff;
  border:1px solid rgba(5,6,103,.12);
  border-radius:14px;
  padding:14px 16px;
  box-shadow:0 10px 22px rgba(0,0,0,.10);
  transition:transform .15s ease;
  max-width:none;
}
.ndc-next-top{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  justify-content:space-between;
  font-weight:900;
  color:#050667;
  margin-bottom:10px;
  font-size:14px;
}
.ndc-next-top > *{ min-width:0; white-space:nowrap; }

.ndc-next-line{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  text-decoration:none;
  padding:10px 12px;
  border-radius:12px;
  background:#f5f7ff;
  border:1px solid rgba(5,6,103,.10);
}
.ndc-team{ display:flex; align-items:center; gap:10px; min-width:0; }
.ndc-team-a{ justify-content:flex-end; }
.ndc-team-b{ justify-content:flex-start; }

.ndc-name{
  font-weight:900;
  color:#050667;
  min-width:0;
  max-width:260px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ndc-vs{
  font-weight:1000;
  letter-spacing:2px;
  color:#3a95f5;
  flex:0 0 auto;
}
.ndc-logo img{ width:34px; height:34px; object-fit:contain; display:block; }
.ndc-logo-fallback{
  width:34px; height:34px;
  display:block;
  border-radius:999px;
  background:rgba(58,149,245,.18);
}

.ndc-next-meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px 12px;
  margin-top:12px;
  color:#050667;
  font-weight:700;
  font-size:13px;
}
.ndc-next-meta .ndc-meta{
  background:#f5f7ff;
  padding:6px 10px;
  border-radius:10px;
  border:1px solid rgba(5,6,103,.08);
}
.ndc-next-card:hover{ transform:translateY(-2px); }

.ndc-next-badge{
  margin-left:auto;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  border:1px solid rgba(5,6,103,.2);
  background:#f5f7ff;
  color:#050667;
  white-space:nowrap;
}
.ndc-next-badge.is-upcoming{
  background:rgba(58,149,245,.12);
  border-color:rgba(58,149,245,.35);
}
.ndc-next-badge.is-live{
  background:rgba(255,140,0,.15);
  border-color:rgba(255,140,0,.5);
  color:#8a4b00;
}
.ndc-next-badge.is-finished{
  background:rgba(5,6,103,.06);
  border-color:rgba(5,6,103,.25);
  opacity:.9;
}

/* Badge équipe (cat) */
.ndc-next-card .ndc-next-cat{
  display:inline-flex;
  align-items:center;
  padding:6px 14px;
  border-radius:999px;
  font-weight:800;
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:.4px;
  line-height:1;
  background:#e5e7eb;
  color:#111;
  border:1px solid rgba(0,0,0,.08);
}

/* Couleurs par équipe + bordure gauche */
.ndc-team-seniors-a .ndc-next-cat{ background:#0b1b4d; color:#fff; }
.ndc-team-seniors-a{ border-left:6px solid #0b1b4d; }

.ndc-team-veterans .ndc-next-cat{ background:#1f7a3a; color:#fff; }
.ndc-team-veterans{ border-left:6px solid #1f7a3a; }

.ndc-team-u18 .ndc-next-cat{ background:#5b21b6; color:#fff; }
.ndc-team-u18{ border-left:6px solid #5b21b6; }

.ndc-team-u15 .ndc-next-cat{ background:#ea580c; color:#fff; }
.ndc-team-u15{ border-left:6px solid #ea580c; }

.ndc-team-u13_d3d .ndc-next-cat{ background:#b91c1c; color:#fff; }
.ndc-team-u13_d3d{ border-left:6px solid #b91c1c; }

.ndc-team-u13_d3e .ndc-next-cat{ background:#be185d; color:#fff; }
.ndc-team-u13_d3e{ border-left:6px solid #be185d; }

.ndc-team-u11-3 .ndc-next-cat{ background:#0284c7; color:#fff; }
.ndc-team-u11-3{ border-left:6px solid #0284c7; }

.ndc-team-u11-4 .ndc-next-cat{ background:#0d9488; color:#fff; }
.ndc-team-u11-4{ border-left:6px solid #0d9488; }

/* =================================================
5) SECTIONS HOME (HTML direct)
================================================= */
.ndc-section{
  max-width:1200px;
  margin:0 auto;
  padding:26px 26px;
}
@media (max-width:980px){
  .ndc-section{ padding:18px 16px; }
}

.ndc-cards{
  display:grid;
  grid-template-columns:repeat(3, minmax(260px, 1fr));
  gap:18px;
  justify-content:center;
}
@media (max-width:980px){
  .ndc-cards{ grid-template-columns:1fr; }
}

.ndc-card{
  background:#fff;
  border:1px solid rgba(5,6,103,.12);
  border-radius:16px;
  padding:18px;
  box-shadow:0 10px 22px rgba(0,0,0,.08);
  min-height:190px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.ndc-card h3{
  margin:0 0 8px 0;
  font-weight:900;
  color:#050667;
  font-size:19px;
  line-height:1.15;
}
.ndc-card .ndc-date{
  font-size:13px;
  font-weight:900;
  color:#3a95f5;
  margin-bottom:10px;
  text-transform:uppercase;
  letter-spacing:.6px;
}
.ndc-card p{
  margin:0 0 14px 0;
  color:#050667;
  font-weight:600;
  opacity:.9;
}
.ndc-tag{
  display:inline-block;
  font-size:12px;
  font-weight:900;
  color:#3a95f5;
  text-transform:uppercase;
  letter-spacing:.6px;
  margin-bottom:10px;
}

/* Bouton */
.ndc-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 18px;
  border-radius:999px;
  background:#3a95f5;
  border:2px solid #3a95f5;
  color:#fff !important;
  font-weight:900;
  text-decoration:none !important;
  font-size:14px;
  transition:transform .15s ease, background .15s ease, border-color .15s ease;
}
.ndc-btn.ndc-btn-outline{
  background:transparent;
  color:#3a95f5 !important;
}
.ndc-btn:hover{
  background:#050667;
  border-color:#050667;
  transform:translateY(-2px);
}

/* =================================================
6) FOOTER ASTRA
================================================= */
.site-primary-footer-wrap[data-section="section-primary-footer-builder"]{
  background:#3a95f5 !important;
  padding-top:40px !important;
  padding-bottom:40px !important;
}
.site-below-footer-wrap[data-section="section-below-footer-builder"]{
  background:#3a95f5 !important;
}
.site-footer{ background:#050667 !important; }

.site-footer,
.site-footer p,
.site-footer li,
.site-footer span,
.site-footer .widget,
.site-footer .widget-title{
  color:rgba(255,255,255,.92) !important;
}
.site-footer a{
  color:#fff !important;
  text-decoration:none;
  font-weight:700;
}
.site-footer a:hover{ text-decoration:underline; }

.site-footer .widget-title{
  color:#3a95f5 !important;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.6px;
  font-size:13px;
}
.site-below-footer-wrap{
  border-top:1px solid rgba(255,255,255,.12) !important;
}
@media(max-width:768px){
  .site-footer{ text-align:center; }
}

/* =================================================
7) SPORTPRESS CALENDAR — SKIN PRO (1 seule version)
================================================= */
body .sp-calendar{
  max-width:1280px;
  margin:22px auto 26px;
  background:#fff;
  border:1px solid rgba(5,6,103,.12);
  border-radius:16px;
  box-shadow:0 10px 26px rgba(0,0,0,.08);
  overflow:hidden;
}
body .sp-calendar table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  margin:0;
}
body .sp-calendar thead th{
  background:#050667;
  color:#fff;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.6px;
  padding:16px 14px;
  border:0;
}
body .sp-calendar .sp-calendar-weekday th,
body .sp-calendar thead tr:nth-child(2) th{
  background:rgba(58,149,245,.10);
  color:#050667;
  font-weight:900;
  padding:10px 8px;
  text-transform:uppercase;
  letter-spacing:.5px;
  font-size:12px;
}
body .sp-calendar td{
  background:#fff;
  border-top:1px solid rgba(5,6,103,.08);
  border-right:1px solid rgba(5,6,103,.08);
  height:58px;
  vertical-align:top;
  padding:8px 8px;
  position:relative;
  transition:background .15s ease;
}
body .sp-calendar tr td:last-child{ border-right:0; }

body .sp-calendar td:nth-child(6),
body .sp-calendar td:nth-child(7){ background:#f5f7ff; }

body .sp-calendar td:hover{ background:rgba(58,149,245,.08); }

body .sp-calendar td.sp-empty,
body .sp-calendar td.empty,
body .sp-calendar td.pad{
  background:#fafafa;
  color:rgba(5,6,103,.35);
}

body .sp-calendar .has-events{
  box-shadow:inset 0 0 0 2px rgba(58,149,245,.35);
  border-radius:12px;
}
body .sp-calendar .has-events:after{
  content:"";
  position:absolute;
  right:10px;
  top:10px;
  width:10px;
  height:10px;
  border-radius:999px;
  background:#3a95f5;
}

body .sp-calendar a{
  color:#3a95f5;
  font-weight:900;
  text-decoration:none;
}
body .sp-calendar a:hover{ text-decoration:underline; }

body .sp-calendar .sp-calendar-nav,
body .sp-calendar .sp-calendar-nav a{
  color:#fff !important;
  font-weight:900;
}

@media(max-width:980px){
  body .sp-calendar{ max-width:96%; }
}
@media(max-width:768px){
  body .sp-calendar td{ height:46px; padding:6px; }
}

/* =================================================
8) NDC CALENDAR CUSTOM (ndc_event_calendar)
================================================= */
.ndc-spcal{
  max-width:1100px;
  margin:26px auto 34px;
  background:#fff;
  border:1px solid rgba(5,6,103,.12);
  border-radius:16px;
  box-shadow:0 10px 26px rgba(0,0,0,.08);
  overflow:hidden;
}
.ndc-spcal__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 16px;
  background:#050667;
  color:#fff;
}
.ndc-spcal__title{
  font-weight:900;
  letter-spacing:.6px;
  text-transform:uppercase;
}
.ndc-spcal__nav{
  width:36px;
  height:36px;
  border-radius:10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#fff !important;
  text-decoration:none !important;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  font-weight:900;
}
.ndc-spcal__table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
}
.ndc-spcal__table thead th{
  background:rgba(5,6,103,.08);
  color:#050667;
  font-weight:900;
  padding:10px 8px;
  text-transform:uppercase;
  letter-spacing:.5px;
  font-size:12px;
}
.ndc-spcal__table td{
  border-top:1px solid rgba(5,6,103,.08);
  border-right:1px solid rgba(5,6,103,.08);
  height:110px;
  vertical-align:top;
  padding:10px 10px 12px;
  position:relative;
}
.ndc-spcal__table tr td:last-child{ border-right:0; }

.ndc-spcal__empty{ background:linear-gradient(180deg, #fafafa, #ffffff); }
.ndc-spcal__day{ background:#fff; }
.ndc-spcal__day:nth-child(6),
.ndc-spcal__day:nth-child(7){ background:#f5f7ff; }

.ndc-spcal__num{
  position:absolute;
  top:8px;
  right:10px;
  margin:0;
  font-weight:900;
  color:#050667;
  font-size:12px;
  opacity:.85;
}
.ndc-spcal__badges{
  margin-top:18px;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-content:flex-start;
}
.ndc-spcal__badge{
  display:inline-flex;
  align-items:center;
  padding:5px 10px;
  border-radius:999px;
  font-size:11px;
  font-weight:900;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:.4px;
  text-decoration:none !important;
  background:rgba(58,149,245,.14);
  border:1px solid rgba(58,149,245,.28);
  color:#050667 !important;
}
.ndc-spcal__badge.ndc-team-u18{ background:#5b21b6; border-color:#5b21b6; color:#fff !important; }
.ndc-spcal__badge.ndc-team-seniors-a{ background:#0b1b4d; border-color:#0b1b4d; color:#fff !important; }
.ndc-spcal__badge.ndc-team-veterans{ background:#1f7a3a; border-color:#1f7a3a; color:#fff !important; }
.ndc-spcal__badge.ndc-team-u15{ background:#ea580c; border-color:#ea580c; color:#fff !important; }

@media(max-width:900px){
  .ndc-spcal{ margin:18px 12px; }
  .ndc-spcal__table td{ height:96px; }
}
@media(max-width:520px){
  .ndc-spcal__table td{ height:auto; min-height:84px; }
  .ndc-spcal__num{ top:8px; right:8px; }
}

/* =================================================
9) RÉSULTATS — score visible + header + titres de mois
================================================= */
.ndc-next-card .ndc-meta-score{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.ndc-next-card .ndc-scorebox{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:72px;
  padding:6px 12px;
  border-radius:999px;
  font-weight:800;
  letter-spacing:.5px;
  background:rgba(0,0,0,.06);
  border:1px solid rgba(0,0,0,.10);
  box-shadow:0 6px 18px rgba(0,0,0,.08);
}
@media (max-width:767px){
  .ndc-next-card .ndc-scorebox{ min-width:64px; }
}

/* Header Résultats */
.ndc-month__header{
  background:#08185a;
  border-radius:16px;
  padding:16px 18px;
  margin:10px 0 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.ndc-month__title{ color:#fff; font-weight:900; letter-spacing:.5px; }
.ndc-month__subtitle{ color:rgba(255,255,255,.75); font-weight:600; font-size:13px; margin-top:4px; }

/* Filtres (Résultats) – visibles dans header */
.ndc-month__filters{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  justify-content:flex-end;
  margin:0;
}
.ndc-filter{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:7px 14px;
  border-radius:999px;
  font-weight:800;
  font-size:12px;
  text-decoration:none !important;
  background:rgba(255,255,255,.12) !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.35) !important;
  transition:all .2s ease;
}
.ndc-filter:hover{
  background:rgba(255,255,255,.25) !important;
  border-color:#fff !important;
}
.ndc-filter.is-active{
  background:#fff !important;
  color:#0b1a4a !important;
  border-color:#fff !important;
  box-shadow:0 4px 12px rgba(0,0,0,.15);
}

/* Titres mois */
.ndc-results__monthTitle{
  display:flex;
  align-items:center;
  gap:12px;
  margin:28px 0 14px;
  padding:10px 16px;
  background:linear-gradient(90deg, #2f8df3, #5fb4ff);
  border-radius:12px;
  color:#fff;
  font-weight:800;
  letter-spacing:.4px;
  text-transform:capitalize;
  box-shadow:0 6px 18px rgba(47,141,243,.25);
}
.ndc-results__monthTitle::before{
  content:"";
  width:6px;
  height:22px;
  border-radius:4px;
  background:#fff;
  opacity:.85;
}
.ndc-next-wrap{ margin-bottom:24px; }

/* =================================================
10) RESPONSIVE GLOBAL (mobile)
================================================= */
@media (max-width:768px){
  .ndc-next-match{ margin:22px 15px; }
  .ndc-next-top{ flex-wrap:wrap; justify-content:flex-start; }
  .ndc-next-top > *{ white-space:normal; }
  .ndc-next-line{ padding:10px; }
  .ndc-name{ max-width:42vw; font-size:13px; }
  .ndc-logo img, .ndc-logo-fallback{ width:30px; height:30px; }

  footer, .site-footer{ text-align:center !important; }
  html, body{ overflow-x:hidden !important; }
}

/* =========================================================
PATCH RESTAURATION (HOME + PARTENAIRES + CALENDRIER + FILTRES)
========================================================= */

/* -------------------------
A) HOME : cards côte/côte (desktop)
------------------------- */

/* Prochains matchs (zone Elementor) : forcer 2/3 colonnes desktop */
.ndc-next-match .elementor-widget-shortcode .elementor-widget-container > .elementor-shortcode{
  display:grid !important;
  grid-template-columns: repeat(3, minmax(0,1fr)) !important;
  gap:18px !important;
  justify-items:stretch !important;
}
@media (max-width: 1200px){
  .ndc-next-match .elementor-widget-shortcode .elementor-widget-container > .elementor-shortcode{
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  }
}
@media (max-width: 900px){
  .ndc-next-match .elementor-widget-shortcode .elementor-widget-container > .elementor-shortcode{
    grid-template-columns: 1fr !important;
  }
}

/* Si tu as des grilles via .ndc-next-wrap (autres pages) */
.ndc-next-wrap .ndc-next-grid{
  display:grid !important;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap:18px;
}
@media (max-width: 900px){
  .ndc-next-wrap .ndc-next-grid{ grid-template-columns:1fr !important; }
}


/* -------------------------
B) PARTENAIRES : carte + slider infini (restauration)
------------------------- */

.ndc-partners{
  max-width:1200px;
  margin:0 auto;
  padding:28px 26px 34px;
}

/* Carte "Nos partenaires" */
.ndc-partners-empty{
  display:flex;
  gap:18px;
  align-items:flex-start;
  background:#fff;
  border:1px solid rgba(5,6,103,.12);
  border-radius:16px;
  box-shadow:0 10px 22px rgba(0,0,0,.06);
  padding:18px 18px;
  margin-bottom:18px;
}
.ndc-partners-empty-icon{
  flex:0 0 auto;
  width:54px;
  height:54px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(58,149,245,.14);
  border:1px solid rgba(58,149,245,.25);
  font-size:26px;
}
.ndc-partners-empty-content h3{
  margin:0 0 6px 0;
  color:#050667;
  font-weight:900;
  font-size:18px;
}
.ndc-partners-empty-content p{
  margin:0 0 14px 0;
  color:#050667;
  opacity:.9;
  font-weight:600;
}
.ndc-partners-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

/* Slider infini */
.ndc-partners-slider{
  max-width:1100px;
  margin:18px auto 0;
  overflow:hidden;
  position:relative;
  padding:12px 0;
}
.ndc-partners-slider__track{
  display:flex;
  gap:18px;
  width:max-content;
  animation: ndcPartnersScroll 28s linear infinite;
  will-change: transform;
  transform: translate3d(0,0,0);
}
.ndc-partners-slider:hover .ndc-partners-slider__track{
  animation-play-state: paused;
}
.ndc-partner-item{
  flex:0 0 auto;
  min-width:220px;
  height:74px;
  border-radius:14px;
  background:#f5f7ff;
  border:1px dashed rgba(5,6,103,.25);
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
  color:#050667;
  opacity:.85;
  white-space:nowrap;
  box-sizing:border-box;
}
.ndc-partner-item img{
  max-height:52px;
  width:auto;
  max-width:85%;
  object-fit:contain;
  display:block;
}
@keyframes ndcPartnersScroll{
  0% { transform: translate3d(0,0,0); }
  100% { transform: translate3d(-50%,0,0); }
}
@media (max-width: 900px){
  .ndc-partner-item{ min-width:180px; height:70px; }
  .ndc-partners-slider__track{ animation-duration:22s; }
}
@media (max-width: 520px){
  .ndc-partner-item{ min-width:150px; height:64px; }
  .ndc-partners-slider__track{ animation-duration:18s; }
}
@media (max-width: 640px){
  .ndc-partners-empty{ flex-direction:column; }
}
@media (prefers-reduced-motion: reduce){
  .ndc-partners-slider__track{ animation:none; }
}


/* -------------------------
C) MATCHS DU MOIS / FILTRES : header + pills visibles (restauration)
------------------------- */

/* Wrapper */
.ndc-month{
  max-width:1280px;
  margin:26px auto 40px;
  background:#fff;
  border:1px solid rgba(5,6,103,.12);
  border-radius:16px;
  box-shadow:0 10px 26px rgba(0,0,0,.08);
  overflow:hidden;
}

/* Bandeau */
.ndc-month__head{
  background:#050667;
  color:#fff;
  padding:18px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.ndc-month__title{ color:#fff !important; font-weight:900; text-transform:uppercase; letter-spacing:.6px; font-size:16px; margin:0; }
.ndc-month__meta{ margin-top:6px; display:flex; flex-wrap:wrap; gap:8px; font-weight:800; opacity:.92; color:#fff !important; font-size:13px; }

/* Filtres dans bandeau */
.ndc-month__head .ndc-month__filters{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-end;
  margin:0;
  padding:0;
  background:transparent;
  border:0;
}
.ndc-month__head .ndc-filter{
  display:inline-flex;
  align-items:center;
  padding:9px 12px;
  border-radius:999px;
  font-weight:900;
  font-size:12px;
  text-decoration:none !important;
  border:1px solid rgba(255,255,255,.25);
  color:#fff !important;
  background:rgba(255,255,255,.10);
  white-space:nowrap;
}
.ndc-month__head .ndc-filter.is-active{
  background:#3a95f5;
  border-color:#3a95f5;
  color:#fff !important;
}

@media(max-width:768px){
  .ndc-month__head{ flex-direction:column; align-items:flex-start; }
  .ndc-month__head .ndc-month__filters{ justify-content:flex-start; }
}


/* -------------------------
D) CALENDRIER : en-tête + badges visibles (priorités)
------------------------- */

/* Forcer l’en-tête du tableau SportPress (au cas où un style l’a masqué) */
body .sp-calendar thead,
body .sp-calendar thead tr,
body .sp-calendar thead th{
  display: table-header-group !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* Couleurs header */
body .sp-calendar thead th{
  background:#050667 !important;
  color:#fff !important;
}

/* Badges calendrier custom */
.ndc-spcal__badge{
  color:#050667 !important;
}
.ndc-spcal__badge.ndc-team-u18,
.ndc-spcal__badge.ndc-team-seniors-a,
.ndc-spcal__badge.ndc-team-veterans,
.ndc-spcal__badge.ndc-team-u15{
  color:#fff !important;
}

/* =================================================
FIX 1 — CALENDRIER : bouton "Tous" lisible
(si ton filtre est dans ndc-month__head)
================================================= */

/* MAIS le "Tous" est souvent actif par défaut => on le rend lisible */
.ndc-month__head .ndc-filter.is-active{
  background:#ffffff !important;
  color:#050667 !important;     /* texte foncé visible */
  border-color:#ffffff !important;
}

/* =================================================
TITRES SECTIONS HOME : BANDEAU PLEINE LARGEUR (PROPRE)
================================================= */
.ndc-section__head,
.ndc-next-match .elementor-heading-title,
.ndc-section > h2,
.section-title,
h2.section-title{
  display:block !important;
  width:100% !important;

  background:#050667;
  color:#fff !important;

  padding:14px 18px !important;
  margin:0 0 18px 0 !important;

  border-radius:12px !important;   /* ou 0 si tu veux totalement carré */
  text-align:center !important;

  font-weight:900 !important;
  letter-spacing:.6px;
  text-transform:uppercase;
  font-size:15px !important;
}

/* Mobile */
@media (max-width:768px){
  .ndc-section__head,
  .ndc-next-match .elementor-heading-title,
  .ndc-section > h2,
  .section-title,
  h2.section-title{
    padding:12px 14px !important;
    font-size:14px !important;
  }
}

/* =================================================
ACTUS — CSS PROPRE (HOME + PAGE ACTUS)
Dépendances utilisées :
- Home : ndc-home-news + ndc-news-* + ndc-social-*
- Page Actus : ndc-posts-grid + ndc-post-tile + ndc-pagination
================================================= */


/* =========================
HOME — Bloc Actus : 1 mise en avant + 3 tiles
========================= */
.ndc-home-news{
  display:grid;
  grid-template-columns: 1.35fr 1fr;
  gap:18px;
  align-items:start;
}

/* Featured */
.ndc-news-featured{
  background:#fff;
  border:1px solid rgba(5,6,103,.12);
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 10px 22px rgba(0,0,0,.08);
}
.ndc-news-featured__img img{
  width:100%;
  height:280px;
  object-fit:cover;
  display:block;
}
.ndc-news-featured__img-fallback{
  display:block;
  height:280px;
  background:rgba(58,149,245,.10);
}
.ndc-news-featured__body{
  padding:16px 16px 18px;
}

/* Liste (3 petites) */
.ndc-news-list{
  display:grid;
  gap:14px;
}
.ndc-news-tile{
  display:grid;
  grid-template-columns: 120px 1fr;
  gap:12px;
  background:#fff;
  border:1px solid rgba(5,6,103,.12);
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 10px 22px rgba(0,0,0,.06);
}
.ndc-news-tile__img img{
  width:120px;
  height:100%;
  min-height:110px;
  object-fit:cover;
  display:block;
}
.ndc-news-tile__img-fallback{
  display:block;
  width:120px;
  min-height:110px;
  background:rgba(58,149,245,.10);
}
.ndc-news-tile__body{
  padding:12px 12px 12px 0;
}

/* Typo commune aux actus HOME */
.ndc-news-date{
  font-weight:900;
  color:#3a95f5;
  font-size:12px;
  letter-spacing:.5px;
}
.ndc-news-title{
  margin:6px 0 6px;
  font-weight:900;
  color:#050667;
  line-height:1.15;
}
.ndc-news-title a{
  color:inherit;
  text-decoration:none;
}
.ndc-news-excerpt{
  margin:0 0 10px;
  color:#050667;
  opacity:.9;
  font-weight:600;
  font-size:13px;
}

/* Responsive HOME */
@media (max-width: 980px){
  .ndc-home-news{ grid-template-columns: 1fr; }
  .ndc-news-featured__img img{ height:240px; }
}


/* =========================
HOME — Bloc "Suivez le club"
========================= */
.ndc-social-box{
  background:#fff;
  border:1px solid rgba(5,6,103,.12);
  border-radius:16px;
  padding:18px;
  box-shadow:0 10px 22px rgba(0,0,0,.06);
  max-width: 420px;
  margin: 0 auto;
}
.ndc-social-title{
  font-weight:900;
  color:#050667;
  font-size:18px;
}
.ndc-social-sub{
  margin-top:6px;
  color:#050667;
  opacity:.85;
  font-weight:600;
}
.ndc-social-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:14px;
}
.ndc-social-mini{
  margin-top:14px;
  display:grid;
  gap:6px;
  color:#050667;
  font-weight:700;
  opacity:.9;
}


/* =========================
PAGE ACTUS — Grille + cartes + pagination
========================= */
.ndc-posts-grid{
  display:grid;
  gap:18px;
  margin: 10px 0 22px;
}
.ndc-posts-grid.ndc-cols-2{ grid-template-columns: repeat(2, minmax(0,1fr)); }
.ndc-posts-grid.ndc-cols-3{ grid-template-columns: repeat(3, minmax(0,1fr)); }
.ndc-posts-grid.ndc-cols-4{ grid-template-columns: repeat(4, minmax(0,1fr)); }

@media (max-width: 980px){
  .ndc-posts-grid.ndc-cols-3,
  .ndc-posts-grid.ndc-cols-4{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 680px){
  .ndc-posts-grid{ grid-template-columns: 1fr !important; }
}

.ndc-post-tile{
  background:#fff;
  border:1px solid rgba(5,6,103,.12);
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 10px 22px rgba(0,0,0,.08);
}
.ndc-post-tile__img img{
  width:100%;
  height:auto;
  display:block;
}
.ndc-post-tile__body{
  padding:14px 14px 16px;
}
.ndc-post-tile__date{
  font-weight:900;
  color:#3a95f5;
  font-size:12px;
  letter-spacing:.5px;
}
.ndc-post-tile__title{
  margin:8px 0 8px;
  font-weight:900;
  color:#050667;
}
.ndc-post-tile__title a{
  color:inherit;
  text-decoration:none;
}
.ndc-post-tile__excerpt{
  color:#050667;
  opacity:.9;
  font-weight:600;
  margin:0 0 12px;
}

.ndc-pagination ul{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:center;
  list-style:none;
  padding:0;
  margin: 10px 0 0;
}
.ndc-pagination a,
.ndc-pagination span{
  display:inline-flex;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid rgba(5,6,103,.18);
  text-decoration:none;
  font-weight:800;
}
.ndc-pagination .current{
  background:#3a95f5;
  border-color:#3a95f5;
  color:#fff;
}
/* Filtres catégories Actus */
.ndc-post-filters{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:center;
  margin: 0 0 24px;
}

.ndc-post-filters .ndc-filter{
  padding:8px 14px;
  border-radius:999px;
  background:#f5f7ff;
  border:1px solid rgba(5,6,103,.15);
  color:#050667;
  font-weight:800;
  text-decoration:none;
}

.ndc-post-filters .ndc-filter:hover{
  background:rgba(58,149,245,.12);
}

.ndc-post-filters .ndc-filter.is-active{
  background:#3a95f5;
  border-color:#3a95f5;
  color:#fff;
}

.ndc-post-cat{
  display:inline-flex;
  padding:6px 10px;
  border-radius:999px;
  background: rgba(58,149,245,.12);
  border:1px solid rgba(58,149,245,.25);
  color:#050667;
  font-weight:900;
  font-size:12px;
  margin: 8px 0 10px;
}
/* Page Actus */

.ndc-posts-wrap{
  max-width:1200px;
  margin:0 auto;
  padding:20px 16px;
}

/* Filtres */
.ndc-posts-filters{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:center;
  margin-bottom:22px;
}

/* Badge catégorie */
.ndc-post-cat{
  display:inline-flex;
  padding:6px 10px;
  border-radius:999px;
  background: rgba(58,149,245,.12);
  border:1px solid rgba(58,149,245,.25);
  color:#050667;
  font-weight:900;
  font-size:12px;
  margin-bottom:8px;
}

/* Grille */
.ndc-posts-grid{
  display:grid;
  gap:18px;
}

.ndc-posts-grid.ndc-cols-3{
  grid-template-columns: repeat(3, minmax(0,1fr));
}

@media(max-width:980px){
  .ndc-posts-grid.ndc-cols-3{
    grid-template-columns: repeat(2,1fr);
  }
}

@media(max-width:680px){
  .ndc-posts-grid{
    grid-template-columns:1fr;
  }
}

/* Featured Actu */
.ndc-post-featured{
  display:grid;
  grid-template-columns: 1.2fr 1fr;
  gap:18px;
  background:#fff;
  border:1px solid rgba(5,6,103,.12);
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 10px 22px rgba(0,0,0,.08);
  margin-bottom:22px;
}

.ndc-post-featured__img img{
  width:100%;
  height:320px;
  object-fit:cover;
  display:block;
}
.ndc-post-featured__img-fallback{
  display:block;
  height:320px;
  background:rgba(58,149,245,.10);
}
.ndc-post-featured__body{
  padding:16px 16px 18px;
}
.ndc-post-featured__title{
  margin:8px 0 10px;
  font-weight:900;
  color:#050667;
  line-height:1.1;
}
.ndc-post-featured__title a{ color:inherit; text-decoration:none; }
.ndc-post-featured__excerpt{
  margin:0 0 14px;
  color:#050667;
  opacity:.9;
  font-weight:600;
}

/* Responsive featured */
@media(max-width:980px){
  .ndc-post-featured{
    grid-template-columns: 1fr;
  }
  .ndc-post-featured__img img,
  .ndc-post-featured__img-fallback{
    height:240px;
  }
}
/* ================================
ACTUS — Couleurs par catégorie (badge + bordure gauche)
Convention: .ndc-cat-{slug}
================================ */

/* Base badge actus */
.ndc-post-cat{
  display:inline-flex;
  align-items:center;
  padding:6px 12px;
  border-radius:999px;
  font-weight:900;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.4px;
  line-height:1;
  background:#e5e7eb;
  color:#111;
  border:1px solid rgba(0,0,0,.08);
  margin-bottom:10px;
}

/* Bordure gauche sur cartes */
.ndc-post-tile,
.ndc-post-featured{
  border-left:6px solid rgba(5,6,103,.12);
}

/* ===== Vie du club — bleu clair charte */
.ndc-cat-vie-du-club .ndc-post-cat{ background:#3a95f5; color:#fff; border-color:#3a95f5; }
.ndc-cat-vie-du-club{ border-left-color:#3a95f5; }

/* ===== Événements — bleu foncé club */
.ndc-cat-evenements .ndc-post-cat{ background:#050667; color:#fff; border-color:#050667; }
.ndc-cat-evenements{ border-left-color:#050667; }

/* ===== Si tu crées des catégories qui reprennent les slugs équipes : */

/* Seniors A */
.ndc-cat-seniors-a .ndc-post-cat{ background:#0b1b4d; color:#fff; border-color:#0b1b4d; }
.ndc-cat-seniors-a{ border-left-color:#0b1b4d; }

/* Vétérans */
.ndc-cat-veterans .ndc-post-cat{ background:#1f7a3a; color:#fff; border-color:#1f7a3a; }
.ndc-cat-veterans{ border-left-color:#1f7a3a; }

/* U18 */
.ndc-cat-u18 .ndc-post-cat{ background:#5b21b6; color:#fff; border-color:#5b21b6; }
.ndc-cat-u18{ border-left-color:#5b21b6; }

/* U15 */
.ndc-cat-u15 .ndc-post-cat{ background:#ea580c; color:#fff; border-color:#ea580c; }
.ndc-cat-u15{ border-left-color:#ea580c; }

/* U13 D3/D */
.ndc-cat-u13_d3d .ndc-post-cat{ background:#b91c1c; color:#fff; border-color:#b91c1c; }
.ndc-cat-u13_d3d{ border-left-color:#b91c1c; }

/* U13 D3/E */
.ndc-cat-u13_d3e .ndc-post-cat{ background:#be185d; color:#fff; border-color:#be185d; }
.ndc-cat-u13_d3e{ border-left-color:#be185d; }

/* U11 niv 3 */
.ndc-cat-u11-3 .ndc-post-cat{ background:#0284c7; color:#fff; border-color:#0284c7; }
.ndc-cat-u11-3{ border-left-color:#0284c7; }

/* U11 niv 4 */
.ndc-cat-u11-4 .ndc-post-cat{ background:#0d9488; color:#fff; border-color:#0d9488; }
.ndc-cat-u11-4{ border-left-color:#0d9488; }

/* Badge un peu plus compact dans les tiles home */
.ndc-news-tile .ndc-post-cat{
  font-size:11px;
  padding:5px 10px;
  margin-bottom:8px;
}
/* === ACTUS : couleurs par catégorie === */

/* Séniors */
.ndc-cat-seniors .ndc-post-cat{
  background:#0b1b4d;
  color:#fff;
}
.ndc-cat-seniors{
  border-left:6px solid #0b1b4d;
}

/* Vétérans */
.ndc-cat-veterans .ndc-post-cat{
  background:#1f7a3a;
  color:#fff;
}
.ndc-cat-veterans{
  border-left:6px solid #1f7a3a;
}

/* U18 */
.ndc-cat-u18 .ndc-post-cat{
  background:#5b21b6;
  color:#fff;
}
.ndc-cat-u18{
  border-left:6px solid #5b21b6;
}

/* U15 */
.ndc-cat-u15 .ndc-post-cat{
  background:#ea580c;
  color:#fff;
}
.ndc-cat-u15{
  border-left:6px solid #ea580c;
}

/* U13 */
.ndc-cat-u13 .ndc-post-cat{
  background:#be185d;
  color:#fff;
}
.ndc-cat-u13{
  border-left:6px solid #be185d;
}

/* U11 */
.ndc-cat-u11 .ndc-post-cat{
  background:#0284c7;
  color:#fff;
}
.ndc-cat-u11{
  border-left:6px solid #0284c7;
}

/* Vie du club */
.ndc-cat-vie-du-club .ndc-post-cat{
  background:#3a95f5;
  color:#fff;
}
.ndc-cat-vie-du-club{
  border-left:6px solid #3a95f5;
}

/* Événements */
.ndc-cat-evenements .ndc-post-cat{
  background:#050667;
  color:#fff;
}
.ndc-cat-evenements{
  border-left:6px solid #050667;
}

/* Actus générique */
.ndc-cat-actus .ndc-post-cat{
  background:#64748b;
  color:#fff;
}
.ndc-cat-actus{
  border-left:6px solid #64748b;
}

.ndc-footer-contact{
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:flex-end;   /* tout à droite */
  text-align:right;
}

.ndc-footer-line{
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:flex-end;
  width:100%;
}

.site-footer .ndc-footer-social br,
.site-footer .ndc-footer-social p{ display:none !important; }

.site-footer .ndc-footer-social{
  display:flex !important;
  gap:10px !important;
  align-items:center !important;
  justify-content:flex-end !important;
}

.site-footer .ndc-footer-social a.ndc-social-link{
  all: unset;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:30px !important;
  height:30px !important;
  cursor:pointer !important;
}

.site-footer .ndc-footer-social img.ndc-social-icon{
  width:30px !important;
  height:30px !important;
  display:block !important;
  object-fit:contain !important;
}

.ndc-live-box .ndc-next-cat{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:6px 10px;
  font-weight:900;
  font-size:12px;
  white-space:nowrap;
}
.ndc-partner-item img {
  max-height: 70px;
  width: auto;
  object-fit: contain;
}
/* =========================
   CONTACT (HTML) – Grille 2x2
   ========================= */

.ndc-contact{
  padding: 24px 0;
}

.ndc-contact .ndc-contact-grid{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  align-items: start;
}

/* Sécurité : évite qu’un style global force des largeurs cheloues */
.ndc-contact .ndc-contact-grid > .ndc-card{
  min-width: 0;
}

/* Cartes */
.ndc-contact .ndc-card.ndc-contact-box{
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 14px;
  padding: 18px;
  box-shadow: 0 8px 22px rgba(0,0,0,.06);
}

/* Titres */
.ndc-contact .ndc-contact-box h3{
  margin: 0 0 10px;
}

/* Form */
.ndc-contact .ndc-contact-form input,
.ndc-contact .ndc-contact-form textarea{
  width: 100%;
  box-sizing: border-box;
  margin: 0 0 10px;
  padding: 10px 12px;
  border: 1px solid rgba(0,0,0,.15);
  border-radius: 10px;
}

/* Map */
.ndc-contact .ndc-contact-box iframe{
  width: 100%;
  height: 260px;
  border: 0;
  border-radius: 12px;
  display: block;
}

/* Liste horaires */
.ndc-contact .ndc-contact-hours{
  margin: 0;
  padding-left: 18px;
}

/* Responsive */
@media (max-width: 900px){
  .ndc-contact .ndc-contact-grid{
    grid-template-columns: 1fr;
  }
}
/* =========================
   PARTENAIRES – Page pro
   ========================= */

.ndc-partners{
  padding: 10px 0 28px;
}

.ndc-partners .ndc-card{
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 16px;
  padding: 18px;
  box-shadow: 0 10px 26px rgba(0,0,0,.06);
}

/* Titres de sections */
.ndc-partners-title{
  margin: 18px 0 10px;
}

/* Hero */
.ndc-partners-hero{
  padding: 22px;
}
.ndc-partners-hero h1{
  margin: 0 0 8px;
}
.ndc-partners-hero p{
  margin: 0 0 14px;
  opacity: .9;
}
.ndc-actions{
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

/* Boutons (si tu as déjà .ndc-btn, ça s’aligne; sinon ça stylise quand même) */
.ndc-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  border-radius: 999px;
  text-decoration: none;
  border: 1px solid transparent;
}
.ndc-btn.ndc-btn-outline{
  background: transparent;
  border-color: rgba(0,0,0,.18);

}

/* Grille partenaires */
.ndc-partners-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  align-items: stretch;
}

/* Carte partenaire */
.ndc-partner-card{
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 12px;
}

/* Logo */
.ndc-partner-logo{
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 14px;
  border: 1px dashed rgba(0,0,0,.15);
  border-radius: 14px;
  text-decoration: none;
}
.ndc-partner-logo img{
  max-height: 64px;
  width: auto;
  object-fit: contain;
}

/* Texte */
.ndc-partner-name{
  margin: 0 0 4px;
  font-size: 1.02rem;
}
.ndc-partner-desc{
  margin: 0 0 10px;
  opacity: .85;
}

/* Meta */
.ndc-partner-meta{
  margin: 0 0 10px;
  padding-left: 18px;
}
.ndc-partner-meta li{
  margin: 2px 0;
}

/* Liens */
.ndc-partner-links{
  margin-top: auto;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.ndc-link{
  text-decoration: none;
  border-bottom: 1px solid rgba(0,0,0,.25);
}
.ndc-dot{
  opacity: .45;
}

/* Slider bandeau */
.ndc-partners-sliderWrap{
  padding: 14px 18px;
}
.ndc-partners-slider{
  overflow: hidden;
  border-radius: 14px;
  border: 1px solid rgba(0,0,0,.06);
  background: rgba(0,0,0,.02);
}
.ndc-partners-track{
  display: flex;
  gap: 18px;
  align-items: center;
  width: max-content;
  animation: ndcPartnersScroll 28s linear infinite;
  padding: 14px 18px;
}
.ndc-partner-item{
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  background: #fff;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.06);
}
.ndc-partner-item img{
  max-height: 46px;
  width: auto;
  object-fit: contain;
}

/* Pause au hover (PC) */
@media (hover:hover){
  .ndc-partners-slider:hover .ndc-partners-track{
    animation-play-state: paused;
  }
}

@keyframes ndcPartnersScroll{
  from{ transform: translateX(0); }
  to{ transform: translateX(-50%); }
}

/* CTA bas */
.ndc-partners-cta h2{
  margin: 0 0 8px;
}
.ndc-partners-cta p{
  margin: 0 0 14px;
  opacity: .9;
}

/* Responsive */
@media (max-width: 1024px){
  .ndc-partners-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 680px){
  .ndc-partners-grid{
    grid-template-columns: 1fr;
  }
}
/* =========================
   ÉQUIPES – Page listing
   ========================= */

.ndc-teams{
  padding: 10px 0 28px;
}

.ndc-teams .ndc-card{
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  border-radius:16px;
  padding:18px;
  box-shadow:0 10px 26px rgba(0,0,0,.06);
}

.ndc-teams-title{
  margin: 18px 0 10px;
}

.ndc-teams-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:16px;
  align-items:stretch;
}

.ndc-team-card h3{
  margin: 0 0 6px;
}
.ndc-team-sub{
  margin: 0 0 10px;
  opacity: .85;
}
.ndc-team-meta{
  margin: 0 0 14px;
  padding-left: 18px;
}
.ndc-team-meta li{
  margin: 2px 0;
}

.ndc-teams-cta h2{
  margin: 0 0 8px;
}
.ndc-teams-cta p{
  margin: 0 0 14px;
  opacity: .9;
}

@media (max-width: 1024px){
  .ndc-teams-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px){
  .ndc-teams-grid{ grid-template-columns: 1fr; }
}
.ndc-team{ padding: 10px 0 28px; }

.ndc-team .ndc-card{
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  border-radius:16px;
  padding:18px;
  box-shadow:0 10px 26px rgba(0,0,0,.06);
}

.ndc-team-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap:16px;
  margin: 12px 0;
}

.ndc-list{ margin:0; padding-left:18px; }

@media (max-width:900px){
  .ndc-team-grid{ grid-template-columns:1fr; }
}
.ndc-spcal--list .ndc-spcal__list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.ndc-spcal--list .ndc-spcal__rowlink{
  display:flex;
  gap:10px;
  align-items:center;
  text-decoration:none;
}
.ndc-spcal--list .ndc-spcal__when{
  font-weight:700;
  white-space:nowrap;
}
.ndc-spcal--list .ndc-spcal__what{
  opacity:.9;
}
.ndc-spcal__emptymsg{
  padding:12px 0;
  opacity:.8;
}
/* LISTE matchs (vue list) */
.ndc-spcal--list .ndc-spcal__list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.ndc-spcal--list .ndc-spcal__rowlink{
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:space-between;
  padding:10px 12px;
  border:1px solid rgba(0,0,0,.08);
  border-radius:12px;
  background:#fff;
  text-decoration:none;
  color:inherit;
}

.ndc-spcal--list .ndc-spcal__left{
  display:flex;
  gap:10px;
  align-items:center;
  min-width:0;
}

.ndc-spcal--list .ndc-spcal__when{
  font-weight:700;
  white-space:nowrap;
}

.ndc-spcal--list .ndc-spcal__what{
  opacity:.92;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:52vw;
}

.ndc-spcal--list .ndc-spcal__score{
  font-weight:800;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.10);
  background:rgba(0,0,0,.03);
  white-space:nowrap;
}

/* =================================================
NDC — HOMOGÉNÉITÉ CARTES MATCHS (HOME + MATCHS DU MOIS + RÉSULTATS)
À mettre tout en bas
================================================= */

/* 1) Une seule règle de grille (auto => 1 carte = pleine largeur, 2 cartes = 2 colonnes) */
.ndc-next-grid,
.ndc-next-match .elementor-widget-shortcode .elementor-widget-container > .elementor-shortcode{
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(520px, 1fr)) !important;
  gap: 18px !important;
  align-items: stretch !important;
  justify-items: stretch !important;
}

/* Breakpoints */
@media (max-width: 1200px){
  .ndc-next-grid,
  .ndc-next-match .elementor-widget-shortcode .elementor-widget-container > .elementor-shortcode{
    grid-template-columns: repeat(auto-fit, minmax(420px, 1fr)) !important;
  }
}
@media (max-width: 900px){
  .ndc-next-grid,
  .ndc-next-match .elementor-widget-shortcode .elementor-widget-container > .elementor-shortcode{
    grid-template-columns: 1fr !important;
  }
}

/* 2) Toutes les cartes à hauteur égale + meta en bas */
.ndc-next-card{
  height: 100%;
  display: flex;
  flex-direction: column;
}

.ndc-next-meta{
  margin-top: auto;
}

/* 3) Évite les “décalages” causés par des <p> / <br> injectés */
.ndc-next-match .elementor-widget-shortcode .elementor-widget-container > .elementor-shortcode > p{
  margin: 0 !important;
  padding: 0 !important;
  display: contents !important;
}
.ndc-next-match .elementor-widget-shortcode .elementor-widget-container > .elementor-shortcode br{
  display: none !important;
}

/* =========================================================
NDC — PATCH UNIQUE GRILLES (HOME + PAGES)
Objectif: même rendu partout, sans superposition, sans colonnes bizarres
========================================================= */

/* 0) sécurité: une carte ne doit jamais avoir une largeur fixe chelou */
.ndc-next-card{
  width:100% !important;
  max-width:none !important;
}

/* 1) HOME (Elementor) : grille responsive propre */
.home .ndc-next-match .elementor-widget-shortcode
.elementor-widget-container > .elementor-shortcode{
  display:grid !important;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)) !important;
  gap:18px !important;
  align-items:stretch !important;
}

/* 2) PAGES (Calendrier / Résultats) : même grille que la home */
body:not(.home) .ndc-next-grid{
  display:grid !important;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)) !important;
  gap:18px !important;
  align-items:stretch !important;
}

/* 3) Elementor injecte parfois <p> / <br> dans le shortcode → on neutralise */
.ndc-next-match .elementor-widget-shortcode
.elementor-widget-container > .elementor-shortcode > p{
  margin:0 !important;
  padding:0 !important;
  display:contents !important;
}
.ndc-next-match .elementor-widget-shortcode
.elementor-widget-container > .elementor-shortcode br{
  display:none !important;
}

/* 4) Breakpoints (simple) */
@media (max-width: 900px){
  .home .ndc-next-match .elementor-widget-shortcode
  .elementor-widget-container > .elementor-shortcode{
    grid-template-columns: 1fr !important;
  }
  body:not(.home) .ndc-next-grid{
    grid-template-columns: 1fr !important;
  }
}

/* =================================================
FULL WIDTH UNIQUEMENT : Calendrier (page-id-401) + Résultats (page-id-7)
================================================= */

/* 1) Astra : virer le container boxed sur ces 2 pages */
body.page-id-401 .site-content > .ast-container,
body.page-id-7   .site-content > .ast-container{
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.page-id-401 .site-content,
body.page-id-7   .site-content{
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* 2) Tes wrappers : enlever leurs max-width (sinon ça reste centré) */
body.page-id-401 .ndc-month,
body.page-id-401 .ndc-spcal,
body.page-id-7   .ndc-month,
body.page-id-7   .ndc-next-wrap{
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* 3) (optionnel) garder un peu d’air sur les côtés */
body.page-id-401 .ndc-month,
body.page-id-401 .ndc-spcal,
body.page-id-7   .ndc-month,
body.page-id-7   .ndc-next-wrap{
  padding-left: 18px;
  padding-right: 18px;
}
/* =================================================
FIX — MATCHS DU MOIS : максимум 3 colonnes (comme la Home)
UNIQUEMENT dans le bloc .ndc-month
================================================= */
body:not(.home) .ndc-month .ndc-next-match
  .elementor-widget-shortcode .elementor-widget-container > .elementor-shortcode{
  display:grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap:18px !important;
  align-items:stretch !important;
}

@media (max-width: 1200px){
  body:not(.home) .ndc-month .ndc-next-match
    .elementor-widget-shortcode .elementor-widget-container > .elementor-shortcode{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 900px){
  body:not(.home) .ndc-month .ndc-next-match
    .elementor-widget-shortcode .elementor-widget-container > .elementor-shortcode{
    grid-template-columns: 1fr !important;
  }
}
/* =================================================
FULL WIDTH sur pages Résultats (401) + Calendrier (7)
================================================= */

/* 1) Astra : enlève le "boxed" (.ast-container) sur ces pages */
body.page-id-401 .site-content > .ast-container,
body.page-id-7   .site-content > .ast-container{
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body.page-id-401 .site-content,
body.page-id-7   .site-content{
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* 2) NDC : enlève les max-width qui re-boxent les shortcodes */
body.page-id-401 .ndc-month,
body.page-id-401 .ndc-spcal,
body.page-id-401 .ndc-next-match,
body.page-id-401 .ndc-next-wrap,
body.page-id-7   .ndc-month,
body.page-id-7   .ndc-spcal,
body.page-id-7   .ndc-next-match,
body.page-id-7   .ndc-next-wrap{
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* 3) Garde un padding “propre” pour pas coller au bord */
body.page-id-401 .ndc-month,
body.page-id-401 .ndc-spcal,
body.page-id-401 .ndc-next-match,
body.page-id-7   .ndc-month,
body.page-id-7   .ndc-spcal,
body.page-id-7   .ndc-next-match{
  padding-left: 18px !important;
  padding-right: 18px !important;
}
/* =================================================
NDC — Centrage boutons HERO Elementor
================================================= */

/* Ligne qui contient les boutons */
.elementor-element-ea8f08f,
.elementor-element-9833274{
  display: inline-flex !important;
}

/* Container parent = centre tout */
.elementor-element-ea5a617 .elementor-container,
.elementor-element-bc40f36 .elementor-container{
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 16px !important;
}

/* =================================================
NDC — Centrage boutons HERO (Elementor Containers)
================================================= */

/* 1) Le container du hero : on centre les enfants */
.ndc-hero-con-full{
  align-items: center !important;   /* centre horizontalement */
}

/* 2) Chaque widget bouton : largeur auto + centré */
.ndc-hero-cta{
  width: auto !important;
  align-self: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* 3) Centre le bouton à l’intérieur (wrapper Elementor) */
.ndc-hero-cta .elementor-button-wrapper{
  display: flex !important;
  justify-content: center !important;
}

/* 4) Option : si tu veux les 2 boutons sur une même ligne */
.ndc-hero-cta{
  display: inline-flex !important;
}

/* HERO — recentre les boutons (corrige align-items var(--align-items)) */
.ndc-hero-ctas{
  --align-items: center !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
}

/* au cas où les widgets boutons prennent toute la largeur */
.ndc-hero-ctas .elementor-widget-button{
  width: auto !important;
}

/* NDC — Team layout */
.ndc-team{max-width:1200px;margin:0 auto;padding:28px 18px;}
.ndc-team__hero{display:flex;gap:22px;align-items:center;background:#fff;border-radius:18px;padding:18px;box-shadow:0 10px 24px rgba(0,0,0,.06);margin-bottom:22px;}
.ndc-team__badge{width:140px;height:auto;display:block;}
.ndc-team__title{margin:0 0 10px;font-size:38px;line-height:1.1;}
.ndc-team__actions{display:flex;gap:10px;flex-wrap:wrap}

.ndc-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;background:#2f66ff;color:#fff;text-decoration:none;font-weight:600}
.ndc-btn:hover{opacity:.92}
.ndc-btn--ghost{background:transparent;border:1px solid rgba(0,0,0,.14);color:#111}
.ndc-btn--ghost:hover{background:rgba(0,0,0,.04)}
.ndc-muted{opacity:.7;margin:0}

.ndc-team__grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.ndc-card{grid-column:span 6;background:#fff;border-radius:18px;padding:16px;box-shadow:0 10px 24px rgba(0,0,0,.06)}
.ndc-card--full{grid-column:span 12}
.ndc-card__title{margin:0 0 12px;font-size:22px}

/* Responsive */
@media (max-width: 900px){
  .ndc-team__hero{flex-direction:column;align-items:flex-start}
  .ndc-card{grid-column:span 12}
  .ndc-team__title{font-size:30px}
}
