/* ============================================================
   CAL BASKET — MODULE RÉSEAUX SOCIAUX V1
   Format de référence : 1080 x 1350 px / ratio 4:5
   ============================================================ */

.cal-social{
    --cal-blue:#164477;
    --cal-blue-dark:#0d3158;
    --cal-blue-light:#eaf1f8;
    --cal-red:#c81d2b;
    --cal-ink:#101820;
    --cal-grey:#f3f5f8;
    --cal-line:#d8e0e8;

    position:relative;
    width:100%;
    max-width:1080px;
    min-height:900px;
    margin:0 auto;
    overflow:hidden;
    isolation:isolate;
    background:#fff;
    color:var(--cal-ink);
    font-family:Arial, Helvetica, sans-serif;
    box-shadow:0 10px 35px rgba(13,49,88,.12);
}

.cal-social *{
    box-sizing:border-box;
}

/* ============================================================
   DÉCOR
   ============================================================ */

.cal-social::before{
    content:"";
    position:absolute;
    z-index:-4;
    top:-180px;
    right:-230px;
    width:650px;
    height:650px;
    border-radius:50%;
    background:var(--cal-blue-light);
}

.cal-social::after{
    content:"";
    position:absolute;
    z-index:-4;
    left:-260px;
    bottom:-280px;
    width:650px;
    height:650px;
    border-radius:50%;
    background:#f7e8ea;
}

.cal-social__decor{
    position:absolute;
    z-index:-2;
    pointer-events:none;
    border:1px solid rgba(22,68,119,.10);
    transform:rotate(18deg);
}

.cal-social__decor--one{
    top:250px;
    right:-180px;
    width:470px;
    height:470px;
    border-radius:45%;
}

.cal-social__decor--two{
    left:-230px;
    bottom:120px;
    width:420px;
    height:420px;
    border-radius:50%;
    transform:rotate(-14deg);
}

/* ============================================================
   PHOTO OPTIONNELLE
   ============================================================ */

.cal-social__photo{
    position:absolute;
    z-index:0;
    top:0;
    right:0;
    width:46%;
    height:100%;
    background-position:right center;
    background-repeat:no-repeat;
    background-size:cover;
    opacity:.98;
}

.cal-social__photoFade{
    position:absolute;
    z-index:1;
    top:0;
    right:0;
    width:55%;
    height:100%;
    background:linear-gradient(90deg, #fff 0%, rgba(255,255,255,.94) 17%, rgba(255,255,255,.25) 70%, rgba(255,255,255,0) 100%);
}


.cal-social__header,
.cal-social__matches,
.cal-social__footer{
    position:relative;
    z-index:2;
}

/* ============================================================
   HEADER
   ============================================================ */

.cal-social__header{
    position:relative;
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:end;
    gap:28px;
    padding:48px 55px 30px;
    border-bottom:5px solid var(--cal-red);
}

.cal-social__brand{
    display:flex;
    align-items:center;
    gap:15px;
    min-width:245px;
}

.cal-social__logo{
    display:block;
    width:72px;
    height:72px;
    object-fit:contain;
}

.cal-social__brandText{
    line-height:1;
}

.cal-social__brandName{
    margin-bottom:7px;
    color:var(--cal-blue);
    font-size:19px;
    font-weight:950;
    letter-spacing:1.3px;
}

.cal-social__brandPlace{
    color:#6c7782;
    font-size:10px;
    font-weight:900;
    letter-spacing:1.5px;
}

.cal-social__headline{
    min-width:0;
}

.cal-social__kicker{
    margin-bottom:8px;
    color:var(--cal-red);
    font-size:12px;
    line-height:1;
    font-weight:950;
    letter-spacing:2px;
    text-transform:uppercase;
}

.cal-social__headline h2{
    margin:0;
    color:var(--cal-blue-dark);
    font-size:42px;
    line-height:.92;
    font-weight:950;
    letter-spacing:-1.5px;
    text-transform:uppercase;
}

.cal-social__headline h2 span{
    color:var(--cal-red);
}

.cal-social__week{
    display:inline-flex;
    margin-top:12px;
    padding:6px 10px;
    background:var(--cal-blue);
    color:#fff;
    font-size:10px;
    line-height:1;
    font-weight:950;
    letter-spacing:1px;
    text-transform:uppercase;
}

.cal-social__count{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-width:78px;
    min-height:78px;
    padding:10px;
    border-radius:50%;
    background:var(--cal-blue);
    color:#fff;
    text-align:center;
    line-height:1;
}

.cal-social__count strong{
    font-size:30px;
    font-weight:950;
}

.cal-social__count span{
    margin-top:4px;
    font-size:8px;
    font-weight:900;
    letter-spacing:1px;
}

/* ============================================================
   LISTE DES MATCHS
   ============================================================ */

.cal-social__matches{
    position:relative;
    padding:20px 55px 12px;
}

.cal-social__match{
    position:relative;
    padding:17px 0 15px;
    border-bottom:1px solid var(--cal-line);
}

.cal-social__match:last-child{
    border-bottom:0;
}

.cal-social__match::before{
    content:"";
    position:absolute;
    top:17px;
    left:-16px;
    width:5px;
    height:58px;
    border-radius:4px;
    background:var(--cal-blue);
}

.cal-social__match--upcoming::before{
    background:var(--cal-blue);
}

.cal-social__match--result::before{
    background:var(--cal-red);
}

.cal-social__match--loss::before{
    background:var(--cal-blue);
}

.cal-social__matchHead{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto auto;
    align-items:center;
    gap:12px;
    margin-bottom:9px;
}

.cal-social__date{
    display:flex;
    align-items:baseline;
    gap:7px;
    min-width:0;
    color:var(--cal-blue-dark);
    line-height:1;
}

.cal-social__day{
    font-size:15px;
    font-weight:950;
    letter-spacing:.8px;
}

.cal-social__day.is-saturday{
    color:var(--cal-blue);
}

.cal-social__day.is-sunday{
    color:#5b7898;
}

.cal-social__bullet{
    color:var(--cal-red);
    font-size:13px;
    font-weight:950;
}

.cal-social__time{
    font-size:17px;
    font-weight:950;
}

.cal-social__category{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:25px;
    padding:5px 10px;
    border-radius:5px;
    background:var(--cal-blue-light);
    color:var(--cal-blue);
    font-size:10px;
    line-height:1;
    font-weight:950;
    letter-spacing:.8px;
    text-transform:uppercase;
}

.cal-social__homeAway{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:91px;
    min-height:25px;
    padding:5px 10px;
    border-radius:5px;
    font-size:9px;
    line-height:1;
    font-weight:950;
    letter-spacing:.8px;
    text-transform:uppercase;
}

.cal-social__homeAway.is-home{
    background:var(--cal-red);
    color:#fff;
}

.cal-social__homeAway.is-away{
    background:var(--cal-blue);
    color:#fff;
}

/* ============================================================
   ÉQUIPES / VS / SCORE
   ============================================================ */

.cal-social__teams{
    display:grid;
    grid-template-columns:minmax(0,1fr) 78px minmax(0,1fr);
    align-items:center;
    gap:15px;
}

.cal-social__team{
    color:#151b22;
    font-size:17px;
    line-height:1.08;
    font-weight:950;
    overflow-wrap:anywhere;
}

.cal-social__team--cal{
    text-align:right;
}

.cal-social__team--opp{
    text-align:left;
}

.cal-social__vs{
    display:flex;
    align-items:center;
    justify-content:center;
    width:48px;
    height:30px;
    margin:0 auto;
    border-radius:5px;
    background:var(--cal-blue);
    color:#fff;
    font-size:10px;
    font-weight:950;
    letter-spacing:1px;
}

.cal-social__score{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    color:var(--cal-blue);
    font-size:22px;
    line-height:1;
    font-weight:950;
    white-space:nowrap;
}

.cal-social__score i{
    color:#6f7d8c;
    font-style:normal;
    font-size:13px;
}

/* Score mis en évidence dans un bouton pour le distinguer des noms d'équipes. */
.cal-social__scoreButton{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    min-width:76px;
    height:34px;
    padding:0 12px;
    border:1px solid #cbd8e5;
    border-radius:9px;
    background:#edf4fa;
    color:#315f86;
    box-sizing:border-box;
    font-size:19px;
    line-height:1;
    font-weight:950;
    box-shadow:0 1px 2px rgba(22,68,119,.08);
}

.cal-social__scoreButton--win{
    background:#dceaf7;
    border-color:#b9d2e8;
    color:#315f86;
}

.cal-social__scoreButton--loss{
    background:#f6dde0;
    border-color:#e8bfc5;
    color:#9a3f4a;
}

.cal-social__scoreButton--draw{
    background:#eef1f4;
    border-color:#d4dbe2;
    color:#687482;
}

.cal-social__scoreButton span{
    display:inline-block;
    min-width:16px;
    text-align:center;
}

.cal-social__match--win .cal-social__score{
    color:var(--cal-red);
}

.cal-social__match--loss .cal-social__score{
    color:var(--cal-blue);
}

/* ============================================================
   SALLE / RÉSULTAT
   ============================================================ */

.cal-social__venue{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    min-height:17px;
    margin-top:9px;
    color:#687482;
    font-size:9px;
    line-height:1.2;
    font-weight:800;
    letter-spacing:.35px;
    text-transform:uppercase;
    text-align:center;
}

.cal-social__pin{
    color:var(--cal-red);
    font-size:8px;
}

.cal-social__resultLabel{
    display:inline-flex;
    margin-left:10px;
    padding-left:10px;
    border-left:1px solid #cbd3dc;
    color:var(--cal-red);
    font-size:9px;
    font-weight:950;
    letter-spacing:.8px;
}

.cal-social__match--loss .cal-social__resultLabel{
    color:var(--cal-blue);
}

.cal-social__match--draw .cal-social__resultLabel{
    color:#687482;
}

/* ============================================================
   VIDE
   ============================================================ */

.cal-social__empty{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-height:360px;
    padding:40px;
    text-align:center;
}

.cal-social__empty strong{
    color:var(--cal-blue);
    font-size:30px;
    font-weight:950;
}

.cal-social__empty span{
    margin-top:10px;
    color:#687482;
    font-size:13px;
    font-weight:700;
}

/* ============================================================
   FOOTER
   ============================================================ */

.cal-social__footer{
    display:flex;
    align-items:center;
    gap:13px;
    margin:8px 55px 0;
    padding:18px 0 24px;
    border-top:2px solid var(--cal-blue);
    color:var(--cal-blue);
}

.cal-social__footerBrand{
    font-size:11px;
    font-weight:950;
    letter-spacing:1.3px;
}

.cal-social__footerLine{
    width:30px;
    height:2px;
    background:var(--cal-red);
}

.cal-social__footerPlace{
    color:#687482;
    font-size:9px;
    font-weight:900;
    letter-spacing:1px;
}

.cal-social__footerLink{
    color:var(--cal-blue);
    font-size:9px;
    font-weight:950;
    letter-spacing:.7px;
    text-decoration:none;
    white-space:nowrap;
}

.cal-social__footerLink:hover,
.cal-social__footerLink:focus{
    color:var(--cal-red);
    text-decoration:underline;
}

.cal-social__hashtag{
    margin-left:auto;
    color:var(--cal-red);
    font-size:9px;
    font-weight:950;
    letter-spacing:1px;
}

/* ============================================================
   ADAPTATION PETITES LARGEURS
   ============================================================ */

@media (max-width:900px){

    .cal-social__header{
        grid-template-columns:1fr auto;
        gap:18px;
        padding:35px 32px 24px;
    }

    .cal-social__brand{
        grid-column:1 / -1;
    }

    .cal-social__headline h2{
        font-size:35px;
    }

    .cal-social__matches{
        padding-left:32px;
        padding-right:32px;
    }

    .cal-social__footer{
        margin-left:32px;
        margin-right:32px;
    }
}

@media (max-width:600px){

    .cal-social{
        min-height:700px;
    }

    .cal-social__header{
        grid-template-columns:1fr;
        align-items:start;
        padding:25px 20px 20px;
    }

    .cal-social__brand{
        min-width:0;
    }

    .cal-social__logo{
        width:58px;
        height:58px;
    }

    .cal-social__brandName{
        font-size:16px;
    }

    .cal-social__headline h2{
        font-size:31px;
    }

    .cal-social__count{
        position:absolute;
        top:23px;
        right:20px;
        min-width:58px;
        min-height:58px;
    }

    .cal-social__count strong{
        font-size:22px;
    }

    .cal-social__matches{
        padding:12px 20px 8px;
    }

    .cal-social__match{
        padding:13px 0 12px;
    }

    .cal-social__matchHead{
        grid-template-columns:1fr auto;
        gap:7px;
    }

    .cal-social__category{
        grid-column:1;
        grid-row:2;
        justify-self:start;
    }

    .cal-social__homeAway{
        grid-column:2;
        grid-row:1 / span 2;
    }

    .cal-social__teams{
        grid-template-columns:minmax(0,1fr) 58px minmax(0,1fr);
        gap:8px;
    }

    .cal-social__team{
        font-size:14px;
    }

    .cal-social__score{
        font-size:18px;
    }

    .cal-social__footer{
        margin-left:20px;
        margin-right:20px;
    }

   .cal-social__photo{
        width:48%;
    }
}


/* ============================================================
   V6 — UNE GRILLE POUR LA SEMAINE + UNE GRILLE POUR LES RÉSULTATS
   Chaque journée = un visuel indépendant 4:5.
   Les journées sont côte à côte sur ordinateur.
   ============================================================ */

.cal-social-page{
    width:100%;
    max-width:1120px;
    margin:0 auto;
}

.cal-social-section{
    margin:0 0 34px;
}

.cal-social-section__header{
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:20px;
    margin:0 0 14px;
    padding:0 4px 10px;
    border-bottom:3px solid #c81d2b;
}

.cal-social-section__kicker{
    margin-bottom:3px;
    color:#c81d2b;
    font-size:10px;
    font-weight:950;
    letter-spacing:1.8px;
    text-transform:uppercase;
}

.cal-social-section__header h2{
    margin:0;
    color:#0d3158;
    font-size:24px;
    line-height:1;
    font-weight:950;
    letter-spacing:-.4px;
    text-transform:uppercase;
}

.cal-social-section__period{
    flex:0 0 auto;
    padding:6px 9px;
    border-radius:5px;
    background:#eaf1f8;
    color:#164477;
    font-size:9px;
    line-height:1;
    font-weight:950;
    letter-spacing:.8px;
    text-transform:uppercase;
}

.cal-social-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:24px;
    align-items:start;
}

