/**
 * DJ Header — recherche permanente + panneaux mégamenu
 * ------------------------------------------------------------
 * Style des shortcodes [dj_header_search] et [dj_header_nav] (includes/dj-header.php).
 * Charte : coins carrés (border-radius 0 partout, pastilles 50% uniquement),
 * tokens --dj-* définis dans style.css, Playfair Display (titres) / Lora (corps).
 * Breakpoint unique : 1024px (≤1024 = mobile : feuille plein écran + accordéons).
 * La visibilité des panneaux/feuille est pilotée par JS (classes .dj-ouvert /
 * body.dj-nav-ouverte) — aucun :hover porteur d'état, le survol est géré en JS
 * (hover-intent) pour rester maîtrisable au clavier et au tactile.
 *
 * @version 1.0.13 — cache-buster : DJ_HEADER_VERSION (includes/dj-header.php)
 */

/* ==========================================================================
   RESETS LOCAUX (neutralise la typo des wrappers Divi .et_pb_text_inner)
   ========================================================================== */
.dj-search, .dj-search *,
.dj-nav, .dj-nav * {
    box-sizing: border-box;
}
.dj-nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.dj-nav li {
    padding-left: 0;
    position: static;
}
/* Le thème décore les puces d'un losange ◇ global (li::before) : hors-jeu dans le header */
.dj-nav li::before,
.dj-nav li::after {
    content: none !important;
    display: none !important;
}
.dj-nav a {
    text-decoration: none;
}

/* ==========================================================================
 INTÉGRATION DANS LA RANGÉE DIVI
   Desktop ≥1025px : [logo] [champ────────] [clé][❤][panier]
   Mobile ≤1024px (plus bas) : logo + icônes en 1re ligne, champ dessous.
   Fallback sans :has() : min-width sur .dj-search, layout Divi d'origine.
   ========================================================================== */

/* --------------------------------------------------------------------------
 LES DEUX PREMIÈRES RANGÉES REPRENNENT TOUTE LA LARGEUR
   --------------------------------------------------------------------------
   🔴 Sur les FICHES PRODUIT, le header était « tassé » : mesuré à viewport 1150,
   ses rangées tombaient à 920 px (le width:80% par défaut de Divi) alors qu'elles
   font 1150 sur l'accueil. À 920, chaque colonne de la barre du haut ne fait plus
   que ~306 px et « L'excellence de la Domination Féminine indépendante depuis
   2017 » se casse en TROIS lignes : le header passe de 186 à 210 px.

   Pourquoi la largeur de Divi ne s'appliquait pas : le réglage « largeur 100 % »
   posé dans le Theme Builder génère un sélecteur groupé dont les variantes
   exigent soit « body #page-container .et-db #et-boc … » — or `.et-db` est posé
   sur le <body>, PAS dans #page-container, donc ça ne matche jamais — soit
   « body.et_pb_pagebuilder_layout », absent sur une fiche produit. Il ne restait
   que le sélecteur NU « .et_pb_row_0_tb_header » en (0,1,0), qui perd contre le
   width:80% par défaut dès que l'écran descend sous ~1400 px.

 ⛔ NE PAS restreindre à la rangée 0 : essayé en test, refusé — la
   barre du haut passe alors en pleine largeur pendant que la rangée du logo reste
   à 80 %, et le « contact » ne s'aligne plus avec le logo. Les DEUX, ou rien.

   ℹ️ Le fin contour des boutons Compte et Wishlist redevient visible : c'est le
   rendu NORMAL (les deux modules portent `et_pb_with_border` avec le token
   --dj-bordure), vérifié sur l'accueil. À 920 px ils étaient comprimés et le trait
   ne se voyait plus.

   (0,3,2) : passe devant tout ce que Divi pose, sans un seul !important.
   -------------------------------------------------------------------------- */
