/* =========================================================================
   DÉTAIL — thème Publii
   « Un simple petit détail sur un habit de ces époques peut m'emmener
     dans une spirale pour la création d'un nouveau style. »

   Le site fonctionne comme elle travaille : le gros plan d'abord,
   la silhouette entière ensuite.

   01  Jetons          07  Fiche d'une pièce
   02  Base            08  Pages fixes et prose
   03  Barre           09  Collections, recherche, erreur
   04  Ouverture       10  Pied de page
   05  Filtres         11  Pagination
   06  Galerie         12  Écrans étroits
                       13  Accessibilité et mouvement réduit
   ========================================================================= */

/* --- 01  Jetons ---------------------------------------------------------- */

:root {
    /* Nuit : un noir chaud, brun-aubergine. Le noir pur dit « écran » ;
       celui-ci dit « salle, velours, XIXe ». */
    --fond:        #16100f;
    --surface:     #211917;
    --texte:       #ede5d9;
    --secondaire:  #9a8c7e;
    --or:          #a9834d;
    --or-vif:      #c9a56b;
    --filet:       rgba(237, 229, 217, .15);
    --filet-fort:  rgba(237, 229, 217, .34);
    --voile:       rgba(22, 16, 15, .86);
    --scrim:       linear-gradient(to top, rgba(22,16,15,.92) 0%, rgba(22,16,15,.45) 42%, rgba(22,16,15,.1) 100%);

    /* Bodoni : la langue des étiquettes de couture, et le didone couvre
       l'arc victorien → années 20 sans effort.
       Jost : un Futura, donc exactement le Bauhaus des années 20. */
    --f-titre: "Bodoni Moda", Didot, "Bodoni MT", "Playfair Display", Georgia, serif;
    --f-texte: "Jost", Futura, "Century Gothic", system-ui, -apple-system, sans-serif;

    --t-hero:  clamp(3rem, 10.5vw, 8.5rem);
    --t-h1:    clamp(2.15rem, 5.4vw, 4.3rem);
    --t-h2:    clamp(1.35rem, 2.5vw, 1.95rem);
    --t-h3:    clamp(1.15rem, 1.8vw, 1.45rem);
    --t-texte: clamp(1rem, .3vw + .93rem, 1.12rem);
    --t-petit: .68rem;

    --e:   clamp(3rem, 7vw, 7.5rem);
    --e-2: clamp(1.5rem, 3.2vw, 3.25rem);
    --pad: clamp(1.15rem, 5vw, 5.5rem);

    --cadrage: 50% 45%;
}

.palette-ivoire {
    --fond:        #efe9df;
    --surface:     #e4dbcd;
    --texte:       #1a1412;
    --secondaire:  #6b6055;
    --or:          #8a6733;
    --or-vif:      #6e5127;
    --filet:       rgba(26, 20, 18, .16);
    --filet-fort:  rgba(26, 20, 18, .34);
    --voile:       rgba(239, 233, 223, .88);
    --scrim:       linear-gradient(to top, rgba(239,233,223,.94) 0%, rgba(239,233,223,.5) 42%, rgba(239,233,223,.08) 100%);
}

.cadrage-haut   { --cadrage: 50% 20%; }
.cadrage-centre { --cadrage: 50% 45%; }
.cadrage-bas    { --cadrage: 50% 74%; }

/* --- 02  Base ------------------------------------------------------------ */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
    margin: 0;
    background: var(--fond);
    color: var(--texte);
    font-family: var(--f-texte);
    font-size: var(--t-texte);
    font-weight: 300;
    line-height: 1.72;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }

h1, h2, h3 {
    font-family: var(--f-titre);
    font-weight: 400;
    font-optical-sizing: auto;
    line-height: 1.06;
    letter-spacing: -.005em;
    margin: 0;
}

p { margin: 0 0 1em; }

/* La voix « étiquette » : petites capitales très espacées.
   Elle sert partout où l'information est factuelle. */
.sur-titre {
    font-size: var(--t-petit);
    font-weight: 400;
    letter-spacing: .28em;
    text-transform: uppercase;
    color: var(--secondaire);
    margin: 0 0 1.15rem;
}

.mention {
    font-size: .74rem;
    letter-spacing: .1em;
    color: var(--secondaire);
    margin: 0;
}

.pastille {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    border: 1px solid var(--or-vif);
    display: inline-block;
    flex: none;
}
.pastille--pleine { background: var(--or-vif); }