.cal-social-grid > .cal-social{
    width:100%;
    max-width:none;
    aspect-ratio:4 / 5;
    min-height:0;
    height:auto;
    margin:0;
}

/* Le cadre reste strictement identique quel que soit le nombre de matchs. */
.cal-social-grid > .cal-social .cal-social__matches{
    display:flex;
    flex-direction:column;
}

.cal-social-grid > .cal-social .cal-social__match{
    flex:1 1 0;
    min-height:0;
}

.cal-social__header{
    flex-shrink:0;
}

.cal-social__footer{
    flex-shrink:0;
}

.cal-social-emptyPage{
    max-width:700px;
    margin:30px auto;
    padding:40px 25px;
    border:1px solid #d8e0e8;
    border-radius:14px;
    background:#f3f5f8;
    text-align:center;
}

.cal-social-emptyPage strong{
    display:block;
    color:#164477;
    font-size:22px;
    font-weight:950;
}

.cal-social-emptyPage span{
    display:block;
    margin-top:8px;
    color:#687482;
    font-size:13px;
    font-weight:700;
}

/* On neutralise les anciennes classes de densité :
   le format et la typographie restent identiques. */
.cal-social--count-low,
.cal-social--count-4,
.cal-social--count-5,
.cal-social--count-high{
    width:100%;
    aspect-ratio:4 / 5;
}

@media (max-width:900px){
    .cal-social-page{
        max-width:600px;
    }

    .cal-social-grid{
        grid-template-columns:1fr;
        gap:24px;
    }
}

@media (max-width:600px){
    .cal-social-page{
        width:100%;
    }

    .cal-social-section{
        margin-bottom:26px;
    }

    .cal-social-section__header{
        align-items:flex-start;
        flex-direction:column;
        gap:7px;
    }

    .cal-social-section__header h2{
        font-size:21px;
    }

    .cal-social-grid{
        gap:18px;
    }
}

/* ============================================================
   V7 — NOMS DES CLUBS PLUS COMPACTS
   Les cartes restent en 4:5, mais les noms d'équipes sont
   volontairement plus petits pour rester lisibles à 2 colonnes.
   ============================================================ */

.cal-social-grid > .cal-social .cal-social__team{
    font-size:13px;
    line-height:1.12;
    font-weight:900;
    letter-spacing:-.15px;
}

.cal-social-grid > .cal-social .cal-social__teams{
    grid-template-columns:minmax(0,1fr) 58px minmax(0,1fr);
    gap:9px;
}

.cal-social-grid > .cal-social .cal-social__score{
    font-size:19px;
    gap:4px;
}

.cal-social-grid > .cal-social .cal-social__score i{
    font-size:13px;
}

.cal-social-grid > .cal-social .cal-social__vs{
    width:42px;
    height:27px;
    font-size:9px;
}

.cal-social-grid > .cal-social .cal-social__match{
    padding-top:12px;
    padding-bottom:10px;
}

.cal-social-grid > .cal-social .cal-social__matchHead{
    gap:8px;
    margin-bottom:7px;
}

.cal-social-grid > .cal-social .cal-social__day{
    font-size:13px;
}

.cal-social-grid > .cal-social .cal-social__time{
    font-size:14px;
}

.cal-social-grid > .cal-social .cal-social__category{
    min-height:22px;
    padding:4px 7px;
    font-size:8px;
}

.cal-social-grid > .cal-social .cal-social__homeAway{
    min-width:76px;
    min-height:22px;
    padding:4px 7px;
    font-size:8px;
}

.cal-social-grid > .cal-social .cal-social__venue{
    margin-top:7px;
    font-size:8px;
}

.cal-social-grid > .cal-social .cal-social__resultLabel{
    font-size:8px;
}

/* ============================================================
   V8 — HEADER BEAUCOUP PLUS COMPACT + MATCHS AÉRÉS
   ============================================================ */

.cal-social-grid > .cal-social .cal-social__header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:18px 28px 15px;
    border-bottom:3px solid var(--cal-red);
}

.cal-social-grid > .cal-social .cal-social__identity{
    display:flex;
    align-items:center;
    gap:14px;
    min-width:0;
}

.cal-social-grid > .cal-social .cal-social__logo{
    width:58px;
    height:58px;
    flex:0 0 58px;
}

/* Le titre est directement sous/à côté du logo selon la largeur,
   mais surtout il remplace totalement l'ancien gros bloc de titre. */
.cal-social-grid > .cal-social .cal-social__headline{
    min-width:0;
}

.cal-social-grid > .cal-social .cal-social__headline h2{
    margin:0;
    color:var(--cal-blue-dark);
    font-size:21px;
    line-height:.98;
    font-weight:950;
    letter-spacing:-.4px;
}

.cal-social-grid > .cal-social .cal-social__headline h2 span{
    color:var(--cal-red);
}

.cal-social-grid > .cal-social .cal-social__week{
    margin-top:7px;
    padding:4px 8px;
    font-size:8px;
    letter-spacing:.8px;
}

.cal-social-grid > .cal-social .cal-social__count{
    flex:0 0 58px;
    width:58px;
    min-width:58px;
    height:58px;
    min-height:58px;
    padding:6px;
}

.cal-social-grid > .cal-social .cal-social__count strong{
    font-size:22px;
}

.cal-social-grid > .cal-social .cal-social__count span{
    margin-top:3px;
    font-size:7px;
    letter-spacing:.7px;
}

/* Plus d'air entre les rencontres : chaque bloc est plus bas et
   les informations sont séparées au lieu de se superposer. */
.cal-social-grid > .cal-social .cal-social__matches{
    padding:10px 28px 8px;
}

.cal-social-grid > .cal-social .cal-social__match{
    padding:15px 0 14px;
}

.cal-social-grid > .cal-social .cal-social__match + .cal-social__match{
    margin-top:2px;
}

.cal-social-grid > .cal-social .cal-social__match::before{
    top:15px;
    left:-12px;
    width:4px;
    height:52px;
}

.cal-social-grid > .cal-social .cal-social__matchHead{
    grid-template-columns:minmax(0,1fr) auto;
    gap:6px 8px;
    margin-bottom:9px;
}

.cal-social-grid > .cal-social .cal-social__date{
    min-width:0;
}

.cal-social-grid > .cal-social .cal-social__day{
    font-size:11px;
    letter-spacing:.45px;
}

.cal-social-grid > .cal-social .cal-social__time{
    font-size:12px;
}

.cal-social-grid > .cal-social .cal-social__bullet{
    font-size:10px;
}

.cal-social-grid > .cal-social .cal-social__category{
    grid-column:1;
    grid-row:2;
    justify-self:start;
    min-height:18px;
    padding:3px 6px;
    font-size:7px;
    letter-spacing:.55px;
}

.cal-social-grid > .cal-social .cal-social__homeAway{
    grid-column:2;
    grid-row:1 / span 2;
    align-self:center;
    min-width:69px;
    min-height:20px;
    padding:4px 6px;
    font-size:7px;
    letter-spacing:.55px;
}

.cal-social-grid > .cal-social .cal-social__teams{
    grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr);
    gap:7px;
}

.cal-social-grid > .cal-social .cal-social__team{
    font-size:11px;
    line-height:1.15;
    font-weight:850;
    letter-spacing:-.05px;
}

.cal-social-grid > .cal-social .cal-social__score{
    font-size:17px;
    gap:3px;
}

.cal-social-grid > .cal-social .cal-social__score i{
    font-size:11px;
}

.cal-social-grid > .cal-social .cal-social__vs{
    width:36px;
    height:23px;
    font-size:8px;
}

.cal-social-grid > .cal-social .cal-social__venue{
    margin-top:7px;
    font-size:7px;
    line-height:1.2;
}

.cal-social-grid > .cal-social .cal-social__resultLabel{
    font-size:7px;
    margin-left:7px;
    padding-left:7px;
}

/* Le pied de carte devient discret pour laisser de la place aux matchs. */
.cal-social-grid > .cal-social .cal-social__footer{
    padding:8px 28px 12px;
    font-size:7px;
}

@media (max-width:900px){
    .cal-social-grid > .cal-social .cal-social__header{
        padding:20px 30px 16px;
    }
}

/* V8.1 — titre réellement placé sous le logo */
.cal-social-grid > .cal-social .cal-social__identity{
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    gap:6px;
    width:175px;
    flex:0 0 175px;
}

.cal-social-grid > .cal-social .cal-social__headline{
    width:100%;
    text-align:center;
}

.cal-social-grid > .cal-social .cal-social__headline h2{
    font-size:19px;
    line-height:1;
    letter-spacing:-.25px;
}

.cal-social-grid > .cal-social .cal-social__week{
    margin-top:6px;
}

/* ============================================================
   V10 — HEADER COMPACT + RENCONTRES RÉPARTIES SUR TOUTE LA FICHE
   ============================================================ */

.cal-social-grid > .cal-social{
    display:flex;
    flex-direction:column;
}

/* Le haut est volontairement compact : le contenu doit laisser
   toute la place aux rencontres. */
.cal-social-grid > .cal-social .cal-social__header{
    flex:0 0 auto;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
    padding:16px 24px 12px;
    border-bottom:3px solid var(--cal-red);
}

.cal-social-grid > .cal-social .cal-social__identity{
    width:auto;
    min-width:0;
    flex:1 1 auto;
    gap:4px;
}

.cal-social-grid > .cal-social .cal-social__logo{
    width:52px;
    height:52px;
}

.cal-social-grid > .cal-social .cal-social__headline h2{
    font-size:17px;
    line-height:1.02;
    letter-spacing:-.15px;
}

.cal-social-grid > .cal-social .cal-social__week{
    margin-top:4px;
    padding:4px 7px;
    font-size:7px;
}

.cal-social-grid > .cal-social .cal-social__count{
    min-width:46px;
    width:46px;
    min-height:46px;
    height:46px;
    padding:5px;
}

.cal-social-grid > .cal-social .cal-social__count strong{
    font-size:17px;
}

.cal-social-grid > .cal-social .cal-social__count span{
    margin-top:2px;
    font-size:6px;
    letter-spacing:.5px;
}

