/* ============================================================
   calendrier.css — Calendrier CTT Brunoy v2
   Réutilise les tokens de global.css. Reprend l'esprit de l'ancienne
   page (FullCalendar + sidebar prochain événement/sélection/filtres),
   modernisé : couleurs cohérentes avec le reste du site, pastilles
   de filtre au lieu de cases à cocher brutes, calendrier qui respire.
   ============================================================ */

.page-wrapper.page-calendrier {
  background-image  : url('../Image/Fond/Calendrier.png');
  background-repeat  : no-repeat;
  background-size    : cover;
  background-position: top center;
  background-attachment: fixed;
}

/* ============================================================
   1. INTRO
   .cal-intro, .cal-titre, .cal-titre::after : voir global.css §10
   ============================================================ */

.cal-intro-texte {
  font-family: var(--font-texte);
  font-size: var(--taille-texte);
  color: var(--gris-texte);
  line-height: 1.7;
  letter-spacing: normal;
}

.cal-intro-note {
  font-family: var(--font-texte);
  font-size: var(--taille-petit);
  color: var(--bleu-titre);
  background: var(--gris-clair);
  border-radius: var(--rayon-md);
  padding: var(--espace-xs) var(--espace-sm);
  max-width: 760px;
}

/* ============================================================
   2. LAYOUT — sidebar + calendrier
   ============================================================ */
.cal-corps {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: var(--espace-md);
  align-items: start;
  padding-bottom: var(--espace-xl);
}

.cal-sidebar {
  display: flex;
  flex-direction: column;
  gap: var(--espace-sm);
  position: sticky;
  top: var(--espace-sm);
}

.cal-box {
  background: var(--blanc);
  border: 1px solid var(--gris-bordure);
  border-radius: var(--rayon-md);
  padding: var(--espace-sm);
  box-shadow: var(--ombre-carte);
}

.cal-box h2 {
  font-family: var(--font-sous-titre);
  font-size: var(--taille-petit);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--bleu-titre);
  margin-bottom: 10px;
}

.cal-box-vide {
  font-family: var(--font-texte);
  font-size: var(--taille-petit);
  color: var(--gris-texte);
}

.cal-box p {
  font-size: var(--taille-petit);
  line-height: 1.5;
  letter-spacing: normal;
}

.cal-box p strong {
  display: block;
  font-family: var(--font-sous-titre);
  font-size: var(--taille-texte);
  color: var(--noir-texte);
  margin-bottom: 2px;
}

.cal-event-detail-ligne {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--gris-texte);
}

.cal-event-badge {
  display: inline-block;
  font-family: var(--font-sous-titre);
  font-weight: 700;
  font-size: 10px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--blanc);
  padding: 3px 10px;
  border-radius: 999px;
  margin-bottom: 6px;
}

/* ============================================================
   3. FILTRES
   ============================================================ */
.cal-filtres-liste {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.cal-filtre-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-texte);
  font-size: var(--taille-petit);
  color: var(--noir-texte);
  cursor: pointer;
  letter-spacing: normal;
}

.cal-filtre-case {
  accent-color: var(--cat-couleur, var(--bleu-bouton));
  width: 15px;
  height: 15px;
  flex-shrink: 0;
}

.cal-filtre-pastille {
  display: none; /* la case à cocher colorée (accent-color) suffit visuellement */
}

/* ============================================================
   3bis. TÉLÉCHARGER DANS MON AGENDA (menu déroulant + bouton)
   ============================================================ */
/* .cal-sr-only : voir global.css §10 (mutualisé avec .gal-sr-only / .comp-sr-only) */

.cal-telecharger-compteur {
  font-family: var(--font-texte);
  font-size: var(--taille-petit);
  color: var(--gris-texte);
  letter-spacing: normal;
  margin-bottom: 8px;
}

