/* ================================================
   EVENT BOOKING - CUSTOM CSS
   Fichier de référence — toute nouvelle modification
   doit être ajoutée dans la section appropriée
   ci-dessous (ou une nouvelle section créée).

   Sommaire :
   1. Variables
   2. Gestion des inscriptions — admin (liste des participants)
   3. Boîtes d'information (gray-box)
   4. Formulaires — étiquettes & erreurs
   5. Icônes
   6. Dates & badge
   7. Titres
   8. Tableaux
   9. Taskbar & navigation
   10. Messages & alertes
   11. Boutons
   12. Formulaires — champs & inputs
   13. Chosen (sélecteurs admin)
   14. Pages événement — générique
   15. Layout — titres & conteneurs événements
   16. Grid layout
   17. Colonnes layout
   18. Event box
   19. Box heading
   20. Description & texte
   21. Localisation — générique
   22. Speakers
   23. Module liste événements (page d'accueil)
   24. Liens catégories
   25. Champs personnalisés
   26. Séparateurs
   27. Ticket
   28. Calendrier
   29. Save to calendar
   30. Catégories masquées par catégorie
   31. Modal liste des participants
   32. Divers
   33. Page événement — layout description + sidebar
   34. Liste des événements (page "Upcoming Events")
   35. Page d'inscription (Register now!)
   36. Page "Localisation" (eb-event-map-page)
   ================================================ */

*#eb-individual-registration-page .col-md-3.form-control-label {
    width: 35% !important;
}
#eb-individual-registration-page .col-md-9.eb-form-control {
    width: 65% !important;
}

/* ================================================
   1. VARIABLES
   ================================================ */

:root {
    --heading-3: 2rem;
    --eb-btn-color: #9c1c30;       /* harmonisé avec custom.css */
    --eb-btn-hover-color: #2d2d2d;
    --eb-red: #870218;
    --eb-dark: #2d2d2c;
}

/* ================================================
   2. GESTION DES INSCRIPTIONS — ADMIN
   (liste des participants, filtres, onglets)
   ================================================ */

.eb-individual-registration-page .control-group {
  margin-bottom: 0 !important;
}

.view-registrants .btn-group > .btn:not(:last-child):not(.dropdown-toggle) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.choices__inner {
    box-shadow: inset 0 0px 0px rgba(0,0,0,.075) !important;
}

.view-registrants .filters select#filter_published,
.view-registrants .filters select#filter_checked_in {
    height: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    min-width: 160px !important;
    width: auto !important;
    padding: 0 2rem 0 0.75rem !important;
    border-radius: .375rem !important;
    border: 1px solid #ced4da !important;
    line-height: 48px !important;
    box-sizing: border-box !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}

.eb-registrants-list-table td,
.eb-registrants-list-table th {
    white-space: nowrap;
}

.eb-rl-num-column,
.eb-registrants-list-table td.d-none.d-sm-block.d-md-table-cell {
    text-align: center;
    vertical-align: middle;
}

.tab-content > .active {
    display: block;
    margin-top: -1px;
}

/* Colonne date : largeur automatique pour une seule ligne */
#eb-event-plugins-output-3Content .eb-rl-register-date-column {
    width: auto !important;
    white-space: nowrap !important;
}

/* Largeurs autres colonnes */
#eb-event-plugins-output-3Content .eb-rl-num-column {
    width: 58px !important;
    white-space: nowrap !important;
}

#eb-event-plugins-output-3Content .eb-rl-first-name-column {
    width: 15% !important;
}

#eb-event-plugins-output-3Content .eb-rl-last-name-column {
    width: 15% !important;
}

#eb-event-plugins-output-3Content .eb-rl-field20-column {
    width: 200px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

#eb-event-plugins-output-3Content .eb-rl-field21-column {
    width: 120px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

/* ================================================
   3. BOÎTES D'INFORMATION (gray-box)
   Utilisé pour les blocs type "Accessibilité" insérés
   dans les descriptions d'événement
   ================================================ */

.list-group-item-dark {
    color: #141619;
    padding: 20px;
    background-color: #f1f1f1 !important;
}

/* ================================================
   4. FORMULAIRES — ÉTIQUETTES & ERREURS
   ================================================ */

#Dietaryrestrictions {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}

#Dietaryrestrictions .row.clearfix {
    width: auto;
}

/* Titre Annulation */
.view-registrationcancel .eb_title {
    padding-top: 30px !important;
}

.form-control-label {
    margin: 0px 0px 0px 0px !important;
}

.formError .formErrorContent {
    font-size: 16px !important;
}

/*.eb-save-to-calendar-buttons { display: none !important; }*/

/* ================================================
   5. ICÔNES
   ================================================ */

.fa-print:before {
    color: var(--eb-btn-color);
    font-size: 20px;
}

#eb-event-page .fa-print {
    color: var(--eb-btn-color);
    font-size: 20px;
}

.fa {
    margin-right: 5px;
}

.fa-2x {
    font-size: 1em !important;
}

.fa-print-disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* ================================================
   6. DATES & BADGE
   ================================================ */

.eb-event-date-container .bg-primary {
    background-color: var(--eb-btn-color) !important;
}

.eb-event-date {
    background-image: none !important;
    font-family: inherit;
    height: 70px;
    width: 70px;
    text-align: center;
    font-weight: 600;
    font-size: 18px;
}

.eb-badge {
    display: inline-block;
    padding: .35em .65em;
    font-size: .75em;
    font-weight: 700;
    line-height: 1;
    color: #fff;
    text-align: start;
    white-space: wrap;
    vertical-align: baseline;
    border-radius: .25rem;
    background: #f61941;
}

/* ================================================
   7. TITRES
   ================================================ */

h2.pascal {
    font-family: 'Work Sans', sans-serif !important;
    font-size: 30px !important;
    color: var(--eb-btn-color) !important;
    line-height: 2.875rem;
    letter-spacing: normal !important;
}

h3.eb-heading {
    display: inline-block;
    margin-right: 20px;
    margin-bottom: 20px;
    margin-top: 30px;
    font-size: 20px !important;
    font-weight: 700 !important;
    letter-spacing: normal !important;
}

h3.eb-horizontal-plugin-header.eb-plugin-speakers,
h3.eb-horizontal-plugin-header.eb-plugin-map,
#eb-event-properties-heading {
    font-size: var(--heading-3) !important;
    margin-bottom: 20px !important;
    margin-top: 30px !important;
    font-weight: 700 !important;
}

/* NOTE : h3 global scoped à .eb-container pour éviter
   de déborder sur le reste du site */