/* La zone des matchs prend tout l'espace restant de la fiche. */
.cal-social-grid > .cal-social .cal-social__matches{
    flex:1 1 auto;
    min-height:0;
    display:flex;
    flex-direction:column;
    justify-content:stretch;
    padding:7px 24px 5px;
}

/* Chaque rencontre reçoit une part égale de la hauteur disponible. */
.cal-social-grid > .cal-social .cal-social__match{
    flex:1 1 0;
    min-height:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:8px 0 7px;
}

.cal-social-grid > .cal-social .cal-social__match + .cal-social__match{
    margin-top:0;
}

.cal-social-grid > .cal-social .cal-social__match::before{
    top:8px;
    left:-11px;
    width:3px;
    height:calc(100% - 16px);
}

.cal-social-grid > .cal-social .cal-social__matchHead{
    margin-bottom:5px;
}

.cal-social-grid > .cal-social .cal-social__day{
    font-size:10px;
}

.cal-social-grid > .cal-social .cal-social__time{
    font-size:11px;
}

.cal-social-grid > .cal-social .cal-social__category{
    min-height:16px;
    padding:2px 5px;
    font-size:6px;
}

.cal-social-grid > .cal-social .cal-social__homeAway{
    min-width:63px;
    min-height:18px;
    padding:3px 5px;
    font-size:6px;
}

.cal-social-grid > .cal-social .cal-social__teams{
    grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);
    gap:6px;
}

.cal-social-grid > .cal-social .cal-social__team{
    font-size:10px;
    line-height:1.12;
}

.cal-social-grid > .cal-social .cal-social__score{
    font-size:15px;
    gap:2px;
}

.cal-social-grid > .cal-social .cal-social__score i{
    font-size:10px;
}

.cal-social-grid > .cal-social .cal-social__vs{
    width:32px;
    height:21px;
    font-size:7px;
}

.cal-social-grid > .cal-social .cal-social__venue{
    margin-top:4px;
    font-size:6px;
    line-height:1.15;
}

.cal-social-grid > .cal-social .cal-social__resultLabel{
    font-size:6px;
    margin-left:5px;
    padding-left:5px;
}

.cal-social-grid > .cal-social .cal-social__footer{
    flex:0 0 auto;
    padding:6px 24px 8px;
    font-size:6px;
}

@media (max-width:900px){
    .cal-social-grid > .cal-social .cal-social__header{
        padding:14px 22px 10px;
    }
}


/* ============================================================
   V11 — HEADER ENCORE PLUS COMPACT + STATUTS LISIBLES
   ============================================================ */
.cal-social-grid > .cal-social .cal-social__header{
    grid-template-columns:auto minmax(0,1fr) auto;
    padding:10px 24px 8px;
    gap:9px;
    align-items:center;
}

.cal-social-grid > .cal-social .cal-social__identity{
    display:contents;
}

.cal-social-grid > .cal-social .cal-social__logo{
    width:42px;
    height:42px;
    flex:0 0 42px;
}

.cal-social-grid > .cal-social .cal-social__headline{
    min-width:0;
    text-align:left;
}