.cal-telecharger-controles {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.cal-telecharger-controles select {
  padding: 8px 10px;
  border: 1px solid var(--gris-bordure);
  border-radius: var(--rayon-sm);
  font-family: var(--font-texte);
  font-size: var(--taille-petit);
  color: var(--noir-texte);
  background: var(--blanc);
  width: 100%;
}

.cal-telecharger-controles select:focus {
  outline: none;
  border-color: var(--bleu-nav-clair);
  box-shadow: 0 0 0 3px rgba(123, 170, 209, 0.25);
}

.cal-btn-telecharger {
  padding: 10px;
  background: var(--bleu-bouton);
  color: var(--blanc);
  border: none;
  border-radius: var(--rayon-sm);
  font-family: var(--font-sous-titre);
  font-weight: 700;
  font-size: var(--taille-petit);
  cursor: pointer;
  transition: background var(--transition);
}

.cal-btn-telecharger:hover {
  background: var(--bleu-bouton-hover);
}

.cal-btn-telecharger:disabled {
  background: var(--gris-bordure);
  color: var(--gris-texte);
  cursor: not-allowed;
}

.cal-telecharger-aide {
  font-family: var(--font-texte);
  font-size: 11px;
  color: var(--gris-texte);
  letter-spacing: normal;
  line-height: 1.5;
  margin-top: 8px;
}

/* ============================================================
   4. FULLCALENDAR — surcharges pour matcher le design du site
   ============================================================ */
.cal-calendrier-conteneur {
  background: var(--blanc);
  border: 1px solid var(--gris-bordure);
  border-radius: var(--rayon-lg);
  padding: var(--espace-sm);
  box-shadow: var(--ombre-carte);
}

#cal-calendrier {
  font-family: var(--font-texte);
}

.fc {
  --fc-border-color: var(--gris-bordure);
  --fc-page-bg-color: var(--blanc);
  --fc-neutral-bg-color: var(--gris-clair);
  --fc-today-bg-color: rgba(123, 170, 209, 0.15);
}

.fc .fc-toolbar-title {
  font-family: var(--font-titre);
  font-size: var(--taille-h3);
  color: var(--bleu-titre);
}

.fc .fc-col-header-cell-cushion {
  font-family: var(--font-sous-titre);
  font-weight: 600;
  color: var(--bleu-titre);
  text-transform: capitalize;
}

.fc .fc-button-primary {
  background: var(--bleu-bouton);
  border-color: var(--bleu-bouton);
  font-family: var(--font-sous-titre);
  font-weight: 600;
  text-transform: capitalize;
  box-shadow: none !important;
}

.fc .fc-button-primary:hover {
  background: var(--bleu-bouton-hover);
  border-color: var(--bleu-bouton-hover);
}

.fc .fc-button-primary:disabled {
  background: var(--gris-bordure);
  border-color: var(--gris-bordure);
  color: var(--gris-texte);
}

.fc .fc-button-primary:not(:disabled).fc-button-active {
  background: var(--bleu-bouton-hover);
  border-color: var(--bleu-bouton-hover);
}

.fc-daygrid-event {
  border-radius: 6px;
  padding: 1px 4px;
  cursor: pointer;
}

.fc-event[hidden] {
  display: none !important;
}

/* Menu déroulant mobile (remplace les 3 boutons Mois/Semaine/Jour) */
.fc-mobile-view-select {
  font-family: var(--font-sous-titre);
  font-weight: 600;
  font-size: var(--taille-petit);
  padding: 8px 12px;
  border-radius: var(--rayon-sm);
  border: 1px solid var(--gris-bordure);
  background: var(--blanc);
  color: var(--bleu-titre);
}

/* ============================================================
   5. RESPONSIVE
   ============================================================ */
@media (max-width: 900px) {
  .cal-corps {
    grid-template-columns: 1fr;
  }

  .cal-sidebar {
    position: static;
    flex-direction: row;
    flex-wrap: wrap;
  }

  .cal-box {
    flex: 1 1 220px;
  }
}

@media (max-width: 640px) {
  .cal-sidebar {
    flex-direction: column;
  }

  .fc .fc-toolbar {
    flex-direction: column;
    gap: 8px;
  }
}

/* ============================================================
   6. ACCESSIBILITÉ
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
  .fc-event, .cal-box {
    transition: none !important;
  }
}