/*.eb-container h3 {
    font-size: var(--heading-3) !important;
    font-weight: 500 !important;
    color: var(--eb-dark) !important;
    line-height: 1.2 !important;
    text-decoration: none;
}*/

/* ================================================
   8. TABLEAUX
   ================================================ */

table {
    font-family: 'Work Sans', sans-serif;
    font-size: 16px;
    line-height: 1.56;
}

#eb-registrants-list-page .table {
    font-size: 14px !important;
}

#eb-registrants-management-page table {
    font-size: 14px;
}

.table {
    --bs-table-bg: transparent;
    --bs-table-accent-bg: transparent;
    --bs-table-striped-color: #212529;
    --bs-table-striped-bg: rgba(0, 0, 0, 0.05);
    --bs-table-active-color: #212529;
    --bs-table-active-bg: rgba(0, 0, 0, 0.1);
    --bs-table-hover-color: #212529;
    --bs-table-hover-bg: rgba(0, 0, 0, 0.075);
    width: 100%;
    margin-bottom: 3rem !important;
    color: #212529;
    vertical-align: middle !important;
    border-color: #dee2e6;
}

.table-sm > :not(caption) > * > * {
    padding: .55rem .55rem .5rem .55rem !important;
}

td.eb-event-property-label {
    width: 100px;
    text-align: left;
    font-weight: 500;
}

tr.eb-event-property {
    vertical-align: top;
}

tr.eb-event-property td.eb-event-property-label {
    white-space: nowrap;
    width: 1%;
}

.date_col {
    width: 15%;
}

.available-place-col {
    width: 10%;
}

/* ================================================
   9. TASKBAR & NAVIGATION
   ================================================ */

.eb-taskbar {
    list-style: none;
    margin: 0px 0px 30px 0px;
    padding: 0;
}

.eb-tabbed-plugin-header {
    margin-bottom: 20px;
}

.eb-events-timeline .eb-taskbar {
    padding: 25px 0;
    border-bottom: 1px solid #a5a5a563;
    list-style: none;
    margin: 0px 0px 50px 0px;
}

/* Le style des boutons Register/Edit/Unpublish/Back sur la page
   événement est défini dans la section 33 (sélecteur composé
   .eb-taskbar.eb-register-buttons-bottom, sans espace — les deux
   classes sont sur le même élément dans le DOM) */

/* ================================================
   10. MESSAGES & ALERTES
   ================================================ */

#field_synchronous {
    margin: 20px 0px 20px 0px;
    padding: 15px 10px 0px 10px;
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 5px;
    box-shadow: 0 0 0px rgb(0 0 0 / 8%);
    font-size: 18px;
    background: #f2f2f2;
}

/*.eb-message {
    margin: 50px 0px 0px 0px;
    padding: 20px 30px 15px 30px;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    border-left: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 0px;
    box-shadow: 0 0 30px rgb(0 0 0 / 8%);
    border-right: 1px solid rgba(0, 0, 0, 0.1);
    font-size: 18px;
}*/

#eb-individual-registration-page #field_photo.eb-message {
    margin: 30px 0px 0px 0px !important;
    padding: 0 !important;
    border: none !important;
    box-shadow: none !important;
    font-size: inherit !important;
    background: none !important;
}

.eb-notice-message {
    font-size: 100%;
    font-weight: 700;
    margin-top: 18px;
    color: #842029;
    background-color: #f8d7da;
    border-color: #f5c2c7;
    padding: 10px;
}

p.text-info.eb-notice-message {
    color: var(--eb-btn-color) !important;
}

.alert-danger {
    color: #842029;
    background-color: #f8d7da;
    border: 1px solid #ccc;
    padding: 10px 10px 10px 20px;
}

.alert-warning {
    color: #664d03;
    background-color: #fff3cd;
    border: 1px solid #ccc;
    padding: 10px;
}

.alert-info {
    color: #055160;
    background-color: #cff4fc;
    border: 1px solid #ccc;
    padding: 10px;
}

/* ================================================
   11. BOUTONS — harmonisés avec custom.css (#9c1c30)
   ================================================ */

.btn {
    font-size: 18px !important;
    font-weight: 500 !important;
}

/* Surcharge spécifique EB — prend le dessus sur le .btn-primary global */
.eb-container .btn-primary,
.eb-container .btn-primary:focus {
    color: #fff !important;
    border-color: var(--eb-btn-color) !important;
    background-color: var(--eb-btn-color) !important;
    padding: 6px 10px 6px 10px !important;
    margin-top: 0px !important;
    font-weight: 500 !important;
    /*display: none;*/
}

.eb-container .btn-primary:hover {
    color: #fff !important;
    background-color: var(--eb-btn-hover-color) !important;
    border-color: var(--eb-btn-hover-color) !important;
}

/* NOTE : .btn-secondary est masqué site-wide (display:none) — choix
   volontaire pour ne pas afficher ce bouton, peu importe la page */
.btn-secondary {
    color: #fff !important;
    border-radius: 0rem !important;
    background: var(--eb-btn-color) !important;
    font-weight: 600 !important;
    /*display: none !important;*/
}

.eb-register-button {
    border-radius: 0px !important;
}

.btn-group,
.btn-group-vertical {
    position: relative;
    display: inline-flex;
    vertical-align: middle;
    margin-bottom: 15px;
    /*margin-top: -20px;*/
}

.btn-toolbar {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    margin-bottom: 0px !important;
}

.btn-group > .btn-group:not(:first-child),
.btn-group > .btn:not(:first-child) {
    margin-left: -8px !important;
}

/* ================================================
   12. FORMULAIRES — CHAMPS & INPUTS
   ================================================ */

/* NOTE : label scoped à .eb-container pour éviter d'affecter
   tous les labels du site */

/* Réduit l'espacement vertical entre les options (checkbox/radio)
   d'un même champ — ex: Modalité, Mesures d'adaptation */

.eb-container .eb-radio-container .row.clearfix:not(:first-child) label.radio,
.eb-container .eb-checkboxes-container .row.clearfix:not(:first-child) label.checkbox {
    margin-top: 2px !important;
}

.eb-container .eb-radio-container label.radio,
.eb-container .eb-checkboxes-container label.checkbox {
    margin-bottom: 2px !important;
}

.eb-container label {
    font-weight: normal;
    font-size: 18px;
    margin: 10px 0px 6px 0px;
}

.eb-container label[for="Terms_and_conditions1"] {
    display: block !important;
    width: 100% !important;
    white-space: nowrap !important;
}

.eb-field-description {
    font-weight: normal;
    font-size: 18px;
    margin-top: 10px;
}