.cal-social-grid > .cal-social .cal-social__headline h2{
    margin:0;
    font-size:14px;
    line-height:1.05;
    letter-spacing:0;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.cal-social-grid > .cal-social .cal-social__headline h2 span{
    display:inline;
}

.cal-social-grid > .cal-social .cal-social__week{
    display:inline-block;
    margin-top:3px;
    padding:2px 6px;
    font-size:6px;
}

.cal-social-grid > .cal-social .cal-social__count{
    width:38px;
    min-width:38px;
    height:38px;
    min-height:38px;
    padding:4px;
}

.cal-social-grid > .cal-social .cal-social__count strong{font-size:14px;}
.cal-social-grid > .cal-social .cal-social__count span{font-size:5px; margin-top:1px;}

/* Les rencontres utilisent toute la hauteur restante et restent de taille égale. */
.cal-social-grid > .cal-social .cal-social__matches{
    flex:1 1 0;
    padding:5px 24px 4px;
}

.cal-social-grid > .cal-social .cal-social__match{
    flex:1 1 0;
    min-height:0;
    justify-content:center;
    padding:10px 0;
}

/* Résultat beaucoup plus visible : badge coloré sous la rencontre. */
.cal-social-grid > .cal-social .cal-social__venue{
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:5px;
    margin-top:5px;
    font-size:6px;
}

.cal-social-grid > .cal-social .cal-social__resultLabel{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-left:0;
    padding:3px 8px;
    border:0;
    border-radius:999px;
    font-size:7px;
    line-height:1;
    font-weight:800;
    letter-spacing:.7px;
    color:#fff;
    background:#164477;
}

.cal-social-grid > .cal-social .cal-social__resultLabel--win{
    background:#16834b;
}

.cal-social-grid > .cal-social .cal-social__resultLabel--loss{
    background:#c81d2b;
}

.cal-social-grid > .cal-social .cal-social__resultLabel--draw{
    background:#777;
}

/* Le bas ne contient plus que le nom du club. */
.cal-social-grid > .cal-social .cal-social__footer{
    flex:0 0 auto;
    padding:5px 24px 7px;
    text-align:center;
}

.cal-social-grid > .cal-social .cal-social__footerPlace{
    font-size:7px;
    line-height:1;
    font-weight:800;
    letter-spacing:1px;
}

.cal-social-grid > .cal-social .cal-social__footerBrand,
.cal-social-grid > .cal-social .cal-social__footerLine,
.cal-social-grid > .cal-social .cal-social__hashtag{
    display:none !important;
}

@media (max-width:900px){
    .cal-social-grid > .cal-social .cal-social__header{padding:9px 20px 7px;}
    .cal-social-grid > .cal-social .cal-social__matches{padding-left:20px;padding-right:20px;}
    .cal-social-grid > .cal-social .cal-social__footer{padding-left:20px;padding-right:20px;}
}

/* ============================================================
   V12 — HAUTEUR FIXE + POULE VISIBLE + STATUTS HARMONISÉS
   ============================================================ */

/* Les badges victoire/défaite restent visibles mais dans des tons
   plus doux et cohérents avec l'identité graphique du CAL. */
.cal-social-grid > .cal-social .cal-social__resultLabel--win{
    background:#557A74;
}

.cal-social-grid > .cal-social .cal-social__resultLabel--loss{
    background:#8A5E66;
}

.cal-social-grid > .cal-social .cal-social__resultLabel--draw{
    background:#777482;
}

/* La poule est affichée avec la catégorie dans le même petit bloc. */
.cal-social-grid > .cal-social .cal-social__category{
    white-space:nowrap;
}

/* Chaque rencontre a exactement la même hauteur, quel que soit
   le nombre de rencontres dans la journée. */
.cal-social-grid > .cal-social .cal-social__matches{
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    align-items:stretch;
}

.cal-social-grid > .cal-social .cal-social__match{
    flex:0 0 82px;
    height:82px;
    min-height:82px;
    max-height:82px;
    box-sizing:border-box;
    justify-content:center;
    padding:6px 0 5px;
}

.cal-social-grid > .cal-social .cal-social__match + .cal-social__match{
    margin-top:0;
}

@media (max-width:900px){
    .cal-social-grid > .cal-social .cal-social__match{
        flex-basis:82px;
        height:82px;
        min-height:82px;
        max-height:82px;
    }
}

.cal-social-grid > .cal-social .cal-social__poule{
    margin-left:3px;
    font-weight:800;
    letter-spacing:.45px;
}

/* ============================================================
   V14 — HAUTEUR COMMUNE ENTRE LES JOURNÉES + POULE/GYMNASE PLUS LISIBLES
   ============================================================ */

/* Chaque carte conserve exactement le même format 4:5.
   Le nombre maximum de rencontres de la grille détermine la hauteur
   d'un bloc rencontre. Les journées moins chargées laissent donc
   simplement des emplacements vides en bas. */
.cal-social-grid > .cal-social .cal-social__matches{
    display:grid;
    grid-template-rows:repeat(var(--day-max-matches), minmax(0, 1fr));
    flex:1 1 auto;
    min-height:0;
    align-content:stretch;
}

.cal-social-grid > .cal-social .cal-social__match{
    min-height:0;
    height:auto;
    max-height:none;
    flex:none;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:7px 0;
}

/* POULE : beaucoup plus visible */
.cal-social-grid > .cal-social .cal-social__category{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    min-height:20px;
    padding:3px 7px;
    font-size:7px;
    line-height:1.1;
}

.cal-social-grid > .cal-social .cal-social__categoryName{
    font-weight:800;
}

.cal-social-grid > .cal-social .cal-social__poule{
    display:inline-flex;
    align-items:center;
    padding:2px 6px;
    margin:0;
    border-radius:999px;
    background:#dce9f5;
    color:#164477;
    font-size:8px;
    line-height:1;
    font-weight:950;
    letter-spacing:.45px;
    white-space:nowrap;
}

/* GYMNASE : plus grand et plus lisible */
.cal-social-grid > .cal-social .cal-social__venue{
    margin-top:5px;
    min-height:18px;
    font-size:8px;
    line-height:1.2;
    font-weight:800;
    color:#31465c;
}

.cal-social-grid > .cal-social .cal-social__pin{
    font-size:7px;
    color:#c81d2b;
}

/* Couleurs de résultats : bleu et rouge pastel, harmonisées CAL */
.cal-social-grid > .cal-social .cal-social__resultLabel--win{
    background:#dceaf7;
    color:#315f86;
}

.cal-social-grid > .cal-social .cal-social__resultLabel--loss{
    background:#f6dde0;
    color:#9a3f4a;
}

.cal-social-grid > .cal-social .cal-social__resultLabel--draw{
    background:#e6eaf0;
    color:#596575;
}

/* Pied de page strictement centré */
.cal-social-grid > .cal-social .cal-social__footer{
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    flex:0 0 auto;
}

.cal-social-grid > .cal-social .cal-social__footerPlace{
    width:auto;
    text-align:center;
}

@media (max-width:900px){
    .cal-social-grid > .cal-social .cal-social__category{
        font-size:7px;
    }

    .cal-social-grid > .cal-social .cal-social__poule{
        font-size:8px;
    }

    .cal-social-grid > .cal-social .cal-social__venue{
        font-size:8px;
    }
}


/* ============================================================
   V14.1 — SCORE EN BOUTON
   ============================================================ */
.cal-social__scoreButton{
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    gap:7px;
    min-width:76px !important;
    height:34px !important;
    padding:0 12px !important;
    border:1px solid #cbd8e5 !important;
    border-radius:9px !important;
    background:#edf4fa !important;
    color:#315f86 !important;
    box-sizing:border-box;
    font-size:19px !important;
    line-height:1 !important;
    font-weight:950 !important;
    box-shadow:0 1px 2px rgba(22,68,119,.08);
}
.cal-social__scoreButton--win{background:#dceaf7 !important;border-color:#b9d2e8 !important;color:#315f86 !important;}
.cal-social__scoreButton--loss{background:#f6dde0 !important;border-color:#e8bfc5 !important;color:#9a3f4a !important;}
.cal-social__scoreButton--draw{background:#eef1f4 !important;border-color:#d4dbe2 !important;color:#687482 !important;}
.cal-social__scoreButton i{color:inherit !important;font-size:12px !important;}
.cal-social__scoreButton span{min-width:16px;text-align:center;}
@media(max-width:520px){
    .cal-social__scoreButton{min-width:68px !important;height:31px !important;padding:0 9px !important;gap:5px;font-size:17px !important;}
    .cal-social__scoreButton i{font-size:11px !important;}
}

/* ============================================================
   V15 — DIVISION EN BOUTON + GYMNASE EN HAUT À DROITE
   ============================================================ */
.cal-social-grid > .cal-social .cal-social__matchHead{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,auto);
    grid-template-rows:auto auto;
    align-items:center;
    column-gap:10px;
    row-gap:5px;
    margin-bottom:9px;
}

/* Division / poule : vrai bouton visuel, plus facile à repérer. */
.cal-social-grid > .cal-social .cal-social__category{
    grid-column:1;
    grid-row:1;
    justify-content:flex-start;
    justify-self:start;
    min-height:24px;
    padding:0;
    gap:5px;
    font-size:8px;
    line-height:1;
}

.cal-social-grid > .cal-social .cal-social__categoryName{
    display:inline-flex;
    align-items:center;
    min-height:24px;
    padding:0 8px;
    border-radius:7px;
    background:#164477;
    color:#fff;
    font-size:8px;
    line-height:1;
    font-weight:900;
    letter-spacing:.45px;
    white-space:nowrap;
}

.cal-social-grid > .cal-social .cal-social__poule{
    display:inline-flex;
    align-items:center;
    min-height:24px;
    padding:0 8px;
    margin:0;
    border:1px solid #b9d2e8;
    border-radius:7px;
    background:#dceaf7;
    color:#315f86;
    font-size:9px;
    line-height:1;
    font-weight:950;
    letter-spacing:.5px;
    white-space:nowrap;
}

/* Gymnase + domicile/extérieur sur la même ligne, en haut à droite. */
.cal-social-grid > .cal-social .cal-social__headRight{
    grid-column:2;
    grid-row:1;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:7px;
    min-width:0;
}

.cal-social-grid > .cal-social .cal-social__headVenue{
    display:inline-flex;
    align-items:center;
    justify-content:flex-end;
    min-width:0;
    max-width:145px;
    color:#31465c;
    font-size:8px;
    line-height:1.1;
    font-weight:850;
    text-align:right;
}

.cal-social-grid > .cal-social .cal-social__headVenue > span:last-child{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.cal-social-grid > .cal-social .cal-social__headVenue .cal-social__pin{
    flex:0 0 auto;
    margin-right:3px;
    font-size:6px;
    color:#c81d2b;
}

.cal-social-grid > .cal-social .cal-social__homeAway{
    flex:0 0 auto;
    min-width:69px;
    min-height:22px;
    padding:4px 7px;
    box-sizing:border-box;
    font-size:7px;
    line-height:1;
    letter-spacing:.55px;
}

/* Date / heure sur la deuxième ligne du bandeau. */
.cal-social-grid > .cal-social .cal-social__date{
    grid-column:1 / -1;
    grid-row:2;
    justify-self:start;
    min-width:0;
}

/* La ligne de séparation doit respirer davantage. */
.cal-social-grid > .cal-social .cal-social__match + .cal-social__match{
    border-top:1px solid rgba(22,68,119,.16);
    padding-top:13px;
}

.cal-social-grid > .cal-social .cal-social__match{
    padding-top:7px;
    padding-bottom:10px;
}

.cal-social-grid > .cal-social .cal-social__match::before{
    top:13px;
    height:calc(100% - 26px);
}

/* Le nom du gymnase n'est plus répété sous les équipes. */
.cal-social-grid > .cal-social .cal-social__venue{
    min-height:14px;
    margin-top:5px;
    display:flex;
    align-items:center;
    justify-content:center;
}

@media(max-width:900px){
    .cal-social-grid > .cal-social .cal-social__matchHead{
        column-gap:7px;
        row-gap:4px;
        margin-bottom:7px;
    }

    .cal-social-grid > .cal-social .cal-social__categoryName,
    .cal-social-grid > .cal-social .cal-social__poule{
        min-height:22px;
    }

    .cal-social-grid > .cal-social .cal-social__categoryName{
        padding:0 7px;
        font-size:7px;
    }

    .cal-social-grid > .cal-social .cal-social__poule{
        padding:0 7px;
        font-size:8px;
    }

    .cal-social-grid > .cal-social .cal-social__headRight{
        gap:5px;
    }

    .cal-social-grid > .cal-social .cal-social__headVenue{
        max-width:115px;
        font-size:7px;
    }

    .cal-social-grid > .cal-social .cal-social__homeAway{
        min-width:63px;
        min-height:20px;
        padding:3px 5px;
        font-size:6px;
    }

    .cal-social-grid > .cal-social .cal-social__match + .cal-social__match{
        padding-top:11px;
    }
}

/* ============================================================
   V16 — UNE RENCONTRE = UN BLOC VISUEL
   ============================================================ */
.cal-social-grid > .cal-social .cal-social__match{
    background:rgba(255,255,255,.88);
    border:1px solid rgba(22,68,119,.14);
    border-radius:10px;
    box-shadow:0 2px 5px rgba(13,49,88,.05);
    padding:7px 9px 8px;
    overflow:visible;
}

.cal-social-grid > .cal-social .cal-social__match + .cal-social__match{
    margin-top:6px;
    padding-top:7px;
    border-top:1px solid rgba(22,68,119,.14);
}

.cal-social-grid > .cal-social .cal-social__match::before{
    left:0;
    top:9px;
    width:4px;
    height:calc(100% - 18px);
    border-radius:4px;
}

.cal-social-grid > .cal-social .cal-social__teams{
    display:grid;
    grid-template-columns:minmax(0,1fr) 78px minmax(0,1fr);
    align-items:center;
    column-gap:8px;
    min-width:0;
}

.cal-social-grid > .cal-social .cal-social__team{
    min-width:0;
    font-size:11px;
    line-height:1.15;
    font-weight:900;
    letter-spacing:-.08px;
    overflow-wrap:break-word;
    word-break:normal;
    hyphens:auto;
}

.cal-social-grid > .cal-social .cal-social__team--cal{
    text-align:right;
}

.cal-social-grid > .cal-social .cal-social__team--opp{
    text-align:left;
}

.cal-social-grid > .cal-social .cal-social__score{
    width:78px;
    min-width:78px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:3px;
    position:relative;
}

.cal-social-grid > .cal-social .cal-social__scoreButton{
    min-width:74px !important;
    height:30px !important;
    padding:0 7px !important;
    gap:4px;
    font-size:17px !important;
}

.cal-social-grid > .cal-social .cal-social__scoreButton i{
    font-size:10px !important;
}

.cal-social-grid > .cal-social .cal-social__vs{
    width:42px;
    height:26px;
    font-size:8px;
}

.cal-social-grid > .cal-social .cal-social__resultLabel{
    margin:0;
    padding:2px 6px;
    border:0;
    border-radius:999px;
    font-size:7px;
    line-height:1;
    letter-spacing:.55px;
    white-space:nowrap;
}

.cal-social-grid > .cal-social .cal-social__venue:empty{
    display:none;
}

/* Le contenu de chaque bloc reste centré sans autoriser les textes
   à passer par-dessus le bouton de score. */
.cal-social-grid > .cal-social .cal-social__matchHead{
    min-width:0;
}

@media(max-width:900px){
    .cal-social-grid > .cal-social .cal-social__match{
        padding-left:8px;
        padding-right:8px;
    }

    .cal-social-grid > .cal-social .cal-social__teams{
        grid-template-columns:minmax(0,1fr) 70px minmax(0,1fr);
        column-gap:6px;
    }

    .cal-social-grid > .cal-social .cal-social__score,
    .cal-social-grid > .cal-social .cal-social__scoreButton{
        width:70px;
        min-width:70px !important;
    }

    .cal-social-grid > .cal-social .cal-social__team{
        font-size:10px;
    }
}

/* Espacement entre les blocs sans modifier leur hauteur commune. */
.cal-social-grid > .cal-social .cal-social__matches{
    row-gap:6px;
}
.cal-social-grid > .cal-social .cal-social__match + .cal-social__match{
    margin-top:0;
    padding-top:7px;
}


/* ============================================================
   V17 — CONTENU 100 % CONTENU DANS CHAQUE BLOC
   ============================================================ */
.cal-social-grid > .cal-social .cal-social__match{
    box-sizing:border-box;
    overflow:hidden;
    min-width:0;
    width:100%;
}

/* Le bandeau supérieur reste dans les limites du bloc. */
.cal-social-grid > .cal-social .cal-social__matchHead{
    width:100%;
    min-width:0;
    box-sizing:border-box;
    overflow:hidden;
}

.cal-social-grid > .cal-social .cal-social__category{
    min-width:0;
    max-width:48%;
    overflow:hidden;
}

.cal-social-grid > .cal-social .cal-social__headRight{
    min-width:0;
    max-width:52%;
    overflow:hidden;
}

.cal-social-grid > .cal-social .cal-social__headVenue{
    min-width:0;
    max-width:calc(100% - 72px);
    overflow:hidden;
}

/* Zone équipes : trois colonnes réellement étanches. */
.cal-social-grid > .cal-social .cal-social__teams{
    width:100%;
    min-width:0;
    box-sizing:border-box;
    grid-template-columns:minmax(0,1fr) 66px minmax(0,1fr);
    column-gap:6px;
    overflow:hidden;
    align-items:center;
}

.cal-social-grid > .cal-social .cal-social__team{
    min-width:0;
    max-width:100%;
    box-sizing:border-box;
    font-size:var(--match-team-size, 10px) !important;
    line-height:1.08 !important;
    overflow-wrap:anywhere;
    word-break:normal;
    hyphens:auto;
    overflow:hidden;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
}

.cal-social-grid > .cal-social .cal-social__team--cal{
    text-align:right;
}

.cal-social-grid > .cal-social .cal-social__team--opp{
    text-align:left;
}

/* Le score possède sa propre colonne et ne peut jamais recouvrir un nom. */
.cal-social-grid > .cal-social .cal-social__score{
    width:66px;
    min-width:66px;
    max-width:66px;
    box-sizing:border-box;
    overflow:hidden;
    position:relative;
    z-index:2;
}

.cal-social-grid > .cal-social .cal-social__scoreButton{
    width:62px !important;
    min-width:62px !important;
    max-width:62px !important;
    height:28px !important;
    padding:0 4px !important;
    gap:3px !important;
    box-sizing:border-box;
    font-size:var(--match-score-size, 16px) !important;
}

.cal-social-grid > .cal-social .cal-social__scoreButton i{
    font-size:9px !important;
}

.cal-social-grid > .cal-social .cal-social__resultLabel{
    max-width:62px;
    overflow:hidden;
    text-overflow:ellipsis;
}

/* Aucun élément d'une rencontre ne peut dépasser de son cadre. */
.cal-social-grid > .cal-social .cal-social__venue{
    overflow:hidden;
    min-height:0;
    height:0;
    margin:0;
    padding:0;
}

@media(max-width:900px){
    .cal-social-grid > .cal-social .cal-social__teams{
        grid-template-columns:minmax(0,1fr) 60px minmax(0,1fr);
        column-gap:5px;
    }

    .cal-social-grid > .cal-social .cal-social__score,
    .cal-social-grid > .cal-social .cal-social__scoreButton{
        width:60px;
        min-width:60px !important;
        max-width:60px !important;
    }
}


/* ============================================================
   V18 — TRAIT LATERAL = DOMICILE / EXTÉRIEUR
   Rouge = domicile, bleu = extérieur.
   Le résultat victoire/défaite ne modifie plus ce trait.
   ============================================================ */
.cal-social-grid > .cal-social .cal-social__match--home::before{
    background:var(--cal-red) !important;
}

.cal-social-grid > .cal-social .cal-social__match--away::before{
    background:var(--cal-blue) !important;
}

/* ============================================================
   V19 — BLOCS DE RENCONTRE AUTONOMES ET LARGEURS STRICTEMENT ÉGALES
   ============================================================ */
.cal-social-grid{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    align-items:stretch !important;
}

.cal-social-grid > .cal-social{
    min-width:0 !important;
    width:100% !important;
    max-width:none !important;
    box-sizing:border-box !important;
}

.cal-social-grid > .cal-social .cal-social__matches{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    padding:10px 30px 10px !important;
    grid-template-columns:minmax(0,1fr) !important;
    grid-template-rows:repeat(var(--day-max-matches), minmax(0,1fr)) !important;
    column-gap:0 !important;
    align-items:stretch !important;
}

.cal-social-grid > .cal-social .cal-social__match{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    min-height:0 !important;
    max-height:none !important;
    box-sizing:border-box !important;
    align-self:stretch !important;
    justify-self:stretch !important;
    overflow:hidden !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    grid-template-rows:auto minmax(0,1fr) !important;
    padding:8px 12px !important;
    border:1px solid rgba(22,68,119,.15) !important;
    border-radius:10px !important;
}

.cal-social-grid > .cal-social .cal-social__match + .cal-social__match{
    margin-top:6px !important;
    padding-top:8px !important;
    border-top:1px solid rgba(22,68,119,.15) !important;
}

.cal-social-grid > .cal-social .cal-social__matchHead{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(0,auto) !important;
    grid-template-rows:auto auto !important;
    column-gap:8px !important;
    row-gap:4px !important;
    margin:0 0 5px !important;
    overflow:hidden !important;
}

.cal-social-grid > .cal-social .cal-social__category{
    min-width:0 !important;
    max-width:100% !important;
    overflow:hidden !important;
}

.cal-social-grid > .cal-social .cal-social__headRight{
    min-width:0 !important;
    max-width:100% !important;
    overflow:hidden !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:6px !important;
}

.cal-social-grid > .cal-social .cal-social__headVenue{
    min-width:0 !important;
    max-width:180px !important;
    overflow:hidden !important;
}

.cal-social-grid > .cal-social .cal-social__headVenue > span:last-child{
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
}

.cal-social-grid > .cal-social .cal-social__date{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
    min-width:0 !important;
}

.cal-social-grid > .cal-social .cal-social__teams{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    height:100% !important;
    box-sizing:border-box !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 82px minmax(0,1fr) !important;
    column-gap:8px !important;
    align-items:center !important;
    overflow:hidden !important;
}

.cal-social-grid > .cal-social .cal-social__team{
    min-width:0 !important;
    max-width:100% !important;
    overflow:hidden !important;
    display:-webkit-box !important;
    -webkit-box-orient:vertical !important;
    -webkit-line-clamp:2 !important;
    white-space:normal !important;
    overflow-wrap:anywhere !important;
    word-break:normal !important;
    hyphens:auto !important;
    line-height:1.12 !important;
    font-size:var(--match-team-size,10px) !important;
}

.cal-social-grid > .cal-social .cal-social__score{
    width:82px !important;
    min-width:82px !important;
    max-width:82px !important;
    overflow:visible !important;
    z-index:2 !important;
}

.cal-social-grid > .cal-social .cal-social__scoreButton{
    width:76px !important;
    min-width:76px !important;
    max-width:76px !important;
    height:30px !important;
    padding:0 5px !important;
    box-sizing:border-box !important;
    font-size:var(--match-score-size,16px) !important;
}

.cal-social-grid > .cal-social .cal-social__resultLabel{
    max-width:76px !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
}

@media(max-width:900px){
    .cal-social-grid{
        grid-template-columns:minmax(0,1fr) !important;
    }

    .cal-social-grid > .cal-social .cal-social__matches{
        padding-left:20px !important;
        padding-right:20px !important;
    }

    .cal-social-grid > .cal-social .cal-social__teams{
        grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr) !important;
        column-gap:6px !important;
    }

    .cal-social-grid > .cal-social .cal-social__score,
    .cal-social-grid > .cal-social .cal-social__scoreButton{
        width:72px !important;
        min-width:72px !important;
        max-width:72px !important;
    }

    .cal-social-grid > .cal-social .cal-social__scoreButton{
        width:68px !important;
        min-width:68px !important;
        max-width:68px !important;
    }
}

/* ============================================================
   V20 — STRUCTURE DES RENCONTRES
   Chaque rencontre est un bloc autonome. Le nombre maximal de
   matchs de la paire de journées fixe la hauteur des blocs.
   Les journées plus courtes laissent simplement les blocs
   inférieurs vides.
   ============================================================ */
.cal-social-grid > .cal-social{
    display:flex !important;
    flex-direction:column !important;
    min-height:0 !important;
    aspect-ratio:4 / 5 !important;
    height:auto !important;
}

.cal-social-grid > .cal-social .cal-social__header{
    flex:0 0 auto !important;
}

.cal-social-grid > .cal-social .cal-social__matches{
    flex:1 1 auto !important;
    min-height:0 !important;
    width:100% !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    grid-template-rows:repeat(var(--day-max-matches), minmax(0,1fr)) !important;
    gap:8px !important;
    padding:10px 38px 8px !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
}

.cal-social-grid > .cal-social .cal-social__match{
    position:relative !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:0 !important;
    padding:9px 12px 8px 14px !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-start !important;
    align-items:stretch !important;
    overflow:hidden !important;
    border:1px solid rgba(22,68,119,.16) !important;
    border-radius:11px !important;
    background:rgba(255,255,255,.90) !important;
    box-shadow:0 2px 7px rgba(13,49,88,.08) !important;
}

.cal-social-grid > .cal-social .cal-social__match + .cal-social__match{
    margin-top:0 !important;
    padding-top:9px !important;
    border-top:1px solid rgba(22,68,119,.16) !important;
}

.cal-social-grid > .cal-social .cal-social__match::before{
    top:9px !important;
    bottom:9px !important;
    left:0 !important;
    width:4px !important;
    height:auto !important;
    border-radius:4px !important;
}

.cal-social-grid > .cal-social .cal-social__matchHead{
    flex:0 0 auto !important;
    width:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    margin:0 0 6px !important;
    padding:0 !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(0,auto) !important;
    grid-template-rows:auto auto !important;
    column-gap:8px !important;
    row-gap:4px !important;
    align-items:center !important;
    overflow:hidden !important;
}

.cal-social-grid > .cal-social .cal-social__category{
    grid-column:1 !important;
    grid-row:1 !important;
    min-width:0 !important;
    justify-self:start !important;
}

.cal-social-grid > .cal-social .cal-social__headRight{
    grid-column:2 !important;
    grid-row:1 !important;
    min-width:0 !important;
    max-width:100% !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:6px !important;
    overflow:hidden !important;
}

.cal-social-grid > .cal-social .cal-social__headVenue{
    min-width:0 !important;
    max-width:260px !important;
    display:flex !important;
    align-items:center !important;
    gap:4px !important;
    overflow:hidden !important;
    white-space:nowrap !important;
    font-size:9px !important;
}

.cal-social-grid > .cal-social .cal-social__headVenue > span:last-child{
    min-width:0 !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
}

.cal-social-grid > .cal-social .cal-social__date{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
    min-width:0 !important;
    margin:0 !important;
}

.cal-social-grid > .cal-social .cal-social__teams{
    flex:1 1 auto !important;
    width:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    height:auto !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 82px minmax(0,1fr) !important;
    column-gap:8px !important;
    align-items:center !important;
    overflow:hidden !important;
}

.cal-social-grid > .cal-social .cal-social__team{
    min-width:0 !important;
    max-width:100% !important;
    margin:0 !important;
    padding:0 !important;
    color:#151b22 !important;
    font-size:var(--match-team-size,10px) !important;
    line-height:1.12 !important;
    font-weight:900 !important;
    white-space:normal !important;
    overflow-wrap:anywhere !important;
    word-break:normal !important;
    display:-webkit-box !important;
    -webkit-box-orient:vertical !important;
    -webkit-line-clamp:2 !important;
    overflow:hidden !important;
}

.cal-social-grid > .cal-social .cal-social__team--cal{
    text-align:right !important;
}

.cal-social-grid > .cal-social .cal-social__team--opp{
    text-align:left !important;
}

.cal-social-grid > .cal-social .cal-social__score{
    width:82px !important;
    min-width:82px !important;
    max-width:82px !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    overflow:visible !important;
    z-index:2 !important;
}

.cal-social-grid > .cal-social .cal-social__scoreButton{
    width:76px !important;
    min-width:76px !important;
    max-width:76px !important;
    height:31px !important;
    min-height:31px !important;
    margin:0 auto !important;
    padding:0 5px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:3px !important;
    box-sizing:border-box !important;
    font-size:var(--match-score-size,16px) !important;
    line-height:1 !important;
}

.cal-social-grid > .cal-social .cal-social__resultLabel{
    margin-top:4px !important;
    max-width:76px !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
}

.cal-social-grid > .cal-social .cal-social__footer{
    flex:0 0 auto !important;
}

@media(max-width:900px){
    .cal-social-grid > .cal-social .cal-social__matches{
        padding-left:20px !important;
        padding-right:20px !important;
        gap:7px !important;
    }

    .cal-social-grid > .cal-social .cal-social__teams{
        grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr) !important;
        column-gap:5px !important;
    }

    .cal-social-grid > .cal-social .cal-social__score,
    .cal-social-grid > .cal-social .cal-social__scoreButton{
        width:72px !important;
        min-width:72px !important;
        max-width:72px !important;
    }

    .cal-social-grid > .cal-social .cal-social__scoreButton{
        width:68px !important;
        min-width:68px !important;
        max-width:68px !important;
    }

    .cal-social-grid > .cal-social .cal-social__headVenue{
        max-width:150px !important;
    }
}

/* ============================================================
   V21 — RENCONTRE EN 2 COLONNES / 2 LIGNES
   Ligne 1 : division/poule | gymnase + domicile/extérieur
   Ligne 2 : jour + heure   | équipe 1 + score + équipe 2
   Le résultat VICTOIRE/DÉFAITE n'est volontairement plus affiché.
   ============================================================ */
.cal-social-grid > .cal-social .cal-social__match {
    padding: 10px 12px 10px 14px !important;
    display: block !important;
    box-sizing: border-box !important;
}

.cal-social-grid > .cal-social .cal-social__matchGrid {
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(92px, 30%) minmax(0, 70%) !important;
    grid-template-rows: minmax(24px, auto) minmax(0, 1fr) !important;
    column-gap: 10px !important;
    row-gap: 7px !important;
    align-items: center !important;
    overflow: hidden !important;
}

/* Ligne 1 / colonne 1 : division + poule */
.cal-social-grid > .cal-social .cal-social__matchGrid > .cal-social__category {
    grid-column: 1 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    width: max-content !important;
    max-width: 100% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 5px !important;
    overflow: hidden !important;
}

.cal-social-grid > .cal-social .cal-social__categoryName {
    display: inline-flex !important;
    align-items: center !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 6px 10px !important;
    border-radius: 8px !important;
    background: #164477 !important;
    color: #fff !important;
    font-size: 10px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    white-space: nowrap !important;
}

.cal-social-grid > .cal-social .cal-social__poule {
    display: inline-flex !important;
    align-items: center !important;
    min-width: 0 !important;
    padding: 5px 7px !important;
    border-radius: 7px !important;
    background: #e8f1f8 !important;
    color: #164477 !important;
    font-size: 8px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    white-space: nowrap !important;
}

/* Ligne 1 / colonne 2 : gymnase + domicile/extérieur */
.cal-social-grid > .cal-social .cal-social__matchGrid > .cal-social__headRight {
    grid-column: 2 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    max-width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 7px !important;
    overflow: hidden !important;
}

.cal-social-grid > .cal-social .cal-social__headVenue {
    min-width: 0 !important;
    max-width: calc(100% - 92px) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 4px !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    font-size: 9px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    color: #40546a !important;
}

.cal-social-grid > .cal-social .cal-social__headVenue > span:last-child {
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.cal-social-grid > .cal-social .cal-social__homeAway {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
}

/* Ligne 2 / colonne 1 : jour + heure */
.cal-social-grid > .cal-social .cal-social__matchGrid > .cal-social__date {
    grid-column: 1 !important;
    grid-row: 2 !important;
    align-self: center !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
    gap: 4px !important;
    overflow: hidden !important;
}

.cal-social-grid > .cal-social .cal-social__day,
.cal-social-grid > .cal-social .cal-social__time {
    font-size: 10px !important;
    line-height: 1.1 !important;
    font-weight: 900 !important;
}

/* Ligne 2 / colonne 2 : équipe 1 | score | équipe 2 */
.cal-social-grid > .cal-social .cal-social__matchGrid > .cal-social__teams {
    grid-column: 2 !important;
    grid-row: 2 !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 78px minmax(0, 1fr) !important;
    column-gap: 7px !important;
    align-items: center !important;
    overflow: hidden !important;
}

.cal-social-grid > .cal-social .cal-social__team {
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: var(--match-team-size, 10px) !important;
    line-height: 1.12 !important;
    font-weight: 900 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    overflow: hidden !important;
}

.cal-social-grid > .cal-social .cal-social__team--cal {
    text-align: right !important;
}

.cal-social-grid > .cal-social .cal-social__team--opp {
    text-align: left !important;
}

.cal-social-grid > .cal-social .cal-social__score {
    width: 78px !important;
    min-width: 78px !important;
    max-width: 78px !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: visible !important;
    z-index: 2 !important;
}

.cal-social-grid > .cal-social .cal-social__scoreButton {
    width: 74px !important;
    min-width: 74px !important;
    max-width: 74px !important;
    height: 31px !important;
    min-height: 31px !important;
    margin: 0 auto !important;
    padding: 0 4px !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 3px !important;
    font-size: var(--match-score-size, 16px) !important;
    line-height: 1 !important;
}

/* Plus de résultat VICTOIRE/DÉFAITE dans la rencontre. */
.cal-social-grid > .cal-social .cal-social__resultLabel {
    display: none !important;
}

@media (max-width: 900px) {
    .cal-social-grid > .cal-social .cal-social__matchGrid {
        grid-template-columns: minmax(82px, 32%) minmax(0, 68%) !important;
        column-gap: 7px !important;
    }

    .cal-social-grid > .cal-social .cal-social__matchGrid > .cal-social__teams {
        grid-template-columns: minmax(0, 1fr) 68px minmax(0, 1fr) !important;
        column-gap: 5px !important;
    }

    .cal-social-grid > .cal-social .cal-social__score,
    .cal-social-grid > .cal-social .cal-social__scoreButton {
        width: 68px !important;
        min-width: 68px !important;
        max-width: 68px !important;
    }

    .cal-social-grid > .cal-social .cal-social__scoreButton {
        width: 64px !important;
        min-width: 64px !important;
        max-width: 64px !important;
        font-size: 14px !important;
    }

    .cal-social-grid > .cal-social .cal-social__headVenue {
        max-width: calc(100% - 86px) !important;
        font-size: 8px !important;
    }
}

/* ============================================================
   V22 — RENCONTRE SUR UNE SEULE LIGNE
   ============================================================ */
.cal-social-grid > .cal-social .cal-social__matches {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-items: stretch !important;
    gap: 8px !important;
    overflow: hidden !important;
}

.cal-social-grid > .cal-social .cal-social__match {
    flex: 0 0 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 52px !important;
    height: auto !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    padding: 7px 10px !important;
    border-radius: 10px !important;
}

.cal-social-grid > .cal-social .cal-social__matchGrid {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 36px !important;
    height: auto !important;
    display: grid !important;
    grid-template-columns: minmax(74px, 15%) minmax(0, 1fr) minmax(122px, 23%) !important;
    grid-template-rows: minmax(36px, auto) !important;
    column-gap: 9px !important;
    row-gap: 0 !important;
    align-items: center !important;
    overflow: hidden !important;
}

/* Division / poule / heure : colonne gauche */
.cal-social-grid > .cal-social .cal-social__matchGrid > .cal-social__category {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 4px !important;
    overflow: hidden !important;
}

.cal-social-grid > .cal-social .cal-social__categoryName {
    flex: 0 1 auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 6px 8px !important;
    border-radius: 7px !important;
    font-size: 9px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.cal-social-grid > .cal-social .cal-social__poule {
    flex: 0 1 auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 4px 5px !important;
    font-size: 7px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

/* Gymnase dans le bouton à droite — DOMICILE / EXTÉRIEUR supprimé */
.cal-social-grid > .cal-social .cal-social__matchGrid > .cal-social__headRight {
    grid-column: 3 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    max-width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    overflow: hidden !important;
}

.cal-social-grid > .cal-social .cal-social__headVenue {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
    padding: 6px 8px !important;
    border-radius: 7px !important;
    background: #164477 !important;
    color: #fff !important;
    font-size: 8px !important;
    line-height: 1.05 !important;
    font-weight: 900 !important;
    text-align: center !important;
    overflow: hidden !important;
    white-space: nowrap !important;
}

.cal-social-grid > .cal-social .cal-social__headVenue > span:last-child {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.cal-social-grid > .cal-social .cal-social__pin {
    display: none !important;
}

.cal-social-grid > .cal-social .cal-social__homeAway {
    display: none !important;
}

/* Jour / heure non affichés : l'en-tête de la journée les porte déjà. */
.cal-social-grid > .cal-social .cal-social__matchGrid > .cal-social__date {
    display: none !important;
}

/* Équipes + score/VS au centre */
.cal-social-grid > .cal-social .cal-social__matchGrid > .cal-social__teams {
    grid-column: 2 !important;
    grid-row: 1 !important;
    width: 100% !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 36px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 64px minmax(0, 1fr) !important;
    column-gap: 6px !important;
    align-items: center !important;
    overflow: hidden !important;
}

.cal-social-grid > .cal-social .cal-social__team {
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: var(--match-team-size, 9px) !important;
    line-height: 1.05 !important;
    font-weight: 900 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    display: block !important;
}

.cal-social-grid > .cal-social .cal-social__team--cal {
    text-align: right !important;
}

.cal-social-grid > .cal-social .cal-social__team--opp {
    text-align: left !important;
}

.cal-social-grid > .cal-social .cal-social__score {
    width: 64px !important;
    min-width: 64px !important;
    max-width: 64px !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: visible !important;
}

.cal-social-grid > .cal-social .cal-social__scoreButton {
    width: 62px !important;
    min-width: 62px !important;
    max-width: 62px !important;
    height: 28px !important;
    min-height: 28px !important;
    margin: 0 !important;
    padding: 0 3px !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 2px !important;
    font-size: 14px !important;
    line-height: 1 !important;
}

.cal-social-grid > .cal-social .cal-social__vs {
    width: 48px !important;
    min-width: 48px !important;
    height: 27px !important;
    min-height: 27px !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 auto !important;
    border-radius: 7px !important;
    background: #edf4fa !important;
    color: #315f86 !important;
    border: 1px solid #c9ddea !important;
    font-size: 12px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
}

/* Plus de 7 rencontres : on compacte légèrement les lignes sans les étirer. */
.cal-social[style*="--day-max-matches: 8"] .cal-social__match,
.cal-social[style*="--day-max-matches: 9"] .cal-social__match,
.cal-social[style*="--day-max-matches: 10"] .cal-social__match,
.cal-social[style*="--day-max-matches: 11"] .cal-social__match,
.cal-social[style*="--day-max-matches: 12"] .cal-social__match {
    min-height: 46px !important;
    padding-top: 5px !important;
    padding-bottom: 5px !important;
}

.cal-social[style*="--day-max-matches: 8"] .cal-social__matchGrid,
.cal-social[style*="--day-max-matches: 9"] .cal-social__matchGrid,
.cal-social[style*="--day-max-matches: 10"] .cal-social__matchGrid,
.cal-social[style*="--day-max-matches: 11"] .cal-social__matchGrid,
.cal-social[style*="--day-max-matches: 12"] .cal-social__matchGrid {
    min-height: 32px !important;
    grid-template-rows: minmax(32px, auto) !important;
}

@media (max-width: 900px) {
    .cal-social-grid > .cal-social .cal-social__matchGrid {
        grid-template-columns: minmax(64px, 19%) minmax(0, 1fr) minmax(96px, 25%) !important;
        column-gap: 6px !important;
    }

    .cal-social-grid > .cal-social .cal-social__matchGrid > .cal-social__teams {
        grid-template-columns: minmax(0, 1fr) 58px minmax(0, 1fr) !important;
        column-gap: 4px !important;
    }

    .cal-social-grid > .cal-social .cal-social__score,
    .cal-social-grid > .cal-social .cal-social__scoreButton {
        width: 58px !important;
        min-width: 58px !important;
        max-width: 58px !important;
    }

    .cal-social-grid > .cal-social .cal-social__scoreButton {
        width: 56px !important;
        min-width: 56px !important;
        max-width: 56px !important;
        height: 26px !important;
        min-height: 26px !important;
        font-size: 12px !important;
    }

    .cal-social-grid > .cal-social .cal-social__categoryName {
        font-size: 8px !important;
        padding: 5px 6px !important;
    }

    .cal-social-grid > .cal-social .cal-social__poule {
        font-size: 6.5px !important;
        padding: 4px 4px !important;
    }

    .cal-social-grid > .cal-social .cal-social__headVenue {
        font-size: 7px !important;
        padding: 5px 5px !important;
    }
}


/* V23 — heure réintégrée sous la division, dans la colonne gauche */
.cal-social-grid > .cal-social .cal-social__matchGrid > .cal-social__category {
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    gap: 3px !important;
}

.cal-social-grid > .cal-social .cal-social__categoryTop {
    width: 100% !important;
    min-width: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 4px !important;
    overflow: hidden !important;
}

.cal-social-grid > .cal-social .cal-social__matchDate {
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    font-size: 8px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    color: #164477 !important;
}

.cal-social-grid > .cal-social .cal-social__matchDay {
    white-space: nowrap !important;
}

.cal-social-grid > .cal-social .cal-social__matchDate .cal-social__bullet {
    color: #c81d2b !important;
    font-size: 8px !important;
}

.cal-social-grid > .cal-social .cal-social__matchDate .cal-social__time {
    white-space: nowrap !important;
}

/* L'ancien bloc date reste invisible : l'information est désormais intégrée à gauche. */
.cal-social-grid > .cal-social .cal-social__matchGrid > .cal-social__date {
    display: none !important;
}

@media (max-width: 900px) {
    .cal-social-grid > .cal-social .cal-social__matchDate {
        font-size: 7px !important;
    }
}


/* ============================================================
   V24 — COMPACTAGE FINAL DES RENCONTRES
   Une rencontre = une ligne compacte. Aucun étirement vertical.
   ============================================================ */
.cal-social-grid > .cal-social .cal-social__matches {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-items: stretch !important;
    gap: 3px !important;
    padding: 4px 24px 3px !important;
    overflow: hidden !important;
}

.cal-social-grid > .cal-social .cal-social__match {
    flex: 0 0 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 38px !important;
    height: 38px !important;
    max-height: 38px !important;
    box-sizing: border-box !important;
    padding: 3px 8px !important;
    overflow: hidden !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.cal-social-grid > .cal-social .cal-social__matchGrid {
    width: 100% !important;
    height: 32px !important;
    min-height: 32px !important;
    max-height: 32px !important;
    grid-template-columns: minmax(112px, 20%) minmax(0, 1fr) minmax(118px, 22%) !important;
    grid-template-rows: 32px !important;
    column-gap: 7px !important;
    align-items: center !important;
    overflow: hidden !important;
}

/* Division + jour/heure sur une seule ligne à gauche. */
.cal-social-grid > .cal-social .cal-social__matchGrid > .cal-social__category {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    height: 32px !important;
    min-height: 32px !important;
    max-height: 32px !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 4px !important;
    overflow: hidden !important;
    white-space: nowrap !important;
}

.cal-social-grid > .cal-social .cal-social__categoryTop {
    width: auto !important;
    flex: 0 0 auto !important;
    min-width: 0 !important;
    display: flex !important;
    align-items: center !important;
    overflow: hidden !important;
}

.cal-social-grid > .cal-social .cal-social__categoryName {
    min-height: 22px !important;
    height: 22px !important;
    padding: 0 7px !important;
    display: inline-flex !important;
    align-items: center !important;
    border-radius: 6px !important;
    font-size: 8px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

.cal-social-grid > .cal-social .cal-social__poule {
    min-height: 20px !important;
    height: 20px !important;
    padding: 0 5px !important;
    font-size: 7px !important;
}

.cal-social-grid > .cal-social .cal-social__matchDate {
    flex: 0 1 auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 20px !important;
    display: flex !important;
    align-items: center !important;
    gap: 3px !important;
    font-size: 7px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

.cal-social-grid > .cal-social .cal-social__matchDate .cal-social__bullet {
    font-size: 7px !important;
}

/* Équipes + score/VS au centre : une seule ligne, toujours. */
.cal-social-grid > .cal-social .cal-social__matchGrid > .cal-social__teams {
    grid-column: 2 !important;
    grid-row: 1 !important;
    width: 100% !important;
    height: 32px !important;
    min-height: 32px !important;
    max-height: 32px !important;
    grid-template-columns: minmax(0, 1fr) 58px minmax(0, 1fr) !important;
    column-gap: 5px !important;
    align-items: center !important;
    overflow: hidden !important;
}

.cal-social-grid > .cal-social .cal-social__team {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    font-size: 8.5px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.cal-social-grid > .cal-social .cal-social__score {
    width: 58px !important;
    min-width: 58px !important;
    max-width: 58px !important;
    height: 32px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.cal-social-grid > .cal-social .cal-social__scoreButton {
    width: 56px !important;
    min-width: 56px !important;
    max-width: 56px !important;
    height: 26px !important;
    min-height: 26px !important;
    padding: 0 2px !important;
    gap: 2px !important;
    font-size: 12px !important;
}

.cal-social-grid > .cal-social .cal-social__vs {
    width: 42px !important;
    min-width: 42px !important;
    height: 23px !important;
    min-height: 23px !important;
    font-size: 9px !important;
}

/* Gymnase : bouton compact à droite. */
.cal-social-grid > .cal-social .cal-social__matchGrid > .cal-social__headRight {
    grid-column: 3 !important;
    grid-row: 1 !important;
    width: 100% !important;
    height: 28px !important;
    min-width: 0 !important;
    max-height: 28px !important;
}

.cal-social-grid > .cal-social .cal-social__headVenue {
    width: 100% !important;
    max-width: 100% !important;
    height: 24px !important;
    min-height: 24px !important;
    padding: 0 7px !important;
    border-radius: 6px !important;
    font-size: 7px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

/* Le nombre de matchs ne justifie plus la hauteur : ils sont empilés. */
.cal-social-grid > .cal-social .cal-social__match + .cal-social__match {
    margin-top: 0 !important;
}

@media (max-width: 900px) {
    .cal-social-grid > .cal-social .cal-social__matches {
        padding-left: 18px !important;
        padding-right: 18px !important;
        gap: 3px !important;
    }

    .cal-social-grid > .cal-social .cal-social__matchGrid {
        grid-template-columns: minmax(88px, 23%) minmax(0, 1fr) minmax(88px, 24%) !important;
        column-gap: 5px !important;
    }

    .cal-social-grid > .cal-social .cal-social__team {
        font-size: 7.5px !important;
    }

    .cal-social-grid > .cal-social .cal-social__categoryName {
        font-size: 7px !important;
        padding: 0 5px !important;
    }

    .cal-social-grid > .cal-social .cal-social__matchDate {
        font-size: 6.5px !important;
    }

    .cal-social-grid > .cal-social .cal-social__headVenue {
        font-size: 6px !important;
    }
}


/* ============================================================
   V25 — NOMS DES ÉQUIPES PLUS LISIBLES + JOUR COURT
   ============================================================ */
.cal-social-grid > .cal-social .cal-social__matchGrid {
    grid-template-columns: minmax(72px, 18%) minmax(0, 1fr) minmax(82px, 21%) !important;
    column-gap: 6px !important;
}

.cal-social-grid > .cal-social .cal-social__category {
    padding-right: 0 !important;
}

.cal-social-grid > .cal-social .cal-social__categoryName {
    font-size: 8px !important;
    font-weight: 800 !important;
    padding: 0 6px !important;
}

.cal-social-grid > .cal-social .cal-social__poule {
    font-size: 7px !important;
    padding: 0 4px !important;
}

.cal-social-grid > .cal-social .cal-social__matchDate {
    font-size: 7px !important;
    gap: 2px !important;
}

.cal-social-grid > .cal-social .cal-social__teams {
    grid-template-columns: minmax(0, 1fr) 60px minmax(0, 1fr) !important;
    column-gap: 4px !important;
}

.cal-social-grid > .cal-social .cal-social__team {
    font-size: var(--match-team-size, 10px) !important;
    font-weight: 700 !important;
    line-height: 1.05 !important;
    white-space: normal !important;
    overflow: hidden !important;
    text-overflow: clip !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    line-clamp: 2 !important;
    max-height: 22px !important;
    overflow-wrap: anywhere !important;
}

.cal-social-grid > .cal-social .cal-social__team--cal {
    text-align: right !important;
    padding-right: 2px !important;
}

.cal-social-grid > .cal-social .cal-social__team--opp {
    text-align: left !important;
    padding-left: 2px !important;
}

.cal-social-grid > .cal-social .cal-social__score {
    width: 60px !important;
    min-width: 60px !important;
    max-width: 60px !important;
}

.cal-social-grid > .cal-social .cal-social__scoreButton {
    width: 58px !important;
    min-width: 58px !important;
    max-width: 58px !important;
    height: 25px !important;
    min-height: 25px !important;
    font-size: var(--match-score-size, 15px) !important;
}

.cal-social-grid > .cal-social .cal-social__vs {
    width: 40px !important;
    min-width: 40px !important;
    font-size: 9px !important;
    font-weight: 800 !important;
}

.cal-social-grid > .cal-social .cal-social__headRight {
    gap: 3px !important;
}

.cal-social-grid > .cal-social .cal-social__headVenue {
    font-size: 6.5px !important;
    font-weight: 700 !important;
    padding-left: 5px !important;
    padding-right: 5px !important;
}

@media (max-width: 900px) {
    .cal-social-grid > .cal-social .cal-social__matchGrid {
        grid-template-columns: minmax(68px, 19%) minmax(0, 1fr) minmax(74px, 21%) !important;
        column-gap: 4px !important;
    }

    .cal-social-grid > .cal-social .cal-social__teams {
        grid-template-columns: minmax(0, 1fr) 54px minmax(0, 1fr) !important;
        column-gap: 3px !important;
    }

    .cal-social-grid > .cal-social .cal-social__team {
        font-size: 8.5px !important;
        max-height: 20px !important;
    }

    .cal-social-grid > .cal-social .cal-social__score,
    .cal-social-grid > .cal-social .cal-social__scoreButton {
        width: 52px !important;
        min-width: 52px !important;
        max-width: 52px !important;
    }
}

/* ============================================================
   V26 — TITRE DE JOURNÉE PLUS VISIBLE + JOUR EN BOUTON
   ============================================================ */
.cal-social-grid > .cal-social .cal-social__headline h2.cal-social__headlineTitle {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    margin: 0 !important;
    font-size: 20px !important;
    line-height: 1 !important;
    letter-spacing: .02em !important;
    white-space: nowrap !important;
}

.cal-social-grid > .cal-social .cal-social__headlineTitle > span {
    display: inline-block !important;
}

.cal-social-grid > .cal-social .cal-social__dayBadge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 74px !important;
    height: 27px !important;
    padding: 0 10px !important;
    border-radius: 7px !important;
    background: #c81d2b !important;
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: .04em !important;
}

.cal-social-grid > .cal-social .cal-social__dayBadge.is-sunday {
    background: #164477 !important;
}

.cal-social-grid > .cal-social .cal-social__matchDate {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    margin-left: auto !important;
    justify-content: flex-end !important;
    gap: 0 !important;
    text-align: right !important;
}

/* L'heure reste dans la colonne de gauche, juste après la division,
   et toutes les heures sont alignées sur la même verticale à droite. */
.cal-social-grid > .cal-social .cal-social__matchDate .cal-social__time {
    font-size: 10px !important;
    font-weight: 950 !important;
    white-space: nowrap !important;
    text-align: right !important;
    padding-right: 10px !important;
}

@media (max-width: 900px) {
    .cal-social-grid > .cal-social .cal-social__headline h2.cal-social__headlineTitle {
        font-size: 17px !important;
        gap: 6px !important;
    }

    .cal-social-grid > .cal-social .cal-social__dayBadge {
        min-width: 62px !important;
        height: 24px !important;
        padding: 0 8px !important;
        font-size: 13px !important;
    }

    .cal-social-grid > .cal-social .cal-social__matchDate .cal-social__time {
        font-size: 9px !important;
        padding-right: 8px !important;
    }
}

/* ============================================================
   V31 — DATE DU JOUR LÉGÈREMENT PLUS VISIBLE
   On agrandit uniquement la date (ex. 26 SEPT), sans augmenter
   la hauteur du header ni réduire l'espace disponible pour les matchs.
   ============================================================ */
.cal-social-grid > .cal-social .cal-social__week {
    display: inline-block !important;
    margin-top: 3px !important;
    padding: 2px 6px !important;
    font-size: 10px !important;
    line-height: 1 !important;
    font-weight: 950 !important;
    letter-spacing: .03em !important;
}

.cal-social-grid > .cal-social .cal-social__week.is-saturday {
    color: #c81d2b !important;
}

.cal-social-grid > .cal-social .cal-social__week.is-sunday {
    color: #164477 !important;
}

/* ============================================================
   V32 — DATE EN BOUTON, BLANCHE ET UN PEU PLUS GRANDE
   ============================================================ */
.cal-social-grid > .cal-social .cal-social__week {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-top: 4px !important;
    padding: 4px 9px !important;
    min-height: 24px !important;
    border-radius: 999px !important;
    font-size: 12px !important;
    line-height: 1 !important;
    font-weight: 950 !important;
    letter-spacing: .04em !important;
    color: #fff !important;
}

.cal-social-grid > .cal-social .cal-social__week.is-saturday {
    background: #c81d2b !important;
    color: #fff !important;
}

.cal-social-grid > .cal-social .cal-social__week.is-sunday {
    background: #164477 !important;
    color: #fff !important;
}

@media (max-width: 760px) {
    .cal-social-grid > .cal-social .cal-social__week {
        padding: 3px 8px !important;
        min-height: 22px !important;
        font-size: 11px !important;
    }
}

/* ============================================================
   V33 — RÉPARTITION VERTICALE DES RENCONTRES
   Les rencontres restent sur une seule ligne, mais sont réparties
   régulièrement sur toute la hauteur disponible de chaque fiche.
   La hauteur commune continue de dépendre du maximum de matchs
   de la paire de journées.
   ============================================================ */
.cal-social-grid > .cal-social .cal-social__matches {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: repeat(var(--day-max-matches), minmax(38px, 1fr)) !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    align-content: stretch !important;
    align-items: stretch !important;
    gap: 3px !important;
    padding: 8px 24px 8px !important;
    overflow: hidden !important;
}

.cal-social-grid > .cal-social .cal-social__match {
    width: 100% !important;
    height: auto !important;
    min-height: 38px !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 3px 8px !important;
    box-sizing: border-box !important;
    align-self: stretch !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
}

@media (max-width: 900px) {
    .cal-social-grid > .cal-social .cal-social__matches {
        grid-template-rows: repeat(var(--day-max-matches), minmax(38px, 1fr)) !important;
        gap: 3px !important;
        padding-left: 18px !important;
        padding-right: 18px !important;
    }

    .cal-social-grid > .cal-social .cal-social__match {
        min-height: 38px !important;
    }
}


/* ============================================================
   V34 — FOND BASKET ALIGNÉ À DROITE
   Le fond générique est cadré sur la droite pour conserver visible
   toute la partie droite de l'image (logo et zone graphique).
   ============================================================ */
.cal-social-grid > .cal-social .cal-social__photo {
    background-position: right center !important;
}

/* ============================================================
   V38 — NOM COMPLET DES GYMNASES
   Aucun nom de gymnase ne doit être tronqué ou remplacé par ...
   ============================================================ */
.cal-social-grid > .cal-social .cal-social__matchGrid > .cal-social__headRight,
.cal-social-grid > .cal-social .cal-social__headVenue,
.cal-social-grid > .cal-social .cal-social__headVenue > span:last-child {
    overflow: visible !important;
    text-overflow: clip !important;
}

.cal-social-grid > .cal-social .cal-social__headVenue {
    height: auto !important;
    min-height: 24px !important;
    max-height: none !important;
    white-space: normal !important;
    line-height: 1.08 !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
}

.cal-social-grid > .cal-social .cal-social__headVenue > span:last-child {
    display: block !important;
    max-width: none !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    line-height: 1.08 !important;
}

.cal-social-grid > .cal-social .cal-social__matchGrid > .cal-social__headRight {
    height: auto !important;
    min-height: 24px !important;
    max-height: none !important;
    align-self: center !important;
}


/* ============================================================
   V39 — IMAGE COMPLÈTE EN FOND
   Le visuel basket occupe toute la fiche 4:5, et non plus
   seulement une bande sur la droite. Le contenu reste lisible
   grâce à des surfaces blanches translucides.
   ============================================================ */

.cal-social--photo{
    background:#0d3158;
}

.cal-social--photo .cal-social__photo{
    position:absolute;
    inset:0;
    z-index:0;
    width:100%;
    height:100%;
    background-position:center center;
    background-repeat:no-repeat;
    background-size:100% 100%;
    opacity:1;
}

.cal-social--photo .cal-social__photoFade{
    position:absolute;
    inset:0;
    z-index:1;
    width:100%;
    height:100%;
    background:rgba(255,255,255,.62);
    pointer-events:none;
}

.cal-social--photo .cal-social__decor{
    display:none;
}

.cal-social--default-photo .cal-social__identity > .cal-social__logo{
    display:none;
}

.cal-social--photo .cal-social__header{
    background:rgba(255,255,255,.88);
    border-bottom-color:var(--cal-red);
    border-radius:0 0 10px 10px;
    box-shadow:0 2px 12px rgba(13,49,88,.08);
}

.cal-social--photo .cal-social__matches{
    margin:0 18px;
    padding-left:37px;
    padding-right:37px;
    background:rgba(255,255,255,.52);
    border-radius:12px;
}

.cal-social--photo .cal-social__match{
    padding-left:10px;
    padding-right:10px;
}

.cal-social--photo .cal-social__team{
    color:#101820;
}

.cal-social--photo .cal-social__footer{
    background:rgba(255,255,255,.86);
    border-radius:10px 10px 0 0;
    padding-left:16px;
    padding-right:16px;
}

@media (max-width:600px){
    .cal-social--photo .cal-social__matches{
        margin:0 8px;
        padding-left:25px;
        padding-right:25px;
    }
}

/* ============================================================
   V41 — IMAGE VISIBLE AUSSI SOUS LE HEADER
   Suppression du bandeau blanc placé au-dessus/à la surface
   de l'image : le fond basket reste visible dès le haut de la fiche.
   ============================================================ */
.cal-social--photo .cal-social__header{
    background:transparent !important;
    box-shadow:none !important;
    border-bottom-color:rgba(200,29,43,.9) !important;
}

/* ============================================================
   V42 — FOND PLUS VISIBLE + CARTES PARFAITEMENT CENTRÉES
   - Le voile blanc sur l'image est fortement réduit.
   - Le bloc des rencontres est centré dans la fiche 4:5.
   - Chaque carte de rencontre est centrée horizontalement.
   ============================================================ */
.cal-social--photo .cal-social__photoFade{
    background:rgba(255,255,255,.10) !important;
}

.cal-social-grid > .cal-social .cal-social__matches{
    width:calc(100% - 36px) !important;
    max-width:none !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding-left:0 !important;
    padding-right:0 !important;
    box-sizing:border-box !important;
}

.cal-social-grid > .cal-social .cal-social__match{
    width:100% !important;
    max-width:100% !important;
    margin-left:auto !important;
    margin-right:auto !important;
    box-sizing:border-box !important;
}

@media (max-width:900px){
    .cal-social-grid > .cal-social .cal-social__matches{
        width:calc(100% - 24px) !important;
    }
}

@media (max-width:600px){
    .cal-social-grid > .cal-social .cal-social__matches{
        width:calc(100% - 16px) !important;
        margin-left:auto !important;
        margin-right:auto !important;
    }
}

/* ============================================================
   V43 — BANDEAU TITRE BLANC + SUPPRESSION TOTALE DU VOILE
   ============================================================ */
.cal-social--photo .cal-social__header{
    background:#fff !important;
    box-shadow:0 2px 12px rgba(13,49,88,.08) !important;
    border-bottom-color:var(--cal-red) !important;
}

.cal-social--photo .cal-social__photoFade{
    background:transparent !important;
}

/* ============================================================
   V45 — SUPPRESSION DU VOILE BLANC SOUS LE TRAIT ROUGE
   Le voile montré sur la capture venait du conteneur des matchs,
   et non de l'image de fond. Le bandeau du titre reste blanc.
   Les cartes individuelles des matchs restent blanches.
   ============================================================ */
.cal-social--photo .cal-social__matches{
    background:transparent !important;
}

/* ============================================================
   V46 — COULEUR DU GYMNASE SELON DOMICILE / EXTÉRIEUR
   Rouge = domicile, comme le tiret latéral de la carte.
   Bleu = extérieur.
   ============================================================ */
.cal-social-grid > .cal-social .cal-social__match--home .cal-social__headVenue {
    background: var(--cal-blue) !important;
    
    color: #fff !important;
}

.cal-social-grid > .cal-social .cal-social__match--away .cal-social__headVenue {
    background: var(--cal-red) !important;
    
    color: #fff !important;
}

/* ============================================================
   V48 — ESPACE MOBILE AJUSTÉ POUR L'HEURE
   La colonne gauche est légèrement moins large que dans V47, tout en
   conservant un petit espace réservé à l'heure pour éviter qu'une
   division longue ne la masque.
   ============================================================ */
@media (max-width: 900px) {
    .cal-social-grid > .cal-social .cal-social__matchGrid {
        grid-template-columns: minmax(70px, 19%) minmax(0, 1fr) minmax(74px, 21%) !important;
        column-gap: 5px !important;
    }

    .cal-social-grid > .cal-social .cal-social__category {
        gap: 5px !important;
    }

    .cal-social-grid > .cal-social .cal-social__categoryTop {
        flex: 1 1 auto !important;
        min-width: 0 !important;
        max-width: calc(100% - 28px) !important;
    }

    .cal-social-grid > .cal-social .cal-social__matchDate {
        flex: 0 0 28px !important;
        width: 28px !important;
        max-width: 28px !important;
        min-width: 28px !important;
        margin-left: 0 !important;
        justify-content: flex-end !important;
        overflow: visible !important;
    }

    .cal-social-grid > .cal-social .cal-social__matchDate .cal-social__time {
        padding-right: 2px !important;
        font-size: 7px !important;
        white-space: nowrap !important;
    }
}

/* ============================================================
   V50 — LIEN FFBB COMPACT SANS PERDRE DE RENCONTRES
   Le lien ajouté en bas ne doit pas réduire la place utile des matchs.
   ============================================================ */
.cal-social-grid > .cal-social .cal-social__matches{
    gap:4px !important;
}

.cal-social-grid > .cal-social .cal-social__match{
    min-height:34px !important;
    padding-top:4px !important;
    padding-bottom:4px !important;
}

.cal-social-grid > .cal-social .cal-social__footer{
    flex:0 0 auto !important;
    min-height:24px !important;
    margin-top:2px !important;
    padding:3px 10px 5px !important;
    gap:2px !important;
    line-height:1 !important;
    flex-wrap:nowrap !important;
}

.cal-social-grid > .cal-social .cal-social__footerPlace,
.cal-social-grid > .cal-social .cal-social__footerLink{
    font-size:7px !important;
    line-height:1 !important;
}

@media (max-width:600px){
    .cal-social-grid > .cal-social .cal-social__matches{
        gap:3px !important;
    }

    .cal-social-grid > .cal-social .cal-social__match{
        min-height:33px !important;
        padding-top:3px !important;
        padding-bottom:3px !important;
    }

    .cal-social-grid > .cal-social .cal-social__footer{
        min-height:23px !important;
        padding:3px 6px 4px !important;
    }

    .cal-social-grid > .cal-social .cal-social__footerPlace,
    .cal-social-grid > .cal-social .cal-social__footerLink{
        font-size:6.5px !important;
    }
}

/* ============================================================
   V52 — MOBILE : AFFICHER TOUTES LES RENCONTRES
   On compacte légèrement chaque ligne pour éviter que les dernières
   rencontres soient coupées en bas de la fiche 4:5.
   ============================================================ */
@media (max-width: 600px) {
    .cal-social-grid > .cal-social .cal-social__matches {
        grid-template-rows: repeat(var(--day-max-matches), minmax(36px, 1fr)) !important;
        gap: 2px !important;
        padding: 5px 10px 5px !important;
    }

    .cal-social-grid > .cal-social .cal-social__match {
        min-height: 36px !important;
        padding: 2px 5px !important;
        overflow: hidden !important;
    }

    .cal-social-grid > .cal-social .cal-social__matchGrid {
        grid-template-rows: minmax(19px, auto) minmax(0, 1fr) !important;
        column-gap: 4px !important;
        row-gap: 2px !important;
    }

    /* Sur très petit écran, le badge DOMICILE/EXTÉRIEUR est retiré
       de la ligne pour laisser toute la place au nom du gymnase. */
    .cal-social-grid > .cal-social .cal-social__homeAway {
        display: none !important;
    }

    .cal-social-grid > .cal-social .cal-social__headRight {
        min-height: 19px !important;
        height: 19px !important;
        overflow: visible !important;
        justify-content: flex-end !important;
    }

    .cal-social-grid > .cal-social .cal-social__headVenue {
        width: 100% !important;
        max-width: 100% !important;
        min-height: 19px !important;
        height: 19px !important;
        padding: 3px 4px !important;
        font-size: 6px !important;
        line-height: 1 !important;
        overflow: hidden !important;
        white-space: nowrap !important;
        text-overflow: ellipsis !important;
    }

    .cal-social-grid > .cal-social .cal-social__headVenue > span:last-child {
        display: block !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .cal-social-grid > .cal-social .cal-social__team {
        font-size: 8px !important;
        max-height: 18px !important;
        line-height: 1 !important;
    }

    .cal-social-grid > .cal-social .cal-social__score,
    .cal-social-grid > .cal-social .cal-social__scoreButton {
        width: 50px !important;
        min-width: 50px !important;
        max-width: 50px !important;
        height: 23px !important;
        min-height: 23px !important;
        font-size: 8px !important;
    }

    .cal-social-grid > .cal-social .cal-social__vs {
        width: 38px !important;
        min-width: 38px !important;
        font-size: 8px !important;
    }

    .cal-social-grid > .cal-social .cal-social__categoryName {
        padding: 4px 6px !important;
        font-size: 7.5px !important;
    }

    .cal-social-grid > .cal-social .cal-social__poule {
        padding: 4px 5px !important;
        font-size: 6.5px !important;
    }

    .cal-social-grid > .cal-social .cal-social__matchDate .cal-social__time {
        font-size: 7px !important;
        padding-right: 1px !important;
    }
}

/* ============================================================
   V54 — GYMNASES MOBILES : NOM COMPLET
   Le nom du gymnase ne doit jamais être tronqué par des "...".
   ============================================================ */
@media (max-width: 600px) {
    .cal-social-grid > .cal-social .cal-social__headRight {
        min-height: 19px !important;
        height: auto !important;
        overflow: visible !important;
        align-items: stretch !important;
    }

    .cal-social-grid > .cal-social .cal-social__headVenue {
        width: 100% !important;
        max-width: 100% !important;
        min-height: 19px !important;
        height: auto !important;
        padding: 3px 4px !important;
        font-size: 5.5px !important;
        line-height: 1.08 !important;
        overflow: visible !important;
        white-space: normal !important;
        text-overflow: clip !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
        box-sizing: border-box !important;
    }

    .cal-social-grid > .cal-social .cal-social__headVenue > span:last-child {
        display: inline !important;
        max-width: none !important;
        overflow: visible !important;
        text-overflow: clip !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
        line-height: 1.08 !important;
    }

    .cal-social-grid > .cal-social .cal-social__matchGrid {
        grid-template-rows: auto minmax(0, 1fr) !important;
    }
}

/* ============================================================
   V55 — FORMATS INTERMÉDIAIRES : HEURE TOUJOURS VISIBLE
   Entre 601 et 900 px, la colonne gauche est légèrement élargie
   afin que les divisions longues ne viennent pas comprimer l'heure.
   ============================================================ */
@media (min-width: 601px) and (max-width: 900px) {
    .cal-social-grid > .cal-social .cal-social__matchGrid {
        grid-template-columns: minmax(100px, 22%) minmax(0, 1fr) minmax(96px, 22%) !important;
        column-gap: 6px !important;
    }

    .cal-social-grid > .cal-social .cal-social__category {
        min-width: 0 !important;
        max-width: 100% !important;
        gap: 5px !important;
    }

    .cal-social-grid > .cal-social .cal-social__categoryTop {
        flex: 1 1 auto !important;
        min-width: 0 !important;
        max-width: calc(100% - 32px) !important;
        overflow: hidden !important;
    }

    .cal-social-grid > .cal-social .cal-social__matchDate {
        flex: 0 0 32px !important;
        width: 32px !important;
        min-width: 32px !important;
        max-width: 32px !important;
        margin-left: 0 !important;
        justify-content: flex-end !important;
        white-space: nowrap !important;
        overflow: visible !important;
    }

    .cal-social-grid > .cal-social .cal-social__matchDate .cal-social__time {
        font-size: 7px !important;
        padding-right: 2px !important;
        white-space: nowrap !important;
    }
}

/* ============================================================
   V56 — RAPPROCHER LES ÉQUIPES DU VS / SCORE
   On conserve la largeur du VS et du score pour ne pas gêner
   les scores à 3 chiffres, mais on réduit l'espace latéral.
   ============================================================ */
.cal-social-grid > .cal-social .cal-social__teams {
    column-gap: 1px !important;
}

.cal-social-grid > .cal-social .cal-social__team--cal {
    padding-right: 0 !important;
}

.cal-social-grid > .cal-social .cal-social__team--opp {
    padding-left: 0 !important;
}

@media (max-width: 900px) {
    .cal-social-grid > .cal-social .cal-social__teams {
        column-gap: 1px !important;
    }
}
