.formation-calendar { text-align: left; margin-bottom: 24px; min-width: 0; max-width: 100%; }
#calendrier-formations { min-width: 0; width: 100%; max-width: 100%; }
.formation-calendar__city + .formation-calendar__city { margin-top: 10px; }
.formation-calendar__heading { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 10px 16px; background: #fff; color: #e73c3c; font-size: 0.95em; font-weight: 700; cursor: pointer; list-style: none; }
.formation-calendar__city > summary { border: 2px solid #e73c3c; }
.formation-calendar__heading::-webkit-details-marker { display: none; }
.formation-calendar__heading > span:first-child { flex: 1; min-width: 0; overflow-wrap: anywhere; line-height: 1.4; }
.formation-calendar__heading::after { content: ''; width: 8px; height: 8px; flex-shrink: 0; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
.formation-calendar details[open] > summary::after { transform: rotate(225deg); }
.formation-calendar__heading:focus-visible { outline: 3px solid #222; outline-offset: 3px; }
.formation-calendar__count { font-size: 12px; font-weight: 400; white-space: nowrap; }
.formation-calendar__content { padding: 12px; border: 1px solid #ddd; border-top: 0; }
.formation-calendar__type + .formation-calendar__type { margin-top: 8px; }
.formation-calendar__type > summary { border: 2px solid #000; color: #000; font-size: 0.9em; }
.formation-calendar .table { margin: 0; width: 100%; min-width: 560px; table-layout: fixed; }
.formation-calendar .table-responsive { margin: 0; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: thin; scrollbar-color: #c83b36 #f5f5f5; }
.formation-calendar .table-responsive:focus-visible { outline: 2px solid #c83b36; outline-offset: 2px; }
.formation-calendar th { font-weight: 700; }
.formation-calendar .table td, .formation-calendar .table th { vertical-align: middle; padding: 12px 10px; font-size: 14px; line-height: 1.5; white-space: normal; overflow-wrap: anywhere; }
.formation-calendar .formation-calendar__choice { width: 60px; text-align: center; }
.formation-calendar .formation-calendar__date { width: 130px; }
.formation-calendar .table td.formation-calendar__date { white-space: nowrap; overflow-wrap: normal; }
.formation-calendar tr:has(.check_exam) { cursor: pointer; }
.formation-calendar tr:has(.check_exam:checked) { background: #fff0f0; }
.formation-calendar .check_exam { accent-color: #e73c3c; width: 20px; height: 20px; margin: 0; vertical-align: middle; }
@media (max-width: 767px) {
    /* Recover the space lost to the nested contact form containers. */
    .contact-fr #contact-form .formation-calendar { width: calc(100vw - 24px); max-width: none; margin-left: calc(50% - 50vw + 12px); }
    .formation-calendar__heading { padding: 10px 12px; gap: 10px; }
    .formation-calendar__content { padding: 6px 0; }
    .formation-calendar__type > summary { border-width: 1px; }
}