.eb-container:not(.eb-container-j4) .form-group input[type=color],
.eb-container:not(.eb-container-j4) .form-group input[type=date],
.eb-container:not(.eb-container-j4) .form-group input[type=datetime-local],
.eb-container:not(.eb-container-j4) .form-group input[type=datetime],
.eb-container:not(.eb-container-j4) .form-group input[type=email],
.eb-container:not(.eb-container-j4) .form-group input[type=month],
.eb-container:not(.eb-container-j4) .form-group input[type=number],
.eb-container:not(.eb-container-j4) .form-group input[type=password],
.eb-container:not(.eb-container-j4) .form-group input[type=search],
.eb-container:not(.eb-container-j4) .form-group input[type=tel],
.eb-container:not(.eb-container-j4) .form-group input[type=text],
.eb-container:not(.eb-container-j4) .form-group input[type=time],
.eb-container:not(.eb-container-j4) .form-group input[type=url],
.eb-container:not(.eb-container-j4) .form-group input[type=week],
.eb-container:not(.eb-container-j4) .form-group select,
.eb-container:not(.eb-container-j4) .form-group textarea {
    width: 100%;
}

input[type="text"]:not(.form-control),
input[type="email"]:not(.form-control),
input[type="url"]:not(.form-control),
input[type="date"]:not(.form-control),
input[type="password"]:not(.form-control),
input[type="search"]:not(.form-control),
input[type="tel"]:not(.form-control),
input[type="number"]:not(.form-control),
select:not(.form-select):not(.form-control) {
    border-radius: 0rem !important;
}

.button,
input,
optgroup,
select,
textarea {
    border-radius: 0px !important;
}

.form {
    margin: 0px 0px 50px 0px;
    padding: 40px 30px 30px 30px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    border-right: 1px solid rgba(0, 0, 0, 0.1);
    border-left: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 0px;
    box-shadow: 0 0 30px rgb(0 0 0 / 8%);
}

.form-select {
    display: inline !important;
    margin-right: 10px;
}

.form-check-input {
    margin-right: 0.25em;
}

.form-check-input[type="checkbox"] {
    border-radius: .25em;
    margin-right: 10px;
}

.eb-container .form-group.form-row {
    margin-bottom: 5px;
}

.eb-container .input-medium {
    width: 250px !important;
}

.eb-container .input-xlarge {
    width: 100% !important;
}

/* ================================================
   13. CHOSEN (sélecteurs frontend admin)
   ================================================ */

.chosen-container-single .chosen-single {
    position: relative;
    display: block;
    overflow: hidden;
    padding: 0 0 0 8px;
    height: 37px;
    border: 1px solid #aaa;
    border-radius: 5px;
    background-color: #fff;
    background: linear-gradient(#fff 20%, #f6f6f6 50%, #eee 52%, #f4f4f4 100%);
    background-clip: padding-box;
    box-shadow: 0 0 3px #fff inset, 0 1px 1px rgba(0, 0, 0, 0.1);
    color: #444;
    text-decoration: none;
    white-space: nowrap;
    line-height: 24px;
}

.chosen-container-single .chosen-single span {
    display: block;
    overflow: hidden;
    margin-right: 26px;
    text-overflow: ellipsis;
    white-space: nowrap;
    margin-top: 6px;
}

.eb-joomla4-container .btn-group .chosen-container {
    margin-left: 5px;
    margin-right: 5px;
}

/*.chosen-container {
    display: none;
}*/

/*.chosen-container-single .chosen-single {
    display: none !important;
}*/

/*.chosen-container .chosen-drop {
    display: none !important;
}*/

/* ================================================
   14. PAGES ÉVÉNEMENT — GÉNÉRIQUE
   ================================================ */

/* Le margin-top/-bottom/padding d'origine de cette règle sont
   neutralisés sur la page événement par la section 33 (plus
   spécifique) — on ne garde ici que les propriétés encore actives. */
#eb-event-page h1.eb-page-heading {
    font-family: 'Work Sans', sans-serif !important;
    line-height: 2.875rem !important;
    letter-spacing: normal !important;
    font-size: 40px !important;
}

#eb-individual-registration-page h1.eb-page-heading {
    font-family: 'Work Sans', sans-serif !important;
    line-height: 1.875rem !important;
    font-weight: 700 !important;
    margin: 0px 0px 30px 0px !important;
    padding: 30px 0px 32px 0px !important;
}

#eb-invite-friend-page .eb-page-heading {
    margin-bottom: -30px !important;
}

#eb-invite-friend-page .eb-message {
    margin: 30px 0px 0px 0px !important;
}

#adminForm {
    margin: 0px 0px 60px 0px !important;
}

/*#adminForm > div.form-actions img {
    display: none !important;
}*/

/* NOTE : le style de la page "Localisation" (#eb-event-map-page) vit
   désormais entièrement dans la section 36 — ne pas redéfinir ici. */

/*#eb-amount-container div {
    display: none !important;
}*/

/*.eb-text-right {
    display: none;
}*/

/* ================================================
   15. LAYOUT — TITRES & CONTENEURS ÉVÉNEMENTS
   ================================================ */

.eb-event-title-container {
    font-family: 'Work Sans', sans-serif !important;
    line-height: 2.875rem !important;
    letter-spacing: normal !important;
    font-size: 30px !important;
}

.eb-event-title-container a {
    color: var(--eb-red) !important;
}

.eb-event-title-container a:hover {
    text-decoration: none !important;
}

.eb-even-title-container {
    line-height: normal;
    margin: 0px 0px 5px 0px;
    font-size: 35px;
}

.eb-even-title-container a {
    color: var(--eb-red) !important;
    font-size: 30px;
}

h2.eb-event-title.pull-left a.eb-event-title-link {
    color: var(--eb-red);
    text-decoration: none;
}

.eb-event-page {
    background-color: #fff;
    position: relative;
    overflow: hidden !important;
    margin: 30px 0;
    padding: 10px;
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 15px;
    box-shadow: 0 0 30px rgba(0, 0, 0, 0.08);
}

.eb-event-information {
    padding: 0px 0px 15px 5px;
    margin-bottom: 12px;
    font-size: 20px;
}

.eb-event-information a {
    color: var(--eb-red);
}

.eb-event-information a:hover {
    color: var(--eb-red);
    text-decoration: none;
}

.eb-event-short-description {
    border-top: 1px solid #ddd !important;
    padding-top: 35px !important;
    border-bottom: 0px solid #ddd !important;
    font-size: 18px !important;
}

.eb-event-short-description a:hover,
.eb-description-details a:hover,
.eb-event-property-value a:hover {
    color: var(--eb-red);
}

.eb-event-box .eb-event-location a,
.eb-event-short-description a,
.eb-description-details a,
.eb-event-property-value a {
    color: var(--eb-red);
}

