/* ============================================================
   EAV — Calendrier communautaire, direction « Programme » (en ligne depuis le 26/10/2026)
   Le programme imprimé d'une saison culturelle : pas de boîtes, horaires en colonne, le weekend
   en affiche rouge en tête, la semaine du lundi au vendredi sur une rangée (5 colonnes dès
   1 100 px, 3 dès 900, 2 dès 760, une seule sur téléphone).
   Choisie par Nicolas parmi trois maquettes : calendrier-communautaire/maquettes-design/.
   Nom de fichier à changer à chaque modification : LiteSpeed retire les ?ver=.
   Titres, jours et horaires en Open Sans, la police de la charte du site (depuis le 27/10/2026).
   ============================================================ */

/* --- Commun : filtres, semaines, contenu des cartes --- */

.eav-calendrier {
    --bleu: #050A95;
    --bleu-nuit: #03066B;
    --rouge: #C7112E;
    --voile: #F3F4FB;
    --trait: #DDE0F0;
    --encre: #1D2340;
    --gris: #5B5F7A;
    max-width: 1080px;
    margin: 0 auto;
    color: var(--encre);
}

/* Divi ajoute des marges aux paragraphes et aux titres du module texte */
.eav-calendrier p,
.eav-calendrier h2,
.eav-calendrier h3 {
    padding: 0;
    margin: 0;
}

.eav-calendrier :focus-visible {
    outline: 3px solid var(--rouge);
    outline-offset: 2px;
}

