:root {
    --rjc-blue: #012469;
    --rjc-blue-dark: #001a4d;
    --rjc-blue-light: #eef4fb;
    --rjc-blue-pale: #f7f9fc;
    --rjc-text: #243247;
    --rjc-muted: #65748a;
    --rjc-border: #d8e2ed;
    --rjc-white: #fff;
    --rjc-shadow: 0 12px 34px rgba(1, 36, 105, .08);
    --rjc-radius: 10px;
}

/* =========================================================
   BASE
========================================================= */

.rjc-directory,
.rjc-profile,
.rjc-home-events,
.rjc-submission-page,
.rjc-event-ecosystem,
.rjc-agenda-intro {
    color: var(--rjc-text);
    font-family: inherit;
}

.rjc-directory,
.rjc-profile,
.rjc-home-events,
.rjc-submission-page {
    width: min(1160px, 100%);
    margin-inline: auto;
}

.rjc-directory *,
.rjc-profile *,
.rjc-home-events *,
.rjc-submission-page *,
.rjc-event-summary *,
.rjc-event-ecosystem * {
    box-sizing: border-box;
}

.rjc-directory a,
.rjc-profile a,
.rjc-home-events a,
.rjc-submission-page a,
.rjc-event-summary a,
.rjc-event-ecosystem a {
    text-decoration: none;
}

.rjc-directory h1,
.rjc-profile h1,
.rjc-submission-page h1,
.rjc-agenda-intro h1,
.rjc-directory h2,
.rjc-profile h2,
.rjc-event-ecosystem h2,
.rjc-home-events h2 {
    color: var(--rjc-blue);
    font-weight: 900;
    letter-spacing: -.03em;
}

.rjc-eyebrow {
    margin: 0 0 7px;
    color: var(--rjc-blue);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .9px;
    text-transform: uppercase;
}

.rjc-muted {
    color: var(--rjc-muted);
}

.rjc-text-link {
    color: var(--rjc-blue) !important;
    font-weight: 850;
    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 4px;
}

.rjc-text-link:hover,
.rjc-text-link:focus {
    color: var(--rjc-blue-dark) !important;
}

body a.rjc-button,
body a.rjc-button:link,
body a.rjc-button:visited,
body button.rjc-button,
body .rjc-button,
.single-tribe_events .rjc-event-summary a.rjc-button,
.single-tribe_events .rjc-event-ecosystem a.rjc-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 47px;
    padding: 11px 18px;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    background: var(--rjc-blue) !important;
    background-color: var(--rjc-blue) !important;
    background-image: none !important;
    border: 2px solid var(--rjc-blue) !important;
    border-radius: 7px;
    box-shadow: 0 7px 18px rgba(1, 36, 105, .19);
    font-size: 13px;
    font-weight: 900;
    line-height: 1.2;
    text-align: center;
    text-decoration: none !important;
    text-shadow: none !important;
    opacity: 1 !important;
    transition: transform .18s ease, background-color .18s ease, border-color .18s ease;
}

body a.rjc-button:hover,
body a.rjc-button:focus,
body button.rjc-button:hover,
body button.rjc-button:focus,
.single-tribe_events .rjc-event-summary a.rjc-button:hover,
.single-tribe_events .rjc-event-ecosystem a.rjc-button:hover {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    background: var(--rjc-blue-dark) !important;
    border-color: var(--rjc-blue-dark) !important;
    transform: translateY(-1px);
}

body a.rjc-button--secondary,
body a.rjc-button--secondary:link,
body a.rjc-button--secondary:visited,
.single-tribe_events a.rjc-button--secondary {
    color: var(--rjc-blue) !important;
    -webkit-text-fill-color: var(--rjc-blue) !important;
    background: #fff !important;
    border-color: var(--rjc-blue) !important;
    box-shadow: none;
}

body a.rjc-button--secondary:hover,
body a.rjc-button--secondary:focus,
.single-tribe_events a.rjc-button--secondary:hover {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    background: var(--rjc-blue) !important;
}

.rjc-button--small {
    min-height: 41px !important;
    padding: 9px 14px !important;
    font-size: 12px !important;
}

.rjc-image-placeholder {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    padding: 14%;
    background: #fff;
}

.rjc-image-placeholder img {
    width: 100%;
    height: 100%;
    object-fit: contain !important;
}

.rjc-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}

.rjc-section-heading h2 {
    margin: 0;
}

.rjc-back-link {
    display: inline-block;
    margin-bottom: 24px;
    color: var(--rjc-blue) !important;
    font-weight: 850;
}

/* =========================================================
   CHAPEAUX
========================================================= */

.rjc-agenda-intro,
.rjc-directory-intro {
    max-width: 920px;
    margin: 0 auto 36px;
    padding: 4px 12px 26px;
    text-align: center;
    border-bottom: 1px solid var(--rjc-border);
}

.rjc-agenda-intro h1,
.rjc-directory-intro h1 {
    margin: 0 0 15px;
    font-size: clamp(31px, 4vw, 48px);
    line-height: 1.07;
}

.rjc-agenda-intro p,
.rjc-directory-intro p {
    max-width: 790px;
    margin: 0 auto;
    font-size: 16px;
    line-height: 1.68;
}

.rjc-agenda-intro .rjc-note,
.rjc-directory-intro .rjc-note {
    margin-top: 14px;
    padding-top: 14px;
    color: var(--rjc-muted);
    border-top: 2px solid var(--rjc-blue);
    font-size: 13px;
    line-height: 1.55;
}

/* =========================================================
   GENRES MUSICAUX
========================================================= */

.rjc-genre-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 10px 0 15px;
}

.rjc-genre-chip {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 10px;
    color: var(--rjc-blue);
    background: var(--rjc-blue-light);
    border: 1px solid rgba(1, 36, 105, .18);
    border-radius: 999px;
    font-size: 11px;
    font-weight: 850;
    line-height: 1.2;
}

.rjc-genre-chips--compact {
    gap: 5px;
    margin: 8px 0 9px;
}

.rjc-genre-chips--compact .rjc-genre-chip {
    min-height: 24px;
    padding: 4px 8px;
    font-size: 10px;
}

.rjc-genre-chips--summary {
    margin: 0;
}

.rjc-genre-chips--summary .rjc-genre-chip {
    background: #fff;
}

.rjc-agenda-genres {
    margin: 9px 0 8px !important;
}

.rjc-agenda-genre-filter {
    max-width: 720px;
    margin: 22px auto 0;
    padding-top: 20px;
    border-top: 1px solid var(--rjc-border);
    text-align: left;
}

.rjc-agenda-genre-filter > label {
    display: block;
    margin-bottom: 7px;
    color: var(--rjc-blue);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .35px;
    text-transform: uppercase;
}

.rjc-agenda-genre-filter__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.rjc-agenda-genre-filter select {
    flex: 1 1 280px;
    min-height: 45px;
    padding: 9px 38px 9px 13px;
    color: var(--rjc-text);
    background-color: #fff;
    border: 1px solid #bfcddd;
    border-radius: 7px;
    box-shadow: none;
    font-size: 14px;
    font-weight: 700;
}