.fleche {
    display: inline-block;
    margin-left: .6em;
    transition: transform .4s cubic-bezier(.19, 1, .22, 1);
}
.fleche::after { content: "\2192"; }
a:hover > .fleche, a:focus-visible > .fleche { transform: translateX(.34em); }

.bouton {
    display: inline-flex;
    align-items: center;
    font-size: .74rem;
    font-weight: 400;
    letter-spacing: .2em;
    text-transform: uppercase;
    text-decoration: none;
    padding: 1.05em 1.75em;
    color: var(--fond);
    background: var(--or-vif);
    border: 1px solid var(--or-vif);
    transition: background .3s ease, color .3s ease;
}
.bouton:hover { background: transparent; color: var(--or-vif); }

.bouton--creux { background: transparent; color: var(--or-vif); }
.bouton--creux:hover { background: var(--or-vif); color: var(--fond); }

.lien-fin {
    font-size: .8rem;
    letter-spacing: .06em;
    text-decoration: none;
    border-bottom: 1px solid var(--filet-fort);
    padding-bottom: .18em;
}

.saut {
    position: absolute;
    left: -9999px;
    z-index: 100;
    background: var(--texte);
    color: var(--fond);
    padding: .8rem 1.2rem;
}
.saut:focus { left: 0; top: 0; }

/* --- 03  Barre ----------------------------------------------------------- */

.barre {
    position: sticky;
    top: 0;
    z-index: 20;
    border-bottom: 1px solid transparent;
    transition: background .35s ease, border-color .35s ease;
}
.barre.est-defile {
    background: var(--voile);
    backdrop-filter: saturate(150%) blur(10px);
    -webkit-backdrop-filter: saturate(150%) blur(10px);
    border-bottom-color: var(--filet);
}

.barre__in {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.05rem var(--pad);
}

.marque {
    margin: 0;
    font-family: var(--f-titre);
    font-size: 1.15rem;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.marque a { text-decoration: none; }
.marque__logo { max-height: 32px; width: auto; }

.nav { display: flex; align-items: center; gap: clamp(1.2rem, 3vw, 2.6rem); }

.nav__liste, .nav__sous {
    display: flex;
    align-items: center;
    gap: clamp(1.1rem, 2.6vw, 2.3rem);
    list-style: none;
    margin: 0;
    padding: 0;
}

.nav__liste a, .nav__liste span {
    font-size: var(--t-petit);
    letter-spacing: .22em;
    text-transform: uppercase;
    text-decoration: none;
    padding-bottom: .35em;
    border-bottom: 1px solid transparent;
    transition: border-color .35s ease, color .35s ease;
}
.nav__liste a:hover { border-bottom-color: var(--filet-fort); }
.nav__liste .active > a { border-bottom-color: var(--or); color: var(--or-vif); }

.nav__liste li { position: relative; }
.nav__sous {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: .75rem;
    padding: 1.1rem 1.3rem;
    background: var(--surface);
    border: 1px solid var(--filet);
    white-space: nowrap;
}
.nav__liste li:hover > .nav__sous,
.nav__liste li:focus-within > .nav__sous { display: flex; }

.bascule {
    display: none;
    align-items: center;
    gap: .7rem;
    background: none;
    border: 0;
    padding: .3rem 0;
    cursor: pointer;
    color: inherit;
    font-family: inherit;
    font-size: var(--t-petit);
    letter-spacing: .22em;
    text-transform: uppercase;
}
.bascule__b { display: block; width: 24px; }
.bascule__b i {
    display: block;
    height: 1px;
    background: currentColor;
    transition: transform .35s ease;
}
.bascule__b i + i { margin-top: 6px; }
.bascule[aria-expanded="true"] .bascule__b i:first-child { transform: translateY(3.5px) rotate(45deg); }
.bascule[aria-expanded="true"] .bascule__b i + i { transform: translateY(-3.5px) rotate(-45deg); }

/* --- 04  Ouverture ------------------------------------------------------- */

.ouverture {
    position: relative;
    display: flex;
    align-items: flex-end;
    min-height: min(78vh, 720px);
    margin-top: -66px;          /* la barre passe par-dessus l'image */
    padding: var(--e) var(--pad) var(--e-2);
    overflow: hidden;
}
.ouverture--nue {
    margin-top: 0;
    min-height: 0;
    padding-top: clamp(3rem, 12vh, 7rem);
}

.ouverture__image { position: absolute; inset: 0; z-index: 0; }
.ouverture__image img { width: 100%; height: 100%; object-fit: cover; }
.ouverture__image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--scrim);
}

