/*
 * Clone visuel pixel-perfect du header/footer Elementor PROD (https://diraj.fr).
 * Valeurs issues de _elementor_data des posts 11 (header) et 128 (footer).
 * Préfixe .diraj-* pour isoler de govpress / SiteOrigin.
 */

/* ============================================================
 * HEADER
 * ============================================================ */

/* Neutralise les ancêtres potentiellement contraignants (max-width / overflow:hidden)
   pour que le break-out du header fonctionne, sans casser les pages. */
html,
body.diraj-body {
    overflow-x: visible !important;
}
body.diraj-body > #page,
body.diraj-body > #page.site,
body.diraj-body .hfeed.site {
    max-width: none !important;
    width: 100% !important;
    overflow: visible !important;
}

.diraj-header {
    position: sticky;
    top: 0;
    z-index: 100;
    /* Break-out : force le full-viewport-width même si un parent (Cluevo wrapper,
       SiteOrigin Panels, etc.) applique un max-width. */
    width: 100vw !important;
    max-width: none !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    background-color: var(--diraj-color-primary, #3C78C1);
    box-sizing: border-box;
}

.diraj-header__inner {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    max-width: 1600px;
    margin: 0 auto;
    padding: 0 3%;
    min-height: 88px;
    column-gap: 32px;
}

/* Variants desktop / mobile (mêmes breakpoints qu'Elementor PROD) */
.diraj-header__inner--mobile {
    display: none;
    min-height: 70px;
}

@media (max-width: 1024px) {
    .diraj-header__inner--desktop {
        display: none;
    }
    .diraj-header__inner--mobile {
        display: flex;
    }
}

/* --- Logo --- */
.diraj-header__logo {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    flex: 0 0 auto;
}
.diraj-header__logo img,
.diraj-header__logo .custom-logo {
    height: 62px;
    width: auto;
    max-width: 100%;
    object-fit: contain;
}
.diraj-header__inner--mobile .diraj-header__logo img,
.diraj-header__inner--mobile .diraj-header__logo .custom-logo {
    height: 48px;
}
.diraj-header__logo-fallback {
    font-family: var(--diraj-font-heading, "Barlow", sans-serif);
    font-weight: 600;
    color: #fff;
    font-size: 1.5rem;
}

/* --- Menu (clone du widget Elementor nav-menu) --- */
.diraj-header__nav {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
}

.diraj-menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    column-gap: 25px;
}
@media (min-width: 2500px) {
    .diraj-menu { column-gap: 42px; }
}
@media (max-width: 1370px) {
    .diraj-menu { column-gap: 15px; }
}

.diraj-menu > li {
    position: relative;
    padding: 5px 0;
}
.diraj-menu > li > a {
    display: inline-block;
    font-family: "Barlow", sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1;
    text-decoration: none;
    color: #FFFFFF;
    padding: 5px 0;
    border-bottom: 3px solid transparent;
    transition: border-color .15s ease;
}
@media (max-width: 1024px) { .diraj-menu > li > a { font-size: 15px; } }
@media (max-width: 767px)  { .diraj-menu > li > a { font-size: 14px; } }

.diraj-menu > li > a:hover,
.diraj-menu > li.current-menu-item > a,
.diraj-menu > li.current-menu-ancestor > a {
    color: #FFFFFF;
    border-bottom-color: #EE9208; /* pointer orange */
}