.rjc-agenda-genre-filter select:focus {
    border-color: var(--rjc-blue);
    outline: 3px solid rgba(1, 36, 105, .10);
}

/* =========================================================
   AGENDA THE EVENTS CALENDAR
========================================================= */

.tribe-events .tribe-events-l-container {
    max-width: 1160px !important;
    padding-top: 10px !important;
}

.tribe-events .tribe-events-header__events-bar,
.tribe-events .tribe-events-c-subscribe-dropdown__container {
    border-color: var(--rjc-border) !important;
}

.tribe-events .tribe-events-c-top-bar__datepicker-button {
    width: auto !important;
    font-size: 0 !important;
}

.tribe-events .tribe-events-c-top-bar__datepicker-button::after {
    content: "Sélection Riviera Jazz Club";
    color: var(--rjc-blue);
    font-size: clamp(25px, 3.4vw, 35px);
    font-weight: 900;
    line-height: 1.1;
}

.tribe-events .tribe-events-c-top-bar__datepicker-button-icon-svg {
    display: none !important;
}

.tribe-events .tribe-events-calendar-list__month-separator {
    margin: 42px 0 14px !important;
}

.tribe-events .tribe-events-calendar-list__month-separator-text {
    color: var(--rjc-blue) !important;
    font-size: clamp(33px, 5vw, 55px) !important;
    font-weight: 900 !important;
    letter-spacing: -.045em;
    line-height: 1 !important;
    text-transform: uppercase;
}

.tribe-events .tribe-events-calendar-list__month-separator::after {
    height: 2px !important;
    background: var(--rjc-blue) !important;
}

.tribe-events .tribe-events-calendar-list__event-row {
    margin: 0 !important;
    padding: 30px 0 !important;
    border-bottom: 1px solid var(--rjc-border);
}

.tribe-events .tribe-events-calendar-list__event-date-tag {
    display: none !important;
}

.tribe-events .tribe-events-calendar-list__event-wrapper {
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
}

.tribe-events .tribe-events-calendar-list__event {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 220px;
    gap: 30px;
    align-items: start;
    margin: 0 !important;
}

.tribe-events .tribe-events-calendar-list__event-details {
    grid-column: 1;
    grid-row: 1;
    width: 100% !important;
    padding: 0 !important;
}

.tribe-events .tribe-events-calendar-list__event-featured-image-wrapper {
    grid-column: 2;
    grid-row: 1;
    width: 220px !important;
    margin: 0 !important;
}

.tribe-events .tribe-events-calendar-list__event-featured-image-link {
    display: block;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    border-radius: 8px;
    border: 1px solid var(--rjc-border);
}

.tribe-events .tribe-events-calendar-list__event-featured-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tribe-events .tribe-events-calendar-list__event-title {
    margin: 5px 0 9px !important;
    font-size: clamp(25px, 3.2vw, 37px) !important;
    line-height: 1.08 !important;
}

.tribe-events .tribe-events-calendar-list__event-title-link,
.tribe-events .tribe-events-calendar-list__event-title-link:visited {
    color: var(--rjc-blue) !important;
    font-weight: 900 !important;
}

.tribe-events .tribe-events-calendar-list__event-datetime {
    color: var(--rjc-blue) !important;
    font-weight: 850 !important;
}

.tribe-events .tribe-events-calendar-list__event-venue-title {
    color: var(--rjc-text) !important;
    font-weight: 800 !important;
}

.tribe-events .tribe-events-calendar-list__event-description {
    margin-top: 14px !important;
    color: var(--rjc-text) !important;
    line-height: 1.65 !important;
}

.rjc-agenda-more {
    margin-top: 18px;
}

/* =========================================================
   FICHE ÉVÉNEMENT — BLOC UNIQUE EN HAUT
========================================================= */

.single-tribe_events .tribe-events-single-event-title {
    color: var(--rjc-blue) !important;
    font-size: clamp(35px, 5.3vw, 59px) !important;
    font-weight: 900 !important;
    letter-spacing: -.045em;
    line-height: 1.02 !important;
}

.single-tribe_events .tribe-events-schedule,
.single-tribe_events .tribe-events-event-meta {
    display: none !important;
}

.single-tribe_events .tribe-events-event-image {
    margin: 25px 0 30px !important;
}

.single-tribe_events .tribe-events-event-image img {
    width: 100%;
    max-height: 620px;
    object-fit: cover;
    border-radius: 9px;
}

.rjc-event-summary {
    margin: 28px 0 38px;
    padding: 26px;
    background: linear-gradient(180deg, #fff 0%, var(--rjc-blue-pale) 100%);
    border: 1px solid var(--rjc-border);
    border-top: 5px solid var(--rjc-blue);
    border-radius: var(--rjc-radius);
    box-shadow: var(--rjc-shadow);
}

.rjc-event-summary__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
    gap: 0;
}

.rjc-event-fact {
    min-width: 0;
    padding: 2px 20px;
    border-right: 1px solid var(--rjc-border);
}

.rjc-event-fact:first-child {
    padding-left: 0;
}

.rjc-event-fact:last-child {
    padding-right: 0;
    border-right: 0;
}

.rjc-event-fact > span {
    display: block;
    margin-bottom: 7px;
    color: var(--rjc-muted);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .75px;
    text-transform: uppercase;
}

.rjc-event-fact strong {
    display: block;
    color: var(--rjc-text);
    font-size: 15px;
    line-height: 1.45;
}

.rjc-event-fact strong a {
    color: var(--rjc-blue) !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

.rjc-event-fact small {
    display: block;
    margin-top: 5px;
    color: var(--rjc-muted);
    line-height: 1.4;
}

.rjc-event-summary__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 30px;
    padding-top: 26px;
    border-top: 1px solid var(--rjc-border);
}

.rjc-event-summary__actions .rjc-button--official {
    min-width: 235px;
}

.single-tribe_events .tribe-events-single-event-description {
    color: var(--rjc-text);
    font-size: 16px;
    line-height: 1.75;
}

.single-tribe_events [data-rjc-official-link-hidden="true"] {
    display: none !important;
}

.rjc-event-ecosystem {
    margin-top: 48px;
}

.rjc-single-section {
    margin: 30px 0;
    padding: 28px;
    background: var(--rjc-blue-pale);
    border: 1px solid var(--rjc-border);
    border-radius: var(--rjc-radius);
}

.rjc-artist-spotlight__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 22px;
}

.rjc-mini-profile {
    display: grid;
    grid-template-columns: 115px minmax(0, 1fr);
    gap: 18px;
    align-items: center;
    padding: 17px;
    background: #fff;
    border: 1px solid var(--rjc-border);
    border-radius: 8px;
}

.rjc-mini-profile__media {
    display: block;
    overflow: hidden;
    width: 115px;
    height: 115px;
    border-radius: 7px;
    border: 1px solid var(--rjc-border);
}