html body .et_pb_row_0_tb_header.et_pb_row,
html body .et_pb_row_1_tb_header.et_pb_row {
    width: 100%;
    max-width: 100%;
}
@media (min-width: 1025px) {
    .molti-header-9-10 .et_pb_row:has(.dj-search) {
        display: flex;
        align-items: center;
    }
    .molti-header-9-10 .et_pb_row:has(.dj-search) > .et_pb_column:first-child {
        flex: 0 0 auto;
        width: auto;
    }
    .molti-header-9-10 .et_pb_row:has(.dj-search) > .et_pb_column:last-child {
        flex: 1 1 auto;
        width: auto;
        gap: 14px;
        align-items: center;
    }
    .molti-header-9-10 .et_pb_column .et_pb_module:has(.dj-search) {
        flex: 1 1 auto;
        /* le champ passe en tête de colonne : [champ────][clé][❤][panier] */
        order: -1;
    }

 /* champ centré sur la PAGE, plus sur l'espace restant : la zone
       icônes (236px) est plus large que la zone logo (170px), le champ était
 décalé de 33px à gauche du centre. Le module passe en absolu
       ancré sur la RANGÉE — les colonnes Divi repassent en static, sinon la
       colonne (position:relative) sert de référence et fausse le centrage. */
    .molti-header-9-10 .et_pb_row:has(.dj-search) {
        position: relative;
 /* la fine ligne de la maquette au-dessus des liens du menu
           (cette rangée fait 100% de large, la rangée nav non) */
        border-bottom: 1px solid var(--dj-fond-secondaire);
    }
    .molti-header-9-10 .et_pb_row:has(.dj-search) > .et_pb_column {
        position: static !important;
    }
    .molti-header-9-10 .et_pb_module:has(.dj-search) {
        position: absolute !important;
        left: 50% !important;
        top: 50% !important;
        transform: translate(-50%, -50%) !important;
        /* 640px maquette, réduit sur desktop étroit pour ne jamais toucher
 ni le logo ni les icônes */
        width: min(640px, calc(100vw - 700px)) !important;
        margin: 0 !important;
    }
    .molti-header-9-10 .et_pb_module:has(.dj-search) .dj-search {
        width: 100%;
    }
}
/* Compte : boîte FIGÉE à 40px. L'ancien effet de survol du thème (l'emoji 🗝️
   glisse à left:25% pour laisser apparaître le titre) élargissait la boîte et
   décalait le champ. Et le blurb traînait un margin-left:-50px (collage de
   l'ancien layout) qui posait la clé sur le logo. */
.molti-header-9-10 .et_pb_row:has(.dj-search) .account-link {
    margin-left: 0 !important;
    width: 40px;
    flex: 0 0 40px;
    overflow: hidden;
}
.molti-header-9-10 .et_pb_row:has(.dj-search) .account-link:hover::after {
    left: 50% !important; /* l'emoji ne glisse plus */
}
.dj-search {
    min-width: 260px;
}

/* ==========================================================================
   CHAMP DE RECHERCHE [dj_header_search]
   ========================================================================== */
.dj-search {
    position: relative;
    width: 100%;
    max-width: 640px;
    margin: 0 auto;
}
.dj-search input[type="search"] {
    width: 100%;
    padding: 12px 52px 12px 22px;
    border: 1px solid var(--dj-bordure);
    border-radius: 0; /* charte DJ : angles droits */
    background: var(--dj-fond-clair);
    font-family: 'Lora', Georgia, serif;
    font-size: 15px;
    color: var(--dj-texte-fonce);
    outline: none;
    transition: var(--dj-transition);
    -webkit-appearance: none;
    appearance: none;
}
.dj-search input[type="search"]::placeholder {
    color: var(--dj-texte-clair);
    font-style: italic;
}
.dj-search input[type="search"]:focus {
    border-color: var(--dj-rose-principal);
    background: #fff;
    box-shadow: 0 0 0 4px var(--dj-gradient-rose-alpha);
}
.dj-search button[type="submit"] {
    position: absolute;
    right: 5px;
    top: 50%;
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
    border: none;
    border-radius: 0;
    background: var(--dj-rose-principal);
    color: #fff;
    font-size: 16px;
    line-height: 1;
    cursor: pointer;
    transition: var(--dj-transition);
}
.dj-search button[type="submit"]:hover {
    background: var(--dj-rose-vif);
}
/* Masque la croix native des champs search (WebKit) pour rester sobre */
.dj-search input[type="search"]::-webkit-search-cancel-button {
    -webkit-appearance: none;
}

/* ==========================================================================
   NAV RUBRIQUES [dj_header_nav] — desktop
   ========================================================================== */