/* Sous-menus (dropdown bleu foncé) */
.diraj-menu li .sub-menu,
.diraj-menu li ul {
    list-style: none;
    margin: 0;
    padding: 0;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 220px;
    background-color: #2F68AD;
    border: 1px solid #FFFFFF;
    box-shadow: 0 6px 14px rgba(0, 0, 0, .12);
    display: none;
    z-index: 110;
}
.diraj-menu li:hover > .sub-menu,
.diraj-menu li:focus-within > .sub-menu {
    display: block;
}
.diraj-menu li .sub-menu li {
    border-bottom: 1px solid rgba(255, 255, 255, .45);
}
.diraj-menu li .sub-menu li:last-child {
    border-bottom: 0;
}
.diraj-menu li .sub-menu a {
    display: block;
    font-family: "Barlow", sans-serif;
    font-size: 16px;
    line-height: 1;
    color: #FFFFFF;
    text-decoration: none;
    padding: 13px 18px;
}
.diraj-menu li .sub-menu a:hover,
.diraj-menu li .sub-menu .current-menu-item > a {
    background-color: var(--diraj-color-primary, #3C78C1);
    color: #F7FAFD;
}

/* --- Zone CTA droite : lien texte + boutons, alignement harmonieux --- */
.diraj-header__cta {
    display: flex;
    align-items: center;
    column-gap: 16px;
    flex: 0 0 auto;
    height: 40px;
}

/* Lien texte discret (style "connexion espace privée") */
.diraj-header__textlink {
    display: inline-flex;
    align-items: center;
    height: 100%;
    color: #FFFFFF;
    font-family: "Barlow", sans-serif;
    font-size: 14px;
    font-weight: 400;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
    white-space: nowrap;
    padding-right: 16px;
    border-right: 1px solid rgba(255, 255, 255, .35);
}
.diraj-header__textlink:hover,
.diraj-header__textlink:focus {
    color: #EE9208;
    text-decoration-color: #EE9208;
}
@media (max-width: 1024px) {
    .diraj-header__textlink { display: none; }
}

.diraj-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    column-gap: 10px;
    height: 40px;
    min-width: 40px;
    background-color: #FFFFFF;
    color: var(--diraj-color-primary, #3C78C1) !important;
    font-family: "Mada", "Barlow", sans-serif;
    font-size: 15px;
    font-weight: 500;
    line-height: 1;
    padding: 0 18px;
    border-radius: 5px;
    border: 0;
    text-decoration: none;
    cursor: pointer;
    transition: background-color .15s ease, color .15s ease;
    white-space: nowrap;
    box-sizing: border-box;
}
.diraj-btn:hover,
.diraj-btn:focus {
    background-color: #EE9208;
    color: #FFFFFF !important;
}
.diraj-btn i {
    font-size: 1em;
    line-height: 1;
}
.diraj-btn--icon {
    padding: 0;
    width: 40px;
}
.diraj-btn--icon span { display: none; }
.diraj-btn--icon i { font-size: 1.1em; }

@media (max-width: 1024px) {
    .diraj-btn { font-size: 14px; padding: 0 14px; height: 38px; }
    .diraj-btn--icon { padding: 0; width: 38px; min-width: 38px; }
}

/* --- Toggle mobile --- */
.diraj-header__toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: transparent;
    color: #EE9208;
    border: 0;
    font-size: 22px;
    cursor: pointer;
}
.diraj-header__toggle:hover { color: #FFFFFF; }

.diraj-header__mobile-nav {
    width: 100%;
    background-color: var(--diraj-color-primary, #3C78C1);
    border-top: 1px solid rgba(255, 255, 255, .15);
}
.diraj-header__mobile-nav[hidden] { display: none !important; }
.diraj-header__mobile-nav .diraj-menu {
    flex-direction: column;
    align-items: stretch;
    column-gap: 0;
    row-gap: 0;
}
.diraj-header__mobile-nav .diraj-menu > li {
    padding: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .25);
}
.diraj-header__mobile-nav .diraj-menu > li > a {
    display: block;
    padding: 13px 21px;
    border-bottom: 0;
}
.diraj-header__mobile-nav .diraj-menu li .sub-menu {
    position: static;
    display: block;
    border: 0;
    box-shadow: none;
    background: rgba(0, 0, 0, .12);
}

/* ============================================================
 * HOME — HERO (inspiré https://diraj.fr — post 32, header.jpg + overlay)
 * ============================================================ */

.diraj-hero {
    position: relative;
    width: 100%;
    min-height: 424px;
    display: flex;
    align-items: center;
    background-image: var(--diraj-hero-bg);
    background-size: cover;
    background-position: center right;
    background-repeat: no-repeat;
    overflow: hidden;
    margin: -1px 0 0 0; /* coller au header */
}
.diraj-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(36deg,
        #F7FAFD 0%,
        #F7FAFD 56%,
        rgba(255, 255, 255, 0) 100%);
    pointer-events: none;
}
.diraj-hero__content {
    position: relative;
    z-index: 1;
    max-width: 1140px;
    margin: 0 auto;
    padding: 64px 5% 56px;
    width: 100%;
    color: var(--diraj-color-secondary, #474747);
}
.diraj-hero__title {
    margin: 0 0 22px;
    font-family: "Barlow", sans-serif;
    line-height: 1.1;
    color: var(--diraj-color-secondary, #474747);
}
.diraj-hero__brand {
    display: block;
    font-size: 56px;
    font-weight: 600;
    color: var(--diraj-color-primary, #3C78C1);
}
.diraj-hero__tagline {
    display: block;
    font-size: 30px;
    font-weight: 500;
    margin-top: 6px;
}
.diraj-hero__subtitle {
    max-width: 560px;
    font-family: "Roboto", sans-serif;
    font-size: 17px;
    line-height: 1.55;
    margin: 0 0 30px;
    color: var(--diraj-color-text, #474747);
}
.diraj-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    align-items: center;
}

.diraj-hero__cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    height: 48px;
    padding: 0 22px;
    border-radius: 8px;
    font-family: "Mada", "Barlow", sans-serif;
    font-size: 15px;
    font-weight: 500;
    line-height: 1;
    text-decoration: none !important;
    transition: background-color .15s ease, color .15s ease, box-shadow .15s ease;
    white-space: nowrap;
}
.diraj-hero__cta--primary {
    background-color: var(--diraj-color-primary, #3C78C1);
    color: #FFFFFF !important;
    box-shadow: 0 8px 20px rgba(60, 120, 193, .25);
}
.diraj-hero__cta--primary:hover,
.diraj-hero__cta--primary:focus {
    background-color: #EE9208;
    color: #FFFFFF !important;
    box-shadow: 0 10px 24px rgba(238, 146, 8, .28);
}
.diraj-hero__cta--ghost {
    background-color: transparent;
    color: var(--diraj-color-primary, #3C78C1) !important;
    border: 2px solid var(--diraj-color-primary, #3C78C1);
}
.diraj-hero__cta--ghost:hover,
.diraj-hero__cta--ghost:focus {
    background-color: var(--diraj-color-primary, #3C78C1);
    color: #FFFFFF !important;
}

@media (max-width: 768px) {
    .diraj-hero { min-height: 387px; background-position: top center; }
    .diraj-hero__overlay { background: linear-gradient(180deg, rgba(247, 250, 253, .92) 0%, #F7FAFD 100%); }
    .diraj-hero__content { padding: 44px 5% 40px; }
    .diraj-hero__brand { font-size: 44px; }
    .diraj-hero__tagline { font-size: 22px; }
    .diraj-hero__subtitle { font-size: 16px; }
    .diraj-hero__actions { flex-direction: column; align-items: stretch; }
    .diraj-hero__cta { justify-content: center; width: 100%; }
}

/* ============================================================
 * HOME — FEATURES (3 cards)
 * ============================================================ */

.diraj-features {
    background: #FFFFFF;
    padding: 56px 5%;
}
.diraj-features__grid {
    max-width: 1140px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}
.diraj-features__item {
    background: #F7FAFD;
    border: 1px solid #E6EEF7;
    border-radius: 12px;
    padding: 28px 24px;
    text-align: left;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.diraj-features__item:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 26px rgba(60, 120, 193, .12);
    border-color: rgba(60, 120, 193, .35);
}
.diraj-features__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: rgba(60, 120, 193, .12);
    color: var(--diraj-color-primary, #3C78C1);
    font-size: 20px;
    margin-bottom: 14px;
}
.diraj-features__item h3 {
    margin: 0 0 8px;
    font-family: "Barlow", sans-serif;
    font-weight: 600;
    font-size: 20px;
    color: var(--diraj-color-secondary, #474747);
}
.diraj-features__item p {
    margin: 0;
    font-family: "Roboto", sans-serif;
    font-size: 15px;
    line-height: 1.55;
    color: var(--diraj-color-text, #474747);
}

@media (max-width: 900px) {
    .diraj-features__grid { grid-template-columns: 1fr; }
    .diraj-features { padding: 40px 5%; }
}

/* ============================================================
 * FOOTER
 * ============================================================ */

.diraj-footer.site-footer {
    background-color: #F7FAFD;
    padding: 10px 0 0 0;
    color: var(--diraj-color-primary, #3C78C1);
}
.diraj-footer__inner {
    max-width: 1600px;
    margin: 0 auto;
    padding: 13px 5%;
    text-align: center;
}
.diraj-footer__line {
    margin: 0;
    font-family: var(--diraj-font-primary, "Roboto", sans-serif);
    font-weight: var(--diraj-fw-semibold, 600);
    color: var(--diraj-color-primary, #3C78C1);
    font-size: 15px;
    line-height: 1.6;
}
.diraj-footer__line a {
    color: #EF9E52;
    text-decoration: none;
}
.diraj-footer__line a:hover,
.diraj-footer__line a:focus {
    color: #EE9208;
    text-decoration: underline;
}

/* ============================================================
 * Reset des styles govpress que le clone Elementor surcharge
 * ============================================================ */

.diraj-header,
.diraj-header * {
    box-sizing: border-box;
}

.diraj-header a,
.diraj-footer a {
    /* éviter la couleur orange globale --diraj-color-link à l'intérieur du header/footer */
    color: inherit;
}
.diraj-footer__line a { color: var(--diraj-color-accent-light); }

/* ============================================================
 * TOAST NOTICE (DirAJ — composant réutilisable)
 * Affiché par js/diraj-notice.js. Position fixed en haut centre.
 * ============================================================ */

.diraj-notice {
    position: fixed;
    top: calc(var(--diraj-header-height) + 12px);
    left: 50%;
    transform: translateX(-50%) translateY(-16px);
    z-index: 200;
    display: flex;
    align-items: center;
    gap: var(--diraj-space-3);
    max-width: calc(100% - 32px);
    min-width: 320px;
    padding: 12px 16px;
    background: var(--diraj-color-white);
    border: 1px solid var(--diraj-color-border);
    border-left: 4px solid var(--diraj-color-primary);
    border-radius: var(--diraj-radius-md);
    box-shadow: var(--diraj-shadow-lg);
    color: var(--diraj-color-text);
    font-family: var(--diraj-font-text);
    font-size: var(--diraj-fs-small);
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s var(--diraj-ease), transform .25s var(--diraj-ease);
}
.diraj-notice.is-open {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}

.diraj-notice__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--diraj-color-primary);
    color: var(--diraj-color-white);
    font-family: var(--diraj-font-heading);
    font-weight: var(--diraj-fw-bold);
    line-height: 1;
}

.diraj-notice__message {
    flex: 1 1 auto;
    line-height: 1.4;
    color: var(--diraj-color-text);
}

.diraj-notice__cta {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    background-color: var(--diraj-color-primary);
    color: var(--diraj-color-white) !important;
    font-family: var(--diraj-font-button);
    font-weight: var(--diraj-fw-medium);
    font-size: var(--diraj-fs-xs);
    border-radius: var(--diraj-radius-md);
    text-decoration: none !important;
    transition: background-color var(--diraj-transition);
}
.diraj-notice__cta:hover,
.diraj-notice__cta:focus {
    background-color: var(--diraj-color-accent);
    color: var(--diraj-color-white) !important;
}

.diraj-notice__close {
    flex: 0 0 auto;
    background: transparent;
    border: 0;
    color: var(--diraj-color-text-muted);
    font-size: 22px;
    line-height: 1;
    padding: 0 4px;
    cursor: pointer;
    transition: color var(--diraj-transition);
}
.diraj-notice__close:hover,
.diraj-notice__close:focus {
    color: var(--diraj-color-secondary);
    outline: none;
}

@media (max-width: 540px) {
    .diraj-notice {
        flex-wrap: wrap;
        min-width: 0;
        width: calc(100% - 24px);
    }
    .diraj-notice__cta {
        order: 3;
        width: 100%;
        justify-content: center;
        margin-top: 4px;
    }
}

/* ============================================================
 * CONTENU DE PAGE — .col-width / #content (govpress wrapper)
 * Couleurs et typo alignées sur la PROD.
 * ============================================================ */

.col-width {
    max-width: var(--diraj-container-max);
    margin: 0 auto;
    padding: 0 var(--diraj-content-padding);
    box-sizing: border-box;
}

#content.site-content {
    padding: 32px 24px;
    color: var(--diraj-color-text);
    font-family: var(--diraj-font-text);
    font-size: var(--diraj-fs-body);
    line-height: var(--diraj-lh-normal);
}
@media (max-width: 540px) {
    #content.site-content {
        padding: 24px 16px;
    }
}

/* Neutralise le layout govpress en float (70% content + 30% sidebar) qui
   décentre le contenu sur les pages sans sidebar (téléchargements, Cluevo, etc.).
   Étendu aux <article> et .entry-content pour s'assurer qu'aucun wrapper
   intermédiaire ne réintroduit de float gauche. */
#content.site-content .content-area,
#content.site-content .site-main,
#content.site-content > article,
#content.site-content article > .entry-content,
#content.site-content .entry-content {
    float: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
}
#content.site-content .content-area::after,
#content.site-content .site-main::after,
#content.site-content article::after,
#content.site-content .entry-content::after {
    content: "" !important;
    display: table !important;
    clear: both !important;
}

#content.site-content article {
    margin-bottom: var(--diraj-space-8);
}

#content.site-content .entry-title {
    color: var(--diraj-color-secondary);
    font-family: var(--diraj-font-heading);
    font-weight: var(--diraj-fw-medium);
    font-size: var(--diraj-fs-h1);
    line-height: var(--diraj-lh-tight);
    margin: 0 0 var(--diraj-space-6);
}

#content.site-content .entry-content > * + * {
    margin-top: var(--diraj-space-5);
}

/* ============================================================
 * BOUTONS — pattern PROD (header CTA) appliqué globalement
 * ============================================================ */

/* Bouton de soumission du formulaire login WordPress (#wp-submit) — peut être
   rendu sur wp-login.php (login.css charge alors) OU sur une page custom comme
   /connexion (body.login absent → login.css inopérant). Cette règle indépendante
   de body.login garantit un rendu cohérent dans les deux cas. */
input#wp-submit,
input#wp-submit.button,
input#wp-submit.button.button-primary {
    display: block !important;
    box-sizing: border-box !important;
    width: 100% !important;
    min-height: 52px !important;
    padding: 14px 24px !important;
    margin-top: 8px !important;
    background: var(--diraj-color-primary) !important;
    background-color: var(--diraj-color-primary) !important;
    background-image: none !important;
    color: var(--diraj-color-white) !important;
    border: 1px solid var(--diraj-color-primary) !important;
    border-radius: 8px !important;
    font-family: var(--diraj-font-heading), "Barlow", sans-serif !important;
    font-weight: 600 !important;
    font-size: 16px !important;
    line-height: 1.2 !important;
    letter-spacing: .02em !important;
    text-shadow: none !important;
    text-align: center !important;
    text-decoration: none !important;
    box-shadow: var(--diraj-shadow-cta) !important;
    transition: background-color var(--diraj-transition) !important;
    cursor: pointer !important;
    height: auto !important;
}
input#wp-submit:hover,
input#wp-submit:focus,
input#wp-submit.button.button-primary:hover,
input#wp-submit.button.button-primary:focus {
    background: var(--diraj-color-primary-darker) !important;
    background-color: var(--diraj-color-primary-darker) !important;
    border-color: var(--diraj-color-primary-darker) !important;
    color: var(--diraj-color-white) !important;
}

/* Boutons "génériques" — on EXCLUT explicitement #wp-submit et .button-primary
   (WP login/admin) pour laisser login.css et admin.css gérer leur padding/look
   sans interférence. */
.wp-block-button__link,
.wp-block-button a,
button:not(.diraj-btn):not(.diraj-header__toggle):not(.elementor-button):not(.diraj-notice__close):not(.cluevo-btn):not(.button-primary):not(#wp-submit),
.button:not(#wp-submit):not(.button-primary),
a.button:not(.button-primary),
input[type="button"]:not(#wp-submit):not(.button-primary),
input[type="reset"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--diraj-space-2);
    min-height: 40px;
    padding: 10px 20px;
    background-color: var(--diraj-color-primary);
    color: var(--diraj-color-white);
    font-family: var(--diraj-font-button);
    font-weight: var(--diraj-fw-medium);
    font-size: var(--diraj-fs-button);
    line-height: 1;
    text-decoration: none;
    border: 0;
    border-radius: var(--diraj-radius-md);
    box-shadow: var(--diraj-shadow-cta);
    cursor: pointer;
    transition: background-color var(--diraj-transition), color var(--diraj-transition), box-shadow var(--diraj-transition);
}

.wp-block-button__link:hover,
.wp-block-button__link:focus,
.wp-block-button a:hover,
.wp-block-button a:focus,
button:not(.diraj-btn):not(.diraj-header__toggle):not(.elementor-button):not(.diraj-notice__close):not(.cluevo-btn):not(.button-primary):not(#wp-submit):hover,
button:not(.diraj-btn):not(.diraj-header__toggle):not(.elementor-button):not(.diraj-notice__close):not(.cluevo-btn):not(.button-primary):not(#wp-submit):focus,
.button:not(#wp-submit):not(.button-primary):hover,
.button:not(#wp-submit):not(.button-primary):focus,
a.button:not(.button-primary):hover,
a.button:not(.button-primary):focus,
input[type="button"]:not(#wp-submit):not(.button-primary):hover,
input[type="button"]:not(#wp-submit):not(.button-primary):focus,
input[type="reset"]:hover,
input[type="reset"]:focus {
    background-color: var(--diraj-color-accent);
    color: var(--diraj-color-white);
    text-decoration: none;
}

/* Variante secondaire (outlined) — utilisable via .is-style-outline (Gutenberg) */
.wp-block-button.is-style-outline .wp-block-button__link,
.button--ghost,
a.button--ghost {
    background-color: transparent;
    color: var(--diraj-color-primary);
    border: 2px solid var(--diraj-color-primary);
    box-shadow: none;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-block-button.is-style-outline .wp-block-button__link:focus,
.button--ghost:hover,
.button--ghost:focus,
a.button--ghost:hover,
a.button--ghost:focus {
    background-color: var(--diraj-color-primary);
    color: var(--diraj-color-white);
}

/* ============================================================
 * TABLEAUX (incl. shortcode diraj-releases : .diraj-releases-table)
 * Le plugin diraj-releases injecte un <style> inline JUSTE AVANT la table
 * (class-shortcode.php : render_styles()). Inline = même spécificité mais
 * appliqué APRÈS notre CSS dans la cascade → on doit utiliser !important
 * pour gagner sur ses borders #ddd et son thead #f5f5f5.
 * ============================================================ */

#content table,
.diraj-releases-table,
table.diraj-releases-table {
    width: 100% !important;
    border-collapse: collapse !important;
    background-color: var(--diraj-color-white) !important;
    border: 1px solid var(--diraj-color-border) !important;
    border-radius: var(--diraj-radius-md) !important;
    overflow: hidden !important;
    box-shadow: var(--diraj-shadow-sm);
    font-family: var(--diraj-font-text);
    font-size: var(--diraj-fs-small);
    margin: var(--diraj-space-4) 0 !important;
}

#content table thead,
.diraj-releases-table thead {
    background-color: var(--diraj-color-primary) !important;
    color: var(--diraj-color-white) !important;
}
#content table thead th,
.diraj-releases-table thead th {
    padding: 14px 16px !important;
    text-align: left !important;
    font-family: var(--diraj-font-primary);
    font-weight: var(--diraj-fw-semibold) !important;
    color: var(--diraj-color-white) !important;
    background-color: transparent !important;
    border: 0 !important;
    white-space: nowrap;
}

/* Lignes de séparation horizontales uniquement (pas de quadrillage) */
#content table tbody tr,
.diraj-releases-table tbody tr {
    border-bottom: 1px solid var(--diraj-color-border) !important;
    transition: background-color var(--diraj-transition);
}
#content table tbody tr:last-child,
.diraj-releases-table tbody tr:last-child {
    border-bottom: 0 !important;
}
#content table tbody tr:nth-child(even),
.diraj-releases-table tbody tr:nth-child(even) {
    background-color: var(--diraj-color-surface-alt) !important;
}
#content table tbody tr:hover,
.diraj-releases-table tbody tr:hover {
    background-color: var(--diraj-color-primary-soft) !important;
}

#content table tbody td,
.diraj-releases-table tbody td {
    padding: 12px 16px !important;
    color: var(--diraj-color-text) !important;
    vertical-align: middle !important;
    border: 0 !important; /* override le `border: 1px solid #ddd` inline du plugin */
    background-color: transparent !important;
}

#content table tbody td code,
.diraj-releases-table tbody td code {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: var(--diraj-fs-xs);
    color: var(--diraj-color-text-muted);
    background: var(--diraj-color-surface-muted);
    padding: 2px 6px;
    border-radius: var(--diraj-radius-sm);
}

#content table tbody td a,
.diraj-releases-table tbody td a {
    color: var(--diraj-color-link);
    font-weight: var(--diraj-fw-medium);
    text-decoration: none;
}
#content table tbody td a:hover,
.diraj-releases-table tbody td a:hover {
    color: var(--diraj-color-link-hover);
    text-decoration: underline;
}

/* Badges (.diraj-badge-generic / .diraj-badge-client) — couleurs DirAJ */
.diraj-releases-table .diraj-badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: var(--diraj-radius-pill);
    font-size: var(--diraj-fs-xs);
    font-weight: var(--diraj-fw-semibold);
    color: var(--diraj-color-white);
    line-height: 1;
}
.diraj-releases-table .diraj-badge-generic {
    background-color: var(--diraj-color-primary);
}
.diraj-releases-table .diraj-badge-client {
    background-color: var(--diraj-color-accent);
}

@media (max-width: 767px) {
    #content table thead,
    .diraj-releases-table thead {
        display: none !important;
    }
    #content table tbody tr,
    .diraj-releases-table tbody tr {
        display: block !important;
        margin-bottom: 12px;
        border: 1px solid var(--diraj-color-border) !important;
        border-radius: var(--diraj-radius-md);
        padding: 8px 12px;
        background-color: var(--diraj-color-white) !important;
    }
    #content table tbody td,
    .diraj-releases-table tbody td {
        display: block !important;
        padding: 6px 0 !important;
    }
    #content table tbody td::before,
    .diraj-releases-table tbody td::before {
        content: attr(data-label);
        display: inline-block;
        min-width: 110px;
        font-weight: var(--diraj-fw-semibold);
        color: var(--diraj-color-primary);
    }
}

/* ============================================================
 * FORMULAIRES Contact Form 7 (.wpcf7-*)
 * ============================================================ */

.wpcf7-form {
    max-width: 640px;
    margin: 0 auto;
    font-family: var(--diraj-font-text);
}

.wpcf7-form p {
    margin: 0 0 var(--diraj-space-4);
}

.wpcf7-form label {
    display: block;
    font-weight: var(--diraj-fw-semibold);
    color: var(--diraj-color-secondary);
    margin-bottom: var(--diraj-space-2);
}

.wpcf7-form .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-acceptance):not(.wpcf7-checkbox):not(.wpcf7-radio) {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1px solid var(--diraj-color-border);
    border-radius: var(--diraj-radius-md);
    background-color: var(--diraj-color-white);
    font-family: var(--diraj-font-text);
    font-size: var(--diraj-fs-body);
    transition: border-color var(--diraj-transition), box-shadow var(--diraj-transition);
}
.wpcf7-form .wpcf7-form-control:focus {
    outline: none;
    border-color: var(--diraj-color-primary);
    box-shadow: 0 0 0 3px var(--diraj-color-primary-soft);
}
.wpcf7-form textarea.wpcf7-form-control {
    min-height: 140px;
}

/* Bouton submit CF7 — règles en !important pour battre toute règle
   héritée de Contact Form 7 ou du style legacy. */
.wpcf7-form .wpcf7-submit,
input.wpcf7-submit,
input[type="submit"].wpcf7-submit,
input[type="submit"].has-spinner.wpcf7-submit {
    display: inline-flex !important;
    width: auto !important;
    min-width: 180px !important;
    min-height: 44px !important;
    box-sizing: border-box !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 12px 28px !important;
    margin-top: 8px !important;
    background: var(--diraj-color-primary) !important;
    background-color: var(--diraj-color-primary) !important;
    color: var(--diraj-color-white) !important;
    border: 0 !important;
    border-radius: var(--diraj-radius-md) !important;
    font-family: var(--diraj-font-button) !important;
    font-weight: var(--diraj-fw-medium) !important;
    font-size: var(--diraj-fs-button) !important;
    line-height: 1.2 !important;
    text-shadow: none !important;
    cursor: pointer !important;
    box-shadow: var(--diraj-shadow-cta) !important;
    transition: background-color var(--diraj-transition) !important;
}
.wpcf7-form .wpcf7-submit:hover,
.wpcf7-form .wpcf7-submit:focus,
input.wpcf7-submit:hover,
input.wpcf7-submit:focus {
    background-color: var(--diraj-color-accent) !important;
    color: var(--diraj-color-white) !important;
}

/* Messages */
.wpcf7-response-output {
    padding: 12px 16px !important;
    border-radius: var(--diraj-radius-md) !important;
    margin: var(--diraj-space-4) 0 !important;
    font-family: var(--diraj-font-text);
}
.wpcf7 form.sent .wpcf7-response-output {
    border-color: var(--diraj-color-success) !important;
    color: var(--diraj-color-success);
    background: rgba(46, 139, 87, .08);
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output {
    border-color: var(--diraj-color-warning) !important;
    color: var(--diraj-color-warning);
    background: rgba(217, 119, 6, .08);
}
.wpcf7 form.failed .wpcf7-response-output {
    border-color: var(--diraj-color-error) !important;
    color: var(--diraj-color-error);
    background: rgba(192, 57, 43, .08);
}
.wpcf7-not-valid-tip {
    color: var(--diraj-color-error);
    font-size: var(--diraj-fs-small);
    margin-top: 4px;
}

/* ============================================================
 * ALERTS / NOTIFICATIONS — version moderne (icône + bord + ombre)
 * Couvre : .diraj_error / .diraj_success (plugin diraj-site),
 *          .alert-* (user-meta / Bootstrap),
 *          .updated / .error / .notice (WP feedback).
 * ============================================================ */

@keyframes diraj-alert-slidein {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.diraj_error,
.diraj_success,
.alert,
.alert-success,
.alert-danger,
.alert-warning,
.alert-info,
.updated,
.notice-success,
.notice-error,
.notice-warning,
.notice-info {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: var(--diraj-space-3);
    padding: 14px 18px 14px 56px;
    background: var(--diraj-color-white);
    border: 1px solid var(--diraj-color-border);
    border-left: 4px solid var(--diraj-color-primary);
    border-radius: var(--diraj-radius-md);
    box-shadow: var(--diraj-shadow-md);
    margin: var(--diraj-space-4) 0;
    font-family: var(--diraj-font-text);
    font-size: var(--diraj-fs-body);
    color: var(--diraj-color-secondary);
    line-height: 1.5;
    animation: diraj-alert-slidein .25s var(--diraj-ease) both;
}

/* Icône (pseudo-element rond avec glyphe) — couleur héritée de la variante */
.diraj_error::before,
.diraj_success::before,
.alert::before,
.alert-success::before,
.alert-danger::before,
.alert-warning::before,
.alert-info::before,
.updated::before,
.notice-success::before,
.notice-error::before,
.notice-warning::before,
.notice-info::before {
    content: "";
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background-color: var(--diraj-color-primary);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 16px 16px;
    flex-shrink: 0;
}

/* Variantes */
.diraj_success,
.alert-success,
.updated,
.notice-success {
    border-left-color: var(--diraj-color-success);
    background: linear-gradient(0deg, rgba(46, 139, 87, .04), rgba(46, 139, 87, .04)), var(--diraj-color-white);
}
.diraj_success::before,
.alert-success::before,
.updated::before,
.notice-success::before {
    background-color: var(--diraj-color-success);
    /* SVG check (blanc) inline */
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
}

.diraj_error,
.alert-danger,
.notice-error {
    border-left-color: var(--diraj-color-error);
    background: linear-gradient(0deg, rgba(192, 57, 43, .04), rgba(192, 57, 43, .04)), var(--diraj-color-white);
}
.diraj_error::before,
.alert-danger::before,
.notice-error::before {
    background-color: var(--diraj-color-error);
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E");
}

.alert-warning,
.notice-warning {
    border-left-color: var(--diraj-color-warning);
    background: linear-gradient(0deg, rgba(217, 119, 6, .04), rgba(217, 119, 6, .04)), var(--diraj-color-white);
}
.alert-warning::before,
.notice-warning::before {
    background-color: var(--diraj-color-warning);
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' y1='9' x2='12' y2='13'/%3E%3Cline x1='12' y1='17' x2='12.01' y2='17'/%3E%3C/svg%3E");
}

.alert-info,
.notice-info {
    border-left-color: var(--diraj-color-primary);
    background: linear-gradient(0deg, rgba(60, 120, 193, .04), rgba(60, 120, 193, .04)), var(--diraj-color-white);
}
.alert-info::before,
.notice-info::before {
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' y1='16' x2='12' y2='12'/%3E%3Cline x1='12' y1='8' x2='12.01' y2='8'/%3E%3C/svg%3E");
}

/* Le plugin user-meta ajoute parfois un <span class="close"> à droite : on l'aligne. */
.alert .close,
.alert-success .close,
.alert-danger .close,
.alert-warning .close,
.alert-info .close {
    margin-left: auto;
    background: transparent;
    border: 0;
    color: var(--diraj-color-text-muted);
    cursor: pointer;
    font-size: 20px;
    line-height: 1;
    padding: 0 4px;
}
.alert .close:hover {
    color: var(--diraj-color-secondary);
}

/* ============================================================
 * CARDS / PANELS (SiteOrigin Panels + générique)
 * ============================================================ */

.panel-widget-style,
.diraj-card {
    background-color: var(--diraj-color-white);
    border: 1px solid var(--diraj-color-border);
    border-radius: var(--diraj-radius-lg);
    padding: var(--diraj-space-6);
    box-shadow: var(--diraj-shadow-sm);
    transition: box-shadow var(--diraj-transition), transform var(--diraj-transition);
}
.diraj-card:hover {
    box-shadow: var(--diraj-shadow-md);
    transform: translateY(-2px);
}

/* ============================================================
 * EMBED ANY DOCUMENT (PDF reader — .awsm-embed*)
 * ============================================================ */

.awsm-embed,
.awsm-embed-wrap {
    border-radius: var(--diraj-radius-md);
    overflow: hidden;
    border: 1px solid var(--diraj-color-border);
    box-shadow: var(--diraj-shadow-sm);
}
.awsm-embed-toolbar {
    background-color: var(--diraj-color-primary);
    color: var(--diraj-color-white);
}
.awsm-embed-toolbar a,
.awsm-embed-toolbar button {
    color: var(--diraj-color-white);
}

/* ============================================================
 * UK COOKIE CONSENT (bandeau cookies)
 * ============================================================ */

#catapult-cookie-bar,
.ctcc-cookie-bar,
.cookie-bar {
    background-color: var(--diraj-color-secondary) !important;
    color: var(--diraj-color-white) !important;
    font-family: var(--diraj-font-text);
    font-size: var(--diraj-fs-small);
}
#catapult-cookie-bar a,
.ctcc-cookie-bar a,
.cookie-bar a {
    color: var(--diraj-color-accent-light) !important;
    text-decoration: underline;
}
#catapult-cookie-bar .ctcc-button,
.ctcc-cookie-bar .ctcc-button,
.cookie-bar a.ctcc-button {
    background-color: var(--diraj-color-primary) !important;
    color: var(--diraj-color-white) !important;
    border-radius: var(--diraj-radius-md) !important;
    padding: 6px 14px !important;
}
#catapult-cookie-bar .ctcc-button:hover,
.ctcc-cookie-bar .ctcc-button:hover {
    background-color: var(--diraj-color-accent) !important;
}

/* ============================================================
 * CLUEVO LMS — clone visuel (tuiles modules, progression, badges)
 * ============================================================ */

/* Conteneur global */
.cluevo,
.cluevo-content-area-container {
    font-family: var(--diraj-font-text);
    color: var(--diraj-color-text);
}

/* Tuiles de modules */
.cluevo-content-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: var(--diraj-space-5);
    list-style: none;
    padding: 0;
    margin: 0 0 var(--diraj-space-6);
}
.cluevo-content-list-style-row {
    grid-template-columns: 1fr;
}

.cluevo-content-list .cluevo-content,
.cluevo-content {
    background-color: var(--diraj-color-white);
    border: 1px solid var(--diraj-color-border);
    border-radius: var(--diraj-radius-lg);
    overflow: hidden;
    box-shadow: var(--diraj-shadow-sm);
    transition: box-shadow var(--diraj-transition), transform var(--diraj-transition), border-color var(--diraj-transition);
}
.cluevo-content-list .cluevo-content:hover {
    box-shadow: var(--diraj-shadow-lg);
    transform: translateY(-2px);
    border-color: rgba(60, 120, 193, .35);
}

.cluevo-module-tile,
.cluevo-module-tile-image {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background-color: var(--diraj-color-surface-alt);
}
.cluevo-module-tile-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, .55) 100%);
    padding: var(--diraj-space-3) var(--diraj-space-4);
}
.cluevo-module-tile-overlay h2 {
    color: var(--diraj-color-white) !important;
    font-family: var(--diraj-font-heading);
    font-weight: var(--diraj-fw-semibold);
    margin: 0;
    line-height: var(--diraj-lh-tight);
}

/* Titre + métadonnées sous tuile */
.cluevo-content-info,
.cluevo-content-meta {
    padding: var(--diraj-space-4);
}
.cluevo-content-info h3,
.cluevo-content-title {
    font-family: var(--diraj-font-primary);
    font-weight: var(--diraj-fw-semibold);
    color: var(--diraj-color-secondary);
    font-size: var(--diraj-fs-h5);
    margin: 0 0 var(--diraj-space-2);
}

/* Progression */
.cluevo-progress,
.cluevo-progress-bar {
    height: 6px;
    background-color: var(--diraj-color-surface-muted);
    border-radius: var(--diraj-radius-pill);
    overflow: hidden;
}
.cluevo-progress-fill,
.cluevo-progress-bar > .cluevo-progress-value {
    height: 100%;
    background-color: var(--diraj-color-primary);
    transition: width .4s var(--diraj-ease);
}

/* Badges (statut, compétence) */
.cluevo-badge,
.cluevo-competence-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: var(--diraj-radius-pill);
    background-color: var(--diraj-color-primary-soft);
    color: var(--diraj-color-primary);
    font-size: var(--diraj-fs-xs);
    font-weight: var(--diraj-fw-semibold);
    line-height: 1;
}
.cluevo-badge--success,
.cluevo-competence-badge--validated {
    background-color: rgba(46, 139, 87, .12);
    color: var(--diraj-color-success);
}

/* Boutons Cluevo */
.cluevo-btn,
a.cluevo-btn,
button.cluevo-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--diraj-space-2);
    padding: 10px 18px;
    background-color: var(--diraj-color-primary);
    color: var(--diraj-color-white);
    font-family: var(--diraj-font-button);
    font-weight: var(--diraj-fw-medium);
    font-size: var(--diraj-fs-button);
    border-radius: var(--diraj-radius-md);
    text-decoration: none;
    transition: background-color var(--diraj-transition);
    cursor: pointer;
    border: 0;
}
.cluevo-btn:hover,
.cluevo-btn:focus {
    background-color: var(--diraj-color-accent);
    color: var(--diraj-color-white);
}

/* iframe contenu module */
.cluevo iframe {
    width: 100%;
    border: 1px solid var(--diraj-color-border);
    border-radius: var(--diraj-radius-md);
    background-color: var(--diraj-color-white);
}

/* ============================================================
 * USER-META (formulaires profil — utilise classes Bootstrap-like
 * .form-group / .form-control / .control-label / .col-sm-*)
 *
 * Bootstrap n'est pas chargé côté thème, donc le grid col-sm-* ne marche pas.
 * On reconstruit un layout label + input simple avec un cap de largeur pour
 * éviter que les inputs prennent toute la largeur du .col-width.
 * ============================================================ */

.usermeta-form,
form.usermeta-form,
[id^="um_form_"] {
    max-width: 640px;
    margin: 0 auto;
    font-family: var(--diraj-font-text);
}

.usermeta-form .form-group,
[id^="um_field_"].form-group,
.usermeta-form > .row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--diraj-space-3) var(--diraj-space-4);
    margin: 0 0 var(--diraj-space-4) 0;
}

.usermeta-form .control-label,
.usermeta-form label,
[id^="um_field_"] label {
    flex: 0 0 160px;
    max-width: 160px;
    margin: 0;
    padding: 0;
    font-weight: var(--diraj-fw-semibold);
    color: var(--diraj-color-secondary);
    font-size: var(--diraj-fs-small);
}

.usermeta-form .form-control,
[id^="um_field_"] .form-control,
.usermeta-form input[type="text"],
.usermeta-form input[type="email"],
.usermeta-form input[type="password"],
.usermeta-form input[type="tel"],
.usermeta-form input[type="url"],
.usermeta-form input[type="number"],
.usermeta-form select,
.usermeta-form textarea {
    flex: 1 1 220px;
    min-width: 0;
    width: auto;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1px solid var(--diraj-color-border);
    border-radius: var(--diraj-radius-md);
    background-color: var(--diraj-color-white);
    font-family: var(--diraj-font-text);
    font-size: var(--diraj-fs-body);
    color: var(--diraj-color-text);
    transition: border-color var(--diraj-transition), box-shadow var(--diraj-transition);
}
.usermeta-form .form-control:focus,
[id^="um_field_"] .form-control:focus,
.usermeta-form input:focus,
.usermeta-form select:focus,
.usermeta-form textarea:focus {
    outline: none;
    border-color: var(--diraj-color-primary);
    box-shadow: 0 0 0 3px var(--diraj-color-primary-soft);
}

/* Neutralise les classes Bootstrap grid utilisées par user-meta — Bootstrap
   n'est pas chargé donc col-sm-* foirait le rendu sinon. */
.usermeta-form [class^="col-sm-"],
.usermeta-form [class*=" col-sm-"],
.usermeta-form [class^="col-md-"],
.usermeta-form [class*=" col-md-"] {
    width: auto;
    max-width: none;
    padding-left: 0;
    padding-right: 0;
    float: none;
}

/* Bouton submit user-meta — règles en !important pour battre toute règle
   héritée (notamment celles du style.css legacy ou du CSS plugin). */
.usermeta-form .btn,
.usermeta-form .um-submit-button,
.usermeta-form input[type="submit"],
.usermeta-form button[type="submit"],
.usermeta-form button.btn,
[id^="um_form_"] input[type="submit"],
[id^="um_form_"] button[type="submit"] {
    display: inline-flex !important;
    width: auto !important;
    min-width: 180px !important;
    min-height: 44px !important;
    box-sizing: border-box !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 12px 28px !important;
    margin: 16px 0 0 176px !important; /* aligné sur colonne input (label 160 + gap 16) */
    background: var(--diraj-color-primary) !important;
    background-color: var(--diraj-color-primary) !important;
    color: var(--diraj-color-white) !important;
    border: 0 !important;
    border-radius: var(--diraj-radius-md) !important;
    font-family: var(--diraj-font-button) !important;
    font-weight: var(--diraj-fw-medium) !important;
    font-size: var(--diraj-fs-button) !important;
    line-height: 1.2 !important;
    text-shadow: none !important;
    text-decoration: none !important;
    cursor: pointer !important;
    box-shadow: var(--diraj-shadow-cta) !important;
    transition: background-color var(--diraj-transition) !important;
}
.usermeta-form .btn:hover,
.usermeta-form input[type="submit"]:hover,
.usermeta-form button[type="submit"]:hover,
[id^="um_form_"] input[type="submit"]:hover,
[id^="um_form_"] button[type="submit"]:hover {
    background-color: var(--diraj-color-accent) !important;
    color: var(--diraj-color-white) !important;
}

/* Mobile : layout pile (label au-dessus de l'input) */
@media (max-width: 600px) {
    .usermeta-form .form-group,
    [id^="um_field_"].form-group,
    .usermeta-form > .row {
        flex-direction: column;
        align-items: stretch;
        gap: 6px;
    }
    .usermeta-form .control-label,
    .usermeta-form label,
    [id^="um_field_"] label {
        flex: 1 1 auto;
        max-width: 100%;
    }
    .usermeta-form .form-control,
    [id^="um_field_"] .form-control,
    .usermeta-form input[type="text"],
    .usermeta-form input[type="email"],
    .usermeta-form input[type="password"],
    .usermeta-form input[type="tel"],
    .usermeta-form input[type="url"],
    .usermeta-form input[type="number"],
    .usermeta-form select,
    .usermeta-form textarea {
        flex: 1 1 auto;
    }
    .usermeta-form .btn,
    .usermeta-form input[type="submit"],
    .usermeta-form button[type="submit"] {
        margin-left: 0;
    }
}

/* ============================================================
 * CLUEVO LMS — PAGE MODULE (from scratch, palette DirAJ)
 *
 * Décisions :
 *   - Breadcrumbs Cluevo (.cluevo-back-link-container) CACHÉS : rendu instable
 *     selon la hiérarchie modules (séparateurs orphelins "› ›", crumbs vides).
 *     La navigation hiérarchique passe par le menu principal + boutons prev/next.
 *   - Carte blanche centrée, padding généreux.
 *   - Iframe SCORM en bloc encadré.
 *   - Nav prev/next : boutons outlined DirAJ avec flèches CSS.
 * ============================================================ */

/* Wrapper page module — pas de max-width (héritage de .col-width parent) */
.cluevo-content-area-container {
    display: block;
    width: 100% !important;
    margin: 0 !important;
    padding: var(--diraj-space-6) 0;
}

.cluevo.content-area {
    background: var(--diraj-color-white);
    border: 1px solid var(--diraj-color-border);
    border-radius: var(--diraj-radius-lg);
    box-shadow: var(--diraj-shadow-md);
    padding: var(--diraj-space-8) var(--diraj-space-8) var(--diraj-space-6);
    width: 100%;
    box-sizing: border-box;
}

/* Header */
.cluevo .entry-header {
    margin: 0 0 var(--diraj-space-6);
    padding: 0 0 var(--diraj-space-4);
    border-bottom: 1px solid var(--diraj-color-border);
}
.cluevo .entry-title {
    margin: 0;
    font-family: var(--diraj-font-heading);
    font-weight: 500;
    font-size: 28px;
    line-height: 1.2;
    color: var(--diraj-color-secondary);
}

/* Breadcrumbs Cluevo : masqués (rendu non fiable) */
.cluevo-back-link-container {
    display: none !important;
}

/* Intro / post_content du module — bloc d'accroche gris clair */
.cluevo-item-metadata {
    margin: 0 0 var(--diraj-space-6);
    padding: var(--diraj-space-5) var(--diraj-space-6);
    background: var(--diraj-color-surface-alt);
    border-radius: var(--diraj-radius-md);
    color: var(--diraj-color-text);
    line-height: 1.7;
    font-size: var(--diraj-fs-body);
}
.cluevo-item-metadata > :first-child { margin-top: 0; }
.cluevo-item-metadata > :last-child  { margin-bottom: 0; }

/* Iframe SCORM container */
.cluevo-module-container {
    width: 100%;
    background: var(--diraj-color-white);
    border: 1px solid var(--diraj-color-border);
    border-radius: var(--diraj-radius-md);
    overflow: hidden;
    margin: 0 0 var(--diraj-space-5);
}
.cluevo-module-iframe,
#cluevo-module-iframe {
    width: 100% !important;
    min-height: 640px;
    height: calc(100vh - 280px);
    border: 0 !important;
    display: block;
    background: var(--diraj-color-white);
}