/* ================================================
   16. GRID LAYOUT
   ================================================ */

.eb-event-item-grid-default-layout {
    box-shadow: 0 20px 60px 0 rgba(6,10,20,.08);
    padding: 20px !important;
    position: relative;
    border-radius: 12px;
    margin-bottom: 30px;
    transition: all .4s ease;
    border: 1px solid #ddd;
}

.eb-event-item-grid-default-layout .eb-event-title-container {
    font-family: 'Work Sans', sans-serif !important;
    line-height: 40px !important;
    letter-spacing: normal !important;
    font-size: 35px !important;
}

.eb-event-item-grid-default-layout .eb-event-title-container a {
    color: var(--eb-red) !important;
    font-size: 30px !important;
    text-decoration: none;
}

.eb-event-item-grid-default-layout .eb-event-date-time {
    color: var(--eb-grid-default-datetime-color, inherit);
    font-size: 18px !important;
}

.eb-event-item-grid-default-layout .eb-event-location {
    color: var(--eb-grid-default-datetime-color, inherit);
    font-size: 18px !important;
}

/*.uo-accordion-default .eb-event-item-grid-default-layout .eb-event-location {
    display: none;
}*/

/* ================================================
   17. COLONNES LAYOUT
   ================================================ */

.eb-columns-layout-container .eb-event-wrapper {
    background-color: #fff;
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 2px;
    box-shadow: 0 0 30px rgb(0 0 0 / 8%);
    margin-bottom: 50px;
    margin: 1rem auto;
}

.eb-columns-layout-container .eb-event-wrapper > div,
.eb-columns-layout-container .eb-event-wrapper > h2 {
    padding-left: 10px !important;
    padding-right: 10px !important;
    margin-top: 0px !important;
    margin-bottom: 15px !important;
}

.eb-columns-layout-container .eb-event-wrapper img {
    padding-bottom: 0.5em;
    object-fit: cover;
    object-position: bottom;
}

/* ================================================
   18. EVENT BOX
   ================================================ */

.eb-event-box {
    height: auto !important;
    padding: 25px 20px 25px 20px !important;
}

.eb-event-box .eb-event-date-time {
    font-family: 'Work Sans', sans-serif !important;
    font-weight: 700 !important;
    font-size: 18px !important;
}

.eb-event-box .eb-event-location {
    font-family: 'Work Sans', sans-serif !important;
    font-weight: 500 !important;
    font-size: 18px !important;
    padding-bottom: 10px;
    margin-top: -20px;
}

.eb-event-date-info {
    font-size: 100% !important;
    font-weight: 600;
    line-height: 150%;
    display: inline-block;
}

/* ================================================
   19. BOX HEADING
   ================================================ */

.eb-box-heading {
    border-radius: 2px 2px 0 0;
    color: var(--eb-red);
    font-weight: 700;
    padding: 10px 15px 10px 25px;
    margin: 0;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.1);
    box-shadow: 0 0 30px rgb(0 0 0 / 8%);
}

.eb-box-heading h2 {
    color: var(--eb-red) !important;
    font-family: 'Work Sans', sans-serif !important;
    line-height: 2.875rem !important;
    letter-spacing: normal !important;
    font-size: var(--heading-3) !important;
}

#eb-categories .eb-description,
#eb-event-page .eb-description,
#eb-events .eb-description {
    background: #fff;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    border-left: 1px solid rgba(0, 0, 0, 0.1);
    border-right: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 0 0 2px 2px;
    margin: 0;
    padding: 30px;
    box-shadow: 0 0 30px rgb(0 0 0 / 8%);
}

/* ================================================
   20. DESCRIPTION & TEXTE
   ================================================ */

.eb-description {
    font-family: 'Work Sans', sans-serif !important;
    font-size: 18px !important;
    margin-top: 0px;
    margin-bottom: 50px;
    border-bottom: 0px #ccc solid;
}

.eb-description a {
    text-decoration: none;
    color: var(--eb-red);
}

.text-info {
    font-family: 'Work Sans', sans-serif !important;
    line-height: 1.875rem !important;
    font-size: 18px;
}

.eb-agenda-title {
    font-size: 18px;
    font-weight: 600;
}

.eb-event {
    margin-top: 50px;
}

#eb-categories .eb-event,
#eb-events .eb-event {
    margin: 0 0 50px;
}

/* ================================================
   21. LOCALISATION — GÉNÉRIQUE
   ================================================ */

.eb-location-name {
    font-size: 20px;
    font-weight: bold;
}

.eb-location-address {
    font-size: 16px;
}

.eb-location-description {
    padding-top: 0px;
    font-size: 18px;
    margin-top: 0px;
    margin-bottom: 0px;
    border-bottom: 0px #ccc solid;
}

.leaflet-container {
    overflow: hidden;
    margin-bottom: 50px;
}

/* ================================================
   22. SPEAKERS
   ================================================ */

.card-eb-speaker-saea {
    border: 1px solid #ddd !important;
    border-radius: 2px !important;
    padding: 20px !important;
    box-shadow: 0 0px 0px rgba(0, 0, 0, 0.15) !important;
    display: flex;
    flex-direction: column;
    position: relative;
    color: #5d5e5e;
    background-color: #fafafa !important;
}

.card-eb-speaker-saea h5 {
    color: var(--eb-dark) !important;
    margin: 20px 0px 20px 0px !important;
}

.card-eb-speaker-saea a {
    text-decoration: none;
    color: var(--eb-red) !important;
}

.rounded-circle {
    border-radius: 50% !important;
    box-shadow: 0 0 30px rgb(0 0 0 / 18%);
}

/* ================================================
   23. MODULE LISTE ÉVÉNEMENTS (page d'accueil)
   ================================================ */

.ebm-upcoming-events-improved div.ebm-event-month {
    background: var(--eb-btn-color);
    border: 1px solid var(--eb-btn-color);
    font-size: 16px;
}

span.view_list {
    font-weight: 500;
}

.ebm-upcoming-events-improved .col-md-3 {
    width: 10% !important;
}

.ebm-upcoming-events-improved .col-md-9 {
    flex: 0 0 auto;
    width: 90% !important;
    font-size: 18px;
}

/* ================================================
   24. LIENS CATÉGORIES
   ================================================ */

a.eb-link-category {
    color: var(--primary-black);
    text-decoration: underline;
    text-decoration-thickness: 1.2px;
    text-underline-offset: 4px;
}

a.eb-link-category:hover {
    color: var(--primary-black);
    background-color: var(--hover-grey);
    box-shadow: 0 1px var(--hover-grey);
    text-decoration: none;
}

/* ================================================
   25. CHAMPS PERSONNALISÉS (type "Message")
   ================================================ */