.rjc-mini-profile__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rjc-mini-profile h3 {
    margin: 0 0 7px;
    font-size: 23px;
}

.rjc-mini-profile h3 a {
    color: var(--rjc-blue) !important;
    font-weight: 900;
}

.rjc-mini-profile p {
    margin: 0 0 11px;
    color: var(--rjc-muted);
    line-height: 1.55;
}

.rjc-venue-spotlight {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(310px, 40%);
    gap: 30px;
    align-items: stretch;
}

.rjc-venue-spotlight h2 {
    margin: 0 0 7px;
    font-size: clamp(28px, 3.5vw, 41px);
}

.rjc-venue-spotlight__map,
.rjc-venue-spotlight__map iframe,
.rjc-venue-card__map,
.rjc-venue-card__map iframe,
.rjc-profile-hero__map,
.rjc-profile-hero__map iframe {
    width: 100% !important;
    min-height: 100%;
    border: 0;
    border-radius: 8px;
}

.rjc-related-events {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--rjc-border);
}

.rjc-related-events h3 {
    margin: 0 0 10px;
    color: var(--rjc-blue);
    font-size: 17px;
    font-weight: 900;
}

.rjc-related-events > a {
    display: grid;
    grid-template-columns: 115px minmax(0, 1fr);
    gap: 12px;
    padding: 10px 0;
    color: var(--rjc-text) !important;
    border-bottom: 1px solid var(--rjc-border);
}

.rjc-related-events time {
    color: var(--rjc-blue);
    font-weight: 900;
}

/* =========================================================
   OUTILS DE RECHERCHE
========================================================= */

.rjc-directory-tools {
    display: grid;
    gap: 16px;
    max-width: 850px;
    margin: 0 auto 36px;
}

.rjc-directory-tools--venues {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rjc-directory-tools--single {
    grid-template-columns: 1fr;
    max-width: 650px;
}

.rjc-directory-tools label,
.rjc-form-field label {
    display: block;
    margin-bottom: 7px;
    color: var(--rjc-muted);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .55px;
    text-transform: uppercase;
}

.rjc-directory-search,
.rjc-directory-tools select,
.rjc-form-field input,
.rjc-form-field textarea {
    width: 100%;
    min-height: 49px;
    padding: 11px 14px;
    color: var(--rjc-text);
    background: #fff;
    border: 1px solid #c7d4e3;
    border-radius: 7px;
    box-shadow: none;
    font: inherit;
}

.rjc-form-field textarea {
    min-height: 150px;
    resize: vertical;
}

.rjc-directory-search:focus,
.rjc-directory-tools select:focus,
.rjc-form-field input:focus,
.rjc-form-field textarea:focus {
    border-color: var(--rjc-blue);
    outline: 3px solid rgba(1, 36, 105, .10);
}

/* =========================================================
   ARTISTES
========================================================= */

.rjc-letter-index {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
    margin-bottom: 30px;
}

.rjc-letter-index a {
    display: inline-flex;
    width: 34px;
    height: 34px;
    align-items: center;
    justify-content: center;
    color: var(--rjc-blue) !important;
    background: #fff;
    border: 1px solid var(--rjc-blue);
    border-radius: 4px;
    font-size: 12px;
    font-weight: 900;
}

.rjc-letter-heading {
    display: flex;
    align-items: center;
    gap: 15px;
    margin: 40px 0 6px;
    font-size: 44px;
    scroll-margin-top: 100px;
}

.rjc-letter-heading::after {
    content: "";
    flex: 1;
    height: 2px;
    background: var(--rjc-blue);
}

.rjc-artist-card {
    display: grid;
    grid-template-columns: 105px minmax(0, 1fr);
    gap: 22px;
    align-items: center;
    padding: 22px 0;
    border-bottom: 1px solid var(--rjc-border);
}

.rjc-artist-card__media {
    display: block;
    overflow: hidden;
    width: 105px;
    height: 105px;
    border: 1px solid var(--rjc-border);
    border-radius: 7px;
}

.rjc-artist-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rjc-artist-card h3 {
    margin: 0 0 7px;
    font-size: clamp(23px, 3vw, 31px);
}

.rjc-artist-card h3 a {
    color: var(--rjc-blue) !important;
    font-weight: 900;
}

.rjc-card-meta {
    margin: 0 0 10px;
    color: var(--rjc-text);
}

.rjc-card-meta span {
    display: block;
    color: var(--rjc-muted);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .5px;
    text-transform: uppercase;
}

/* =========================================================
   LIEUX
========================================================= */

.rjc-city-group {
    margin: 0 0 42px;
}

.rjc-city-title {
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 0 0 12px;
    font-size: clamp(35px, 5vw, 54px);
    text-transform: uppercase;
}

.rjc-city-title::after {
    content: "";
    flex: 1;
    height: 2px;
    background: var(--rjc-blue);
}

.rjc-venue-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 36%;
    gap: 28px;
    padding: 28px 0;
    border-bottom: 1px solid var(--rjc-border);
}

.rjc-venue-card h3 {
    margin: 0 0 7px;
    color: var(--rjc-blue);
    font-size: clamp(25px, 3vw, 35px);
    font-weight: 900;
}

.rjc-venue-card__address,
.rjc-profile-address {
    margin: 0 0 12px;
    color: var(--rjc-muted);
    line-height: 1.55;
}

.rjc-inline-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin: 0 0 18px;
}

.rjc-inline-links a {
    color: var(--rjc-blue) !important;
    font-weight: 800;
}

.rjc-upcoming-mini {
    margin: 18px 0;
}

.rjc-upcoming-mini > span {
    display: block;
    margin-bottom: 7px;
    color: var(--rjc-muted);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .55px;
    text-transform: uppercase;
}

.rjc-upcoming-mini > a {
    display: grid;
    grid-template-columns: 105px minmax(0, 1fr);
    gap: 12px;
    padding: 9px 12px;
    color: var(--rjc-text) !important;
    background: var(--rjc-blue-light);
    border-left: 4px solid var(--rjc-blue);
    border-bottom: 1px solid #fff;
}

.rjc-upcoming-mini time {
    color: var(--rjc-blue);
    font-weight: 900;
}

.rjc-map-placeholder {
    display: flex;
    min-height: 260px;
    align-items: center;
    justify-content: center;
    color: var(--rjc-muted);
    background: var(--rjc-blue-light);
    border-radius: 8px;
}

/* =========================================================
   PROFILS ET CARTES ÉVÉNEMENTS
========================================================= */

.rjc-profile-hero {
    display: grid;
    grid-template-columns: minmax(240px, 31%) minmax(0, 1fr);
    gap: 34px;
    align-items: start;
    margin-bottom: 42px;
}

.rjc-profile-hero--venue {
    grid-template-columns: minmax(0, 1fr) minmax(330px, 43%);
}