.ouverture__in { position: relative; z-index: 1; max-width: 46rem; }

.ouverture__titre {
    font-size: var(--t-hero);
    line-height: .92;
    letter-spacing: -.015em;
    margin: 0 0 1.2rem;
}

.ouverture__intro {
    max-width: 30rem;
    margin: 0;
    color: var(--secondaire);
}

/* --- 05  Filtres --------------------------------------------------------- */

.filtres {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    padding: var(--e-2) var(--pad) 0;
}
.filtre {
    background: none;
    border: 1px solid var(--filet);
    color: var(--secondaire);
    font-family: inherit;
    font-size: var(--t-petit);
    letter-spacing: .2em;
    text-transform: uppercase;
    padding: .7em 1.15em;
    cursor: pointer;
    transition: border-color .3s ease, color .3s ease;
}
.filtre:hover { border-color: var(--filet-fort); color: var(--texte); }
.filtre.est-actif { border-color: var(--or); color: var(--or-vif); }

/* --- 06  Galerie --------------------------------------------------------- */

.galerie {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1.2rem, 3.5vw, 4rem) clamp(1rem, 3vw, 3.5rem);
    padding: var(--e-2) var(--pad) var(--e);
    align-items: start;
}

/* Décalage vertical : le rythme d'un lookbook, pas d'un catalogue. */
.galerie > .piece:nth-child(even) { margin-top: clamp(1.5rem, 5vw, 5.5rem); }

.piece__lien { display: block; text-decoration: none; }

/* Le geste signature : on n'entre que par le détail. */
.piece__cadre {
    position: relative;
    overflow: hidden;
    aspect-ratio: 3 / 4;
    background: var(--surface);
}

.piece__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.42);
    transform-origin: var(--cadrage);
    filter: saturate(.9) brightness(.95);
    transition: transform 1.4s cubic-bezier(.19, 1, .22, 1),
                filter 1.1s ease;
}
.piece:hover .piece__img,
.piece:focus-within .piece__img,
.piece.est-ouverte .piece__img {
    transform: scale(1);
    filter: none;
}

.piece__vide { display: block; width: 100%; height: 100%; }

.piece__mot {
    position: absolute;
    left: 1rem;
    bottom: .9rem;
    font-size: .6rem;
    letter-spacing: .32em;
    text-transform: uppercase;
    color: var(--or-vif);
    text-shadow: 0 1px 8px rgba(0, 0, 0, .55);
    opacity: 1;
    transition: opacity .55s ease;
}
.piece:hover .piece__mot,
.piece:focus-within .piece__mot,
.piece.est-ouverte .piece__mot { opacity: 0; }

.piece__pied {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding-top: .95rem;
}

.piece__titre {
    font-size: var(--t-h2);
    line-height: 1.12;
    margin: 0;
}

/* L'état vient des étiquettes de la pièce. Rien n'est affiché tant
   qu'aucune étiquette d'état n'est posée : le silence est l'archive. */
.piece__etat { margin: 0; flex: none; }
.etat {
    display: none;
    align-items: center;
    gap: .5em;
    font-size: var(--t-petit);
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--secondaire);
    white-space: nowrap;
}
.piece[data-etats~="disponible"]    .etat--dispo   { display: inline-flex; color: var(--or-vif); }
.piece[data-etats~="a-la-demande"]  .etat--demande { display: inline-flex; }
.piece[data-etats~="archive"]       .etat--archive { display: inline-flex; }
.piece[data-etats~="archives"]      .etat--archive { display: inline-flex; }
.piece[data-etats~="disponible"]    .etat--demande { display: none; }

.galerie__rien { padding: 0 var(--pad) var(--e); color: var(--secondaire); }
.vide { padding: var(--e) var(--pad); }
.vide__texte { color: var(--secondaire); max-width: 34rem; }

/* --- 07  Fiche d'une pièce ----------------------------------------------- */

.fiche {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    gap: clamp(1.75rem, 5vw, 5rem);
    align-items: start;
    padding: var(--e-2) var(--pad) var(--e);
}

.fiche__figure { margin: 0; }
.fiche__figure figcaption { margin-top: .85rem; }
.fiche__img { width: 100%; }

.fiche__colonne { position: sticky; top: 5.5rem; }

.fiche__entete { margin-bottom: var(--e-2); }
.fiche__num { color: var(--or-vif); margin-bottom: 1rem; }
.fiche__titre { font-size: var(--t-h1); }