.dj-nav-rubriques {
    display: flex;
    justify-content: center;
    gap: 6px;
    flex-wrap: nowrap;
}
.dj-rubrique > a {
    display: block;
    padding: 13px 16px 15px;
    font-family: 'Lora', Georgia, serif;
    font-size: 15.5px;
    letter-spacing: .4px;
    color: var(--dj-texte-fonce);
    white-space: nowrap;
    position: relative;
}
/* Soulignement animé, comme les liens actifs du site */
.dj-rubrique > a::after {
    content: '';
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: 9px;
    height: 2px;
    background: var(--dj-rose-principal);
    transform: scaleX(0);
    transition: transform .25s ease;
}
.dj-rubrique > a:hover::after,
.dj-rubrique.dj-ouvert > a::after {
    transform: scaleX(1);
}
.dj-chevron {
    font-size: 9px;
    color: var(--dj-texte-clair);
    margin-left: 5px;
    display: inline-block;
    transition: transform .25s ease;
}
.dj-rubrique.dj-ouvert .dj-chevron {
    transform: rotate(180deg);
}

/* ==========================================================================
   PANNEAUX pleine largeur — desktop
   Le JS pose --dj-panneau-top (bas du header sticky) sur le <nav>.
   ========================================================================== */
.dj-panneau {
    position: fixed;
    left: 0;
    right: 0;
    top: var(--dj-panneau-top, 140px);
    background: #fff;
    border-top: 1px solid var(--dj-fond-secondaire);
    /* ombre ROSÉE, comme celle du header (famille rgba(212,165,165)) */
    box-shadow: 0 30px 60px rgba(212, 165, 165, 0.25);
    padding: 36px 65px 30px;
    z-index: 9998;
    max-height: calc(100vh - var(--dj-panneau-top, 140px) - 20px);
    overflow-y: auto;
    /* fermé par défaut */
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity .22s ease, transform .22s ease, visibility 0s .22s;
}
.dj-rubrique.dj-ouvert .dj-panneau {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition: opacity .22s ease, transform .22s ease, visibility 0s;
}
.dj-panneau-inner {
    display: grid;
    grid-template-columns: repeat(var(--dj-colonnes, 2), minmax(0, 1.2fr)) 320px;
    gap: 44px;
    max-width: 1400px;
    margin: 0 auto;
}
.dj-panneau-inner.sans-carte {
    grid-template-columns: repeat(var(--dj-colonnes, 2), minmax(0, 1fr));
}

/* Colonnes */
.dj-colonne-titre {
    font-family: 'Playfair Display', Georgia, serif;
    font-weight: 600;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--dj-rose-desature);
    margin: 0 0 16px;
}
.dj-entree {
    display: flex;
    gap: 13px;
    align-items: flex-start;
    padding: 10px 12px;
    border-radius: 0;
    transition: var(--dj-transition-rapide);
}
.dj-entree:hover {
    background: var(--dj-fond-clair);
}
.dj-emoji {
    font-size: 20px;
    line-height: 1.35;
    flex-shrink: 0;
}
.dj-entree-txt b {
    display: block;
    font-family: 'Lora', Georgia, serif;
    font-weight: 600;
    font-size: 15px;
    line-height: 1.35;
    color: var(--dj-texte-fonce);
}
.dj-entree-txt small {
    display: block;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--dj-texte-moyen);
    margin-top: 2px;
}

/* Entrée marquée `dj-entree-offert` (l'audio offert) : le libellé et sa
   pastille partagent une ligne flex — le <b> est en display:block, un frère
   direct passerait à la ligne. wrap gardé : dans une colonne étroite, la
   pastille descend proprement au lieu de déborder. */