#field_description,
#field_firstseries,
#field_secondseries,
#field_thirdseries {
    font-family: 'Work Sans', sans-serif !important;
    font-size: 18px !important;
    margin: 0px;
    padding: 0px;
    border: none;
    border-radius: 0px;
    box-shadow: none;
}

/* ================================================
   26. SÉPARATEURS
   NOTE : ne touche pas les séparateurs de la section 33
   (basés sur border-top/border-bottom, pas sur de vraies
   balises <hr>)
   ================================================ */

hr:not([size]) {
    height: 2px !important;
    margin-top: 20px !important;
    margin-bottom: 20px !important;
    border-top: 2px solid #000 !important;
}

/* ================================================
   27. TICKET
   ================================================ */

.eb-ticket-type-title {
    font-weight: 700;
    margin-bottom: -.5rem !important;
}

/* ================================================
   28. CALENDRIER
   ================================================ */

.fc-daygrid-block-event .fc-event-time,
.fc-daygrid-block-event .fc-event-title {
    padding: 0px 30px 0px 5px !important;
}

/* ================================================
   29. SAVE TO CALENDAR
   ================================================ */

.eb-save-to-calendar-container {
    padding: 10px !important;
    width: 230px;
    border-radius: 0px !important;
    border-right: 1px solid #ccc !important;
    border-left: 1px solid #ccc !important;
    border-bottom: 1px solid #ccc !important;
}

/* ================================================
   30. CATÉGORIES MASQUÉES PAR CATÉGORIE
   ================================================ */

div.eb-container.eb-category-4.eb-event .eb-description #eb-event-info table tr.eb-event-property:nth-child(3),
div.eb-container.eb-category-4.eb-event .eb-description #eb-event-info table tr.eb-event-property:nth-child(4),
div.eb-container.eb-category-7.eb-event .eb-description #eb-event-info table tr.eb-event-property:nth-child(3),
div.eb-container.eb-category-7.eb-event .eb-description #eb-event-info table tr.eb-event-property:nth-child(4) {
    display: none;
}

/* ================================================
   31. MODAL LISTE DES PARTICIPANTS
   ================================================ */

.tingle-modal-box {
    max-width: 95%;
}

/* ================================================
   32. DIVERS
   ================================================ */

joomla-toolbar-button {
    padding-right: 0px;
    margin-bottom: 0px;
}

@media (min-width: 1200px) {
    .h4, h4 {
        font-size: 1.5rem;
        margin-top: 20px !important;
    }
}

#eb-upcoming-events-page-columns .bg-light {
    padding: 30px !important;
    border: 1px solid #dddddd;
}

/* ================================================
   33. PAGE ÉVÉNEMENT — LAYOUT DESCRIPTION + SIDEBAR
   Description large à gauche, sidebar à droite avec
   séparateurs fins, sans tableau ni fond, boutons sous
   la sidebar avec ligne verticale continue.
   ================================================ */

/* On retire l'aspect "carte" (fond/bordure/ombre) de la zone
   description+info pour un rendu plat */
#eb-event-page.eb-event .eb-box-heading {
    background: transparent;
    border: none;
    box-shadow: none;
    padding: 0 0 16px 0;
}

#eb-event-page.eb-event .eb-box-heading h1.eb-page-heading,
#eb-event-page.eb-event .eb-box-heading h2 {
    color: var(--eb-dark) !important;
    margin: 0 !important;
    padding: 0 !important;
}

#eb-event-page.eb-event #eb-event-details.eb-description {
    background: transparent;
    border: none;
    box-shadow: none;
    margin: 0;
    padding: 30px 0;
}

#eb-event-page.eb-event {
    display: grid;
    grid-template-columns: 2fr 1fr;
    grid-template-areas:
        "heading sidebar"
        "desc    sidebar"
        "desc    button";
    column-gap: 64px;
    align-items: start;
}

/* Le titre n'occupe que la colonne de gauche : il démarre donc
   exactement à la même hauteur que le haut de la sidebar */
#eb-event-page.eb-event > .eb-box-heading {
    grid-area: heading;
    margin-bottom: 20px;
    align-self: start;
}

/* On efface ces deux wrappers pour que leurs enfants deviennent
   des items directs de la grille ci-dessus */
#eb-event-page.eb-event #eb-event-details,
#eb-event-page.eb-event #eb-event-info {
    display: contents;
}

#eb-event-page.eb-event .eb-description-details {
    grid-area: desc;
}

#eb-event-page.eb-event #eb-event-info-left {
    grid-area: sidebar;
    border-left: 1px solid #d9d9d9;
    padding-left: 32px;
    /* remplit toute la hauteur de sa cellule de grille (qui peut être
       plus grande que son propre contenu si la colonne "desc" est plus
       haute), sinon le trait vertical s'arrête avant le bloc boutons
       et la ligne paraît cassée */
    align-self: stretch;
}

/* Premier séparateur en haut de la sidebar : pleine largeur, plus
   épais/foncé que les séparateurs entre sections (choix volontaire) */
#eb-event-page.eb-event #eb-event-info-left::before {
    content: "";
    display: block;
    width: 100%;
    height: 0;
    border-top: 2px solid #2d2d2d;
    margin-bottom: 24px;
}

/* Le div.clearfix vide entre la description et le taskbar
   n'est plus nécessaire avec la grille.
   NOTE : ce div est un enfant direct de #eb-event-details (pas de
   #eb-event-page) — #eb-event-details a display:contents, donc il
   devient quand même un item de la grille, mais le sélecteur doit
   cibler son vrai parent DOM (#eb-event-details), pas #eb-event-page,
   sinon le sélecteur `>` ne matche jamais. */
#eb-event-page.eb-event #eb-event-details > div.clearfix:not(.eb-description-details):not(.row):not(.eb-taskbar) {
    display: none;
}

/* Titre "Event Information" masqué */
#eb-event-page.eb-event #eb-event-properties-heading {
    display: none !important;
}

/* ===== Neutralise complètement le rendu "tableau" ===== */
#eb-event-page.eb-event #eb-event-info-left table.table,
#eb-event-page.eb-event #eb-event-info-left tbody,
#eb-event-page.eb-event #eb-event-info-left tr.eb-event-property,
#eb-event-page.eb-event #eb-event-info-left td.eb-event-property-label,
#eb-event-page.eb-event #eb-event-info-left td.eb-event-property-value {
    all: unset;
    display: block;
}

/* ===== Sections séparées par un trait fin, sans fond ===== */
#eb-event-page.eb-event #eb-event-info-left tr.eb-event-property {
    padding-bottom: 18px;
    margin-bottom: 18px;
    border-bottom: 1px solid #d9d9d9;
}