.specs { margin: 0 0 var(--e-2); border-top: 1px solid var(--filet); }
.specs__l {
    display: grid;
    grid-template-columns: 7.5rem 1fr;
    gap: 1rem;
    padding: .9rem 0;
    border-bottom: 1px solid var(--filet);
}
.specs dt {
    font-size: var(--t-petit);
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--secondaire);
    padding-top: .3em;
}
.specs dd { margin: 0; }
.specs dd a { text-decoration-thickness: 1px; text-underline-offset: .22em; }

.cta {
    margin-top: var(--e-2);
    padding: var(--e-2) 0 0;
    border-top: 1px solid var(--or);
}
.prix {
    font-family: var(--f-titre);
    font-size: var(--t-h2);
    margin: 0 0 1.15rem;
}
.cta__etat {
    display: flex;
    align-items: center;
    gap: .55em;
    font-size: var(--t-petit);
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--secondaire);
    margin: 0 0 .55rem;
}
.cta__delai { color: var(--secondaire); margin: 0 0 1.15rem; }
.cta__note { margin: .95rem 0 0; }

.voisines {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1px;
    background: var(--filet);
    border-top: 1px solid var(--filet);
    border-bottom: 1px solid var(--filet);
}
.voisine {
    display: block;
    background: var(--fond);
    padding: var(--e-2) var(--pad);
    text-decoration: none;
    transition: background .35s ease;
}
.voisine:hover { background: var(--surface); }
.voisine--suiv { text-align: right; }
.voisine__titre {
    display: block;
    font-family: var(--f-titre);
    font-size: var(--t-h3);
    line-height: 1.12;
}

.liees { padding: var(--e) 0 0; }
.liees__titre { padding: 0 var(--pad); }
.galerie--liees { grid-template-columns: repeat(3, minmax(0, 1fr)); padding-top: 0; }
.galerie--liees > .piece:nth-child(even) { margin-top: 0; }
.galerie--liees .piece__titre { font-size: var(--t-h3); }

/* --- 08  Pages fixes et prose -------------------------------------------- */

.statique { padding: var(--e) var(--pad); }
.statique__entete { margin-bottom: var(--e-2); }
.statique__titre { font-size: var(--t-h1); max-width: 20ch; }
.statique__figure { margin: 0 0 var(--e-2); }
.statique__figure figcaption { margin-top: .85rem; }

.largeur-etroit .prose, .largeur-etroit .statique__entete { max-width: 38rem; }
.largeur-large  .prose, .largeur-large  .statique__entete { max-width: 66rem; }

.prose > :first-child { margin-top: 0; }
.prose > :last-child { margin-bottom: 0; }

.prose h2 { font-size: var(--t-h2); margin: 2.5em 0 .6em; }
.prose h3 { font-size: var(--t-h3); margin: 2.1em 0 .5em; }

.prose a {
    text-decoration-thickness: 1px;
    text-underline-offset: .24em;
    text-decoration-color: var(--filet-fort);
    transition: text-decoration-color .3s ease;
}
.prose a:hover { text-decoration-color: var(--or-vif); }

.prose ul, .prose ol { padding-left: 1.15em; margin: 0 0 1.4em; }
.prose li { margin-bottom: .5em; }

.prose blockquote, .prose .citation-ample {
    margin: 2.2em 0;
    padding-left: 1.5rem;
    border-left: 1px solid var(--or);
    font-family: var(--f-titre);
    font-size: var(--t-h3);
    font-style: italic;
    line-height: 1.34;
}
.prose blockquote p:last-child { margin-bottom: 0; }

.prose .precision {
    font-size: .85rem;
    letter-spacing: .04em;
    color: var(--secondaire);
}

.prose figure { margin: 2.4em 0; }
.prose figcaption {
    margin-top: .75rem;
    font-size: .74rem;
    letter-spacing: .1em;
    color: var(--secondaire);
}

.prose hr { border: 0; border-top: 1px solid var(--filet); margin: 2.8em 0; }
.prose .gallery { display: grid; gap: .6rem; }

.html-libre { padding: 0 var(--pad); }

/* --- 09  Collections, recherche, erreur ---------------------------------- */

.entete { padding: clamp(2.5rem, 9vh, 6rem) var(--pad) var(--e-2); }
.entete__titre { font-size: var(--t-h1); }
.entete__texte { max-width: 34rem; margin-top: 1.3rem; color: var(--secondaire); }
.entete--erreur { max-width: 42rem; }