/* --- Villes : une ligne qui défile sur téléphone --- */
.eav-cal-filtres-villes {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.eav-cal-filtre-ville {
    padding: 0.45rem 1rem;
    border: 1.5px solid var(--trait);
    border-radius: 999px;
    background: #fff;
    color: var(--bleu);
    font: inherit;
    font-size: 0.9rem;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
}

.eav-cal-filtre-ville:hover {
    border-color: var(--bleu);
}

.eav-cal-filtre-ville.actif {
    background: var(--bleu);
    border-color: var(--bleu);
    color: #fff;
}

/* --- Semaines --- */
.eav-cal-nav-semaines {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 2rem;
    padding: 0.6rem;
    border: 1.5px solid var(--trait);
    border-radius: 999px;
    background: #fff;
}

.eav-cal-nav-btn {
    flex: 0 0 2.6rem;
    height: 2.6rem;
    border: 0;
    border-radius: 50%;
    background: var(--bleu);
    color: #fff;
    font-size: 1.1rem;
    cursor: pointer;
}

.eav-cal-nav-btn:hover {
    background: var(--rouge);
}

.eav-cal-nav-btn:disabled {
    background: var(--trait);
    color: #fff;
    cursor: default;
}

.eav-cal-sem-label {
    flex: 1;
    text-align: center;
    font-weight: 800;
    color: var(--bleu);
}

/* --- Contenu des cartes --- */
.eav-cal-events {
    display: block;
}

.eav-cal-card.eav-hidden {
    display: none;
}

.eav-cal-card-header {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.25rem 0.6rem;
    margin-bottom: 0.3rem;
}

.eav-cal-heure {
    color: var(--rouge);
    font-weight: 800;
    font-size: 0.9rem;
}

.eav-cal-badge {
    color: var(--gris);
    font-size: 0.82rem;
    font-weight: 600;
}

.eav-cal-card-titre {
    color: var(--bleu);
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.3;
}

.eav-calendrier .eav-cal-lieu {
    margin-top: 0.35rem;
    color: var(--gris);
    font-size: 0.85rem;
    line-height: 1.4;
}

.eav-cal-lieu-icon {
    display: none;
}

.eav-cal-description {
    margin-top: 0.4rem;
    color: var(--gris);
    font-size: 0.88rem;
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.eav-calendrier .eav-cal-description p + p {
    margin-top: 0.35rem;
}

.eav-cal-description--repliee {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.eav-cal-description--ouverte {
    display: block;
}

/* 24 px de haut au moins : la taille minimale d'une cible au doigt */
.eav-cal-lien {
    display: inline-block;
    padding: 4px 0;
    font-weight: 700;
    color: var(--bleu);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Toujours sur sa propre ligne, au-dessus du bouton « Ajouter à mon agenda » */
.eav-cal-plus {
    display: block;
    margin-top: 0.3rem;
    padding: 0;
    border: 0;
    background: none;
    color: var(--bleu);
    font: inherit;
    font-size: 0.85rem;
    font-weight: 700;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.eav-cal-add-btn {
    display: inline-block;
    margin-top: 0.7rem;
    padding: 0.35rem 0.85rem;
    border: 1.5px solid var(--trait);
    border-radius: 999px;
    color: var(--bleu);
    font-size: 0.8rem;
    font-weight: 700;
    text-decoration: none;
}

.eav-cal-add-btn:hover {
    border-color: var(--bleu);
}

.eav-cal-groupe-nombre {
    font-size: 0.9rem;
    color: var(--gris);
}

.eav-cal-aucun-filtre {
    display: none;
    padding: 2rem 1rem;
    text-align: center;
    color: var(--gris);
}

.eav-cal-aucun-filtre.visible {
    display: block;
}

@media (max-width: 759px) {
    .eav-cal-filtres-villes {
        flex-wrap: nowrap;
        overflow-x: auto;
        margin-inline: -1rem;
        padding: 0 1rem 0.25rem;
        scrollbar-width: none;
    }

    .eav-cal-filtres-villes::-webkit-scrollbar {
        display: none;
    }

    .eav-cal-nav-semaines {
        margin-bottom: 1.5rem;
        font-size: 0.9rem;
    }
}

/* --- Mise en page « Programme » --- */

.eav-cal-groupe {
    margin-bottom: 3rem;
}

.eav-cal-groupe-entete {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.25rem 1rem;
    margin-bottom: 1.5rem;
}

.eav-calendrier .eav-cal-groupe-titre {
    font-family: 'Open Sans', sans-serif;
    font-size: 2.3rem;
    font-weight: 800;
    line-height: 1.15;
    color: var(--bleu);
}

/* --- L'affiche du weekend --- */
.eav-cal-groupe--weekend {
    padding: 2rem 1.75rem 1.5rem;
    background: var(--rouge);
    color: #fff;
}

.eav-calendrier .eav-cal-groupe--weekend .eav-cal-groupe-titre {
    color: #fff;
    font-size: 2.8rem;
}

.eav-cal-groupe--weekend .eav-cal-groupe-nombre,
.eav-cal-groupe--weekend .eav-cal-badge,
.eav-cal-groupe--weekend .eav-cal-lieu,
.eav-cal-groupe--weekend .eav-cal-description {
    color: rgba(255, 255, 255, 0.86);
}

.eav-cal-groupe--weekend .eav-cal-heure,
.eav-cal-groupe--weekend .eav-cal-card-titre,
.eav-cal-groupe--weekend .eav-cal-lien,
.eav-cal-groupe--weekend .eav-cal-plus,
.eav-cal-groupe--weekend .eav-cal-description a {
    color: #fff;
}

.eav-cal-groupe--weekend .eav-cal-add-btn {
    border-color: rgba(255, 255, 255, 0.6);
    color: #fff;
}

.eav-cal-groupe--weekend .eav-cal-card {
    border-color: rgba(255, 255, 255, 0.35);
}

.eav-cal-groupe--weekend .eav-cal-feuille {
    border-color: #fff;
}

/* --- Les jours --- */
.eav-cal-jours {
    display: grid;
    gap: 2rem 3rem;
    align-items: start;
}

.eav-cal-feuille {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0 0.45rem;
    padding-bottom: 0.4rem;
    border-bottom: 3px solid var(--bleu);
    font-family: 'Open Sans', sans-serif;
}

.eav-cal-feuille-nom,
.eav-cal-feuille-num {
    font-size: 1.6rem;
    font-weight: 800;
}

.eav-cal-feuille-mois {
    font-size: 1.1rem;
    font-weight: 500;
    opacity: 0.75;
}

/* Sur le rouge du weekend, 0.75 ne donnait qu'un contraste de 3,8 : 0.9 donne 5 */
.eav-cal-groupe--weekend .eav-cal-feuille-mois {
    opacity: 0.9;
}

.eav-cal-jour--aujourdhui .eav-cal-feuille-nom {
    color: var(--rouge);
}

.eav-cal-groupe--weekend .eav-cal-jour--aujourdhui .eav-cal-feuille-nom {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 6px;
}

/* --- Une ligne par événement : l'horaire à gauche, le reste à droite --- */
.eav-cal-card {
    display: grid;
    grid-template-columns: 4.75rem minmax(0, 1fr);
    align-content: start; /* une fiche étirée à la hauteur de sa voisine ne doit pas s'aérer */
    column-gap: 1rem;
    padding: 1rem 0;
    border-bottom: 1px solid var(--trait);
}

.eav-cal-card-header {
    display: contents;
}

.eav-calendrier .eav-cal-heure {
    grid-column: 1;
    grid-row: 1 / span 2;
    font-family: 'Open Sans', sans-serif;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.15;
    font-variant-numeric: tabular-nums;
}

.eav-cal-badge {
    grid-column: 2;
    grid-row: 1;
}

.eav-cal-corps {
    grid-column: 2;
    grid-row: 2;
}

/* Dates de fin et « Du … au … » : trop longues pour la colonne, elles passent au-dessus du titre */
.eav-cal-jour-liste--encours {
    display: grid;
    column-gap: 3rem;
}

.eav-cal-jour-liste--encours .eav-cal-card,
.eav-cal-card--plage {
    grid-template-columns: minmax(0, 1fr);
}

.eav-calendrier .eav-cal-jour-liste--encours .eav-cal-heure,
.eav-calendrier .eav-cal-card--plage .eav-cal-heure,
.eav-cal-jour-liste--encours .eav-cal-badge,
.eav-cal-card--plage .eav-cal-badge,
.eav-cal-jour-liste--encours .eav-cal-corps,
.eav-cal-card--plage .eav-cal-corps {
    grid-column: 1;
    grid-row: auto;
}

.eav-calendrier .eav-cal-jour-liste--encours .eav-cal-heure,
.eav-calendrier .eav-cal-card--plage .eav-cal-heure {
    font-size: 1rem;
}

@media (min-width: 760px) {
    .eav-cal-jours,
    .eav-cal-jour-liste--encours {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 759px) {
    .eav-cal-groupe--weekend {
        margin-inline: -1rem;
        padding: 1.5rem 1rem 1rem;
    }

    .eav-calendrier .eav-cal-groupe--weekend .eav-cal-groupe-titre {
        font-size: 2.1rem;
    }

    /* Pas sur les « Du … au … » : leur date passe au-dessus du titre, sur toute la largeur */
    .eav-cal-card:not(.eav-cal-card--plage) {
        grid-template-columns: 4rem minmax(0, 1fr);
        column-gap: 0.75rem;
    }

    .eav-calendrier .eav-cal-heure {
        font-size: 1.1rem;
    }
}

/* --- La semaine sur une rangée --- */

@media (min-width: 900px) {
    .eav-cal-groupe--semaine .eav-cal-jours {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 2rem 1.75rem;
    }

    .eav-cal-jour-liste--encours {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        column-gap: 1.75rem;
    }
}

@media (min-width: 1100px) {
    .eav-cal-groupe--semaine .eav-cal-jours {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 0 1.25rem;
    }

    .eav-cal-groupe--semaine .eav-cal-jour[data-jour="1"] { grid-column: 1; }
    .eav-cal-groupe--semaine .eav-cal-jour[data-jour="2"] { grid-column: 2; }
    .eav-cal-groupe--semaine .eav-cal-jour[data-jour="3"] { grid-column: 3; }
    .eav-cal-groupe--semaine .eav-cal-jour[data-jour="4"] { grid-column: 4; }
    .eav-cal-groupe--semaine .eav-cal-jour[data-jour="5"] { grid-column: 5; }

    .eav-cal-groupe--semaine .eav-cal-jour {
        grid-row: 1;
    }
}

/* Colonnes étroites : tout s'empile, la typographie se resserre */
@media (min-width: 900px) {
    .eav-cal-groupe--semaine .eav-cal-feuille-nom,
    .eav-cal-groupe--semaine .eav-cal-feuille-num {
        font-size: 1.3rem;
    }

    .eav-cal-groupe--semaine .eav-cal-feuille-mois {
        font-size: 0.95rem;
    }

    .eav-cal-groupe--semaine .eav-cal-card {
        grid-template-columns: minmax(0, 1fr);
    }

    .eav-calendrier .eav-cal-groupe--semaine .eav-cal-heure,
    .eav-cal-groupe--semaine .eav-cal-badge,
    .eav-cal-groupe--semaine .eav-cal-corps {
        grid-column: 1;
        grid-row: auto;
    }

    .eav-calendrier .eav-cal-groupe--semaine .eav-cal-heure {
        font-size: 1.05rem;
    }

    .eav-cal-groupe--semaine .eav-cal-card-titre {
        font-size: 0.98rem;
    }
}

/* ============================================================
   Page Calendrier : en-tête et présentation (depuis le 27/10/2026)
   Deux modules Texte de la page 47, modifiables dans Divi : l'en-tête au-dessus du shortcode,
   la présentation dans la section claire du bas. Maquette : calendrier-communautaire/maquettes-intro/2.html.
   ============================================================ */

/* Divi met 4 % de marge au-dessus de la section : l'en-tête remonte près du menu */
.et_pb_section:has(.eav-cal-entete) {
    padding-top: 30px;
}

.eav-cal-entete .eav-cal-entete-sur {
    padding: 0 0 6px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    color: #C7112E;
}

.eav-cal-entete h1 {
    padding: 0;
    font-size: 2.6rem;
    font-weight: 800;
    line-height: 1.15;
    color: #050A95;
}

.eav-cal-entete .eav-cal-entete-sous {
    padding: 8px 0 0;
    line-height: 1.55;
    color: #5B5F7A;
}

.eav-cal-entete .eav-cal-entete-sous a {
    color: #050A95;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    white-space: nowrap;
}

/* Le lien « Qui tient cet agenda ? » s'arrête sous l'en-tête collant, pas dessous */
.eav-apropos-ancre {
    display: block;
    position: relative;
    top: -110px;
}

/* Divi enveloppe l'ancre dans un paragraphe : sans hauteur ni marge, il ne décale pas le titre */
.eav-apropos p:has(> .eav-apropos-ancre) {
    height: 0;
    margin: 0;
    padding: 0;
}

.eav-apropos h2 {
    padding: 0 0 16px;
    font-size: 1.9rem;
    font-weight: 600;
    line-height: 1.15;
    color: #050A95;
}

.eav-apropos-corps {
    display: grid;
    grid-template-columns: 3fr 2fr;
    gap: 40px;
    align-items: start;
}

.eav-apropos-texte p {
    padding: 0;
    color: #1D2340;
}

.eav-apropos-texte a {
    color: #050A95;
    font-weight: 600;
}

.eav-apropos .eav-apropos-conseils {
    margin: 16px 0 0;
    padding: 0 !important;
}

.eav-apropos .eav-apropos-conseils li {
    list-style: none !important;
    position: relative;
    padding: 0 0 8px 26px;
    line-height: 1.5;
    color: #1D2340;
}

.eav-apropos-conseils li::before {
    position: absolute;
    left: 0;
    top: 0;
    color: #C7112E;
    font-weight: 700;
}

.eav-apropos-conseils li:nth-child(1)::before { content: '★'; }
.eav-apropos-conseils li:nth-child(2)::before { content: '+'; font-size: 1.2em; line-height: 1.2; }

.eav-apropos-actions {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* Divi ajoute un <br> entre deux liens écrits sur deux lignes */
.eav-apropos-actions br {
    display: none;
}

.eav-apropos .eav-apropos-btn {
    display: block;
    padding: 14px 18px;
    border-radius: 999px;
    background: #050A95;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
    text-align: center;
    text-decoration: none;
}

.eav-apropos .eav-apropos-btn-rouge {
    background: #C7112E;
}

@media (max-width: 980px) {
    .eav-apropos-corps {
        grid-template-columns: 1fr;
        gap: 24px;
    }
}

@media (max-width: 767px) {
    .et_pb_section:has(.eav-cal-entete) {
        padding-top: 22px;
    }

    .eav-cal-entete h1 {
        font-size: 1.9rem;
    }

    .eav-apropos h2 {
        font-size: 1.6rem;
    }
}