#eb-event-page.eb-event #eb-event-info-left tr.eb-event-property:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

#eb-event-page.eb-event #eb-event-info-left td.eb-event-property-label {
    width: 100% !important;   /* bat le style inline="width:30%" du template */
    font-size: 13px;
    /* font-weight: 700; */   /* volontairement non gras */
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: #1a1a1a;
    margin-bottom: 8px;
}

#eb-event-page.eb-event #eb-event-info-left td.eb-event-property-value {
    font-size: 16px;
    font-weight: 700;
    color: #1a1a1a;
    line-height: 1.4;
}

/* Lien dans une valeur (ex. "Lieu") : noir, souligné avec espace,
   hover identique aux titres de la liste d'événements (section 34) */
#eb-event-page.eb-event #eb-event-info-left td.eb-event-property-value a {
    color: #1a1a1a !important;
    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 8px !important;
    font-weight: 700 !important;
}

#eb-event-page.eb-event #eb-event-info-left td.eb-event-property-value a:hover {
    color: #1a1a1a !important;
    text-decoration: none !important;
    background-color: #ededed;
}

/* ===== Boutons sous la sidebar ===== */
#eb-event-page.eb-event .eb-taskbar.eb-register-buttons-bottom {
    grid-area: button;
    margin: 0 !important;   /* neutralise tout margin hérité : pas de coupure dans la ligne */
    padding: 0 0 0 32px !important;   /* padding-left doit aussi être !important, sinon il est écrasé */
    border-left: 1px solid #d9d9d9;
}

/* Les traits haut/bas sont sur le <ul> (déjà décalé par le padding-left
   du parent), pour démarrer au même endroit que les séparateurs de
   sections au-dessus */
#eb-event-page.eb-event .eb-taskbar.eb-register-buttons-bottom ul {
    display: flex;
    flex-direction: column;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 24px 0;
    border-top: 1px solid #d9d9d9;
    border-bottom: 1px solid #d9d9d9;
}

#eb-event-page.eb-event .eb-taskbar.eb-register-buttons-bottom li {
    width: 100%;
}

#eb-event-page.eb-event .eb-taskbar.eb-register-buttons-bottom .btn {
    display: block;
    width: 100%;
    text-align: center;
    border-radius: 50px !important;
    padding: 14px 24px !important;
}

@media (max-width: 768px) {
    #eb-event-page.eb-event {
        grid-template-columns: 1fr;
        grid-template-areas:
            "heading"
            "desc"
            "sidebar"
            "button";
    }
    #eb-event-page.eb-event #eb-event-info-left {
        border-left: none;
        padding-left: 0;
        border-top: 1px solid #d9d9d9;
        padding-top: 24px;
        margin-top: 24px;
    }
    #eb-event-page.eb-event .eb-taskbar.eb-register-buttons-bottom {
        padding-left: 0;
    }
}

/* ================================================
   34. LISTE DES ÉVÉNEMENTS (page "Upcoming Events")
   Titre noir souligné, date en gras, lieu/langue/format
   en texte simple, description grise. Tout aligné à
   gauche, sans carte/ombre — juste un séparateur en haut.
   ================================================ */

#eb-upcoming-events-page-columns .eb-event-wrapper {
    background: transparent !important;
    border: none !important;
    border-top: 1px solid #d9d9d9 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    text-align: left;
    padding: 30px 0 !important;
}

/* Titre : noir, souligné, gras */
#eb-upcoming-events-page-columns .eb-event-title-container {
    text-align: left;
    margin-bottom: 12px !important;
}

#eb-upcoming-events-page-columns .eb-event-title-container a,
#eb-upcoming-events-page-columns .eb-event-title-container a.eb-event-title-link {
    color: #1a1a1a !important;
    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 8px !important;
    font-weight: 700 !important;
}

#eb-upcoming-events-page-columns .eb-event-title-container a:hover {
    color: #1a1a1a !important;
    text-decoration: none !important;
    background-color: #ededed;
}

/* Date : on enlève l'icône calendrier, texte en gras noir */
#eb-upcoming-events-page-columns .eb-event-date-time {
    text-align: left;
    color: #1a1a1a !important;
    font-weight: 700 !important;
    margin: 16px 0 8px 0 !important;
}

#eb-upcoming-events-page-columns .eb-event-date-time .fa-calendar {
    display: none !important;
}

/* Lieu : texte simple, sans icône, couleur neutre (pas rouge) */
#eb-upcoming-events-page-columns .eb-event-location {
    text-align: left;
    margin: 0 0 8px 0 !important;
}

#eb-upcoming-events-page-columns .eb-event-location .fa,
#eb-upcoming-events-page-columns .eb-event-location .fa-map-marker {
    display: none !important;
}

#eb-upcoming-events-page-columns .eb-event-location a,
#eb-upcoming-events-page-columns .eb-event-location-price a {
    color: #1a1a1a !important;
    font-weight: 400 !important;
    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 8px !important;
}

#eb-upcoming-events-page-columns .eb-event-location a:hover,
#eb-upcoming-events-page-columns .eb-event-location-price a:hover {
    color: #1a1a1a !important;
    text-decoration: none !important;
    background-color: #ededed;
}

/* Description : gris foncé, texte simple */
#eb-upcoming-events-page-columns .eb-event-short-description {
    text-align: left;
    color: #4a4a4a !important;
    font-size: 16px !important;
    border-top: none !important;
    padding-top: 0 !important;
    margin: 8px 0 !important;
}

/* Champs additionnels (langue, format, etc.) si présents sous forme
   de paragraphes simples dans la carte : texte neutre, aligné à gauche */
#eb-upcoming-events-page-columns .eb-event-wrapper p {
    text-align: left;
    color: #4a4a4a;
    margin: 4px 0;
}

/* ================================================
   35. PAGE D'INSCRIPTION (Register now!)
   Même esprit que le reste : plat, titre noir, pas
   de carte/ombre, bouton en pilule
   ================================================ */

/* Titre de l'événement en noir + résumé date/heure avec séparateur */
#eb-individual-registration-page .eb-message h2 {
    font-size: 2rem !important;
    color: #1a1a1a !important;
    font-weight: 700 !important;
}

#eb-individual-registration-page .eb-message p {
    color: #4a4a4a;
    font-size: 16px;
    margin-top: 4px;
}

#eb-individual-registration-page .eb-message {
    border-bottom: 1px solid #d9d9d9;
    padding-bottom: 24px;
    margin-bottom: 30px;
}

/* Le formulaire perd son aspect "carte" (fond/bordure/ombre) */
#eb-individual-registration-page .form {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Séparateur fin entre chaque champ — désactivé pour l'instant,
   réactiver si besoin :