/* Navigation Précédent / Suivant */
.cluevo-module-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--diraj-space-3);
    padding: var(--diraj-space-5) 0 0;
    border-top: 1px solid var(--diraj-color-border);
}
.cluevo-module-link,
.cluevo-module-link-prev,
.cluevo-module-link-next {
    display: inline-flex;
    align-items: center;
    gap: var(--diraj-space-2);
    padding: 12px 20px;
    background: var(--diraj-color-white);
    color: var(--diraj-color-primary) !important;
    border: 1.5px solid var(--diraj-color-primary);
    border-radius: var(--diraj-radius-md);
    text-decoration: none !important;
    box-shadow: none !important;
    font-family: var(--diraj-font-button);
    font-weight: 500;
    font-size: var(--diraj-fs-button);
    line-height: 1.2;
    max-width: 48%;
    transition: background var(--diraj-transition), color var(--diraj-transition);
}
.cluevo-module-link:hover,
.cluevo-module-link:focus {
    background: var(--diraj-color-primary);
    color: var(--diraj-color-white) !important;
    text-decoration: none !important;
}
.cluevo-module-link-prev { margin-right: auto; }
.cluevo-module-link-next { margin-left: auto; }
.cluevo-module-link-prev::before { content: "‹  "; font-size: 1.2em; }
.cluevo-module-link-next::after  { content: "  ›"; font-size: 1.2em; }