.rjc-profile-hero__media {
    overflow: hidden;
    aspect-ratio: 1 / 1;
    border: 1px solid var(--rjc-border);
    border-radius: 9px;
}

.rjc-profile-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rjc-profile-hero h1 {
    margin: 0 0 15px;
    font-size: clamp(36px, 5vw, 58px);
    line-height: 1.02;
}

.rjc-rich-text {
    margin: 16px 0 21px;
    line-height: 1.72;
}

.rjc-profile-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin-top: 20px;
}

.rjc-events-section {
    margin: 40px 0;
}

.rjc-event-cards--list {
    display: grid;
    gap: 12px;
}

.rjc-event-cards--grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.rjc-event-card {
    display: grid;
    grid-template-columns: 155px minmax(0, 1fr);
    gap: 20px;
    min-width: 0;
    padding: 17px;
    background: #fff;
    border: 1px solid var(--rjc-border);
    border-radius: 8px;
}

.rjc-event-cards--grid .rjc-event-card {
    grid-template-columns: 1fr;
}

.rjc-event-card__media {
    display: block;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    border: 1px solid var(--rjc-border);
    border-radius: 7px;
}

.rjc-event-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rjc-event-card time {
    color: var(--rjc-blue);
    font-size: 12px;
    font-weight: 900;
}

.rjc-event-card h3 {
    margin: 6px 0;
    font-size: 22px;
    line-height: 1.18;
}

.rjc-event-card h3 a {
    color: var(--rjc-blue) !important;
    font-weight: 900;
}

.rjc-event-card p {
    margin: 0 0 11px;
    color: var(--rjc-muted);
}

.rjc-empty-state,
.rjc-no-results {
    padding: 22px;
    color: var(--rjc-muted);
    background: var(--rjc-blue-pale);
    border: 1px solid var(--rjc-border);
    border-radius: 8px;
    text-align: center;
}

/* =========================================================
   PROPOSER UN ÉVÉNEMENT
========================================================= */

.rjc-submission-form {
    max-width: 920px;
    margin: 0 auto;
}

.rjc-submission-form fieldset {
    margin: 0 0 24px;
    padding: 25px;
    background: #fff;
    border: 1px solid var(--rjc-border);
    border-top: 4px solid var(--rjc-blue);
    border-radius: var(--rjc-radius);
    box-shadow: var(--rjc-shadow);
}

.rjc-submission-form legend {
    padding: 0 9px;
    color: var(--rjc-blue);
    background: #fff;
    font-size: 20px;
    font-weight: 900;
}

.rjc-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.rjc-form-field--full {
    grid-column: 1 / -1;
    margin-top: 18px;
}

.rjc-form-field small {
    display: block;
    margin-top: 6px;
    color: var(--rjc-muted);
    line-height: 1.45;
}

.rjc-form-label {
    display: block;
    margin-bottom: 7px;
    color: var(--rjc-text);
    font-weight: 850;
}

.rjc-form-help {
    margin: 0 0 10px;
    color: var(--rjc-muted);
    font-size: 12px;
    line-height: 1.45;
}

.rjc-public-genre-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}

.rjc-public-genre-option {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 43px;
    margin: 0;
    padding: 9px 11px;
    color: var(--rjc-text);
    background: var(--rjc-blue-pale);
    border: 1px solid var(--rjc-border);
    border-radius: 7px;
    cursor: pointer;
    font-size: 12px;
    font-weight: 750;
    line-height: 1.3;
}

.rjc-public-genre-option:has(input:checked) {
    color: var(--rjc-blue);
    background: var(--rjc-blue-light);
    border-color: var(--rjc-blue);
}

.rjc-public-genre-option:has(input:disabled:not(:checked)) {
    opacity: .48;
    cursor: not-allowed;
}

.rjc-public-genre-option input {
    width: 17px !important;
    height: 17px !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    accent-color: var(--rjc-blue);
}

.rjc-public-genre-list + .rjc-form-help {
    margin-top: 9px;
    margin-bottom: 0;
}

.rjc-data-notice {
    margin: 22px 0;
    padding: 18px 20px;
    color: var(--rjc-muted);
    background: var(--rjc-blue-pale);
    border-left: 4px solid var(--rjc-blue);
    line-height: 1.6;
}

.rjc-data-notice p {
    margin: 0;
}

.rjc-data-notice p + p {
    margin-top: 7px;
}

.rjc-data-notice a {
    color: var(--rjc-blue) !important;
    font-weight: 800;
}

.rjc-consent {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    margin: 20px 0;
    line-height: 1.55;
}

.rjc-consent input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
}

.rjc-submit-button {
    min-width: 245px;
}

.rjc-form-message {
    max-width: 920px;
    margin: 0 auto 24px;
    padding: 20px;
    border-radius: 8px;
}

.rjc-form-message p {
    margin: 5px 0 0;
}

.rjc-form-message--success {
    color: #175c35;
    background: #eef9f2;
    border: 1px solid #b9e3c8;
}

.rjc-form-message--error {
    color: #8a1f2d;
    background: #fff2f3;
    border: 1px solid #f0bcc3;
}

.rjc-honeypot {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 920px) {
    .rjc-event-summary__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px;
    }

    .rjc-event-fact,
    .rjc-event-fact:first-child,
    .rjc-event-fact:last-child {
        padding: 0;
        border: 0;
    }

    .rjc-venue-spotlight,
    .rjc-profile-hero--venue,
    .rjc-venue-card {
        grid-template-columns: 1fr;
    }

    .rjc-venue-card__map {
        min-height: 290px;
    }

    .rjc-event-cards--grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .rjc-agenda-intro,
    .rjc-directory-intro {
        margin-bottom: 27px;
        padding-inline: 5px;
    }

    .rjc-agenda-intro p,
    .rjc-directory-intro p {
        font-size: 15px;
    }

    .tribe-events .tribe-events-calendar-list__event {
        grid-template-columns: 1fr !important;
        gap: 18px;
    }

    .tribe-events .tribe-events-calendar-list__event-details,
    .tribe-events .tribe-events-calendar-list__event-featured-image-wrapper {
        grid-column: 1;
        width: 100% !important;
    }

    .tribe-events .tribe-events-calendar-list__event-details {
        grid-row: 2;
    }

    .tribe-events .tribe-events-calendar-list__event-featured-image-wrapper {
        grid-row: 1;
    }

    .tribe-events .tribe-events-calendar-list__event-featured-image-link {
        aspect-ratio: 16 / 10;
    }

    .rjc-event-summary {
        padding: 21px 18px;
    }

    .rjc-event-summary__grid {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .rjc-event-fact,
    .rjc-event-fact:first-child,
    .rjc-event-fact:nth-child(3),
    .rjc-event-fact:last-child {
        padding: 14px 0;
        border-right: 0;
        border-bottom: 1px solid var(--rjc-border);
    }

    .rjc-event-fact:last-child {
        border-bottom: 0;
    }

    .rjc-event-summary__actions {
        display: grid;
        margin-top: 22px;
        padding-top: 22px;
    }

    .rjc-event-summary__actions .rjc-button {
        width: 100%;
    }

    .rjc-single-section {
        padding: 21px 18px;
    }

    .rjc-mini-profile {
        grid-template-columns: 82px minmax(0, 1fr);
        gap: 14px;
    }

    .rjc-mini-profile__media {
        width: 82px;
        height: 82px;
    }

    .rjc-related-events > a,
    .rjc-upcoming-mini > a {
        grid-template-columns: 1fr;
        gap: 3px;
    }

    .rjc-directory-tools--venues,
    .rjc-form-grid,
    .rjc-public-genre-list {
        grid-template-columns: 1fr;
    }

    .rjc-agenda-genre-filter__row {
        display: grid;
        grid-template-columns: 1fr;
    }

    .rjc-agenda-genre-filter__row .rjc-button,
    .rjc-agenda-genre-filter__row select {
        width: 100%;
    }

    .rjc-form-field--full {
        grid-column: 1;
    }

    .rjc-artist-card {
        grid-template-columns: 82px minmax(0, 1fr);
        gap: 15px;
    }

    .rjc-artist-card__media {
        width: 82px;
        height: 82px;
    }

    .rjc-letter-index {
        display: none;
    }

    .rjc-profile-hero {
        grid-template-columns: 1fr;
    }

    .rjc-profile-hero__media {
        max-height: 360px;
    }

    .rjc-event-cards--grid,
    .rjc-event-card {
        grid-template-columns: 1fr;
    }

    .rjc-event-card__media {
        aspect-ratio: 16 / 10;
    }

    .rjc-section-heading {
        display: block;
    }

    .rjc-section-heading .rjc-text-link {
        display: inline-block;
        margin-top: 10px;
    }

    .rjc-submission-form fieldset {
        padding: 20px 17px;
    }

    .rjc-submit-button {
        width: 100%;
    }
}