#eb-individual-registration-page .form .row.form-group.form-row {
    border-bottom: 1px solid #f0f0f0;
    padding-bottom: 20px;
    margin-bottom: 20px !important;
}
*/

#eb-individual-registration-page .form .form-actions {
    border: none;
    margin-top: 30px;
}

/* Bouton d'envoi en pilule, comme les boutons de la page événement */
#eb-individual-registration-page #btn-submit {
    border-radius: 50px !important;
    padding: 14px 32px !important;
    margin-top: 20px !important;
}

/* ================================================
   36. PAGE "LOCALISATION" (eb-event-map-page)
   Plat, sans carte/ombre, titre noir, séparateurs fins.
   Seule source de vérité pour cette page — ne pas
   redéfinir #eb-event-map-page ailleurs dans ce fichier.
   ================================================ */

#eb-event-map-page {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin-top: 40px !important;
}

div#eb-event-map-page.eb-container h1.eb-page-heading {
    font-size: 28px !important;
    font-weight: 700 !important;
    color: #1a1a1a !important;
    padding: 0 !important;
    margin: 0 0 20px 0 !important;
}

#eb-event-map-page .eb-location-description {
    border-bottom: 1px solid #d9d9d9 !important;
    padding-bottom: 24px;
    margin-bottom: 24px;
    color: #4a4a4a;
}

#eb-event-map-page .eb-location-description strong {
    color: #1a1a1a;
}

#eb-event-map-page #eb_location_map {
    border-top: 1px solid #d9d9d9;
    padding-top: 24px;
}

/* ================================================
   37. CALENDRIER ÉVÉNEMENTS (FullCalendar dans Event Booking)
   Reprend le style du calendrier principal du site :
   texte noir, événements à plat (pas de bloc bleu),
   boutons en pilule, accent garnet sur le bouton actif.
   Conteneur réel confirmé via l'inspecteur : #eb_full_calendar
   ================================================ */

#eb_full_calendar .fc {
    font-family: 'Work Sans', sans-serif;
    color: #1a1a1a;
}

#eb_full_calendar .fc a {
    color: #1a1a1a;
}

/* Titre "juin 2026" */
#eb_full_calendar .fc-toolbar-title {
    color: #1a1a1a;
    font-weight: 700;
    text-transform: capitalize;
}

/* En-têtes de colonnes (lun., mar., ...) */
#eb_full_calendar .fc-col-header-cell-cushion {
    color: #1a1a1a;
    font-weight: 700;
    text-decoration: none;
}

/* Numéros de jour */
#eb_full_calendar .fc-daygrid-day-number {
    color: #1a1a1a;
}

/* Jour courant légèrement teinté avec la couleur d'accent */
#eb_full_calendar .fc-day-today {
    background-color: rgba(156, 28, 48, 0.06) !important;
}

/* Boutons (Aujourd'hui, Mois/Semaine/Jour, précédent/suivant) en pilule */
#eb_full_calendar .fc-button-primary {
    background-color: #fff;
    border: 1px solid #ced4da;
    color: #1a1a1a;
    text-shadow: none;
    box-shadow: none !important;
}

#eb_full_calendar .fc-button-primary:hover {
    background-color: #f1f1f1;
    border-color: #ced4da;
    color: #1a1a1a;
}

/* Bouton actif (ex: "Mois" sélectionné) en garnet, comme le reste du site */
#eb_full_calendar .fc-button-primary:not(:disabled).fc-button-active,
#eb_full_calendar .fc-button-primary:not(:disabled):active {
    background-color: var(--eb-btn-color) !important;
    border-color: var(--eb-btn-color) !important;
    color: #fff !important;
}

/* Coins arrondis en pilule sur les groupes de boutons */
#eb_full_calendar .fc-button-group .fc-button:first-child {
    border-top-left-radius: 50px;
    border-bottom-left-radius: 50px;
}

#eb_full_calendar .fc-button-group .fc-button:last-child {
    border-top-right-radius: 50px;
    border-bottom-right-radius: 50px;
}

#eb_full_calendar .fc-today-button {
    border-radius: 50px;
}

#eb_full_calendar .fc-prev-button,
#eb_full_calendar .fc-next-button {
    border-radius: 50%;
}

/* Événements dans les cellules : fond gris clair, comme le
   calendrier principal du site (.uottawa-events .fc-event) */
#eb_full_calendar .fc-h-event,
#eb_full_calendar .fc-daygrid-event.fc-h-event {
    background-color: #f2f2f2 !important;
    border-color: #fff !important;
    padding: 12px 14px !important;
    border-radius: 2px;
}

#eb_full_calendar .fc-h-event .fc-event-main {
    color: #000 !important;
}

#eb_full_calendar .fc-event-title {
    color: #000;
    font-weight: 700;
    font-size: 14px;
}

#eb_full_calendar .fc-daygrid-event-dot {
    border-color: var(--eb-btn-color);
}

#eb_full_calendar .fc-daygrid-event {
    font-weight: 700;
    white-space: normal;
}

#eb_full_calendar .fc-event-time {
    color: #000;
    font-weight: 400;
    font-size: 14px;
}

/* Heure sur sa propre ligne, titre en dessous (au lieu de côte à côte) */
#eb_full_calendar .fc-event-main-frame {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
}

#eb_full_calendar .fc-event-time {
    margin-bottom: 2px;
}

/* Flèches précédent/suivant de part et d'autre du titre du mois,
   centré dans l'espace disponible entre "Aujourd'hui" et les
   boutons Mois/Semaine/Jour (équidistant des deux côtés, peu
   importe leur largeur respective). On "efface" le chunk1 et son
   button-group pour détacher prev/next l'un de l'autre, puis on
   les replace par grille avec deux colonnes flexibles égales
   (1fr) de part et d'autre du groupe [prev titre next]. */
#eb_full_calendar .fc-header-toolbar {
    display: grid !important;
    grid-template-columns: auto 1fr auto auto auto 1fr auto !important;
    grid-template-rows: auto !important;
    align-items: center;
}

#eb_full_calendar .fc-toolbar-chunk:first-child {
    display: contents;
}

#eb_full_calendar .fc-toolbar-chunk:first-child .fc-button-group {
    display: contents;
}

/* grid-row:1 explicite sur chaque élément placé pour empêcher
   tout retour à une 2e ligne (ex : si le calendrier tente un
   réagencement responsive à largeur réduite) */
#eb_full_calendar .fc-today-button {
    grid-column: 1;
    grid-row: 1;
}