/* Barre de progression : DirAJ */
.cluevo-progress-container {
    height: 6px !important;
    background: var(--diraj-color-surface-muted) !important;
    border-radius: 999px !important;
    overflow: hidden;
    margin: var(--diraj-space-3) 0 !important;
}
.cluevo-progress {
    display: block;
    height: 100% !important;
    background: var(--diraj-color-primary) !important;
    border-radius: 999px !important;
    transition: width .4s var(--diraj-ease);
}

/* Notices : DirAJ */
.cluevo-notice {
    position: relative;
    padding: 12px 40px 12px 16px;
    margin: var(--diraj-space-3) 0;
    background: var(--diraj-color-white);
    border: 1px solid var(--diraj-color-border);
    border-left: 4px solid var(--diraj-color-primary);
    border-radius: var(--diraj-radius-md);
    box-shadow: var(--diraj-shadow-sm);
    color: var(--diraj-color-text);
}
.cluevo-notice-error   { border-left-color: var(--diraj-color-error)   !important; }
.cluevo-notice-info    { border-left-color: var(--diraj-color-primary) !important; }
.cluevo-notice-success { border-left-color: var(--diraj-color-success) !important; }
.cluevo-notice-warning { border-left-color: var(--diraj-color-warning) !important; }
.cluevo-notice-title {
    font-family: var(--diraj-font-primary);
    font-weight: 600;
    color: var(--diraj-color-secondary) !important;
    margin: 0 0 4px;
}
.cluevo-notice-dismiss {
    position: absolute;
    top: 8px;
    right: 10px;
    color: var(--diraj-color-text-muted);
    cursor: pointer;
    background: transparent;
    border: 0;
}
.cluevo-notice-dismiss:hover {
    color: var(--diraj-color-primary);
}