.index { list-style: none; margin: 0; padding: 0 var(--pad) var(--e); border-top: 1px solid var(--filet); }
.index__item { border-bottom: 1px solid var(--filet); }
.index__item a {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.2rem 0;
    text-decoration: none;
    transition: padding-left .4s cubic-bezier(.19, 1, .22, 1);
}
.index__item a:hover { padding-left: .7rem; }
.index__nom { font-family: var(--f-titre); font-size: var(--t-h3); }

.recherche { margin-top: 1.6rem; max-width: 26rem; }
.recherche input {
    width: 100%;
    font: inherit;
    padding: .8rem .95rem;
    background: var(--surface);
    color: var(--texte);
    border: 1px solid var(--filet-fort);
}
.resultats { padding: 0 var(--pad) var(--e); }

.cta { max-width: 34rem; }

/* --- 10  Pied de page ---------------------------------------------------- */

.pied { border-top: 1px solid var(--filet); margin-top: var(--e); }
.pied__in {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: var(--e-2);
    padding: var(--e) var(--pad) var(--e-2);
}
.pied__gros {
    font-family: var(--f-titre);
    font-size: var(--t-h3);
    line-height: 1.22;
    margin: 0;
}
.pied__gros a { text-decoration: none; border-bottom: 1px solid var(--filet-fort); }

.pied__liens { list-style: none; margin: 0; padding: 0; }
.pied__liens li { margin-bottom: .45rem; }
.pied__liens a, .pied__menu a {
    font-size: .82rem;
    letter-spacing: .06em;
    text-decoration: none;
    border-bottom: 1px solid var(--filet);
}

.pied__menu .nav__liste, .pied__menu .nav__sous {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .45rem;
    position: static;
    padding: 0;
    border: 0;
    background: none;
}
.pied__menu .nav__liste a { text-transform: none; letter-spacing: .06em; padding-bottom: 0; }

.pied__bas {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 2rem;
    justify-content: space-between;
    padding: var(--e-2) var(--pad);
    border-top: 1px solid var(--filet);
}

/* --- 11  Pagination ------------------------------------------------------ */

.pages-nav { padding: 0 var(--pad) var(--e); }
.pages-nav ul {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    list-style: none;
    margin: 0;
    padding: 0;
}
.pages-nav a, .pages-nav span {
    display: inline-block;
    padding: .6em 1em;
    font-size: var(--t-petit);
    letter-spacing: .18em;
    text-decoration: none;
    border: 1px solid var(--filet);
}
.pages-nav a:hover { border-color: var(--filet-fort); }
.pages-nav .active a, .pages-nav .active span {
    background: var(--or-vif);
    color: var(--fond);
    border-color: var(--or-vif);
}

/* --- 12  Écrans étroits -------------------------------------------------- */