/* =========================================================
   CORRECTIONS 2.3 — AGENDA ET LIEUX
========================================================= */

/* Chapeau de l’agenda parfaitement centré, même si le thème
   lui applique des largeurs ou alignements concurrents. */
body .rjc-agenda-intro {
    display: block !important;
    width: min(920px, calc(100% - 32px)) !important;
    max-width: 920px !important;
    margin: 0 auto 54px !important;
    padding: 4px 12px 28px !important;
    text-align: center !important;
}

body .rjc-agenda-intro h1,
body .rjc-agenda-intro p,
body .rjc-agenda-intro .rjc-note {
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
}

/* Le filtre des genres reste lui aussi centré et léger. */
body .rjc-agenda-genre-filter {
    max-width: 720px !important;
    margin: 24px auto 0 !important;
    text-align: center !important;
}

body .rjc-agenda-genre-filter__row {
    justify-content: center !important;
}

body .rjc-agenda-genre-filter select {
    flex: 0 1 430px !important;
}

/* Vraie respiration entre le chapeau / filtre et
   « Sélection Riviera Jazz Club ». */
body .rjc-agenda-intro + .tribe-events,
body .rjc-agenda-intro + div .tribe-events {
    margin-top: 18px !important;
}

.tribe-events .tribe-events-c-top-bar {
    margin-top: 28px !important;
    padding-top: 8px !important;
}

/* Les deux menus déroulants de Lieux Jazz ont le même rendu. */
.rjc-directory-tools--venues select {
    width: 100% !important;
    min-height: 48px !important;
    padding: 10px 40px 10px 14px !important;
    color: var(--rjc-text) !important;
    background-color: var(--rjc-white) !important;
    border: 1px solid #bfcddd !important;
    border-radius: 7px !important;
    box-shadow: none !important;
    font-size: 14px !important;
    font-weight: 700 !important;
}

.rjc-directory-tools--venues select:focus {
    border-color: var(--rjc-blue) !important;
    outline: 3px solid rgba(1, 36, 105, .10) !important;
}

@media (max-width: 767px) {
    body .rjc-agenda-intro {
        width: min(100%, calc(100% - 20px)) !important;
        margin-bottom: 40px !important;
        padding-inline: 5px !important;
    }

    .tribe-events .tribe-events-c-top-bar {
        margin-top: 20px !important;
    }

    body .rjc-agenda-genre-filter select {
        flex-basis: 100% !important;
    }
}

/* =========================================================
   CORRECTIONS 2.4 — APOSTROPHES ET DESCRIPTIFS
========================================================= */

/* Empêche la police du thème d’ouvrir artificiellement L’ agenda
   ou L’ artiste, et interdit une coupure après l’apostrophe. */
.rjc-no-break {
    display: inline !important;
    white-space: nowrap !important;
    letter-spacing: normal !important;
    word-spacing: 0 !important;
    font-kerning: normal !important;
}

#rjc-agenda-title,
#rjc-event-artists-title,
.rjc-agenda-intro h1 {
    letter-spacing: 0 !important;
    word-spacing: normal !important;
    font-kerning: normal !important;
}

/* Aucun vide artificiel lorsqu’un événement n’a pas encore
   de véritable descriptif éditorial. */
.single-tribe_events .tribe-events-single-event-description:empty,
.single-tribe_events .tribe-events-single-event-description > p:empty {
    display: none !important;
}

/* =========================================================
   CORRECTIONS 2.5 — FINITIONS FICHE ÉVÉNEMENT ET LIEUX
========================================================= */

/* Respiration optique après L’ sans insérer une espace incorrecte. */
.rjc-elision {
    display: inline-block !important;
    margin-right: .045em !important;
    letter-spacing: 0 !important;
}

/* Le descriptif est annoncé uniquement lorsqu’un vrai texte existe. */
.rjc-event-description-title {
    margin: 30px 0 12px !important;
    color: var(--rjc-blue) !important;
    font-size: clamp(22px, 2.6vw, 29px) !important;
    font-weight: 900 !important;
    letter-spacing: -.02em !important;
    line-height: 1.15 !important;
}

/* Bouton Ajouter au calendrier aux couleurs de Riviera Jazz Club. */
.single-tribe_events .tribe-events-c-subscribe-dropdown__button,
.single-tribe_events .tribe-common-c-btn-border.tribe-events-c-subscribe-dropdown__button,
.single-tribe_events .tribe-events-cal-links .tribe-events-button,
.single-tribe_events .tribe-events-cal-links a.tribe-events-button {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    background: var(--rjc-blue) !important;
    background-color: var(--rjc-blue) !important;
    background-image: none !important;
    border-color: var(--rjc-blue) !important;
    border-radius: 7px !important;
    box-shadow: 0 7px 18px rgba(1, 36, 105, .18) !important;
}

.single-tribe_events .tribe-events-c-subscribe-dropdown__button-text,
.single-tribe_events .tribe-events-c-subscribe-dropdown__button svg,
.single-tribe_events .tribe-events-c-subscribe-dropdown__button path {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    fill: #fff !important;
    stroke: #fff !important;
}