/* Erreurs */
.cluevo-error {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: var(--diraj-space-8);
    color: var(--diraj-color-error) !important;
    font-weight: 600;
    text-align: center;
}
.cluevo-error-message,
.cluevo-error-msg {
    color: var(--diraj-color-text);
    font-weight: 400;
}

/* Spinner — couleurs DirAJ */
.cluevo-spinner-segment-pink   { background: var(--diraj-color-primary) !important; }
.cluevo-spinner-segment-purple { background: var(--diraj-color-primary-darker) !important; }
.cluevo-spinner-segment-teal   { background: var(--diraj-color-accent) !important; }

/* Close button (lightbox) */
.cluevo-close-button {
    background: var(--diraj-color-white) !important;
    color: var(--diraj-color-secondary) !important;
    border: 1px solid var(--diraj-color-border) !important;
    border-radius: 50%;
}
.cluevo-close-button:hover {
    background: var(--diraj-color-primary) !important;
    color: var(--diraj-color-white) !important;
}

/* Responsive page module */
@media (max-width: 768px) {
    .cluevo.content-area {
        padding: var(--diraj-space-5) var(--diraj-space-4);
    }
    .cluevo .entry-title { font-size: 22px; }
    .cluevo-item-metadata {
        padding: var(--diraj-space-4);
    }
    .cluevo-module-iframe,
    #cluevo-module-iframe {
        min-height: 480px;
        height: calc(100vh - 200px);
    }
    .cluevo-module-link,
    .cluevo-module-link-prev,
    .cluevo-module-link-next {
        padding: 10px 14px;
        font-size: var(--diraj-fs-small);
    }
}