.dj-entree-titre {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
 /* Mêmes valeurs typographiques que .dj-carte-etiquette (choix :
   « la taille des étiquettes de carte ») ; le doré à reflet vient de
   .dj-etiquette-qualite, posée en seconde classe sur le même span. */
.dj-badge-offert {
    display: inline-block;
    color: #fff;
    font-family: 'Lora', Georgia, serif;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    white-space: nowrap;
    padding: 4px 10px;
    border-radius: 0;
}

/* Pied du panneau : CTA 1ʳᵉ personne */
.dj-panneau-actions {
    grid-column: 1 / -1;
    padding-top: 6px;
}
.dj-cta {
    display: inline-block;
    padding: 11px 26px;
    background: var(--dj-rose-principal);
    color: #fff;
    font-family: 'Lora', Georgia, serif;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    border-radius: 0;
    transition: var(--dj-transition);
}
.dj-cta:hover {
    background: var(--dj-rose-vif);
    color: #fff;
    box-shadow: 0 6px 18px var(--dj-glow-rose);
}

/* Signature de panneau : ligne de réassurance valable pour tout le catalogue */
.dj-signature {
    font-size: 13px;
    font-style: italic;
    color: var(--dj-texte-moyen);
    border-top: 1px solid var(--dj-fond-secondaire);
    padding-top: 14px;
    margin: 14px 0 0;
}
.dj-signature b {
    color: var(--dj-texte-fonce);
    font-style: normal;
    font-weight: 600;
}

/* Carte promo (produit/article dynamique ou carte statique) */
.dj-carte {
    background: linear-gradient(135deg, var(--dj-fond-clair) 0%, var(--dj-fond-secondaire) 100%);
    border: 1px solid var(--dj-bordure);
    border-radius: 0;
    padding: 22px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-self: start;
}
.dj-carte-etiquettes {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    align-self: flex-start;
}
.dj-carte-etiquette {
    align-self: flex-start;
    background: var(--dj-rose-vif);
    color: #fff;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 0;
}
/* Étiquette Qualité (« Son binaural 3D », « 4K (2160p) »…) : dorée à reflet,
   comme les badges des cards Grid Builder. Keyframes propres au header
   (djcol-shine de la collection n'est chargée que sur l'espace compte). */
.dj-etiquette-qualite {
    background: linear-gradient(135deg, #C9A87C 0%, #B8956A 50%, #D4A574 100%);
    background-size: 200% 200%;
    animation: dj-etiquette-shine 4s ease-in-out infinite;
}
@keyframes dj-etiquette-shine {
    0%   { background-position: 0% 50%; }
    50%  { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}
.dj-carte img {
    display: block;
    width: 100%;
    height: 150px;
    object-fit: cover;
    border-radius: 0;
}
/* Visuels PNG sur fond transparent (carte Séances) : image entière, jamais recadrée */
.dj-carte img.dj-contain {
    height: 180px;
    object-fit: contain;
}
.dj-carte h4 {
    font-family: 'Playfair Display', Georgia, serif;
    font-weight: 600;
    font-size: 18px;
    line-height: 1.3;
    color: var(--dj-texte-fonce);
    margin: 0;
}
.dj-carte .dj-carte-prix {
    font-family: 'Lora', Georgia, serif;
    font-weight: 600;
    color: var(--dj-rose-vif);
}
.dj-carte a.dj-carte-lien {
    color: var(--dj-rose-vif);
    font-weight: 600;
    font-size: 14px;
}
.dj-carte a.dj-carte-lien:hover {
    text-decoration: underline;
}

/* Voile sous le panneau / la feuille mobile.
   pointer-events:none est VITAL : sans lui, le voile intercepte la souris sur
   la barre de rubriques → mouseleave → fermeture → réouverture en boucle
. Le clic hors panneau ferme
   via le handler document de dj-header.js, qui voit à travers le voile. */
.dj-voile {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    /* Le voile démarre SOUS le header (même ancre que les panneaux) : sans ça,
 il grisait le bandeau de rubriques au survol. */
    top: var(--dj-panneau-top, 0px);
    background: rgba(139, 126, 126, 0.35);
    z-index: 9997;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .25s ease, visibility 0s .25s;
}
.dj-voile.dj-visible {
    opacity: 1;
    visibility: visible;
    transition: opacity .25s ease, visibility 0s;
}

/* ==========================================================================
   PANNEAU BILLETS (échelle des 7 + badge Favoris)
   ========================================================================== */
.dj-billets-accroche {
    font-family: 'Lora', Georgia, serif;
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--dj-texte-moyen);
    margin: 0 0 18px;
    max-width: 640px;
}
.dj-billets-accroche strong {
    color: var(--dj-rose-vif);
}
.dj-billets-grille {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}
.dj-billet {
    flex: 1 1 110px;
    max-width: 140px;
    text-align: center;
    padding: 14px 10px;
    border: 1px solid var(--dj-bordure);
    border-radius: 0;
    background: #fff;
    transition: var(--dj-transition-rapide);
}
.dj-billet:hover {
    border-color: var(--dj-rose-principal);
    box-shadow: 0 6px 18px var(--dj-glow-rose-leger);
}
.dj-billet img {
    display: block;
    width: 100%;
    height: auto;
    margin: 0 auto 8px;
}
.dj-billet .dj-billet-montant {
    display: block;
    font-family: 'Playfair Display', Georgia, serif;
    font-weight: 600;
    font-size: 15px;
    color: var(--dj-texte-fonce);
}
.dj-billet .dj-billet-etat {
    display: block;
    font-size: 10.5px;
    letter-spacing: .8px;
    text-transform: uppercase;
    margin-top: 4px;
    color: var(--dj-texte-clair);
}
/* Connecté : billets déjà déposés (même dégradé doré que « Ma collection ») */
.dj-billet.dj-depose {
    background: linear-gradient(135deg, #C9A87C 0%, #B8956A 50%, #D4A574 100%);
    border-color: var(--dj-rose-principal);
}
.dj-billet.dj-depose .dj-billet-montant { color: #fff; }
.dj-billet.dj-depose .dj-billet-etat { color: rgba(255, 255, 255, 0.95); }
.dj-billet.dj-manquant img {
    filter: grayscale(1);
    opacity: .5;
}
.dj-billets-progression {
    font-size: .9em;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--dj-texte-clair);
    margin: 14px 0 0;
}
.dj-billets-progression b {
    color: var(--dj-rose-principal);
    font-size: 1.4em;
    font-weight: 600;
}

/* ==========================================================================
   MOBILE ≤ 1024px : bouton ☰ Menu + feuille plein écran + accordéons
   ========================================================================== */
.dj-nav-toggle,
.dj-nav-fermer {
    display: none;
}

@media (max-width: 1024px) {
    .dj-nav-toggle {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        border: 1px solid var(--dj-bordure);
        border-radius: 0;
        background: #fff;
        padding: 9px 13px;
        font-family: 'Lora', Georgia, serif;
        font-size: 14px;
        color: var(--dj-texte-fonce);
        cursor: pointer;
    }
    .dj-nav-fermer {
        display: block;
        position: absolute;
        top: 14px;
        right: 16px;
        width: 40px;
        height: 40px;
        border: 1px solid var(--dj-bordure);
        border-radius: 0;
        background: #fff;
        font-size: 16px;
        color: var(--dj-texte-fonce);
        cursor: pointer;
        z-index: 2;
    }

    /* Rangée du header : logo + icônes en 1re ligne, champ pleine largeur dessous.
       ⚠️ Préfixe .et-db #et-boc .et-l OBLIGATOIRE : les réglages saisis dans les
       modules Divi (marges de la clé -30px, décalage left:80px de la colonne…)
       sortent dans et-core-unified-*.css avec cette spécificité + !important, et
       fuient en mobile. On ne les bat qu'en étant PLUS spécifique — validé en
 direct en test. Les réglages desktop restent intacts. */
    .et-db #et-boc .et-l .molti-header-9-10 .et_pb_row:has(.dj-search) .et_pb_module {
        margin: 0 !important;
    }
    .et-db #et-boc .et-l .molti-header-9-10 .et_pb_row:has(.dj-search) {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        gap: 10px !important;
        padding: 8px 12px !important;
        margin: 0 !important;
        max-width: 100% !important;
    }
    /* Colonne logo : largeur du contenu, pousse les icônes à droite */
    .et-db #et-boc .et-l .molti-header-9-10 .et_pb_row:has(.dj-search) > .et_pb_column:first-child {
        margin: 0 !important;
        margin-right: auto !important;
        padding: 0 !important;
        left: 0 !important;
        top: 0 !important;
        width: auto !important;
        flex: 0 0 auto !important;
    }
    /* Colonne icônes+champ : elle S'EFFACE (display:contents) pour que ses
       modules deviennent des enfants directs de la rangée flex — seul moyen
       d'avoir logo+icônes sur la 1re ligne ET le champ à 100% de la rangée */
    .et-db #et-boc .et-l .molti-header-9-10 .et_pb_row:has(.dj-search) > .et_pb_column:last-child {
        display: contents !important;
    }
    .et-db #et-boc .et-l .molti-header-9-10 .et_pb_row:has(.dj-search) .et_pb_module:has(.dj-search) {
        order: 9 !important;
        flex: 1 1 100% !important;
        width: 100% !important;
        min-width: 0 !important;
    }
    .dj-search {
        min-width: 0;
        max-width: none;
    }
    .dj-search input {
        min-width: 0;
    }
    /* Icônes nivelées (marges déjà remises à zéro par le bloc .et_pb_module) */
    .molti-header-9-10 .et_pb_row:has(.dj-search) .account-link,
    .molti-header-9-10 .et_pb_row:has(.dj-search) .molti-wishlist,
    .molti-header-9-10 .et_pb_row:has(.dj-search) .molti-cart-launcher {
        margin: 0 !important;
        align-self: center;
    }
    .molti-header-9-10 .et_pb_row:has(.dj-search) .molti-wishlist,
    .molti-header-9-10 .et_pb_row:has(.dj-search) .molti-cart-launcher {
        padding: 0 !important;
    }
    /* La rangée du bouton ☰ Menu : bande propre qui ne remonte pas sous le logo
 */
    .molti-header-9-10 .et_pb_row:has(.dj-nav) {
        margin: 0 !important;
        padding: 6px 12px !important;
        background: #fff;
        position: relative;
        z-index: 1;
    }

    /* La feuille plein écran */
    .dj-nav-feuille {
        position: fixed;
        inset: 0;
        background: #fff;
        z-index: 100000;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        transform: translateX(-102%);
        transition: transform .3s ease;
        /* ⚠️ pas d'ombre à l'état FERMÉ : la feuille garée à -102% laissait
           déborder son flou de 60px dans l'écran = « dégradé gris à gauche »
. L'ombre n'existe qu'ouverte. */
        padding: 66px 0 30px; /* dégage le bouton ✕ de la 1re rubrique */
    }
    body.dj-nav-ouverte .dj-nav-feuille {
        transform: translateX(0);
 /* plus d'ombre du tout — la feuille est PLEIN ÉCRAN, une
 ombre n'y a aucun sens */
    }
    /* Verrou de défilement quand la feuille est ouverte */
    body.dj-nav-ouverte {
        overflow: hidden;
    }
    /* VITAL : la colonne Divi (z-index:2) emprisonne le z-index de la feuille,
 et la rangée du logo (z-index:5) passerait devant (constaté en test :
       logo/champ affichés PAR-DESSUS la feuille). On élève la chaîne quand la
       feuille est ouverte. */
    body.dj-nav-ouverte .molti-header-9-10 .et_pb_row:has(.dj-nav),
    body.dj-nav-ouverte .molti-header-9-10 .et_pb_column:has(.dj-nav) {
        z-index: 100000 !important;
    }

    .dj-nav-rubriques {
        display: block;
    }
    .dj-rubrique {
        border-bottom: 1px solid var(--dj-fond-secondaire);
    }
    .dj-rubrique > a {
        display: flex;
        justify-content: space-between;
        align-items: center;
        font-size: 18px;
        padding: 16px 22px;
        white-space: normal;
    }
    .dj-rubrique > a::after {
        display: none;
    }

    /* Panneaux → accordéons dans le flux */
    .dj-panneau {
        position: static;
        max-height: none;
        overflow: visible;
        box-shadow: none;
        border-top: none;
        padding: 0 12px 18px;
        opacity: 1;
        visibility: visible;
        transform: none;
        transition: none;
        display: none;
    }
    .dj-rubrique.dj-ouvert .dj-panneau {
        display: block;
    }
    .dj-panneau-inner,
    .dj-panneau-inner.sans-carte {
        display: block;
    }
    .dj-colonne {
        margin-bottom: 20px;
    }
    .dj-colonne-titre {
        margin-top: 14px;
    }
    .dj-carte {
        margin-top: 8px;
    }
    .dj-panneau-actions {
        padding-top: 12px;
    }

    /* Le voile ne sert pas sous la feuille (elle couvre tout) */
    .dj-voile {
        display: none;
    }

    .dj-billet {
        flex-basis: 88px;
    }
}

/* Desktop intermédiaire : on resserre pour que la ligne de rubriques ne casse pas */
@media (min-width: 1025px) and (max-width: 1280px) {
    .dj-rubrique > a {
        padding: 13px 11px 15px;
        font-size: 14px;
    }
    .dj-panneau {
        padding: 30px 30px 26px;
    }
    .dj-panneau-inner {
        gap: 28px;
        grid-template-columns: repeat(var(--dj-colonnes, 2), minmax(0, 1.2fr)) 280px;
    }
}

/* Respect du réglage système : pas d'animations imposées */
@media (prefers-reduced-motion: reduce) {
    .dj-panneau,
    .dj-nav-feuille,
    .dj-voile,
    .dj-chevron,
    .dj-rubrique > a::after {
        transition: none;
    }
    .dj-etiquette-qualite {
        animation: none;
    }
}