#eb_full_calendar .fc-prev-button,
#eb_full_calendar .fc-prev-button:hover,
#eb_full_calendar .fc-prev-button:active,
#eb_full_calendar .fc-prev-button:focus,
#eb_full_calendar .fc-prev-button:not(:disabled):active {
    grid-column: 3;
    grid-row: 1;
    border: none !important;
    background: transparent !important;
    color: #1a1a1a !important;
    box-shadow: none !important;
}

/* Le titre (2e chunk du DOM, même si le 1er chunk est "effacé") */
#eb_full_calendar .fc-toolbar-chunk:nth-child(2) {
    grid-column: 4;
    grid-row: 1;
    justify-self: center;
}

#eb_full_calendar .fc-next-button,
#eb_full_calendar .fc-next-button:hover,
#eb_full_calendar .fc-next-button:active,
#eb_full_calendar .fc-next-button:focus,
#eb_full_calendar .fc-next-button:not(:disabled):active {
    grid-column: 5;
    grid-row: 1;
    border: none !important;
    background: transparent !important;
    color: #1a1a1a !important;
    box-shadow: none !important;
}

/* Boutons Mois/Semaine/Jour, colonne de droite */
#eb_full_calendar .fc-toolbar-chunk:nth-child(3) {
    grid-column: 7;
    grid-row: 1;
    justify-self: end;
}

/* ================================================
   38. ÉVÉNEMENTS LIÉS (Related Events) — page événement
   #eb-event-details a display:contents (section 33), donc
   le titre "Related Events" et la grille de 3 colonnes
   deviennent eux aussi des items de la grille principale.
   Sans grid-column explicite, ils se plaçaient dans la
   colonne étroite de la sidebar (chevauchement des cartes).
   On les force en pleine largeur, sous la sidebar/les boutons,
   puis on reprend le format de la section 34 (liste à plat,
   empilée, séparateurs fins) au lieu de la grille à 3 colonnes.
   ================================================ */

#eb-event-page.eb-event > h3.eb-plugin-relatedevents,
#eb-event-page.eb-event .eb-events-grid-items {
    grid-column: 1 / -1;
}

#eb-event-page.eb-event > h3.eb-plugin-relatedevents {
    margin-top: 50px !important;
}

/* La grille à 3 colonnes devient une liste empilée en pleine largeur */
#eb-event-page.eb-event .eb-events-grid-items {
    display: block !important;
}

#eb-event-page.eb-event .eb-events-grid-items > div[class*="col-md-"] {
    width: 100% !important;
    max-width: 100% !important;
    flex: none !important;
}

/* Chaque carte perd son look "carte" (fond/bordure/ombre/radius)
   et devient une ligne séparée par un trait fin, comme la section 34 */
#eb-event-page.eb-event .eb-event-item-grid-default-layout {
    background: transparent !important;
    border: none !important;
    border-top: 1px solid #d9d9d9 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 30px 0 !important;
    margin-bottom: 0 !important;
}

#eb-event-page.eb-event .eb-event-item-grid-default-layout .eb-event-title-container {
    font-size: 28px !important;
    line-height: 1.3 !important;
    margin-bottom: 12px !important;
}

#eb-event-page.eb-event .eb-event-item-grid-default-layout .eb-event-title-container a {
    color: #1a1a1a !important;
    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 8px !important;
    font-size: 28px !important;
}

#eb-event-page.eb-event .eb-event-item-grid-default-layout .eb-event-title-container a:hover {
    color: #1a1a1a !important;
    text-decoration: none !important;
    background-color: #ededed;
}

#eb-event-page.eb-event .eb-event-item-grid-default-layout .eb-event-date-time {
    color: #1a1a1a !important;
    font-weight: 700 !important;
    margin-bottom: 8px !important;
}

#eb-event-page.eb-event .eb-event-item-grid-default-layout .eb-event-location a {
    color: #1a1a1a !important;
    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 8px !important;
    font-weight: 400 !important;
}

#eb-event-page.eb-event .eb-event-item-grid-default-layout .eb-event-location a:hover {
    color: #1a1a1a !important;
    text-decoration: none !important;
    background-color: #ededed;
}

#eb-event-page.eb-event .eb-event-item-grid-default-layout .eb-event-short-description {
    border-top: none !important;
    padding-top: 8px !important;
    color: #4a4a4a !important;
    font-size: 16px !important;
}

/* ================================================
   39. TOOLTIPS (Bootstrap .hasTooltip / .hasTip)
   Utilisé notamment pour "Privacy policy" sur les
   formulaires d'inscription. Style plus soigné : largeur
   limitée et lisible, coins arrondis, ombre légère, au lieu
   du bloc noir plein écran sans arrondi.
   ================================================ */

.tooltip .tooltip-inner {
    max-width: 360px;
    background-color: #1a1a1a;
    color: #fff;
    text-align: left;
    font-size: 14px;
    line-height: 1.5;
    padding: 16px 18px;
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
}

.tooltip .tooltip-inner strong {
    color: #fff;
}

.tooltip .tooltip-inner a {
    color: #fff;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.tooltip .tooltip-inner p {
    margin: 0 0 10px 0;
}

.tooltip .tooltip-inner p:last-child {
    margin-bottom: 0;
}

/* Flèche du tooltip assortie au fond */
.tooltip.bs-tooltip-top .tooltip-arrow::before,
.tooltip[data-popper-placement^="top"] .tooltip-arrow::before {
    border-top-color: #1a1a1a;
}

.tooltip.bs-tooltip-bottom .tooltip-arrow::before,
.tooltip[data-popper-placement^="bottom"] .tooltip-arrow::before {
    border-bottom-color: #1a1a1a;
}

.tooltip.bs-tooltip-start .tooltip-arrow::before,
.tooltip[data-popper-placement^="left"] .tooltip-arrow::before {
    border-left-color: #1a1a1a;
}

.tooltip.bs-tooltip-end .tooltip-arrow::before,
.tooltip[data-popper-placement^="right"] .tooltip-arrow::before {
    border-right-color: #1a1a1a;
}

/* ================================================
   40. PAGE "CONFIRMATION DE L'ANNULATION DE L'INSCRIPTION"
   (registrant.cancel) — même esprit que le reste du site :
   plat, titre noir, pas de carte/ombre, bouton en pilule
   ================================================ */

.view-registrationcancel .form {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 30px 0 0 0 !important;
}

.view-registrationcancel h1.eb_title {
    color: #1a1a1a !important;
    font-weight: 700 !important;
}

.view-registrationcancel p {
    color: #4a4a4a;
    font-size: 18px;
    border-bottom: 0px solid #d9d9d9;
    padding-bottom: 24px;
    margin-bottom: 0;
}

.view-registrationcancel #btn-submit {
    border-radius: 50px !important;
    padding: 14px 32px !important;
    margin-top: 30px;
}