@media (min-width: 1500px) {
    .galerie { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
    .fiche { grid-template-columns: 1fr; }
    .fiche__colonne { position: static; }
    .galerie--liees { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
    .galerie { grid-template-columns: 1fr; }
    .galerie > .piece:nth-child(even) { margin-top: 0; }

    .ouverture { min-height: min(68vh, 560px); }

    .bascule { display: inline-flex; }

    .nav {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        flex-direction: column;
        align-items: flex-start;
        gap: 1.4rem;
        padding: 1.8rem var(--pad) 2.2rem;
        background: var(--fond);
        border-bottom: 1px solid var(--filet);
    }
    .nav.est-ouvert { display: flex; }
    .nav__zone { width: 100%; }
    .nav__liste { flex-direction: column; align-items: flex-start; gap: 1.1rem; }
    .nav__sous { position: static; display: flex; padding: .7rem 0 0 1rem; border: 0; background: none; }

    .barre { background: var(--voile); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
    .ouverture { margin-top: 0; }

    .voisines { grid-template-columns: 1fr; }
    .voisine--suiv { text-align: left; }

    .specs__l { grid-template-columns: 1fr; gap: .2rem; }
    .specs dt { padding-top: 0; }

    .piece__pied { flex-direction: column; align-items: flex-start; gap: .4rem; }
}

/* --- 13  Accessibilité et mouvement réduit ------------------------------- */

:focus-visible { outline: 2px solid var(--or-vif); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }

    /* Pas de révélation : on montre directement la silhouette entière. */
    .piece__img { transform: none; filter: none; }
    .piece__mot { display: none; }

    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

/* =========================================================================
   14  Adaptations WordPress
   Classes générées par WordPress qu'il faut habiller pour rester cohérent.
   ========================================================================= */

/* Logo personnalisé */
.marque .custom-logo-link { display: inline-block; }
.marque .custom-logo { max-height: 32px; width: auto; }

/* Menus WordPress : mêmes styles que la nav du thème */
.nav__liste .menu-item-has-children { position: relative; }
.nav__liste .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	flex-direction: column;
	align-items: flex-start;
	gap: .75rem;
	list-style: none;
	margin: 0;
	padding: 1.1rem 1.3rem;
	background: var(--surface);
	border: 1px solid var(--filet);
	white-space: nowrap;
}
.nav__liste .menu-item-has-children:hover > .sub-menu,
.nav__liste .menu-item-has-children:focus-within > .sub-menu { display: flex; }
.nav__liste .current-menu-item > a { border-bottom-color: var(--or); color: var(--or-vif); }

.pied__menu .nav__liste { flex-direction: column; align-items: flex-start; gap: .45rem; }
.pied__menu .nav__liste a { text-transform: none; letter-spacing: .06em; padding-bottom: 0; }

/* Contenu produit par l'éditeur de blocs / l'application mobile */
.prose img { height: auto; }
.prose .wp-block-image { margin: 2.4em 0; }
.prose .wp-block-image figcaption,
.prose .wp-caption-text {
	margin-top: .75rem;
	font-size: .74rem;
	letter-spacing: .1em;
	color: var(--secondaire);
	text-align: left;
}
.prose .wp-block-gallery { margin: 2.4em 0; }
.prose .aligncenter { margin-inline: auto; }
.prose .alignright { float: right; margin: 0 0 1em 1.5em; }
.prose .alignleft { float: left; margin: 0 1.5em 1em 0; }
.prose .wp-block-quote {
	margin: 2.2em 0;
	padding-left: 1.5rem;
	border-left: 1px solid var(--or);
	font-family: var(--f-titre);
	font-size: var(--t-h3);
	font-style: italic;
	line-height: 1.34;
}
.prose .wp-block-embed { margin: 2.4em 0; }

/* Pagination WordPress */
.pages-nav .nav-links,
.pages-nav .page-numbers {
	display: inline-flex;
	flex-wrap: wrap;
	gap: .35rem;
	list-style: none;
}
.pages-nav .page-numbers {
	padding: .6em 1em;
	font-size: var(--t-petit);
	letter-spacing: .18em;
	text-decoration: none;
	border: 1px solid var(--filet);
}
.pages-nav a.page-numbers:hover { border-color: var(--filet-fort); }
.pages-nav .page-numbers.current {
	background: var(--or-vif);
	color: var(--fond);
	border-color: var(--or-vif);
}

/* Formulaire de demande (Contact Form 7) */
.demande { margin-top: 1.4rem; }
.demande .wpcf7-form p { margin: 0 0 1rem; }
.demande label {
	display: block;
	font-size: var(--t-petit);
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--secondaire);
	margin-bottom: .4rem;
}
.demande input[type="text"],
.demande input[type="email"],
.demande input[type="tel"],
.demande textarea {
	width: 100%;
	font: inherit;
	color: var(--texte);
	background: var(--surface);
	border: 1px solid var(--filet-fort);
	padding: .7rem .85rem;
}
.demande textarea { min-height: 7rem; resize: vertical; }
.demande .wpcf7-submit {
	display: inline-flex;
	align-items: center;
	font-family: var(--f-texte);
	font-size: .74rem;
	letter-spacing: .2em;
	text-transform: uppercase;
	padding: 1.05em 1.75em;
	color: var(--fond);
	background: var(--or-vif);
	border: 1px solid var(--or-vif);
	cursor: pointer;
	transition: background .3s ease, color .3s ease;
}
.demande .wpcf7-submit:hover { background: transparent; color: var(--or-vif); }
.demande .wpcf7-response-output {
	margin: 1rem 0 0 !important;
	padding: .8rem 1rem !important;
	border: 1px solid var(--filet-fort) !important;
	font-size: .85rem;
}

/* Champ caché « pièce » : jamais visible */
.demande .iris-piece-champ { display: none !important; }

/* Sticky admin bar : décaler la barre collante */
body.admin-bar .barre { top: 32px; }
@media (max-width: 782px) {
	body.admin-bar .barre { top: 46px; }
}