.single-tribe_events .tribe-events-c-subscribe-dropdown__button:hover,
.single-tribe_events .tribe-events-c-subscribe-dropdown__button:focus,
.single-tribe_events .tribe-events-c-subscribe-dropdown__button:focus-within,
.single-tribe_events .tribe-events-cal-links .tribe-events-button:hover,
.single-tribe_events .tribe-events-cal-links .tribe-events-button:focus {
    color: #fff !important;
    background: var(--rjc-blue-dark) !important;
    border-color: var(--rjc-blue-dark) !important;
}

/* Moitié moins d’espace entre le calendrier et À découvrir — L’artiste. */
.single-tribe_events .tribe-events-c-subscribe-dropdown__container,
.single-tribe_events .tribe-events-c-subscribe-dropdown,
.single-tribe_events .tribe-events-cal-links {
    margin-bottom: 0 !important;
}

.rjc-event-ecosystem {
    margin-top: 24px !important;
}

.rjc-event-ecosystem > .rjc-single-section:first-child {
    margin-top: 0 !important;
}

@media (max-width: 767px) {
    .rjc-event-description-title {
        margin-top: 24px !important;
        font-size: 22px !important;
    }

    .rjc-event-ecosystem {
        margin-top: 20px !important;
    }
}

/* =========================================================
   COULEUR UNIFIÉE — TOUS LES BOUTONS « AJOUTER AU CALENDRIER »
   Version renforcée pour les différents modèles de
   The Events Calendar et les surcharges éventuelles du thème.
========================================================= */

body.single-tribe_events .tribe-events-c-subscribe-dropdown__container
.tribe-events-c-subscribe-dropdown__button,
body.single-tribe_events .tribe-events-c-subscribe-dropdown__container
.tribe-common-c-btn-border,
body.single-tribe_events .tribe-events-c-subscribe-dropdown__container
button.tribe-events-c-subscribe-dropdown__button-text,
body.single-tribe_events .tribe-events-c-subscribe-dropdown__container
.tribe-events-c-subscribe-dropdown__button-text,
body.single-tribe_events .tribe-events-cal-links
.tribe-events-button,
body.single-tribe_events .tribe-events-cal-links
a.tribe-events-button,
body.single-tribe_events .tribe-events-cal-links
a.tribe-events-gcal,
body.single-tribe_events .tribe-events-cal-links
a.tribe-events-ical,
body .tribe-events .tribe-events-c-subscribe-dropdown__button,
body .tribe-events .tribe-common-c-btn-border.tribe-events-c-subscribe-dropdown__button,
body .tribe-events button.tribe-events-c-subscribe-dropdown__button-text {
    appearance: none !important;
    -webkit-appearance: none !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    background: var(--rjc-blue) !important;
    background-color: var(--rjc-blue) !important;
    background-image: none !important;
    border: 2px solid var(--rjc-blue) !important;
    border-radius: 7px !important;
    box-shadow: 0 7px 18px rgba(1, 36, 105, .22) !important;
    opacity: 1 !important;
    text-decoration: none !important;
}

body.single-tribe_events .tribe-events-c-subscribe-dropdown__container
.tribe-events-c-subscribe-dropdown__button *,
body.single-tribe_events .tribe-events-c-subscribe-dropdown__container
.tribe-events-c-subscribe-dropdown__button-text,
body.single-tribe_events .tribe-events-c-subscribe-dropdown__container
.tribe-events-c-subscribe-dropdown__button-text *,
body.single-tribe_events .tribe-events-cal-links
.tribe-events-button *,
body.single-tribe_events .tribe-events-cal-links
a.tribe-events-gcal *,
body.single-tribe_events .tribe-events-cal-links
a.tribe-events-ical * {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}

body.single-tribe_events .tribe-events-c-subscribe-dropdown__container
svg,
body.single-tribe_events .tribe-events-c-subscribe-dropdown__container
svg *,
body.single-tribe_events .tribe-events-cal-links
svg,
body.single-tribe_events .tribe-events-cal-links
svg * {
    color: #fff !important;
    fill: #fff !important;
    stroke: #fff !important;
}

body.single-tribe_events .tribe-events-c-subscribe-dropdown__container
.tribe-events-c-subscribe-dropdown__button:hover,
body.single-tribe_events .tribe-events-c-subscribe-dropdown__container
.tribe-events-c-subscribe-dropdown__button:focus,
body.single-tribe_events .tribe-events-c-subscribe-dropdown__container
button.tribe-events-c-subscribe-dropdown__button-text:hover,
body.single-tribe_events .tribe-events-c-subscribe-dropdown__container
button.tribe-events-c-subscribe-dropdown__button-text:focus,
body.single-tribe_events .tribe-events-cal-links
.tribe-events-button:hover,
body.single-tribe_events .tribe-events-cal-links
.tribe-events-button:focus,
body.single-tribe_events .tribe-events-cal-links
a.tribe-events-gcal:hover,
body.single-tribe_events .tribe-events-cal-links
a.tribe-events-ical:hover,
body .tribe-events .tribe-events-c-subscribe-dropdown__button:hover,
body .tribe-events .tribe-events-c-subscribe-dropdown__button:focus {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    background: var(--rjc-blue-dark) !important;
    background-color: var(--rjc-blue-dark) !important;
    border-color: var(--rjc-blue-dark) !important;
}

/*
 * Le menu qui s’ouvre reste clair et lisible :
 * seules les commandes d’ouverture sont colorées.
 */
body.single-tribe_events
.tribe-events-c-subscribe-dropdown__list {
    background: #fff !important;
}

body.single-tribe_events
.tribe-events-c-subscribe-dropdown__list a {
    color: var(--rjc-blue) !important;
    -webkit-text-fill-color: var(--rjc-blue) !important;
    background: #fff !important;
}

/* Les cartes affichent désormais davantage de contexte géographique. */
.rjc-venue-card__map iframe,
.rjc-profile-hero__map iframe,
.rjc-venue-spotlight__map iframe {
    width: 100% !important;
}

/* =========================================================
   VERSION 2.7.0 — VIVIER ET VILLE DES LIEUX
========================================================= */

.rjc-directory--vivier .rjc-directory-intro {
    text-align: center;
}

.rjc-directory--vivier .rjc-directory-intro p {
    max-width: 820px;
    margin-left: auto;
    margin-right: auto;
}

.rjc-event-fact--venue strong,
.rjc-venue-spotlight__content h2,
.rjc-event-card__venue {
    line-height: 1.3;
}


/* =========================================================
   RJC CORE 2.9 — MENU ET SOUS-MENUS SOLEDAD
========================================================= */

/*
 * Le thème Soledad peut enfermer le menu dans un conteneur avec
 * overflow masqué ou placer les sous-menus sous d’autres éléments.
 * Ces règles rétablissent un empilement propre et une zone cliquable.
 */
@media (min-width: 961px) {
    body .penci-main-nav,
    body .penci-main-nav .container,
    body #navigation,
    body #navigation .container,
    body .penci-header-wrap,
    body .penci-header-container,
    body .penci-menu-primary,
    body .penci-menu-wrap {
        overflow: visible !important;
    }

    body .penci-main-nav,
    body #navigation,
    body .penci-menu-primary {
        position: relative !important;
        z-index: 100000 !important;
    }

    body .penci-main-nav ul.menu > li,
    body #navigation ul.menu > li,
    body .penci-menu-primary ul.menu > li {
        position: relative !important;
    }

    body .penci-main-nav ul.menu li > ul.sub-menu,
    body #navigation ul.menu li > ul.sub-menu,
    body .penci-menu-primary ul.menu li > ul.sub-menu {
        display: block !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
        position: absolute !important;
        top: 100% !important;
        left: 0 !important;
        min-width: 235px !important;
        margin: 0 !important;
        padding: 8px 0 !important;
        background: #fff !important;
        border-top: 3px solid var(--rjc-blue) !important;
        border-radius: 0 0 8px 8px !important;
        box-shadow: 0 14px 30px rgba(1, 36, 105, .18) !important;
        transform: translateY(8px) !important;
        transition:
            opacity .16s ease,
            transform .16s ease,
            visibility .16s ease !important;
        z-index: 999999 !important;
    }

    /*
     * Petit pont invisible : le sous-menu ne disparaît pas lorsque
     * la souris passe du lien parent vers la liste.
     */
    body .penci-main-nav ul.menu li > ul.sub-menu::before,
    body #navigation ul.menu li > ul.sub-menu::before,
    body .penci-menu-primary ul.menu li > ul.sub-menu::before {
        content: "" !important;
        position: absolute !important;
        right: 0 !important;
        bottom: 100% !important;
        left: 0 !important;
        height: 12px !important;
    }

    body .penci-main-nav ul.menu li:hover > ul.sub-menu,
    body .penci-main-nav ul.menu li:focus-within > ul.sub-menu,
    body #navigation ul.menu li:hover > ul.sub-menu,
    body #navigation ul.menu li:focus-within > ul.sub-menu,
    body .penci-menu-primary ul.menu li:hover > ul.sub-menu,
    body .penci-menu-primary ul.menu li:focus-within > ul.sub-menu {
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        transform: translateY(0) !important;
    }

    body .penci-main-nav ul.menu li > ul.sub-menu a,
    body #navigation ul.menu li > ul.sub-menu a,
    body .penci-menu-primary ul.menu li > ul.sub-menu a {
        display: block !important;
        width: 100% !important;
        padding: 11px 17px !important;
        color: var(--rjc-text) !important;
        -webkit-text-fill-color: var(--rjc-text) !important;
        background: #fff !important;
        font-size: 13px !important;
        font-weight: 750 !important;
        line-height: 1.35 !important;
        white-space: nowrap !important;
        text-decoration: none !important;
        cursor: pointer !important;
    }

    body .penci-main-nav ul.menu li > ul.sub-menu a:hover,
    body .penci-main-nav ul.menu li > ul.sub-menu a:focus,
    body #navigation ul.menu li > ul.sub-menu a:hover,
    body #navigation ul.menu li > ul.sub-menu a:focus,
    body .penci-menu-primary ul.menu li > ul.sub-menu a:hover,
    body .penci-menu-primary ul.menu li > ul.sub-menu a:focus {
        color: var(--rjc-blue) !important;
        -webkit-text-fill-color: var(--rjc-blue) !important;
        background: var(--rjc-blue-light) !important;
    }

    /* Menu principal compact pour éviter les retours à la ligne. */
    body .penci-main-nav ul.menu > li > a,
    body #navigation ul.menu > li > a,
    body .penci-menu-primary ul.menu > li > a {
        padding-right: 9px !important;
        padding-left: 9px !important;
        white-space: nowrap !important;
    }
}

/*
 * Menu hamburger / vertical sur mobile :
 * le nom du parent reste cliquable et une flèche indépendante
 * ouvre ou ferme ses sous-menus.
 */
@media (max-width: 960px) {
    body .penci-menu-hbg,
    body .penci-menu-hbg.penci-vernav-show,
    body .penci-menu-hbg-inner,
    body #sidebar-nav {
        z-index: 999999 !important;
    }

    body .penci-menu-hbg .menu li.menu-item-has-children,
    body #sidebar-nav .menu li.menu-item-has-children,
    body .penci-menu-hbg-inner .menu li.menu-item-has-children {
        position: relative !important;
    }

    body .rjc-submenu-toggle {
        appearance: none !important;
        -webkit-appearance: none !important;
        position: absolute !important;
        top: 0 !important;
        right: 0 !important;
        z-index: 3 !important;
        display: inline-flex !important;
        width: 46px !important;
        height: 46px !important;
        align-items: center !important;
        justify-content: center !important;
        margin: 0 !important;
        padding: 0 !important;
        color: var(--rjc-blue) !important;
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
        font-size: 22px !important;
        line-height: 1 !important;
        cursor: pointer !important;
    }

    body .rjc-submenu-toggle::before {
        content: "⌄" !important;
        display: block !important;
        transform: translateY(-2px) rotate(0deg) !important;
        transition: transform .18s ease !important;
    }

    body li.rjc-submenu-open > .rjc-submenu-toggle::before {
        transform: translateY(2px) rotate(180deg) !important;
    }

    body .penci-menu-hbg .menu li > ul.sub-menu,
    body #sidebar-nav .menu li > ul.sub-menu,
    body .penci-menu-hbg-inner .menu li > ul.sub-menu {
        display: none !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        position: static !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 3px 0 8px 16px !important;
        background: rgba(1, 36, 105, .035) !important;
        border: 0 !important;
        box-shadow: none !important;
        transform: none !important;
    }

    body .penci-menu-hbg .menu li.rjc-submenu-open > ul.sub-menu,
    body #sidebar-nav .menu li.rjc-submenu-open > ul.sub-menu,
    body .penci-menu-hbg-inner .menu li.rjc-submenu-open > ul.sub-menu {
        display: block !important;
    }

    body .penci-menu-hbg .menu li > ul.sub-menu a,
    body #sidebar-nav .menu li > ul.sub-menu a,
    body .penci-menu-hbg-inner .menu li > ul.sub-menu a {
        display: block !important;
        min-height: 42px !important;
        padding: 10px 48px 10px 14px !important;
        color: var(--rjc-text) !important;
        -webkit-text-fill-color: var(--rjc-text) !important;
        background: transparent !important;
        font-weight: 700 !important;
        line-height: 1.35 !important;
        text-decoration: none !important;
        cursor: pointer !important;
    }
}


/* =========================================================
   RJC CORE 3.0 — SOUS-MENUS CLIQUABLES, VERSION UNIVERSELLE
========================================================= */

body .rjc-menu-root,
body .rjc-menu-overflow-fix {
    position: relative !important;
}

@media (min-width: 961px) {
    body .rjc-menu-overflow-fix {
        overflow: visible !important;
    }

    body .rjc-menu-root,
    body .rjc-menu-root ul,
    body .rjc-menu-root li {
        z-index: 100000 !important;
    }

    body .rjc-menu-root li.rjc-menu-parent {
        position: relative !important;
        overflow: visible !important;
    }

    body .rjc-menu-root
    li.rjc-menu-parent
    > a {
        position: relative !important;
        z-index: 2 !important;
        padding-right: 31px !important;
        cursor: pointer !important;
    }

    body .rjc-menu-root
    li.rjc-menu-parent
    > ul.sub-menu,
    body .rjc-menu-root
    li.rjc-menu-parent
    > ul.children {
        display: block !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
        position: absolute !important;
        top: 0 !important;
        left: 100% !important;
        min-width: 245px !important;
        width: max-content !important;
        max-width: 340px !important;
        margin: 0 !important;
        padding: 8px 0 !important;
        background: #fff !important;
        border: 1px solid #d8e2ed !important;
        border-top: 3px solid var(--rjc-blue) !important;
        border-radius: 0 0 8px 8px !important;
        box-shadow: 0 15px 34px rgba(1, 36, 105, .22) !important;
        transform: translateY(8px) !important;
        transition:
            opacity .15s ease,
            transform .15s ease,
            visibility .15s ease !important;
        z-index: 9999999 !important;
    }

    body .rjc-menu-root
    li.rjc-menu-top-parent
    > ul.sub-menu,
    body .rjc-menu-root
    li.rjc-menu-top-parent
    > ul.children {
        top: 100% !important;
        left: 0 !important;
    }

    body .rjc-menu-root
    li.rjc-menu-parent:hover
    > ul.sub-menu,
    body .rjc-menu-root
    li.rjc-menu-parent:hover
    > ul.children,
    body .rjc-menu-root
    li.rjc-menu-parent:focus-within
    > ul.sub-menu,
    body .rjc-menu-root
    li.rjc-menu-parent:focus-within
    > ul.children,
    body .rjc-menu-root
    li.rjc-menu-parent.rjc-menu-open
    > ul.sub-menu,
    body .rjc-menu-root
    li.rjc-menu-parent.rjc-menu-open
    > ul.children {
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        transform: translateY(0) !important;
    }

    body .rjc-menu-root
    li.rjc-menu-parent
    > ul.sub-menu::before,
    body .rjc-menu-root
    li.rjc-menu-parent
    > ul.children::before {
        content: "" !important;
        position: absolute !important;
        right: 0 !important;
        bottom: 100% !important;
        left: 0 !important;
        height: 13px !important;
    }

    body .rjc-menu-root
    li.rjc-menu-parent
    > ul.sub-menu
    a,
    body .rjc-menu-root
    li.rjc-menu-parent
    > ul.children
    a {
        display: block !important;
        width: 100% !important;
        min-height: 42px !important;
        padding: 11px 18px !important;
        color: var(--rjc-text) !important;
        -webkit-text-fill-color: var(--rjc-text) !important;
        background: #fff !important;
        font-size: 13px !important;
        font-weight: 750 !important;
        line-height: 1.35 !important;
        white-space: nowrap !important;
        text-decoration: none !important;
        cursor: pointer !important;
    }

    body .rjc-menu-root
    li.rjc-menu-parent
    > ul.sub-menu
    a:hover,
    body .rjc-menu-root
    li.rjc-menu-parent
    > ul.sub-menu
    a:focus,
    body .rjc-menu-root
    li.rjc-menu-parent
    > ul.children
    a:hover,
    body .rjc-menu-root
    li.rjc-menu-parent
    > ul.children
    a:focus {
        color: var(--rjc-blue) !important;
        -webkit-text-fill-color: var(--rjc-blue) !important;
        background: var(--rjc-blue-light) !important;
    }
}

/* Flèche cliquable indépendante du lien parent. */
body .rjc-universal-menu-toggle {
    appearance: none !important;
    -webkit-appearance: none !important;
    position: absolute !important;
    top: 50% !important;
    right: 2px !important;
    z-index: 8 !important;
    display: inline-flex !important;
    width: 29px !important;
    height: 34px !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
    color: var(--rjc-blue) !important;
    -webkit-text-fill-color: var(--rjc-blue) !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 5px !important;
    box-shadow: none !important;
    line-height: 1 !important;
    transform: translateY(-50%) !important;
    cursor: pointer !important;
}

body .rjc-universal-menu-toggle::before {
    content: "⌄" !important;
    display: block !important;
    color: var(--rjc-blue) !important;
    font-size: 20px !important;
    font-weight: 900 !important;
    transform: translateY(-2px) rotate(0deg) !important;
    transition: transform .15s ease !important;
}

body li.rjc-menu-open
> .rjc-universal-menu-toggle::before {
    transform: translateY(2px) rotate(180deg) !important;
}

body .rjc-universal-menu-toggle:hover,
body .rjc-universal-menu-toggle:focus {
    color: #fff !important;
    background: var(--rjc-blue) !important;
    outline: 0 !important;
}

body .rjc-universal-menu-toggle:hover::before,
body .rjc-universal-menu-toggle:focus::before {
    color: #fff !important;
}

/* Mobile et tablette. */
@media (max-width: 960px) {
    body .rjc-menu-root,
    body .rjc-menu-root ul,
    body .rjc-menu-root li {
        overflow: visible !important;
    }

    body .rjc-menu-root
    li.rjc-menu-parent {
        position: relative !important;
    }

    body .rjc-menu-root
    li.rjc-menu-parent
    > a {
        display: block !important;
        min-height: 46px !important;
        padding-right: 52px !important;
    }

    body .rjc-menu-root
    li.rjc-menu-parent
    > ul.sub-menu,
    body .rjc-menu-root
    li.rjc-menu-parent
    > ul.children {
        display: none !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        position: static !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 4px 0 9px 16px !important;
        background: rgba(1, 36, 105, .045) !important;
        border: 0 !important;
        box-shadow: none !important;
        transform: none !important;
    }

    body .rjc-menu-root
    li.rjc-menu-parent.rjc-menu-open
    > ul.sub-menu,
    body .rjc-menu-root
    li.rjc-menu-parent.rjc-menu-open
    > ul.children {
        display: block !important;
    }

    body .rjc-menu-root
    li.rjc-menu-parent
    > ul.sub-menu
    a,
    body .rjc-menu-root
    li.rjc-menu-parent
    > ul.children
    a {
        display: block !important;
        min-height: 43px !important;
        padding: 11px 46px 11px 14px !important;
        color: var(--rjc-text) !important;
        -webkit-text-fill-color: var(--rjc-text) !important;
        background: transparent !important;
        font-weight: 700 !important;
        line-height: 1.35 !important;
        text-decoration: none !important;
    }

    body .rjc-universal-menu-toggle {
        top: 23px !important;
        right: 5px !important;
        width: 41px !important;
        height: 41px !important;
    }
}
