/* Style Main - Adevaya (Artinbox Studios)
*-------------------------------------------------------
* 0. Initialisation / Polices
* 1. Contenus - Actualités & Ateliers (cartes)
* 2. Contenus - Vidéos
* 3. Contenus - Liens & Partenaires
* 4. Slider d'accueil
* 5. Lightbox vidéo (poster, bouton play, loader bicolore)
* 5 bis. Lightbox - Page ouverte depuis une carte (actualité, atelier)
* 6. Contenu migré osCommerce (classes éditoriales des pages/fiches)
* 7. Footer - Bloc riche (contact / informations / marque)
* 8. Home - Teasers (réassurance / cartes / avis / newsletter)
* 9. Pages - Sommaire de rubrique (cartes vers les sous-rubriques)
* 10. WooCommerce - Espace client (en-tête commun, onglets, tableau de bord)
* 11. Avis - Témoignages en mosaïque
* 12. Pages - Colonne de droite (3 rubriques conservées)
* 13. WooCommerce - Avis produits sans étoiles
* 14. Avis & témoignages - Signature anonyme
* 15. Pages - Titre visible (H1)
* 16. Ateliers - Fiche d'un atelier
* 17. Icon-box - Colonne de texte de largeur égale
* 18. Colonnes - Retrait du padding bas automatique
* 19. Cases - Taille de texte commune
* 20. Encarts - Newsletter et Séance en VISIO
* 21. Avis - Sélecteur de thème
* 22. Blog - Article
* 23. Formulaires Forminator
* 24. Lightbox - Fiche partenaire
* 25. Citation
* 26. Cases - Titres 15 % plus grands
* 27. Encart VISIO - « En savoir plus » et bloc en fenetre
* 28. Boutique - Respiration avant le pied de page
* 29. Boutique - Categories de la colonne
* 30. Menu du bureau - Deroulant natif : hierarchie
* 31. Utilitaire - Ombre de case
* 32. Cases de conferences - Date et lieu en couleur secondaire
* 33. Boutique - Description de categorie en points numerotes
* 34. Avis - Lien « La suite » et arrivee sur l'avis vise
* 35. Boutique - Rupture de stock en pastille discrete
* 36. Bannieres - Bande d'ambiance sous l'en-tete
* 37. Home - Cartes « Explorer » avec extrait de banniere
* 38. Home - Actualites en carrousel
* 39. YoniToy - Boutons boutique / retour, lien depuis le rayon
* 40. En-tete - Icone de recherche lisible sur le fond clair
* 41. Utilitaire - .radius-light : coins arrondis 7 px sur le fond d'une section
* 42. Boutique - Rayons en cases « bounce » avec ombre portee
* 43. Rayons « bounce » - Fond du texte blanc a 85 % au repos
* 44. Rayons « bounce » - Cases toutes de la meme hauteur
* 45. Videos - Pastille du numero (cases, fenetre, page)
* 46. Videos - Filtre par categorie (page des videos)
* 47. Videos - Liste deroulante + accordeon des categories
* 48. Videos - Puces de categories dans la fenetre video
* 49. Fiche produit - Avis et temoignages reunis, formulaire d'avis
* 50. Videos - Une video dans une page ([adevaya_video])
* 51. WooCommerce - Boutons des blocs Panier et Commande en boutons Flatsome
* 52. YoniToy - Univers sur fond sombre (pages de l'univers + rayon)
* 53. Menu mobile - Tiroir en deux habillages (Adevaya clair / YoniToy sombre)
* 54. Colonne de droite - Un seul style de case (rubriques et encarts)
* 55. Boutique - Communications importantes en zones depliables
* 56. Pages - Sommaire en tete de page (liens vers les parties de la page)
* 57. Pages - Lecture en plis : parties en accordeons
* 58. Commande - Conditions de vente en fenetre
* 59. En-tete mobile - Voile pour lire le menu et le panier
* 60. Archives - Titre de categorie aere
* 61. Boutique - Produits virtuels sans case Expedition
* 62. En-tete mobile - Logo avec 5 px de respiration
*/

/* 0. Initialisation / Polices
*-----------------------------------------------------*/
/* Les polices sont fournies par le thème Flatsome. Déclarer ici les
   éventuelles @font-face additionnelles propres à Adevaya. */

/* Literata (texte courant de l'univers YoniToy(R), choisie le 05/10/2026 pour
   sa lisibilite sur fond photo). Auto-hebergee dans wp-content/fonts/literata/
   (aucun appel a Google) ; police variable, graisses 400 a 500, latin + latin
   etendu, romain + italique. */
@font-face { font-family: "Literata"; font-style: normal; font-weight: 400 500; font-display: swap;
    src: url("../../fonts/literata/literata-normal-latin-ext.woff2") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Literata"; font-style: normal; font-weight: 400 500; font-display: swap;
    src: url("../../fonts/literata/literata-normal-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Literata"; font-style: italic; font-weight: 400 500; font-display: swap;
    src: url("../../fonts/literata/literata-italic-latin-ext.woff2") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Literata"; font-style: italic; font-weight: 400 500; font-display: swap;
    src: url("../../fonts/literata/literata-italic-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* Couleurs communes. --adv-fond-gris = LE gris de fond du site, le meme
   que les sections « Nos produits », le cartouche d'introduction et
   « Temoignages » de l'accueil (bg_color="#f2f3f5" dans le constructeur).
   Tout fond gris du CSS passe par cette variable : une seule valeur a
   changer si la charte bouge. */
:root {
    --adv-fond-gris: #F2F3F5;
}

/* 1. Contenus - Actualités & Ateliers (cartes)
*-----------------------------------------------------*/
.adv-actu {
    background: #fff;
    height: 100%;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 6px 24px rgba(0, 0, 0, .08);
    transition: transform .2s, box-shadow .2s;
}
.adv-actu:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 34px rgba(0, 0, 0, .14);
}
.adv-actu-img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block;
}
/* Actualités ET ateliers : image au format 4/3. Les deux listes partagent le
   même gabarit de case, elles doivent partager le même cadrage. Une hauteur
   fixe donnait un rendu qui changeait avec la largeur de la colonne (plus
   panoramique à trois cartes qu'à deux) ; le rapport, lui, tient à toutes les
   tailles. Le recadrage reste centré, aucune image n'est déformée. */
.adevaya-actualites .adv-actu-img,
.adevaya-ateliers .adv-actu-img {
    height: auto;
    aspect-ratio: 4 / 3;
}
.adv-actu-body {
    padding: 16px 18px 20px;
}
.adv-actu-date {
    display: block;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: #a98a5a;
    margin-bottom: 8px;
}
.adv-actu-title {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.3;
}
.adv-actu-title a {
    color: #2b2622;
}
.adv-actu-title a:hover {
    color: #a98a5a;
}
/* Ateliers : horaire + lieu */
.adv-atelier-meta {
    margin: 10px 0 0;
    font-size: 14.5px;
    color: #6a625a;
    line-height: 1.5;
}
.adv-atelier-meta span {
    display: inline-flex;
    align-items: center;
    margin-right: 1em;
}
.adv-atelier-meta span::before {
    content: "";
    width: 15px;
    height: 15px;
    margin-right: .4em;
    background: currentColor;
    /* Propriétés détaillées, PAS le raccourci « mask » : le raccourci remet
       mask-image à none, et cette règle étant plus spécifique que
       .adv-atelier-horaire::before, l'icône disparaissait — il ne restait
       qu'un carré plein devant l'horaire et le lieu. */
    -webkit-mask-position: center;  mask-position: center;
    -webkit-mask-size: contain;     mask-size: contain;
    -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
    opacity: .8;
}
.adv-atelier-horaire::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 100 20 10 10 0 000-20zm0 18a8 8 0 110-16 8 8 0 010 16zm.5-13H11v6l5 3 .75-1.23-4.25-2.52z'/%3E%3C/svg%3E");
            mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 100 20 10 10 0 000-20zm0 18a8 8 0 110-16 8 8 0 010 16zm.5-13H11v6l5 3 .75-1.23-4.25-2.52z'/%3E%3C/svg%3E");
}
.adv-atelier-lieu::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 00-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 00-7-7zm0 9.5A2.5 2.5 0 1112 6.5a2.5 2.5 0 010 5z'/%3E%3C/svg%3E");
            mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 00-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 00-7-7zm0 9.5A2.5 2.5 0 1112 6.5a2.5 2.5 0 010 5z'/%3E%3C/svg%3E");
}

/* 2. Contenus - Vidéos
*-----------------------------------------------------*/
/* Meme carte que les actualites et les ateliers : fond blanc, meme rayon,
   meme ombre, meme soulevement au survol. L'affiche seule ne suffisait pas a
   delimiter la case, le texte flottait a cote d'elle. */
.adv-video {
    background: #fff;
    height: 100%;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 6px 24px rgba(0, 0, 0, .08);
    transition: transform .2s, box-shadow .2s;
    margin-bottom: 1.2em;
}
.adv-video:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 34px rgba(0, 0, 0, .14);
}
/* Poster cliquable + bouton play */
.adv-video-poster {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: 8px 8px 0 0;
    overflow: hidden;
    background: #000;
    cursor: pointer;
}
.adv-video-poster-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .5s ease, filter .3s ease;
}
.adv-video-poster:hover .adv-video-poster-img {
    transform: scale(1.05);
    filter: brightness(.85);
}
.adv-video-play {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 68px;
    height: 68px;
    margin: -34px 0 0 -34px;
    border-radius: 50%;
    background: rgba(0, 0, 0, .55);
    box-shadow: 0 6px 24px rgba(0, 0, 0, .35);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .25s ease, transform .25s ease;
}
.adv-video-poster:hover .adv-video-play {
    background: var(--fs-color-primary, #47266d);
    transform: scale(1.08);
}
.adv-video-play svg {
    width: 30px;
    height: 30px;
    fill: #fff;
    margin-left: 3px;
}
.adv-video-embed {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
    border-radius: 8px;
    overflow: hidden;
    background: #000;
}
.adv-video-embed iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}
/* Meme echelle que la case de Liens & Partenaires : une case doit ressembler
   a une case d'un bout a l'autre du site. */
.adv-video-title {
    /* 15 px entre la vignette et le titre : l'affiche 16/9 est dense, le texte
       se decollait mal d'elle. Les 18 px lateraux sont ceux du corps d'une
       case d'actualite, pour que les deux familles s'alignent.
       En PADDING et non en marge : Flatsome impose « width:100% » a tous les
       titres h1-h6. En border-box, un padding reste dans cette largeur, une
       marge s'y ajoute — et le titre depassait alors de 18 px a droite. */
    margin: 15px 0 6px;
    padding: 0 18px;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
}
.adv-video-desc {
    font-size: 15.5px;
    color: #665f57;
    line-height: 1.6;
    margin: 0 0 20px;
    padding: 0 18px;
}
.adv-video-desc p {
    margin: 0 0 .5em;
}
.adv-video-desc p:last-child {
    margin-bottom: 0;
}

/* 3. Contenus - Liens & Partenaires
*-----------------------------------------------------*/
.adv-lien {
    background: #fff;
    height: 100%;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 5px 20px rgba(0, 0, 0, .07);
    text-align: center;
    padding-bottom: 14px;
    transition: transform .2s, box-shadow .2s;
}
.adv-lien:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, .13);
}
.adv-lien-imgwrap {
    padding: 22px 22px 8px;
}
.adv-lien-logo {
    max-height: 120px;
    width: auto;
    margin: 0 auto;
    display: block;
    object-fit: contain;
}
.adv-lien-body {
    padding: 6px 18px 4px;
}
.adv-lien-title {
    margin: 4px 0 6px;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
}
.adv-lien-desc {
    font-size: 15.5px;
    color: #665f57;
    line-height: 1.6;
    margin: 0 0 14px;
}

/* 4. Slider d'accueil
*-----------------------------------------------------*/
/* Lisibilité (09/10/2026) : Literata, la serif de texte de l'univers YoniToy(R),
   plus pleine que Newsreader 300 ; un voile radial très doux derrière le seul
   bloc de texte (pas sur toute l'image) et une ombre fine et nette, sans flou large. */
/* Clic : le texte laisse passer le clic jusqu'au lien de la diapositive. */
.slider:has(.adv-slide-title) .text-box,
.slider:has(.adv-slide-title) .text-box * {
    pointer-events: none;
}
.slider .text-box:has(.adv-slide-title) .text-box-content {
    position: relative;
    isolation: isolate;
    padding: .6em 1.4em .7em;
}
.slider .text-box:has(.adv-slide-title) .text-box-content::before {
    content: "";
    position: absolute;
    inset: -70% -35%;
    z-index: -1;
    pointer-events: none;
    background: radial-gradient(closest-side, rgba(28, 14, 40, .30) 0%, rgba(28, 14, 40, .24) 25%, rgba(28, 14, 40, .14) 50%, rgba(28, 14, 40, .05) 75%, rgba(28, 14, 40, 0) 100%);
    filter: blur(18px);
}
.adv-slide-title {
    margin: 0 0 .15em;
    font-family: Literata, Georgia, "Times New Roman", serif !important;
    font-weight: 500 !important;
    font-size: 2.5rem;
    line-height: 1.12;
    letter-spacing: .005em;
    color: #fff;
    text-shadow: 0 1px 2px rgba(20, 10, 30, .45);
}
.adv-slide-sub {
    margin: .25em 0 0;
    font-family: Literata, Georgia, "Times New Roman", serif;
    font-style: italic;
    font-weight: 500;
    font-size: 1.25rem;
    letter-spacing: .01em;
    color: #fff;
    text-shadow: 0 1px 2px rgba(20, 10, 30, .5);
}
/* Ombre au choix (ACF « Ombre derrière le texte ») : douce = réglage ci-dessus. */
.slider .text-box.adv-ombre-marquee .text-box-content::before {
    background: radial-gradient(closest-side, rgba(28, 14, 40, .52) 0%, rgba(28, 14, 40, .42) 25%, rgba(28, 14, 40, .26) 50%, rgba(28, 14, 40, .10) 75%, rgba(28, 14, 40, 0) 100%);
}
.slider .text-box.adv-ombre-aucune .text-box-content::before { display: none; }
.slider .text-box.adv-ombre-aucune :is(.adv-slide-title, .adv-slide-sub) { text-shadow: none; }
@media (max-width: 549px) {
    .adv-slide-title {
        font-size: 1.45rem;
    }
    .adv-slide-sub {
        font-size: 1rem;
    }
}

/* 5. Lightbox vidéo (poster, bouton play, loader bicolore)
*-----------------------------------------------------*/
html.adv-lb-open {
    overflow: hidden;
}
.adv-lb {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4vh 16px;
    opacity: 0;
    transition: opacity .3s ease;
}
.adv-lb.is-visible {
    opacity: 1;
}
.adv-lb[hidden] {
    display: none;
}
.adv-lb-overlay {
    position: absolute;
    inset: 0;
    background: rgba(12, 8, 20, .82);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
}
/* La boite ne defile pas elle-meme : c'est .adv-lb-body qui defile. Ainsi
   la barre de defilement reste a l'interieur et la croix garde la meme
   distance du haut et du bord droit (12 px), quelle que soit la longueur. */
.adv-lb-dialog {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 900px;
    max-height: 92vh;
    overflow: hidden;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 30px 80px rgba(0, 0, 0, .5);
    padding: 30px 0 24px;
    transform: translateY(12px) scale(.98);
    transition: transform .3s ease;
}
.adv-lb.is-visible .adv-lb-dialog {
    transform: none;
}
.adv-lb-close {
    position: absolute;
    /* meme distance du haut et de la droite (15/09). Flatsome donne a tout
       <button> une marge droite/basse de 1,16em et un padding lateral :
       remis a zero, sinon la croix se retrouvait a 30 px du bord. */
    top: 12px;
    right: 12px;
    margin: 0;
    padding: 0;
    /* et sa hauteur de ligne (2,19em) : le disque redevient un vrai 40 × 40 */
    line-height: 40px;
    min-height: 40px;
    max-height: 40px;
    box-sizing: border-box;
    z-index: 2;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: rgba(0, 0, 0, .5);
    cursor: pointer;
    transition: background .25s ease, transform .3s ease;
}
/* Croix dessinée : grande mais fine, parfaitement centrée */
.adv-lb-close::before,
.adv-lb-close::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 22px;
    height: 2px;
    background: #fff;
    border-radius: 2px;
}
.adv-lb-close::before {
    transform: translate(-50%, -50%) rotate(45deg);
}
.adv-lb-close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}
.adv-lb-close:hover {
    background: var(--fs-color-primary, #47266d);
    transform: rotate(45deg); /* la croix pivote de 45° (X -> +) */
}
.adv-lb-body {
    min-height: 220px;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}
/* La video de la fenetre est a angles droits (demande du 15/09) : ni le
   cadre, ni le lecteur, ni son iframe ne portent de rayon. La boite de la
   fenetre garde ses 12 px, le lecteur les recouvre en haut. */
.adv-lb-media,
.adv-lb-media .adv-video-embed,
.adv-lb-media .adv-video-embed iframe {
    border-radius: 0;
}
.adv-lb-title {
    margin: 18px 24px 8px;
    font-size: 1.6em;
    line-height: 1.25;
}
/* Titre place AU-DESSUS de la video (fenetre video) : on laisse la place
   du bouton de fermeture a droite, et un peu d'air avant le lecteur. */
.adv-lb-title-haut {
    margin: 20px 64px 14px 24px;
    /* Largeur automatique : avec une largeur a 100 %, les marges s ajoutaient
       et le titre sortait du cadre sur mobile (Fred, 09/10). */
    width: auto !important;
    max-width: none;
    overflow-wrap: break-word;
}
/* Fenetre video : 30 px d'air entre le lecteur et le texte (15/09). */
.adv-lb-media + .adv-lb-content {
    margin-top: 30px;
}
.adv-lb-content {
    margin: 0 24px;
    line-height: 1.6;
}
.adv-lb-error {
    padding: 60px 24px;
    text-align: center;
    color: #999;
}
/* Loader bicolore (couleurs primaire/secondaire du thème Flatsome) */
.adv-lb-loader {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 260px;
}
.adv-lb-spinner {
    width: 54px;
    height: 54px;
    border-radius: 50%;
    border: 5px solid rgba(0, 0, 0, .08);
    border-top-color: var(--fs-color-primary, #47266d);
    border-right-color: var(--fs-color-secondary, #813681);
    animation: adv-lb-spin .8s linear infinite;
}
@keyframes adv-lb-spin {
    to {
        transform: rotate(360deg);
    }
}

/* 17. Icon-box - Colonne de texte de largeur égale
--------------------------------------------------------------------------- */
/* À poser sur la RANGÉE (champ « Class » de l'élément Row dans le
   constructeur). Les icon-box de Flatsome laissent leur colonne de texte
   se dimensionner sur le contenu et l'autorisent à passer SOUS l'icône dès
   que la place manque : d'une case à l'autre les textes ne commencent plus
   au même endroit, et le plus long déborde. Ici, l'icône garde sa largeur,
   le texte prend tout le reste, et il se replie au lieu de pousser.
   Vrai à toutes les tailles, y compris tablette et téléphone. */
.adv-icon-box-egal .icon-box.icon-box-left,
.adv-icon-box-egal .icon-box.icon-box-right {
    flex-wrap: nowrap;
    align-items: flex-start;
}
.adv-icon-box-egal .icon-box-img  { flex: 0 0 auto; }
.adv-icon-box-egal .icon-box-text { flex: 1 1 0; min-width: 0; }

/* Flatsome ajoute d'office 30 px sous chaque colonne — la gouttière verticale
   de ses grilles de cartes. Sur une rangée d'icon-box, cela ne sert à rien et
   creuse un vide sous le bandeau. On le retire, en gardant un intervalle
   quand les cases s'empilent (sous 550 px). */
.adv-icon-box-egal > .col { padding-bottom: 0; }
@media (max-width: 549px) {
    .adv-icon-box-egal > .col              { padding-bottom: 16px; }
    .adv-icon-box-egal > .col:last-child   { padding-bottom: 0; }
}

/* 18. Colonnes - Retrait du padding bas automatique
--------------------------------------------------------------------------- */
/* Flatsome pose 30 px sous CHAQUE colonne (20 px en « row-small »). C'est la
   gouttière verticale de ses grilles de cartes : utile quand il y a plusieurs
   rangées, gênant partout ailleurs — sur une rangée simple, cela creuse un
   vide que rien n'explique et que l'on ne retrouve dans aucun réglage.
   On le retire par défaut, et on le rend explicitement aux grilles. */
.col { padding-bottom: 0; }

/* Grilles à plusieurs rangées : la gouttière est voulue. Couvre les grilles
   automatiques de Flatsome (…-columns-N : catégories, produits, articles)
   et nos propres listes de cartes. */
.row[class*="-columns-"] > .col,
.adevaya-actualites > .col,
.adevaya-ateliers > .col,
.adevaya-liens > .col,
.adevaya-videos > .col {
    padding-bottom: 30px;
}
.row-small[class*="-columns-"] > .col,
.row-small.adevaya-actualites > .col,
.row-small.adevaya-ateliers > .col,
.row-small.adevaya-liens > .col,
.row-small.adevaya-videos > .col {
    padding-bottom: 20px;
}

/* 5 bis. Lightbox - Page ouverte depuis une carte (actualité, atelier)
--------------------------------------------------------------------------- */
.adv-lb-image { margin: 0; }
.adv-lb-image img {
    display: block; width: 100%; height: auto;
    border-radius: 12px 12px 0 0;
}
.adv-lb-article { padding: 26px 34px 4px; }
.adv-lb-article .adv-lb-title {
    margin: 0 0 10px;
    font-family: var(--adv-police-titres, Georgia, serif);
    font-size: 30px; font-weight: 700; line-height: 1.15;
    color: var(--fs-color-primary, #47266d);
}
.adv-lb-date {
    margin: 0 0 20px;
    font-size: 12.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
    color: var(--fs-color-secondary, #813681);
}
.adv-lb-article .adv-atelier-entete { margin-bottom: 22px; }
/* Pas de taille imposee : on herite du corps du site (19,2 px). La fenetre
   sert a LIRE une page, elle n'a aucune raison d'etre plus petite qu'elle —
   la lightbox video, qui ne declarait rien, etait deja a cette taille. */
.adv-lb-content { line-height: 1.6; color: #46424c; }
.adv-lb-content img { max-width: 100%; height: auto; }
.adv-lb-content > *:first-child { margin-top: 0; }

/* Le lien vers la vraie page : la lightbox ne la remplace pas, elle l'évite. */
.adv-lb-page {
    margin: 26px 0 0; padding-top: 16px;
    border-top: 1px solid rgba(71, 38, 109, .12);
}
.adv-lb-page a, .adv-lb-error a {
    font-size: 12.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
    color: var(--fs-color-primary, #47266d); text-decoration: none;
}
.adv-lb-page a::after { content: " \203A"; }
.adv-lb-page a:hover, .adv-lb-error a:hover { color: var(--fs-color-secondary, #813681); }
.adv-lb-error { padding: 40px 34px; text-align: center; color: #6f6a76; }

@media (max-width: 640px) {
    .adv-lb-article { padding: 20px 20px 4px; }
    .adv-lb-article .adv-lb-title { font-size: 24px; }
}

/* 6. Contenu migré osCommerce (classes éditoriales)
*-----------------------------------------------------*/
/* Reprise des classes de contenu osCommerce pour un rendu fidèle dans WordPress.
   Classes uniques en global ; .preview scopé au contenu (nom générique).
   Tailles converties depuis l'OS (html 62.5% -> 1rem=10px) en px. */

/* Titres (paragraphes-titres) */
.boxContentTitle,
.boxContentTitlePurple,
.boxContentTitleRed {
    margin: 0;
    padding: 10px 0 15px;
    font-family: var(--adv-police-titres, Georgia, serif);
    font-size: 22px;
    line-height: 1.35;
    font-weight: 700;
}
.boxContentTitle       { color: #413f42; font-size: 24px; margin: 0 0 15px 0; }
.boxContentTitlePurple { color: #47266d; }
.boxContentTitleRed    { color: #9c0000; }

/* Textes colorés */
.boxContentTextRed,
.boxContentTextRedBold    { color: #9c0000; }
.boxContentTextPurple,
.boxContentTextPurpleBold { color: #47266d; }
.boxContentTextGreen,
.boxContentTextGreenBold  { color: #006b00; }
.boxContentTextBlackBold  { color: #000; }
.boxContentTextPurpleBold,
.boxContentTextRedBold,
.boxContentTextGreenBold,
.boxContentTextBlackBold  { font-weight: 700; }
/* Depuis le nettoyage des couleurs du 01/10/2026 : gras sans couleur
   (ex-PurpleBold / BlackBold / GreenBold / RedBold non justifiés). */
.boxContentTextBold       { font-weight: 700; }

/* Sous-titres / légendes */
.boxSubTitleText { padding-bottom: .3em; font-weight: 600; }
.boxTextLegende  { font-size: .9em; color: #777; font-style: italic; }
.boxTextGray     { color: #777; }

/* Alignements */
.textAlignJustify { text-align: justify; }
.textAlignCenter  { text-align: center; }
.textAlignRight   { text-align: right; }

/* Images / mise en page */
.content-area .preview, .entry-content .preview { list-style: none; padding-left: 0; padding-bottom: 1rem; overflow: hidden; }
.illustrations { margin: 0 auto; display: block; }
.floatLeft  { float: left; margin: 0 1em 1em 0; }
.floatRight { float: right; margin: 0 0 1em 1em; }
.ImageFloatLeft,
.ImageFloatRight { text-align: center; }

/* Blocs de contenu migrés (espacement léger) */
.osc-bloc { margin-bottom: 1em; }
.osc-bloc::after { content: ""; display: table; clear: both; }

/* 7. Footer - Bloc riche (contact / informations / marque)
*-----------------------------------------------------*/
.adv-footer-section {
    background: var(--adv-fond-gris, #F2F3F5);
    padding: 46px 15px 40px;
    border-top: 1px solid #ece4d8;
}
.adv-footer {
    display: grid;
    grid-template-columns: 1.3fr 1fr 1fr;
    gap: 2.5rem;
    align-items: start;
    width: 100%;
    max-width: 1080px;
    margin: 0 auto;
    padding: .5rem 0;
    text-align: left;
}
.adv-footer-title {
    font-family: var(--adv-police-titres, Georgia, serif);
    font-size: 1.5rem;
    font-weight: 700;
    color: #47266d;
    margin-bottom: .6rem;
}
.adv-footer-text {
    font-size: .95rem;
    line-height: 1.85;
    color: #4a4550;
}
.adv-footer-text a {
    color: #4a4550;
    transition: color .2s;
}
.adv-footer-text a:hover {
    color: #813681;
}
.adv-footer-info .adv-footer-text a {
    display: inline-block;
    font-weight: 500;
}
.adv-footer-brand {
    text-align: center;
}
.adv-footer-logo {
    max-width: 190px;
    height: auto;
    margin: 0 auto;
}
@media (max-width: 849px) {
    .adv-footer {
        grid-template-columns: 1fr 1fr;
        gap: 1.8rem;
        text-align: center;
    }
    .adv-footer-brand { grid-column: 1 / -1; }
    .adv-footer-address br + br { display: none; }
}
@media (max-width: 549px) {
    .adv-footer { grid-template-columns: 1fr; }
}

/* 8. Home - Teasers (réassurance / cartes / avis / newsletter)
*-----------------------------------------------------*/
/* Icônes (masque SVG, prennent la couleur du texte) */
[class*="advico-"] {
    display: inline-block;
    background: currentColor;
    -webkit-mask: center / contain no-repeat;
            mask: center / contain no-repeat;
}
.advico-lock     { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1a5 5 0 00-5 5v3H6a2 2 0 00-2 2v9a2 2 0 002 2h12a2 2 0 002-2v-9a2 2 0 00-2-2h-1V6a5 5 0 00-5-5zm3 8H9V6a3 3 0 016 0v3z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1a5 5 0 00-5 5v3H6a2 2 0 00-2 2v9a2 2 0 002 2h12a2 2 0 002-2v-9a2 2 0 00-2-2h-1V6a5 5 0 00-5-5zm3 8H9V6a3 3 0 016 0v3z'/%3E%3C/svg%3E"); }
.advico-truck    { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 4a1 1 0 00-1 1v11a1 1 0 001 1h1a3 3 0 006 0h4a3 3 0 006 0h1a1 1 0 001-1v-4l-3-4h-3V5a1 1 0 00-1-1H3zm13 5h2.5l1.5 2h-4V9zM7 15.5A1.5 1.5 0 118.5 17 1.5 1.5 0 017 15.5zm10 0A1.5 1.5 0 1118.5 17 1.5 1.5 0 0117 15.5z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 4a1 1 0 00-1 1v11a1 1 0 001 1h1a3 3 0 006 0h4a3 3 0 006 0h1a1 1 0 001-1v-4l-3-4h-3V5a1 1 0 00-1-1H3zm13 5h2.5l1.5 2h-4V9zM7 15.5A1.5 1.5 0 118.5 17 1.5 1.5 0 017 15.5zm10 0A1.5 1.5 0 1118.5 17 1.5 1.5 0 0117 15.5z'/%3E%3C/svg%3E"); }
.advico-hands    { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z'/%3E%3C/svg%3E"); }
.advico-energy   { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13 2L3 14h7l-1 8 10-12h-7z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13 2L3 14h7l-1 8 10-12h-7z'/%3E%3C/svg%3E"); }
.advico-calendar { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 2v2H5a2 2 0 00-2 2v13a2 2 0 002 2h14a2 2 0 002-2V6a2 2 0 00-2-2h-2V2h-2v2H9V2H7zm12 8v9H5v-9h14z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 2v2H5a2 2 0 00-2 2v13a2 2 0 002 2h14a2 2 0 002-2V6a2 2 0 00-2-2h-2V2h-2v2H9V2H7zm12 8v9H5v-9h14z'/%3E%3C/svg%3E"); }
.advico-play     { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 100 20 10 10 0 000-20zM10 8l6 4-6 4V8z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 100 20 10 10 0 000-20zM10 8l6 4-6 4V8z'/%3E%3C/svg%3E"); }
.advico-star     { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z'/%3E%3C/svg%3E"); }
.advico-mail     { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h16a2 2 0 012 2v12a2 2 0 01-2 2H4a2 2 0 01-2-2V6a2 2 0 012-2zm8 7L4 6.5V8l8 4.5L20 8V6.5L12 11z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h16a2 2 0 012 2v12a2 2 0 01-2 2H4a2 2 0 01-2-2V6a2 2 0 012-2zm8 7L4 6.5V8l8 4.5L20 8V6.5L12 11z'/%3E%3C/svg%3E"); }

/* Bandeau réassurance */
.adv-reassurance {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1.5rem 3rem;
    max-width: 1000px;
    margin: 0 auto;
    padding: .5rem 0;
}
.adv-rea-item { display: flex; align-items: center; gap: .8rem; }
.adv-rea-ico { width: 30px; height: 30px; color: #813681; flex: none; }
.adv-rea-txt { display: flex; flex-direction: column; line-height: 1.3; }
.adv-rea-title { font-weight: 700; color: #2b2622; }
.adv-rea-sub { font-size: .92em; color: #6a625a; }

/* Version UX Block : les trois arguments deviennent trois colonnes Flatsome,
   modifiables une à une dans le constructeur. Le rendu reste celui du bandeau
   d'origine — items centrés, mêmes icônes, même typographie. */
.adv-rea-bloc { max-width: 1000px; margin: 0 auto; padding: 8px 0; }
.adv-rea-bloc .adv-rea-item { justify-content: center; }
@media (max-width: 849px) {
    .adv-rea-bloc .adv-rea-item { justify-content: flex-start; margin-bottom: 14px; }
}

/* Cartes thématiques */
.adv-teasers {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.4rem;
    max-width: 1080px;
    margin: 0 auto;
}
.adv-teaser {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 2rem 1.2rem 1.6rem;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 6px 24px rgba(0,0,0,.07);
    transition: transform .2s, box-shadow .2s;
    color: #2b2622;
}
.adv-teaser:hover { transform: translateY(-5px); box-shadow: 0 14px 36px rgba(0,0,0,.14); color: #2b2622; }
.adv-teaser-ico {
    width: 34px; height: 34px; color: #fff;
    padding: 16px;
    border-radius: 50%;
    background: linear-gradient(135deg, #47266d, #813681);
    box-sizing: content-box;
    margin-bottom: 1rem;
}
.adv-teaser-title { font-family: var(--adv-police-titres, Georgia, serif); font-size: 1.5rem; font-weight: 700; color: #47266d; margin-bottom: .3rem; }
.adv-teaser-sub { font-size: 1rem; color: #6a625a; line-height: 1.5; flex: 1 1 auto; }
.adv-teaser-more { margin-top: 1rem; font-size: .875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #813681; }
.adv-teaser-more::after { content: " →"; }

/* Bloc avis / témoignages */
.adv-avis {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.4rem;
    max-width: 1080px;
    margin: 0 auto;
}
.adv-avis-card {
    margin: 0;
    padding: 1.6rem 1.5rem;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 6px 24px rgba(0,0,0,.07);
    display: flex;
    flex-direction: column;
}
.adv-avis-stars { display: flex; gap: 3px; margin-bottom: .8rem; }
.adv-star { width: 16px; height: 16px; background: #e2d9cb; -webkit-mask: center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z'/%3E%3C/svg%3E"); mask: center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z'/%3E%3C/svg%3E"); }
.adv-star.is-on { background: #e0a92e; }
.adv-avis-text { margin: 0 0 1rem; font-style: italic; color: #4a4550; line-height: 1.6; border: 0; padding: 0; flex: 1 1 auto; }
.adv-avis-meta { display: flex; flex-direction: column; }
.adv-avis-author { font-weight: 700; color: #2b2622; }
.adv-avis-prod { font-size: .9em; color: #a98a5a; }
.adv-avis-cta { text-align: center; margin-top: 1.6rem; }

/* Teaser newsletter */
.adv-newsletter { max-width: 1000px; margin: 0 auto; }
.adv-nl-inner {
    display: flex;
    align-items: center;
    gap: 1.4rem;
    flex-wrap: wrap;
    justify-content: center;
    background: linear-gradient(135deg, #47266d, #813681);
    border-radius: 14px;
    padding: 1.8rem 2rem;
    color: #fff;
}
.adv-nl-ico { width: 40px; height: 40px; color: #fff; flex: none; }
.adv-nl-body { display: flex; flex-direction: column; line-height: 1.35; margin-right: auto; }
.adv-nl-title { font-family: var(--adv-police-titres, Georgia, serif); font-size: 1.6rem; font-weight: 700; }
/* Le sous-titre porte desormais le vrai texte de la newsletter, sur deux
   paragraphes et une signature : il lui faut une largeur de lecture et des
   marges, pas une simple ligne. */
.adv-nl-sub { font-size: .95rem; opacity: .92; max-width: 62ch; }
.adv-nl-sub p { margin: .45em 0 0; }
.adv-nl-sub p:first-child { margin-top: .3em; }
/* La signature se detache sans crier. */
.adv-nl-sub p:last-child { margin-top: .6em; letter-spacing: .06em; font-size: .9em; }
.adv-nl-btn { background: #fff !important; color: #47266d !important; border: 0 !important; flex: none; margin: 0 !important; align-self: center; }
.adv-nl-btn:hover { background: var(--adv-fond-gris, #F2F3F5) !important; }

@media (max-width: 849px) {
    .adv-teasers { grid-template-columns: repeat(2, 1fr); }
    .adv-avis    { grid-template-columns: 1fr; }
    /* Newsletter : empilement vertical centré (icône / titre / texte / bouton) */
    .adv-nl-inner { flex-direction: column; text-align: center; }
    .adv-nl-body  { margin-right: 0; text-align: center; align-items: center; }
}
@media (max-width: 549px) {
    .adv-teasers { grid-template-columns: 1fr; }
    .adv-reassurance { flex-direction: column; align-items: flex-start; gap: 1rem; }
}

/* 9. Pages - Sommaire de rubrique (cartes vers les sous-rubriques)
--------------------------------------------------------------------------- */
.adv-sommaire {
    display: grid;
    gap: 1rem;
    margin: 1.5rem 0 1.875rem;
}
.adv-sommaire-2 { grid-template-columns: repeat(2, 1fr); }
.adv-sommaire-3 { grid-template-columns: repeat(3, 1fr); }
.adv-sommaire-4 { grid-template-columns: repeat(4, 1fr); }

.adv-som-card {
    display: flex;
    flex-direction: column;
    padding: 1.25rem 1.375rem 1.0625rem;
    border: 1px solid #e2dae9;
    border-left: 4px solid var(--fs-color-primary, #47266d);
    border-radius: 3px;
    background: #fff;
    color: inherit;
    text-decoration: none;
    /* Meme ombre au repos que les autres cases du site : la case d'index en
       etait la seule privee, elle paraissait plate a cote des actualites et
       des partenaires. Le survol garde son ombre plus marquee. */
    box-shadow: 0 6px 24px rgba(0, 0, 0, .08);
    transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
.adv-som-card:hover {
    box-shadow: 0 6px 20px rgba(71, 38, 109, .13);
    transform: translateY(-2px);
    border-left-color: var(--fs-color-secondary, #813681);
}
.adv-som-title {
    font-family: var(--adv-police-titres, Georgia, serif);
    font-weight: 700;
    font-size: 1.3125rem;
    line-height: 1.3;
    color: var(--fs-color-primary, #47266d);
}
.adv-som-extrait {
    margin-top: 0.5625rem;
    font-size: 0.9688rem;
    line-height: 1.55;
    color: #5d5a60;
    flex: 1 1 auto;
}
.adv-som-go {
    margin-top: 0.875rem;
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--fs-color-secondary, #813681);
}
.adv-som-go::after { content: " \203A"; }

/* Page encore sans contenu : signalée telle quelle, sans faire croire à un texte */
.adv-som-card.is-vide { border-left-color: #d4c800; background: #fffdf0; }
.adv-som-todo {
    margin-top: 0.5625rem;
    align-self: flex-start;
    background: #fff200;
    color: #1a1a1a;
    font-size: 0.9062rem;
    font-weight: 600;
    padding: .15em .5em;
    border-radius: 2px;
}

@media (max-width: 849px) { .adv-sommaire-3, .adv-sommaire-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 549px) { .adv-sommaire-2, .adv-sommaire-3, .adv-sommaire-4 { grid-template-columns: 1fr; } }

/* Page-sommaire : liste de ses sous-rubriques au lieu d'un extrait */
.adv-som-sous {
    margin-top: 0.5625rem;
    font-size: 0.9375rem;
    line-height: 1.5;
    color: var(--fs-color-secondary, #813681);
    flex: 1 1 auto;
}

/* 10. WooCommerce - Tableau de bord du compte client
--------------------------------------------------------------------------- */
.adv-compte { margin: 0 0 1.875rem; }

/* Bandeau d'accueil */
.adv-compte-hello {
    display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0.75rem;
    padding: 1.375rem 1.625rem; border-radius: 4px;
    background: linear-gradient(135deg, var(--fs-color-primary, #47266d), var(--fs-color-secondary, #813681));
    color: #fff;
}
.adv-compte-bonjour {
    display: block; font-family: var(--adv-police-titres, Georgia, serif);
    font-size: 1.5rem; line-height: 1.2; font-weight: 700;
}
.adv-compte-mail { display: block; font-size: 0.8125rem; opacity: .75; margin-top: 0.1875rem; }
.adv-compte-out {
    color: #fff; font-size: 0.8125rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em;
    border: 1px solid rgba(255,255,255,.5); border-radius: 3px; padding: 0.4375rem 0.875rem;
    transition: background .18s ease, border-color .18s ease;
}
.adv-compte-out:hover { background: rgba(255,255,255,.15); border-color: #fff; color: #fff; }

/* Résumé de commandes */
.adv-compte-resume {
    display: flex; align-items: center; flex-wrap: wrap; gap: 0.75rem 1.25rem;
    margin-top: 1rem; padding: 1.125rem 1.625rem;
    background: var(--adv-fond-gris, #F2F3F5); border: 1px solid #e6dcef; border-radius: 4px;
}
.adv-resume-n {
    font-family: var(--adv-police-titres, Georgia, serif); font-size: 2rem; font-weight: 700; line-height: 1;
    color: var(--fs-color-primary, #47266d);
}
.adv-resume-lib { font-size: 0.875rem; color: #6f6b73; margin-left: -0.875rem; }
.adv-resume-last { display: flex; flex-direction: column; gap: 0.125rem; flex: 1 1 13.75rem; }
.adv-resume-titre { font-size: 0.75rem; text-transform: uppercase; letter-spacing: .06em; color: #8d8892; }
.adv-resume-detail { font-size: 0.9375rem; color: #3c3a3f; }
.adv-resume-statut {
    align-self: flex-start; margin-top: 0.25rem; font-size: 0.75rem; font-weight: 600;
    padding: 0.125rem 0.5rem; border-radius: 1.25rem; background: #e8f0fb; color: #1c4f8f;
}
.adv-resume-statut.statut-completed  { background: #e8f5ec; color: #1f6b3a; }
.adv-resume-statut.statut-processing { background: #fff6e3; color: #8a5a00; }
.adv-resume-statut.statut-cancelled,
.adv-resume-statut.statut-failed     { background: #fdeceb; color: #9c0000; }
.adv-resume-cta {
    font-size: 0.8125rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em;
    color: var(--fs-color-secondary, #813681);
}
.adv-resume-cta::after { content: " \203A"; }
.adv-compte-resume.is-vide { justify-content: space-between; }

/* Cartes de navigation */
.adv-compte-cartes {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.875rem; margin-top: 1rem;
}
.adv-compte-carte {
    display: flex; flex-direction: column; align-items: flex-start;
    padding: 1.25rem 1.125rem; background: #fff; color: inherit; text-decoration: none;
    border: 1px solid #e2dae9; border-radius: 4px;
    transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
.adv-compte-carte:hover {
    box-shadow: 0 6px 20px rgba(71,38,109,.13); transform: translateY(-2px);
    border-color: var(--fs-color-secondary, #813681);
}
.adv-carte-ico {
    width: 1.75rem; height: 1.75rem; margin-bottom: 0.625rem;
    background: var(--fs-color-primary, #47266d);
    -webkit-mask-size: contain; mask-size: contain;
    -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
    -webkit-mask-position: center; mask-position: center;
}
.adv-carte-titre { font-size: 1rem; font-weight: 600; color: var(--fs-color-primary, #47266d); }
.adv-carte-sub   { font-size: 0.8125rem; line-height: 1.45; color: #6f6b73; margin-top: 0.25rem; }

.advico-box      { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l9 4.5v11L12 22l-9-4.5v-11L12 2zm0 2.2L5.6 7.4 12 10.6l6.4-3.2L12 4.2zM5 9.1v7.2l6 3v-7.2l-6-3zm14 0l-6 3v7.2l6-3V9.1z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l9 4.5v11L12 22l-9-4.5v-11L12 2zm0 2.2L5.6 7.4 12 10.6l6.4-3.2L12 4.2zM5 9.1v7.2l6 3v-7.2l-6-3zm14 0l-6 3v7.2l6-3V9.1z'/%3E%3C/svg%3E"); }
.advico-download { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 3h2v8h3.5L12 16.5 7.5 11H11V3zM4 18h16v3H4v-3z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 3h2v8h3.5L12 16.5 7.5 11H11V3zM4 18h16v3H4v-3z'/%3E%3C/svg%3E"); }
.advico-pin      { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 00-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 00-7-7zm0 9.5A2.5 2.5 0 1112 6.5a2.5 2.5 0 010 5z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 00-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 00-7-7zm0 9.5A2.5 2.5 0 1112 6.5a2.5 2.5 0 010 5z'/%3E%3C/svg%3E"); }
.advico-user     { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12a5 5 0 100-10 5 5 0 000 10zm0 2c-4.4 0-8 2.2-8 5v3h16v-3c0-2.8-3.6-5-8-5z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12a5 5 0 100-10 5 5 0 000 10zm0 2c-4.4 0-8 2.2-8 5v3h16v-3c0-2.8-3.6-5-8-5z'/%3E%3C/svg%3E"); }

@media (max-width: 849px) { .adv-compte-cartes { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 549px) {
    .adv-compte-cartes { grid-template-columns: 1fr; }
    .adv-compte-hello  { flex-direction: column; align-items: flex-start; }
}

/* En-tête commun de l'espace client (bandeau + onglets) */
.adv-compte-entete { margin-bottom: 1.5rem; }
.adv-hello-txt { display: flex; flex-direction: column; }
.adv-hello-retour {
    align-self: flex-start; color: #fff; opacity: .8;
    font-size: 0.75rem; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 0.3125rem;
}
.adv-hello-retour::before { content: "\2039  "; }
.adv-hello-retour:hover { opacity: 1; color: #fff; }

.adv-compte-onglets {
    display: flex; gap: 0.25rem; margin-top: 0.75rem;
    border-bottom: 1px solid #e2dae9; overflow-x: auto; -webkit-overflow-scrolling: touch;
}
.adv-onglet {
    display: inline-flex; align-items: center; gap: 0.4375rem; white-space: nowrap;
    padding: 0.625rem 0.9375rem; color: #6f6b73; font-size: 0.875rem; font-weight: 500;
    border-bottom: 2px solid transparent; margin-bottom: -1px;
    transition: color .18s ease, border-color .18s ease;
}
.adv-onglet:hover { color: var(--fs-color-secondary, #813681); }
.adv-onglet.is-actif {
    color: var(--fs-color-primary, #47266d); font-weight: 600;
    border-bottom-color: var(--fs-color-primary, #47266d);
}
.adv-onglet-ico {
    width: 1.125rem; height: 1.125rem; flex: 0 0 1.125rem; background: currentColor;
    -webkit-mask-size: contain; mask-size: contain;
    -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
    -webkit-mask-position: center; mask-position: center;
}
.advico-home { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3L2 12h3v9h6v-6h2v6h6v-9h3L12 3z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3L2 12h3v9h6v-6h2v6h6v-9h3L12 3z'/%3E%3C/svg%3E"); }

@media (max-width: 549px) {
    .adv-onglet { padding: 0.625rem 0.6875rem; font-size: 0.8125rem; }
}

/* Détails du compte : informations à gauche, mot de passe à droite (dès la tablette) */
.woocommerce-EditAccountForm .adv-compte-infos > .clear { display: none; }
.woocommerce-EditAccountForm fieldset {
    margin: 0 0 1.25rem; padding: 1.25rem 1.375rem 0.75rem;
    border: 1px solid #e2dae9; border-radius: 4px; background: var(--adv-fond-gris, #F2F3F5);
}
.woocommerce-EditAccountForm fieldset legend {
    padding: 0; margin-bottom: 0.75rem; font-family: var(--adv-police-titres, Georgia, serif);
    font-size: 1.125rem; font-weight: 700; color: var(--fs-color-primary, #47266d);
}
.woocommerce-EditAccountForm fieldset .form-row:last-child { margin-bottom: 0; }

@media (min-width: 768px) {
    .woocommerce-EditAccountForm.edit-account {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        column-gap: 2rem;
        align-items: start;
    }
    .woocommerce-EditAccountForm.edit-account > .adv-compte-infos { grid-column: 1; }
    .woocommerce-EditAccountForm.edit-account > fieldset          { grid-column: 2; margin-bottom: 0; }
    .woocommerce-EditAccountForm.edit-account > .clear            { display: none; }
    /* Le bouton d'enregistrement passe sous les deux colonnes */
    .woocommerce-EditAccountForm.edit-account > p                 { grid-column: 1 / -1; margin-top: 1.5rem; }
    /* Prénom et nom côte à côte à l'intérieur de la colonne de gauche */
    .adv-compte-infos .form-row-first,
    .adv-compte-infos .form-row-last { float: left; width: 48%; }
    .adv-compte-infos .form-row-last { float: right; }
    .adv-compte-infos .clear         { display: block; clear: both; }
}

/* 11. Avis - Témoignages en mosaïque
--------------------------------------------------------------------------- */
/* Couleurs aussi posées sur .adv-avis (bloc de l'accueil, hors .adv-avis-zone) :
   sans elles, la pastille d'initiales y était blanche sur blanc. */
.adv-avis-zone,
.adv-avis {
    --adv-p: var(--fs-color-primary, #47266d);
    --adv-s: var(--fs-color-secondary, #813681);
    --adv-encre: #46424c;
}
.adv-avis-zone {
    max-width: var(--adv-largeur-site, 1440px); margin: 0 auto; padding: 0 15px;  /* meme retrait que les conteneurs Flatsome */
}

/* Mot d'introduction */
.adv-avis-intro {
    max-width: 760px; margin: 0 auto 56px; padding: 0 0 0 22px;
    border-left: 2px solid var(--fs-color-secondary, #813681);
    font-size: 16px; line-height: 1.72; color: #46424c;
}
.adv-avis-intro p:last-child { margin-bottom: 0; }

/* Titre de section */
.adv-avis-section {
    font-family: var(--adv-police-titres, Georgia, serif);
    font-size: 38px; font-weight: 700; line-height: 1.15; text-align: center;
    color: var(--adv-p); margin: 72px 0 0; letter-spacing: .01em;
}
.adv-avis-section::after {
    content: ""; display: block; width: 54px; height: 1px; margin: 20px auto 0;
    background: var(--adv-s);
}

/* Mosaïque : 3 colonnes, puis 2, puis 1 */
.adv-avis-mosaique { columns: 3; column-gap: 26px; margin: 44px 0 8px; }
@media (max-width: 1024px) { .adv-avis-mosaique { columns: 2; } }
@media (max-width: 640px)  { .adv-avis-mosaique { columns: 1; } }

/* ---- La carte : c'est elle qui porte la couleur ---- */
.adv-avis-carte {
    position: relative; overflow: hidden;
    break-inside: avoid; -webkit-column-break-inside: avoid; page-break-inside: avoid;
    display: inline-block; width: 100%;
    margin: 0 0 26px; padding: 30px 30px 22px;
    background: #fff;
    border: 1px solid rgba(71, 38, 109, .11);
    border-radius: 2px;
    box-shadow: rgba(0, 0, 0, 0.1) 0px 20px 25px -5px,
                rgba(0, 0, 0, 0.04) 0px 10px 10px -5px;
    transition: box-shadow .28s ease, transform .28s ease, border-color .28s ease;
}
/* Filet d'accent, dégradé vers la transparence */
.adv-avis-carte::before {
    content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px;
    background: linear-gradient(90deg, var(--adv-p) 0%, rgba(71, 38, 109, 0) 92%);
}
.adv-avis-carte.ton-secondaire::before {
    background: linear-gradient(90deg, var(--adv-s) 0%, rgba(129, 54, 129, 0) 92%);
}
.adv-avis-carte:hover {
    box-shadow: rgba(0, 0, 0, 0.14) 0px 26px 34px -6px,
                rgba(0, 0, 0, 0.06) 0px 12px 14px -6px;
    transform: translateY(-3px);
    border-color: rgba(71, 38, 109, .22);
}
.adv-avis-carte.ton-secondaire:hover { border-color: rgba(129, 54, 129, .26); }

/* Guillemet en filigrane */
.adv-avis-quote {
    position: absolute; top: 14px; right: 22px; pointer-events: none; user-select: none;
    font-family: var(--adv-police-titres, Georgia, serif);
    font-size: 86px; line-height: 1; color: var(--adv-p); opacity: .09;
}
.ton-secondaire .adv-avis-quote { color: var(--adv-s); }

/* Pastille : cercle plein + anneau fin décalé */
.adv-avis-tete { display: flex; align-items: center; margin-bottom: 18px; }
.adv-avis-avatar {
    position: relative; display: inline-flex; align-items: center; justify-content: center;
    width: 46px; height: 46px; flex: 0 0 46px; border-radius: 50%;
    background: var(--adv-p); color: #fff;
}
.ton-secondaire .adv-avis-avatar { background: var(--adv-s); }
.adv-avis-avatar::after {
    content: ""; position: absolute; inset: -4px; border-radius: 50%;
    border: 1px solid rgba(71, 38, 109, .26);
}
.ton-secondaire .adv-avis-avatar::after { border-color: rgba(129, 54, 129, .3); }
.adv-avis-ini {
    font-family: var(--adv-police-titres, Georgia, serif);
    font-size: 18px; font-weight: 700; letter-spacing: .06em; line-height: 1;
    /* Centrage optique : la boîte du texte réservait la place des
       jambages (descente de Newsreader), lettres ~2 px trop hautes.
       On ne garde que la hauteur des capitales ; l'espacement après la
       dernière lettre est compensé pour le centrage horizontal. */
    margin-right: -.06em;
    text-box: trim-both cap alphabetic;
}
@supports not (text-box: trim-both cap alphabetic) {
    .adv-avis-ini { padding-top: .23em; }
}
.adv-avis-ico {
    width: 22px; height: 22px; background: #fff;
    -webkit-mask-size: contain; mask-size: contain;
    -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
    -webkit-mask-position: center; mask-position: center;
}

/* ---- Le texte : une seule couleur, quelles que soient les classes d'origine ---- */
.adv-avis-texte {
    margin: 0; padding: 0; border: 0; background: none;
    font-size: 15px; line-height: 1.72; color: var(--adv-encre);
    font-style: normal; text-align: left;
}
.adv-avis-texte::before { content: none; }
.adv-avis-texte *,
.adv-avis-texte .boxContentTextRed,
.adv-avis-texte .boxContentTextGreen,
.adv-avis-texte .boxContentTextPurple,
.adv-avis-texte .boxContentTitle,
.adv-avis-texte .boxContentTitlePurple,
.adv-avis-texte .boxContentTitleRed,
.adv-avis-texte font { color: inherit; font-style: normal; }
.adv-avis-texte p,
.adv-avis-texte .textAlignJustify,
.adv-avis-texte .textAlignCenter { text-align: left; margin-bottom: 12px; }
.adv-avis-texte p:last-child { margin-bottom: 0; }
.adv-avis-texte strong, .adv-avis-texte b { font-weight: 600; color: inherit; }
/* Seuls les liens gardent une couleur : ils doivent rester repérables */
.adv-avis-texte a,
.adv-avis-texte a * { color: var(--adv-p); text-decoration: none; border-bottom: 1px solid rgba(71, 38, 109, .28); }
.ton-secondaire .adv-avis-texte a,
.ton-secondaire .adv-avis-texte a * { color: var(--adv-s); border-bottom-color: rgba(129, 54, 129, .3); }
.adv-avis-texte a:hover { border-bottom-color: currentColor; }
.adv-avis-texte img { max-width: 100%; height: auto; border-radius: 2px; margin: 10px 0; }

/* Signature */
.adv-avis-signature {
    display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
    margin-top: 22px; padding-top: 16px;
    border-top: 1px solid rgba(71, 38, 109, .10);
}
.adv-avis-pseudo {
    font-size: 12.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
    color: var(--adv-p);
}
.ton-secondaire .adv-avis-pseudo { color: var(--adv-s); }
.adv-avis-date { font-size: 12px; font-style: italic; color: #a29ca9; letter-spacing: .02em; }
/* Produit dont parle l'avis : sous la signature, lien vers la fiche */
.adv-avis-signature .adv-avis-prod { flex-basis: 100%; font-size: 12.5px; line-height: 1.5; color: #a29ca9; }
.adv-avis-prod a { color: var(--adv-p); text-decoration: underline; text-underline-offset: 2px; }
.adv-avis-prod a:hover { color: var(--adv-s); }

@media (max-width: 640px) {
    .adv-avis-zone    { padding: 0 15px; }
    .adv-avis-carte   { padding: 24px 22px 18px; }
    .adv-avis-section { font-size: 30px; margin-top: 52px; }
}

/* Résidus de mise en forme collés depuis un e-mail ou un traitement de texte :
   couleur, police et taille en dur sont neutralisés. Les liens gardent la leur. */
.adv-avis-texte *:not(a):not(a *) { color: inherit !important; }
.adv-avis-texte [style],
.adv-avis-texte font {
    font-family: inherit !important;
    font-size: inherit !important;
    background: none !important;
    letter-spacing: normal !important;
    text-indent: 0 !important;
}

/* 12. Pages - Colonne de droite (3 rubriques conservées)
--------------------------------------------------------------------------- */
.adv-rubriques { display: flex; flex-direction: column; gap: 14px; margin-bottom: 30px; }

.adv-rubrique {
    display: flex; align-items: flex-start; gap: 13px;
    padding: 16px 16px 15px; color: inherit; text-decoration: none;
    background: #fff; border: 1px solid rgba(71, 38, 109, .11); border-radius: 2px;
    border-left: 3px solid var(--fs-color-primary, #47266d);
    transition: box-shadow .24s ease, transform .24s ease, border-color .24s ease;
}
.adv-rubrique:nth-child(even) { border-left-color: var(--fs-color-secondary, #813681); }
.adv-rubrique:hover {
    box-shadow: rgba(0, 0, 0, .1) 0 20px 25px -5px, rgba(0, 0, 0, .04) 0 10px 10px -5px;
    transform: translateY(-2px);
    border-color: rgba(71, 38, 109, .22);
}
.adv-rubrique.is-actif { background: var(--adv-fond-gris, #F2F3F5); cursor: default; }

.adv-rubrique-ico {
    width: 22px; height: 22px; flex: 0 0 22px; margin-top: 2px;
    background: var(--fs-color-primary, #47266d);
    -webkit-mask-size: contain; mask-size: contain;
    -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
    -webkit-mask-position: center; mask-position: center;
}
.adv-rubrique:nth-child(even) .adv-rubrique-ico { background: var(--fs-color-secondary, #813681); }

.adv-rubrique-txt { display: flex; flex-direction: column; min-width: 0; }
.adv-rubrique-titre {
    font-family: var(--adv-police-titres, Georgia, serif);
    font-size: 20px; font-weight: 700; line-height: 1.2;
    color: var(--fs-color-primary, #47266d);
}
.adv-rubrique:nth-child(even) .adv-rubrique-titre { color: var(--fs-color-secondary, #813681); }
.adv-rubrique-extrait { margin-top: 5px; font-size: 14.5px; line-height: 1.5; color: #6f6b73; }

.advico-chemin { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18 4a3 3 0 00-2.83 4H9a3 3 0 000 6h6a1 1 0 010 2H8.83a3 3 0 100 2H15a3 3 0 000-6H9a1 1 0 010-2h6.17A3 3 0 1018 4zm0 2a1 1 0 110 2 1 1 0 010-2zM6 17a1 1 0 110 2 1 1 0 010-2z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18 4a3 3 0 00-2.83 4H9a3 3 0 000 6h6a1 1 0 010 2H8.83a3 3 0 100 2H15a3 3 0 000-6H9a1 1 0 010-2h6.17A3 3 0 1018 4zm0 2a1 1 0 110 2 1 1 0 010-2zM6 17a1 1 0 110 2 1 1 0 010-2z'/%3E%3C/svg%3E"); }
.advico-gemme  { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 3h10l4 6-9 12L3 9l4-6zm.6 2L5.2 8.6h3.2L9.6 5H7.6zm4 0l-1.2 3.6h3.2L12.4 5h-.8zm3 0l1.2 3.6h3.2L16.4 5h-1.8zM5.5 10.6L11 18l-2.3-7.4H5.5zm5.3 0L12 17.2l1.2-6.6h-2.4zm4.5 0L12.9 18l5.6-7.4h-3.2z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 3h10l4 6-9 12L3 9l4-6zm.6 2L5.2 8.6h3.2L9.6 5H7.6zm4 0l-1.2 3.6h3.2L12.4 5h-.8zm3 0l1.2 3.6h3.2L16.4 5h-1.8zM5.5 10.6L11 18l-2.3-7.4H5.5zm5.3 0L12 17.2l1.2-6.6h-2.4zm4.5 0L12.9 18l5.6-7.4h-3.2z'/%3E%3C/svg%3E"); }

@media (max-width: 849px) {
    .adv-rubriques { flex-direction: row; flex-wrap: wrap; margin-top: 34px; }
    .adv-rubrique  { flex: 1 1 260px; }
}
@media (max-width: 549px) { .adv-rubrique { flex: 1 1 100%; } }

/* Témoignages rattachés à une fiche produit ou à une page */
.adv-temoignages-lies { margin: 54px auto 10px; }
.adv-temoignages-lies .adv-avis-section { margin-top: 0; font-size: 30px; }
.adv-temoignages-lies .adv-avis-mosaique { margin-top: 32px; }

/* 13. WooCommerce - Avis produits sans étoiles
--------------------------------------------------------------------------- */
.star-rating,
.woocommerce-product-rating,
.comment-form-rating,
#respond .stars,
.woocommerce-review__rating,
.woocommerce-review-link { display: none !important; }

/* 14. Avis & témoignages - Signature anonyme
--------------------------------------------------------------------------- */
/* Un avis sans signature reste lisible mais ne prend pas la lumière :
   accent neutralisé, pastille grise, mention en retrait. */

/* --- Témoignages en mosaïque (CPT) --- */
.adv-avis-carte.est-anonyme::before {
    background: linear-gradient(90deg, rgba(70, 66, 76, .28) 0%, rgba(70, 66, 76, 0) 92%);
}
.adv-avis-carte.est-anonyme .adv-avis-quote  { color: #46424c; opacity: .06; }
.adv-avis-carte.est-anonyme .adv-avis-avatar { background: #cfcad4; }
.adv-avis-carte.est-anonyme .adv-avis-avatar::after { border-color: rgba(70, 66, 76, .16); }
.adv-avis-carte.est-anonyme:hover { border-color: rgba(71, 38, 109, .14); }
.adv-avis-pseudo.est-anonyme {
    font-weight: 500; letter-spacing: .08em; text-transform: none;
    font-style: italic; color: #a29ca9;
}

/* --- Avis produits (WooCommerce) --- */
.comment.adv-anonyme .woocommerce-review__author,
.comment.adv-anonyme .comment-text .meta strong,
li.adv-anonyme .woocommerce-review__author {
    font-weight: 500; font-style: italic; color: #a29ca9;
}

/* --- Teaser d'accueil --- */
.adv-avis-card.est-anonyme .adv-avis-author { font-style: italic; color: #a29ca9; }

/* 15. Pages - Titre visible (H1)
--------------------------------------------------------------------------- */
.adv-titre-page {
    font-family: var(--adv-police-titres, Georgia, serif);
    font-size: 40px; font-weight: 700; line-height: 1.12; letter-spacing: .01em;
    color: var(--fs-color-primary, #47266d);
    margin: 0 0 26px;
}
.adv-titre-page::after {
    content: ""; display: block; width: 54px; height: 1px; margin: 16px 0 0;
    background: var(--fs-color-secondary, #813681);
}
.adv-titre-rayon { margin-bottom: 22px; }

/* Pages construites en sections pleine largeur (Accueil, Les Avis…) : le titre
   est rendu hors conteneur, il faut lui redonner la largeur du site. */
.content-area > .adv-titre-page {
    max-width: var(--adv-largeur-site, 1440px);
    margin: 34px auto 26px;
    padding: 0 15px;
}

@media (max-width: 640px) {
    .adv-titre-page { font-size: 30px; margin-bottom: 20px; }
    .adv-titre-page::after { margin-top: 13px; }
}

/* Titre présent pour les lecteurs d'écran et les moteurs, invisible à l'œil
   (accueil : le slider tient déjà le rôle de titre visuel). */
.adv-titre-lecture {
    position: absolute; width: 1px; height: 1px; overflow: hidden;
    clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}

/* Le texte migré est justifié partout. Sur un écran de téléphone, la
   justification creuse des trous entre les mots et rend la lecture pénible :
   on repasse en drapeau sous 640 px. Les inline styles imposent !important. */
@media (max-width: 640px) {
    .page-inner [style*="justify"],       .page-inner .textAlignJustify,
    .content-area [style*="justify"],     .content-area .textAlignJustify,
    .woocommerce-Tabs-panel [style*="justify"], .woocommerce-Tabs-panel .textAlignJustify,
    .product-short-description [style*="justify"] {
        text-align: left !important;
    }
}

/* 16. Ateliers - Fiche d'un atelier
--------------------------------------------------------------------------- */
/* Bandeau date / horaire / lieu, sous le titre */
.adv-atelier-entete {
    display: flex; flex-wrap: wrap; gap: 10px 22px;
    margin: 0 0 26px; padding: 0 0 16px;
    border-bottom: 1px solid rgba(71, 38, 109, .12);
    font-size: 14px; line-height: 1.5;
}
.adv-atelier-entete > span { display: inline-flex; align-items: baseline; }
.adv-atelier-quand {
    font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
    color: var(--fs-color-primary, #47266d);
}
.adv-atelier-entete .adv-atelier-horaire,
.adv-atelier-entete .adv-atelier-lieu { color: #6f6a76; }
.adv-atelier-entete .adv-atelier-lieu::before {
    content: "·"; margin-right: 22px; color: #c9c3d1;
}

/* La date de mise en ligne n'a pas de sens pour un atelier : on retire la
   pastille de Flatsome et le pied de page « This entry was posted in ». */
.adv-atelier .entry-image .badge,
.adv-atelier .entry-meta { display: none; }

@media (max-width: 640px) {
    .adv-atelier-entete { gap: 6px 16px; font-size: 13px; }
    .adv-atelier-entete .adv-atelier-lieu::before { content: none; }
}
/* 20. Encarts - Newsletter et Séance en VISIO
--------------------------------------------------------------------------- */
/* L'encart ne porte plus son habillage : il n'est plus qu'un contenu. Le fond,
   le rayon et l'ombre viennent de « adv-ombre », posee sur la colonne Flatsome
   qui l'accueille — c'est la colonne qui fait la carte, pas une balise a nous. */
.adv-encart { border: 0; }
.adv-encart-titre {
    display: flex; align-items: center; gap: 10px;
    margin: 0; padding: 0;
    font-family: var(--adv-police-titres, Georgia, serif);
    font-size: 21px; font-weight: 700; line-height: 1.2;
    color: var(--fs-color-primary, #47266d);
}
.adv-encart-ico {
    width: 20px; height: 20px; flex: none;
    background: var(--fs-color-secondary, #813681);
    -webkit-mask-position: center;  mask-position: center;
    -webkit-mask-size: contain;     mask-size: contain;
    -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
}
.adv-encart-texte { padding: 10px 0 0; color: #46424c; line-height: 1.6; }
.adv-encart-texte p { margin: 0 0 10px; }
.adv-encart-texte p:last-child { margin-bottom: 0; }
/* L'image reprend toute la largeur de la colonne, marges internes comprises. */
.adv-encart-image { margin: 14px -24px 0; }
.adv-encart-image img { display: block; width: 100%; height: auto; }
.adv-encart-action { margin: 0; padding: 16px 0 0; }
.adv-encart-action .button { margin: 0; }

/* En colonne de droite : même gabarit que les rubriques voisines */
.adv-ombre.adv-encart { margin-bottom: 14px; }
.adv-encart.est-carte { margin-bottom: 14px; }
.adv-encart.est-carte .adv-encart-titre { font-size: 19px; }

/* Sur l'accueil : bandeau pleine largeur, texte et image côte à côte */
.adv-encart.est-bandeau {
    max-width: var(--adv-largeur-site, 1440px);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr;
    align-items: start;
}
@media (min-width: 850px) {
    .adv-encart-newsletter.est-bandeau {
        grid-template-columns: 1fr minmax(0, 320px);
        column-gap: 26px;
    }
    .adv-encart-newsletter.est-bandeau .adv-encart-titre,
    .adv-encart-newsletter.est-bandeau .adv-encart-texte,
    .adv-encart-newsletter.est-bandeau .adv-encart-action { grid-column: 1; }
    .adv-encart-newsletter.est-bandeau .adv-encart-image {
        grid-column: 2; grid-row: 1 / span 3; margin: 0; align-self: stretch;
    }
    .adv-encart-newsletter.est-bandeau .adv-encart-image img {
        height: 100%; object-fit: cover; border-radius: 0 4px 4px 0;
    }
}

/* 21. Avis - Sélecteur de thème
--------------------------------------------------------------------------- */
.adv-avis-filtres {
    display: flex; flex-wrap: wrap; gap: 10px;
    margin: 0 0 14px; padding: 0;
}
.adv-avis-filtre {
    display: inline-flex; align-items: center; gap: 8px;
    margin: 0; padding: 9px 16px;
    border: 1px solid rgba(71, 38, 109, .22);
    border-radius: 999px;
    background: #fff;
    font-size: 14px; font-weight: 600; line-height: 1.2;
    color: var(--fs-color-primary, #47266d);
    cursor: pointer;
    transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.adv-avis-filtre:hover { border-color: var(--fs-color-secondary, #813681); }
.adv-avis-filtre.is-actif {
    background: var(--fs-color-primary, #47266d);
    border-color: var(--fs-color-primary, #47266d);
    color: #fff;
}
.adv-avis-nb {
    font-size: 12px; font-weight: 700;
    padding: 1px 7px; border-radius: 999px;
    background: rgba(71, 38, 109, .09); color: inherit;
}
.adv-avis-filtre.is-actif .adv-avis-nb { background: rgba(255, 255, 255, .22); }

/* La carte est en « inline-block » pour la mosaïque : sans cette règle, le
   display l'emporte sur l'attribut hidden et le tri ne masquerait rien. */
.adv-avis-carte[hidden] { display: none !important; }

.adv-avis-compte {
    margin: 0 0 22px;
    font-size: 12.5px; font-style: italic; letter-spacing: .02em;
    color: #a29ca9;
}

/* « Plus d'avis » : sous la mosaïque, centré (affichage progressif 24 + 12) */
.adv-avis-plus-zone { text-align: center; margin: 28px 0 0; }
.adv-avis-plus-zone .adv-avis-plus { margin: 0; }
.adv-avis-plus[hidden] { display: none !important; }
.adv-avis-carte:focus { outline: none; }
/* Mosaïque rangée par le script (page des avis filtrée) : colonnes en flex,
   chaque carte placée dans la plus courte ; les colonnes CSS ne servent plus. */
.adv-avis-mosaique.adv-avis-js { columns: auto; display: flex; align-items: flex-start; gap: 26px; }
.adv-avis-mosaique.adv-avis-js .adv-avis-col { flex: 1 1 0; min-width: 0; }
.adv-avis-mosaique.adv-avis-js .adv-avis-carte { display: block; }

@media (max-width: 640px) {
    .adv-avis-filtres { gap: 8px; }
    .adv-avis-filtre { padding: 8px 13px; font-size: 13px; }
}

/* 22. Blog - Article
--------------------------------------------------------------------------- */
/* Une colonne, largeur de lecture limitée : au-delà, l'œil se perd en
   revenant à la ligne. Ni colonne latérale, ni partage, ni commentaires. */
.adv-article .entry-content,
.adv-article .entry-header-text { max-width: 760px; margin-left: auto; margin-right: auto; }
.adv-article .entry-content { font-size: 17px; line-height: 1.75; color: #46424c; }
.adv-article .entry-content p { margin: 0 0 20px; }

/* La date de mise en ligne suffit dans l'entête : pas de pastille sur l'image,
   pas de pied de page anglais « This entry was posted in ». */
.adv-article .entry-image .badge,
.adv-article .entry-meta { display: none; }
/* Un article qui porte une vidéo n'affiche pas aussi son image en tête. */
.adv-article-video .entry-image { display: none; }

.adv-article-video.adv-video-embed {
    position: relative; margin: 0 0 26px; padding-top: 56.25%;
    background: #0c0814; border-radius: 4px; overflow: hidden;
}
.adv-article-video.adv-video-embed iframe {
    position: absolute; inset: 0; width: 100%; height: 100%; border: 0;
}

.adv-article-chapo {
    font-size: 19px; line-height: 1.6; color: #2b2622;
}
.adv-article-citation {
    margin: 26px 0; padding: 2px 0 2px 22px;
    border-left: 2px solid var(--fs-color-secondary, #813681);
    font-style: italic; color: #5c5665;
}
.adv-article-citation p { margin: 0 0 6px; }
.adv-article-citation cite {
    display: block; font-style: normal;
    font-size: 12.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
    color: var(--fs-color-primary, #47266d);
}

/* Bandeau des articles d'exemple */
.adv-factice { margin: 0 0 24px; font-size: 13px; }
.adv-factice mark { padding: 4px 10px; border-radius: 3px; }

/* Pied d'article */
.adv-article-pied { margin-top: 40px; padding-top: 22px; border-top: 1px solid rgba(71, 38, 109, .12); }
.adv-article-cats-titre {
    display: block; margin-bottom: 10px;
    font-size: 12.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
    color: var(--fs-color-primary, #47266d);
}
.adv-article-cats ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 26px; padding: 0; list-style: none; }
.adv-article-cats a {
    display: inline-flex; align-items: center; gap: 7px;
    padding: 6px 13px; border: 1px solid rgba(71, 38, 109, .2); border-radius: 999px;
    font-size: 13.5px; color: var(--fs-color-primary, #47266d); text-decoration: none;
}
.adv-article-cats a:hover { border-color: var(--fs-color-secondary, #813681); }
.adv-article-nb { font-size: 11.5px; font-weight: 700; opacity: .6; }

.adv-article-prec { display: block; text-decoration: none; }
.adv-article-prec-label {
    display: block; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: #a29ca9;
}
.adv-article-prec-titre {
    display: block; margin-top: 3px;
    font-family: var(--adv-police-titres, Georgia, serif);
    font-size: 21px; line-height: 1.25; color: var(--fs-color-primary, #47266d);
}
.adv-article-prec-titre::before { content: "‹ "; }
.adv-article-prec:hover .adv-article-prec-titre { color: var(--fs-color-secondary, #813681); }

@media (max-width: 640px) {
    .adv-article .entry-content { font-size: 16px; }
    .adv-article-chapo { font-size: 17.5px; }
    .adv-article-prec-titre { font-size: 18px; }
}

/* 23. Formulaires Forminator
--------------------------------------------------------------------------- */
/* Forminator apporte ses propres styles, mais la remise à zéro des boutons de
   Flatsome vide le bouton d'envoi de son fond : il finissait en texte gris sur
   blanc. On lui rend l'allure des autres boutons du site, et on aligne les
   libellés sur l'échelle typographique des cases. */
.forminator-ui .forminator-button-submit {
    background: var(--fs-color-primary, #47266d) !important;
    border: 1px solid var(--fs-color-primary, #47266d) !important;
    color: #fff !important;
    min-height: 44px; padding: 0 26px; border-radius: 0;
    /* Forminator charge sa feuille APRES la notre : sans !important sa
       typographie reprend la main et le bouton ne ressemble plus aux autres. */
    font-size: 12px !important; font-weight: 700 !important;
    letter-spacing: .03em !important; text-transform: uppercase !important;
    transition: background .2s ease, border-color .2s ease;
}
.forminator-ui .forminator-button-submit:hover {
    background: var(--fs-color-secondary, #813681) !important;
    border-color: var(--fs-color-secondary, #813681) !important;
}
.forminator-ui .forminator-label {
    font-size: 13px !important; font-weight: 600 !important; color: #46424c !important;
    letter-spacing: .02em;
}
.forminator-ui .forminator-input:focus,
.forminator-ui .forminator-textarea:focus {
    border-color: var(--fs-color-secondary, #813681) !important;
    box-shadow: 0 0 0 2px rgba(129, 54, 129, .12) !important;
}
/* Mention RGPD : présente, lisible, mais elle ne prend pas le pas sur le formulaire. */
.forminator-ui .forminator-consent__label,
.forminator-ui .forminator-consent .forminator-checkbox__label {
    font-size: 12.5px; line-height: 1.55; color: #6f6a76;
}
.forminator-ui .forminator-consent__label a { color: var(--fs-color-primary, #47266d); }

/* 24. Lightbox - Fiche partenaire
--------------------------------------------------------------------------- */
/* Le logo d'un partenaire est large et bas de plafond : sans bride il occupe
   tout le haut de la fenetre et repousse le texte hors de vue. */
.adv-lb-image .adv-lien-logo,
.adv-lb-fiche-logo {
    max-height: 150px;
    width: auto;
    margin: 0 auto;
    display: block;
    object-fit: contain;
}
/* Bouton Flatsome, laisse tel quel : c'est le theme qui decide de sa taille et
   de sa typographie. On l'empeche seulement d'heriter du style de LIEN du pied
   de fenetre, qui le peignait en violet sur violet et lui collait un chevron. */
.adv-lb-page a.adv-lb-visiter,
.adv-lb-page a.adv-lb-visiter:hover { color: #fff; }
.adv-lb-page a.adv-lb-visiter::after { content: none; }

/* 25. Citation
--------------------------------------------------------------------------- */
/* La mise en page « Citation » de l'editeur prend la police alternative reglee
   dans le personnalisateur (Apparence > Personnaliser > Style > Typographie).
   Elle passe par la variable, pas par un nom de police en dur : changer le
   reglage suffit a changer les citations du site.
   Le reglage actuel — Caladea — n'existe qu'en italique : on le pose
   explicitement, la variable ne porte que la famille, jamais le style. */
/* Les avis et temoignages sont eux aussi balises en blockquote, mais ce ne
   sont pas des citations de mise en page : ils gardent la police du site. */
blockquote:not(.adv-avis-text):not(.adv-avis-texte) {
    font-family: var(--adv-police-alt, inherit);
    font-style: italic;
}

/* 19. Cases - Taille de texte commune
--------------------------------------------------------------------------- */
/* Le texte de contenu d'une case vaut 95 % du corps, quelle que soit la
   famille de cases : sommaires de rubrique, actualités, ateliers, liens
   partenaires, teasers d'accueil, icon-box. C'est la valeur retenue dans les
   icon-box du bandeau de réassurance ; elle fait ici référence pour tout le
   reste, de façon qu'une case ressemble à une case d'un bout à l'autre du site.
   Les TITRES et les petites étiquettes (date, « Lire ») gardent leur échelle
   propre : ils portent la hiérarchie, pas la lecture. */
.adv-som-extrait,
.adv-som-sous,
.adv-som-todo,
.adv-lien-desc,
.adv-video-desc,
.adv-teaser-sub {
    font-size: 95%;
}
/* Les icon-box du bandeau portent DÉJÀ leur 95 % en ligne, écrit dans le
   contenu du bloc : on ne le remet pas ici, sinon les deux se multiplieraient
   et ce texte-là finirait plus petit que les autres (17,3 px au lieu de 18,2). */

/* 26. Cases - Titres 15 % plus grands
--------------------------------------------------------------------------- */
/* Les titres des cases etaient trop discrets face a leur texte. Le rapport est
   ecrit tel quel, valeur d'origine multipliee par 1,15 : on lit d'ou l'on
   vient, et la hierarchie entre les familles de cases est conservee.
   Comme la section 19, ce bloc est place en fin de feuille : les tailles
   d'origine sont declarees plus haut et gagneraient a specificite egale. */
.adv-lien-title  { font-size: calc(18px * 1.15); }        /* 18   -> 20,7 px */
.adv-actu-title  { font-size: calc(20px * 1.15); }        /* 20   -> 23   px */
.adv-video-title { font-size: calc(18px * 1.15); }        /* aligne sur la case de lien */
.adv-som-title   { font-size: calc(1.3125rem * 1.15); }   /* 21   -> 24,2 px */

/* 27. Encart VISIO - « En savoir plus » et bloc en fenetre
--------------------------------------------------------------------------- */
/* Le texte entier tenait presque un ecran dans la colonne. Elle n'en garde que
   la premiere phrase ; la suite s'ouvre en lightbox. C'est un <button> et non
   un lien : il agit sur la page, il ne mene nulle part. Il porte les classes
   de bouton de Flatsome, c'est donc le theme qui lui donne son aspect. */

/* Dans la fenetre, l'encart n'est plus une carte : la fenetre est deja le
   cadre. On lui retire le sien pour ne pas empiler deux boites. */
.adv-lb-bloc { padding: 0 34px; }
.adv-lb-bloc .adv-encart {
    background: none; border: 0; border-radius: 0; box-shadow: none;
}
.adv-lb-bloc .adv-encart-titre,
.adv-lb-bloc .adv-encart-texte,
.adv-lb-bloc .adv-encart-action { padding-left: 0; padding-right: 0; }

/* 28. Boutique - Respiration avant le pied de page
--------------------------------------------------------------------------- */
/* La liste des produits collait au pied de page. La regle vise l'enveloppe de
   WooCommerce (.shop-container, ecrite par wrapper-start.php), et seulement sur
   les pages de liste : la boutique et les archives de categorie. Les fiches
   produit et le tunnel de commande gardent leur espacement propre. */
.woocommerce-shop .shop-container,
.tax-product_cat .shop-container {
    margin-bottom: 30px;
}

/* Meme respiration entre la description d'un rayon (ex. « Communications
   importantes ») et la grille des produits qui la suit : elles se touchaient. */
.tax-product_cat .term-description ~ .products {
    margin-top: 40px;
}

/* Le dernier maillon du fil : le produit ou l'on se trouve. En gras, sans
   lien — on y est deja. */
.adv-fil-produit {
    font-weight: 700;
    color: var(--fs-color-primary, #47266d);
}

/* Fiche produit : le fil d'Ariane est le premier element du conteneur, il se
   retrouvait colle sous la barre de menu. Meme respiration que celle laissee
   avant le pied de page. */
.single-product .product-container .container > .is-small,
.single-product .shop-container .container > .is-small {
    padding-top: 30px;
}

/* 29. Boutique - Categories de la colonne
--------------------------------------------------------------------------- */
/* Une ligne par categorie : vignette, nom, nombre de produits. Le tout est un
   lien entier, pour que la cible au doigt soit large sur mobile. */
.adv-cats { display: block; margin: 0 0 24px; }
.adv-cat {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 10px;
    border-radius: 6px;
    color: #46424c;
    text-decoration: none;
    transition: background .2s ease, color .2s ease;
}
.adv-cat + .adv-cat { margin-top: 2px; }
.adv-cat:hover,
.adv-cat.est-courante {
    background: rgba(71, 38, 109, .07);
    color: var(--fs-color-primary, #47266d);
}
.adv-cat.est-courante { font-weight: 700; }
.adv-cat-img {
    flex: none;
    width: 46px; height: 46px;
    border-radius: 6px;
    overflow: hidden;
    background: var(--adv-fond-gris, #F2F3F5);
}
.adv-cat-img img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
}
.adv-cat-nom { flex: 1 1 auto; font-size: 95%; line-height: 1.3; }

/* 30. Menu du bureau - Deroulant natif : rendre la hierarchie visible
--------------------------------------------------------------------------- */
/* Flatsome affichait tous les niveaux du deroulant a l'identique : 19,2 px,
   graisse 400, meme couleur, meme filet — « Individuelles » avait l'air d'etre
   au meme rang que « Munz Floor® ». Et l'entree ordinaire etait plus grosse
   que le titre de groupe (15,36 px) : la hierarchie marchait a l'envers.
   On ne touche pas a la mecanique du theme, seulement a la lecture. */

/* --- Ce qui vaut pour TOUS les deroulants ------------------------------- */
/* 17 px : entre le titre de groupe et la sous-entree, au lieu du corps du
   site qui faisait de ces liens du texte courant. */
.nav-dropdown.nav-dropdown-default > li > a {
    font-size: 17px;
    line-height: 1.35;
    padding-top: 8px;
    padding-bottom: 8px;
    /* Flatsome bloque le retour a la ligne pour dimensionner la boite sur le
       plus long libelle ; nos largeurs etant posees, un libelle long sortait
       du cadre au lieu de passer a la ligne. */
    white-space: normal;
}
/* Le gris du theme est semi-transparent (85 %), ce qui delave le libelle. Le
   site ne charge que les graisses 400 et 700 de Bricolage Grotesque : un poids
   500 retomberait sur 400 sans rien changer, et 700 mettrait ces entrees au
   rang des titres. On raffermit donc par la couleur. */
.nav-dropdown.nav-dropdown-default > li:not(.menu-item-has-children) > a {
    color: #3f3b45;
}
/* Une entree qui a des enfants n'est pas un lien parmi d'autres : c'est le
   titre de son groupe. Le filet la separait de ses propres enfants. */
.nav-dropdown > li.menu-item-has-children > a {
    font-weight: 700;
    color: var(--fs-color-primary, #47266d);
    border-bottom: 0;
    padding-bottom: 4px;
}

/* --- Deroulants fournis : deux colonnes egales -------------------------- */
/* Flatsome pose le deroulant en « display:table » : chaque entree devient une
   cellule dimensionnee sur son texte, d'ou des colonnes de 189, 160, 79 puis
   327 px. Deux colonnes egales, et un groupe n'est jamais coupe entre elles.
   Le seuil : au moins cinq entrees, ou au moins un sous-niveau. */
.nav-dropdown.nav-dropdown-default:has(> li.menu-item-has-children),
.nav-dropdown.nav-dropdown-default:has(> li:nth-child(5)) {
    display: block;
    width: 620px;
    column-count: 2;
    column-gap: 34px;
}
.nav-dropdown.nav-dropdown-default:has(> li.menu-item-has-children) > li,
.nav-dropdown.nav-dropdown-default:has(> li:nth-child(5)) > li {
    display: block;
    width: auto;
    break-inside: avoid;
    -webkit-column-break-inside: avoid;
}

/* --- Deroulants courts : une colonne, mais une largeur posee ------------ */
/* Quatre liens n'ont pas besoin de 620 px, cela ne ferait que du vide ; en
   revanche ils ne doivent plus se dimensionner sur leur plus long libelle. */
.nav-dropdown.nav-dropdown-default:not(:has(> li:nth-child(5))):not(:has(> li.menu-item-has-children)) {
    width: 320px;
}

/* --- Le troisieme niveau ------------------------------------------------ */
/* Il rentre sous son parent, et un filet l'y rattache. Le selecteur est
   volontairement long : Flatsome remet a zero le retrait de toute liste
   imbriquee par « .nav ul:not(.nav-dropdown) », plus specifique qu'un simple
   « .nav-dropdown .nav-column ». */
.nav-dropdown li ul.nav-column {
    margin: 0 0 6px 3px;
    padding: 0 0 2px 15px;
    border-left: 2px solid rgba(71, 38, 109, .13);
}
.nav-dropdown li ul.nav-column > li > a {
    font-size: 15.5px;
    line-height: 1.35;
    padding: 5px 0;
    color: #6f6a76;
    border-bottom: 0;
    /* Comme au niveau du dessus : sans cela « Resynchronisation energetique
       quantique » reste sur une ligne et sort de la colonne. */
    white-space: normal;
}
.nav-dropdown li ul.nav-column > li > a:hover {
    color: var(--fs-color-primary, #47266d);
}

/* Un peu d'air entre les groupes, sans allonger la boite. */
.nav-dropdown > li + li.menu-item-has-children { margin-top: 6px; }

/* 31. Utilitaire - Ombre de case
--------------------------------------------------------------------------- */
/* Classe a poser sur une colonne Flatsome, depuis le champ « Class » du
   constructeur, plutot que d'envelopper le contenu dans une balise a nous
   pour porter l'ombre. Elle habille la colonne elle-meme : fond blanc, meme
   rayon et meme ombre que les cases du site, et le meme soulevement au survol
   si l'on ajoute « adv-ombre-survol ».
   Usage : dans le constructeur, colonne > Class : adv-ombre */
.adv-ombre {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 6px 24px rgba(0, 0, 0, .08);
}
/* La colonne Flatsome porte deja 30 px de padding bas ; on lui donne le meme
   au-dessus et sur les cotes pour que le contenu ne touche pas l'ombre. */
.adv-ombre > .col-inner { padding: 22px 24px; }

.adv-ombre-survol {
    transition: transform .2s ease, box-shadow .2s ease;
}
.adv-ombre-survol:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 34px rgba(0, 0, 0, .14);
}

/* 32. Cases de conferences - Date et lieu en couleur secondaire
--------------------------------------------------------------------------- */
/* Sur une case de conference, la date et le lieu ne sont pas de la decoration :
   ce sont les deux informations que l'on cherche en premier. Elles prennent la
   couleur secondaire du site pour se detacher du texte courant.
   Volontairement limite aux ateliers : les cases d'actualites gardent leur
   ocre, elles n'annoncent pas un rendez-vous. */
.adevaya-ateliers .adv-actu-date {
    color: var(--fs-color-secondary, #813681);
}
.adevaya-ateliers .adv-atelier-meta,
.adevaya-ateliers .adv-atelier-meta .adv-atelier-horaire,
.adevaya-ateliers .adv-atelier-meta .adv-atelier-lieu {
    color: var(--fs-color-secondary, #813681);
}
/* Les pictogrammes suivent le texte qu'ils annoncent. */
.adevaya-ateliers .adv-atelier-meta span::before {
    background: var(--fs-color-secondary, #813681);
}

/* 33. Boutique - Description de categorie en points numerotes
--------------------------------------------------------------------------- */
/* Les huit « communications importantes » etaient un seul bloc de texte sans
   le moindre retour. Elles deviennent une liste numerotee : le numero sort du
   texte, chaque point respire, et les paragraphes perdus a la mise a plat sont
   rendus. */
.adv-cat-chapeau {
    margin: 0 0 18px;
    font-family: var(--adv-police-titres, Georgia, serif);
    font-size: 21px;
    font-weight: 700;
    color: var(--fs-color-primary, #47266d);
}
.adv-cat-points {
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: adv-point;
}
.adv-cat-points > li {
    counter-increment: adv-point;
    position: relative;
    margin: 0 0 22px;
    padding-left: 46px;
}
/* Le numero, pose dans une pastille : on retrouve d'un coup d'oeil le point
   dont on parle. */
.adv-cat-points > li::before {
    content: counter(adv-point);
    position: absolute;
    left: 0;
    top: 2px;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--fs-color-primary, #47266d);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    line-height: 30px;
    text-align: center;
}
.adv-cat-points > li > p { margin: 0 0 .7em; }
.adv-cat-points > li > p:last-child { margin-bottom: 0; }

@media (max-width: 549px) {
    .adv-cat-points > li { padding-left: 38px; }
    .adv-cat-points > li::before { width: 26px; height: 26px; line-height: 26px; font-size: 13px; }
}

/* 34. Avis - Lien « La suite » et arrivee sur l'avis vise
--------------------------------------------------------------------------- */
/* L'accueil ne montre qu'un extrait : quand le texte est coupe, « La suite »
   mene a l'avis entier, sur la fiche du produit concerne. */
.adv-avis-suite {
    white-space: nowrap;
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--fs-color-primary, #47266d);
    text-decoration: none;
    border-bottom: 0 !important;
}
.adv-avis-suite::after { content: " \203A"; }
.ton-secondaire .adv-avis-suite { color: var(--fs-color-secondary, #813681); }
.adv-avis-suite:hover { text-decoration: underline; }

/* L'avis vise par le lien se signale une seconde a l'arrivee, sans quoi on
   atterrit au milieu d'une liste sans savoir lequel on cherchait. */
.adv-avis-vise {
    animation: adv-avis-halo 2.4s ease-out 1;
    scroll-margin-top: 120px;
}
@keyframes adv-avis-halo {
    0%, 60% { box-shadow: 0 0 0 3px rgba(129, 54, 129, .35); }
    100%    { box-shadow: 0 0 0 3px rgba(129, 54, 129, 0); }
}


/* 35. Boutique - Rupture de stock en pastille discrete
*-----------------------------------------------------
   Flatsome pose une barre blanche pleine largeur au milieu de l'image
   (« RUPTURE DE STOCK », en gras). La cliente la trouve violente : on la
   remplace par une petite pastille en bas de l'image, et la fiche produit
   affiche « Momentanément indisponible » en gris plutot qu'en rouge. */
.product-small .out-of-stock-label,
.box-image .out-of-stock-label {
    top: auto;
    bottom: 10px;
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    width: auto;
    max-width: calc(100% - 20px);
    padding: .25em .85em;
    background: rgba(255, 255, 255, .92);
    color: #6a625a;
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    border-radius: 7px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .12);
    opacity: 1;
    line-height: 1.4;
}
/* Seulement l'image principale : sans :not(), la regle rendait visible
   l'image « au survol » (4e de couverture des livres) en permanence (05/10). */
.product-small.outofstock .box-image img:not(.show-on-hover) { opacity: .9; }
.single-product p.stock.out-of-stock {
    color: #6a625a;
    font-weight: 400;
    font-style: italic;
}

/* 36. Bannieres - Bande d'ambiance sous l'en-tete
*-----------------------------------------------------
   Rendue par functions.php 55. Hauteur volontairement contenue (« une
   bande pas trop large »), image en couverture, cadrage vertical choisi
   dans le champ de la page. */
.adv-banniere {
    width: 100%;
    height: 220px;
    margin-bottom: 10px;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}
.adv-banniere-top    { background-position: center top; }
.adv-banniere-bottom { background-position: center bottom; }
@media (max-width: 849px) { .adv-banniere { height: 150px; } }
@media (max-width: 549px) { .adv-banniere { height: 110px; } }

/* 37. Home - Cartes « Explorer » avec extrait de banniere
*-----------------------------------------------------
   Quand la page visee a une banniere d'ambiance (cf. 36), la carte la
   montre en tete a la place du pictogramme : le visiteur retrouve la meme
   image en arrivant sur la page. */
.adv-teaser.a-image { padding-top: 0; overflow: hidden; }
.adv-teaser-img {
    display: block;
    width: calc(100% + 2.4rem);
    margin: 0 -1.2rem 1rem;
    height: 96px;
    overflow: hidden;
}
.adv-teaser-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.adv-teaser.a-image:hover .adv-teaser-img img { transform: scale(1.04); }

/* 38. Home - Actualites en carrousel
*-----------------------------------------------------
   Le shortcode [adevaya_actualites slider="1"] rend un « row-slider »
   Flatsome : chaque carte est une cellule Flickity. On garde la gouttiere
   de la grille et on laisse de la place aux points de navigation. */
.adevaya-actualites-slider { padding-bottom: 30px; }
.adevaya-actualites-slider .col { padding-bottom: 0; }
.adevaya-actualites-slider .flickity-page-dots { bottom: 0; }
.adevaya-actualites-slider .flickity-prev-next-button { opacity: .9; }

/* 39. YoniToy - Boutons boutique / retour, lien depuis le rayon
*-----------------------------------------------------*/
.adv-yoni-cta {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    justify-content: center;
    margin: 2.25rem 0 .5rem;
    padding-top: 1.5rem;
    border-top: 1px solid #e2dae9;
}
.adv-yoni-cta .button { margin: 0; }
.adv-yoni-lien { margin: 0 0 1rem; font-size: .95rem; }
.adv-yoni-lien a { font-weight: 700; color: #813681; }
.adv-yoni-lien a::after { content: " →"; }

/* 40. En-tete - Icone de recherche lisible sur le fond clair
*-----------------------------------------------------
   Les icones de l'en-tete sont blanches (fond image sombre a droite),
   mais la loupe est a gauche, sur la zone claire du bandeau : elle
   disparaissait. On lui donne la couleur primaire et un disque clair. */
.header-main .header-nav-main .header-search > a.nav-top-link,
.header-main .header-nav-main .header-search > a.nav-top-link .icon-search {
    /* !important : Flatsome écrit la couleur des icônes d'en-tête dans une
       feuille inline générée après la nôtre, à partir du réglage
       « header_icons_color » (blanc). Selecteur limite au lien du menu
       (« > a ») : la loupe du bouton « valider », dans le champ deroulant,
       ne doit PAS prendre cette couleur (elle serait violet sur violet). */
    color: #47266d !important;
}
.header-main .header-nav-main .header-search .searchform .submit-button,
.header-main .header-nav-main .header-search .searchform .submit-button .icon-search,
.header-main .header-nav-main .header-search .searchform button[type="submit"] i {
    color: #fff !important;
}
.header-main .header-nav-main .header-search a.nav-top-link,
.stuck .header-main .header-nav-main .header-search a.nav-top-link {
    /* disque OPAQUE : quel que soit le fond derriere (image claire, bandeau
       violet du menu en mode collant), la loupe reste lisible */
    background: #fff;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .12);
}
/* Survol et menu deroulant ouvert : le fond reste clair, l'ICONE passe en
   couleur secondaire. Flatsome force le blanc du reglage « couleur des
   icones au survol » sur le <i> lui-meme : on vise donc aussi l'icone. */
.header-main .header-nav-main .header-search a.nav-top-link:hover,
.header-main .header-nav-main .header-search:hover > a.nav-top-link,
.header-main .header-nav-main .header-search.active > a.nav-top-link,
.header-main .header-nav-main .header-search a.nav-top-link:hover .icon-search,
.header-main .header-nav-main .header-search:hover > a.nav-top-link .icon-search,
.header-main .header-nav-main .header-search.active > a.nav-top-link .icon-search,
.header-main .header-nav-main .header-search a.nav-top-link[aria-expanded="true"] .icon-search {
    background: #fff;
    color: #813681 !important;
}
.header-main .header-nav-main .header-search a.nav-top-link:hover .icon-search,
.header-main .header-nav-main .header-search:hover > a.nav-top-link .icon-search,
.header-main .header-nav-main .header-search.active > a.nav-top-link .icon-search,
.header-main .header-nav-main .header-search a.nav-top-link[aria-expanded="true"] .icon-search {
    background: transparent;
}

/* 41. Utilitaire - .radius-light : coins arrondis 7 px sur le fond d'une section
*-----------------------------------------------------
   A poser dans le champ « Classe » d'une section du constructeur
   ([section class="radius-light" ...]). Flatsome ecrit la couleur de fond
   sur la section elle-meme (#section_xxx) et une eventuelle image de fond
   dans l'enfant .section-bg : les deux recoivent le rayon. */
.section.radius-light,
.section.radius-light > .section-bg,
.row.radius-light,
.row.radius-light > .row-bg,
.col.radius-light > .col-inner {
    border-radius: 7px;
}
.section.radius-light > .section-bg,
.row.radius-light > .row-bg {
    overflow: hidden;   /* une video ou une image de fond suit le rayon */
}

/* 42. Boutique - Rayons en cases « bounce » avec ombre portee
*-----------------------------------------------------
   Page Boutique (functions.php 57a) : les cinq rayons dans le meme bloc que
   « Nos produits » sur l'accueil, avec en plus l'ombre de case du site et
   le soulevement au survol (memes valeurs que .adv-ombre, section 31). */
.adv-rayons-boutique { margin: 0 0 30px; }
.adv-rayons-boutique .box-category {
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 6px 24px rgba(0, 0, 0, .08);
    transition: transform .2s ease, box-shadow .2s ease;
}
.adv-rayons-boutique .box-category:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 34px rgba(0, 0, 0, .14);
}
.adv-rayons-boutique .col { padding-bottom: 30px; }

/* 43. Rayons « bounce » - Fond du texte blanc a 85 % au repos
*-----------------------------------------------------
   Flatsome laisse le bloc de texte des cases « bounce » transparent au repos
   et ne le blanchit qu'au survol. Sur les rayons (accueil « Nos produits »
   et page Boutique), le fond est blanc a 85 % des le repos ; le survol
   garde le blanc plein de Flatsome. */
.box-category.box-bounce .box-text {
    background-color: rgba(255, 255, 255, .85);
}

/* 44. Rayons « bounce » - Cases toutes de la meme hauteur
*-----------------------------------------------------
   Les images ont deja la meme hauteur (image_height="120%"), mais un titre
   sur deux lignes (« Oeufs de Yoni - Lithotherapie intime ») rendait sa case
   plus haute que les autres. La rangee Flatsome est deja en flex : on fait
   descendre cette hauteur jusqu'a la case, et le bloc de texte occupe ce qui
   reste, titre centre verticalement. */
/* Structure Flatsome : .col > .col-inner > a (sans classe) > .box. Chaque
   maillon passe en flex colonne pour transmettre la hauteur de la rangee. */
/* Le :has() vise la structure EXACTE (.col > .col-inner > a > .box) et non
   un descendant quelconque : sinon la grande colonne de contenu de la
   boutique, qui contient ces cases, passait elle aussi en flex et posait le
   bandeau de reassurance a cote des rayons. */
.col:has(> .col-inner > * > .box-category.box-bounce) { display: flex; }
.col:has(> .col-inner > * > .box-category.box-bounce) > .col-inner {
    display: flex;
    flex-direction: column;
    width: 100%;
}
.col:has(> .col-inner > * > .box-category.box-bounce) > .col-inner > *:has(> .box-category.box-bounce) {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
}
.box-category.box-bounce {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    width: 100%;
}
/* En colonne flex, .box-image ne s'etirait pas en largeur (0 px) et son
   padding-top en % s'effondrait avec lui : largeur forcee a 100 %. */
.box-category.box-bounce { align-items: stretch; }
.box-category.box-bounce > .box-image,
.box-category.box-bounce > .box-text { width: 100%; }
.box-category.box-bounce .box-image { flex: 0 0 auto; }
.box-category.box-bounce .box-text {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
/* Navigateurs sans :has() : au moins deux lignes reservees au titre */
.box-category.box-bounce .box-text .header-title { min-height: 2.6em; }

/* 45. Videos - Pastille du numero (cases, fenetre, page)
*-----------------------------------------------------
   Rendue par functions.php 59. Sur la case : posee sur le visuel, coin haut
   gauche. En ligne : devant le titre (fenetre video, page de la video). */
/* Puce en couleur secondaire (essai du 15/09), texte blanc, coins 7 px. */
.adv-video-num {
    display: inline-flex;
    align-items: baseline;
    gap: .25em;
    padding: .2em .65em;
    border-radius: 7px;
    background: var(--fs-color-secondary, #813681);
    color: #fff;
    font-family: var(--adv-police-nav, sans-serif);
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .03em;
    line-height: 1.4;
    white-space: nowrap;
}
.adv-video-num-lib { font-size: .8em; font-weight: 600; opacity: .85; }
/* Sur la case : deux colonnes. A gauche, une colonne de largeur fixe
   reservee au numero (meme quand il manque : les titres restent alignes) ;
   a droite, le titre. */
/* Largeur de la colonne = celle de la puce « N° 999 » mesuree a cette
   taille (58 px a .82rem, soit 3,63rem) + une marge : 3,75rem. Toutes les
   puces s'etirent a cette largeur, texte centre, trois chiffres compris. */
.adv-video-title {
    display: grid;
    grid-template-columns: 3.75rem 1fr;
    column-gap: .6em;
    align-items: start;
}
.adv-video-num-titre {
    font-size: .82rem;
    padding: .2em .4em;
    justify-self: stretch;
    justify-content: center;
    margin-top: .2em;
}
.adv-video-num-titre.est-vide { visibility: hidden; }
/* Fenetre video et page de la video : devant le titre. */
.adv-video-num-inline {
    vertical-align: .22em;
    margin-right: .55em;
    font-size: .7em;
}

/* 46. Videos - Filtre par categorie (page des videos)
*-----------------------------------------------------
   Memes boutons que le selecteur des avis (section 21) : pastilles a
   bord violet, pleine quand active, compteur dans une bulle. */
.adv-videos-filtres {
    display: flex; flex-wrap: wrap; gap: 10px;
    margin: 0 0 14px; padding: 0;
}
.adv-videos-filtre {
    display: inline-flex; align-items: center; gap: 8px;
    margin: 0; padding: 9px 16px;
    border: 1px solid rgba(71, 38, 109, .22);
    border-radius: 999px;
    background: #fff;
    font-size: 14px; font-weight: 600; line-height: 1.2;
    color: var(--fs-color-primary, #47266d);
    cursor: pointer;
    transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.adv-videos-filtre:hover { border-color: var(--fs-color-secondary, #813681); }
.adv-videos-filtre.is-actif {
    background: var(--fs-color-primary, #47266d);
    border-color: var(--fs-color-primary, #47266d);
    color: #fff;
}
.adv-videos-nb {
    font-size: 12px; font-weight: 700;
    padding: 1px 7px; border-radius: 999px;
    background: rgba(71, 38, 109, .09); color: inherit;
}
.adv-videos-filtre.is-actif .adv-videos-nb { background: rgba(255, 255, 255, .22); }
.adv-video-col[hidden] { display: none !important; }
.adv-videos-compte {
    margin: 0 0 22px;
    font-size: 12.5px; font-style: italic; letter-spacing: .02em;
    color: #a29ca9;
}
@media (max-width: 640px) {
    .adv-videos-filtres { gap: 8px; }
    .adv-videos-filtre { padding: 8px 13px; font-size: 13px; }
}

/* 47. Videos - Liste deroulante + accordeon des categories
*-----------------------------------------------------
   Quatorze categories : la liste deroulante est la commande principale,
   les puces (section 46) restent disponibles dans un accordeon. */
/* Grille : « Catégorie » + liste sur la premiere ligne, le bouton
   « Voir toutes les categories » seul sur la ligne suivante. */
.adv-videos-barre {
    display: grid;
    grid-template-columns: max-content minmax(0, 460px);
    justify-content: start;   /* la colonne du libelle ne s'etire pas */
    align-items: center;
    gap: 8px 14px;
    margin: 0 0 6px;
}
.adv-videos-select-lib {
    margin: 0;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--fs-color-primary, #47266d);
}
.adv-videos-select {
    width: 100%;
    margin: 0;
    padding: 9px 40px 9px 14px;
    border: 1px solid rgba(71, 38, 109, .22);
    border-radius: 7px;
    background-color: #fff;
    box-shadow: none;
    font-size: 14px;
    font-weight: 600;
    color: var(--fs-color-primary, #47266d);
    cursor: pointer;
}
.adv-videos-select:focus { border-color: var(--fs-color-secondary, #813681); outline: 0; }
.adv-videos-toggle-ligne { margin: 0 0 12px; }
.adv-videos-toggle {
    margin: 0;
    padding: 6px 10px 6px 0;
    border: 0;
    border-radius: 7px;
    background: transparent;
    box-shadow: none;
    font-size: .9rem;
    font-weight: 600;
    letter-spacing: .02em;
    text-transform: none;
    color: var(--fs-color-secondary, #813681);
    cursor: pointer;
}
.adv-videos-toggle::after { content: " \25BE"; }           /* petit triangle vers le bas */
.adv-videos-toggle.is-ouvert::after { content: " \25B4"; } /* vers le haut, accordeon ouvert */
.adv-videos-toggle:hover { background: var(--adv-fond-gris, #F2F3F5); }
.adv-videos-filtres[hidden] { display: none !important; }
.adv-videos-filtres {
    padding: 14px;
    margin-bottom: 14px;
    border-radius: 7px;
    background: var(--adv-fond-gris, #F2F3F5);
}
@media (max-width: 640px) {
    .adv-videos-barre { grid-template-columns: 1fr; }
}

/* 48. Videos - Puces de categories dans la fenetre video
*-----------------------------------------------------
   Sous le titre de la fenetre : les categories de la video, memes puces
   que le filtre (section 46) en plus petit ; un clic ouvre la page des
   videos filtree sur la categorie. */
.adv-lb-cats {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 8px;
    margin: 0 64px 14px 24px;
}
.adv-lb-cat {
    display: inline-flex;
    align-items: center;
    padding: 5px 11px;
    border: 1px solid rgba(71, 38, 109, .22);
    border-radius: 999px;
    background: #fff;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    color: var(--fs-color-primary, #47266d);
    text-decoration: none;
    transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.adv-lb-cat:hover {
    background: var(--fs-color-primary, #47266d);
    border-color: var(--fs-color-primary, #47266d);
    color: #fff;
}


/* 49. Fiche produit - Avis et temoignages reunis, formulaire d'avis
*-----------------------------------------------------
   Sous la fiche : avis du produit puis temoignages lies, dans la mosaique
   de la page « Les Avis ». Au-dela de 6 cartes, la suite est repliee et le
   bouton « Lire tous les avis » la deplie. ATTENTION : le 6 est aussi la
   constante ADV_AVIS_VISIBLES (functions.php 61) ; n+7 = 6 visibles. */
.adv-fiche-avis { scroll-margin-top: 120px; }
.adv-fiche-avis .adv-avis-mosaique.est-replie > .adv-avis-carte:nth-child(n+7) { display: none; }
.adv-fiche-avis .adv-avis-nb-titre { font-weight: 400; opacity: .55; }
.adv-fiche-avis .adv-avis-cta { margin-top: 1.4rem; margin-bottom: 0; }
.adv-fiche-avis .adv-avis-cta .button { margin-bottom: 0; }
.adv-avis-carte .adv-avis-texte p:last-child { margin-bottom: 0; }

.adv-avis-merci {
    max-width: 760px;
    margin: 1.4rem auto 0;
    padding: 14px 18px;
    border-left: 3px solid var(--fs-color-secondary, #813681);
    border-radius: 7px;
    background: var(--adv-fond-gris, #F2F3F5);
    text-align: center;
}

.adv-avis-form[hidden] { display: none; }
.adv-avis-form {
    max-width: 760px;
    margin: 1.6rem auto 0;
    padding: 26px 28px 12px;
    border-radius: 7px;
    background: var(--adv-fond-gris, #F2F3F5);
}
.adv-avis-form #respond { margin: 0; padding: 0; background: none; }
.adv-avis-form .comment-reply-title { margin: 0 0 .4em; font-size: 1.25em; }
.adv-avis-form .comment-notes { font-size: .9em; opacity: .8; }
.adv-avis-form .comment-form { display: grid; grid-template-columns: 1fr 1fr; column-gap: 20px; }
.adv-avis-form .comment-form > * { grid-column: 1 / -1; margin-bottom: .6em; }
.adv-avis-form .comment-form > .comment-form-author { grid-column: 1; }
.adv-avis-form .comment-form > .comment-form-email  { grid-column: 2; }
.adv-avis-form textarea, .adv-avis-form input[type="text"], .adv-avis-form input[type="email"] { background: #fff; }
@media (max-width: 640px) {
    .adv-avis-form { padding: 20px 18px 8px; }
    .adv-avis-form .comment-form { grid-template-columns: 1fr; }
    .adv-avis-form .comment-form > .comment-form-author,
    .adv-avis-form .comment-form > .comment-form-email { grid-column: 1; }
}


/* 50. Videos - Une video dans une page ([adevaya_video])
*-----------------------------------------------------
   Le lecteur reprend .adv-video-embed (section 2) ; dessous, la pastille
   du numero et le titre, lien vers la page de la video. */
.adv-video-page { margin: 1.8em 0; }
.adv-video-page-titre { margin-top: .7em; font-weight: 600; line-height: 1.35; }
.adv-video-page-titre a { color: inherit; }
.adv-video-page-titre a:hover { color: var(--fs-color-secondary, #813681); }
.adv-video-absente {
    padding: 10px 14px;
    border: 1px dashed #c9c2d3;
    border-radius: 7px;
    font-size: .9em;
    color: #6b6473;
}

/* Page d'une video : le lecteur remplace l'image mise en avant. */
.adv-page-video .entry-image { display: none; }
.adv-page-video-lecteur { margin: 0 0 1.8em; }
.adv-page-video-retour { margin-top: 2em; text-align: center; }


/* 51. WooCommerce - Boutons des blocs Panier et Commande en boutons Flatsome
*-----------------------------------------------------
   Le panier et la commande sont des blocs WooCommerce : leurs boutons
   (« Valider la commande », « Commander », « Appliquer ») gardaient le style
   WordPress par défaut, fond presque noir, et au survol la couleur des liens
   de Flatsome les passait en violet sur noir. Ils reprennent ici la forme et
   les couleurs d'un .button.alt de Flatsome (valeurs du thème, en em) :
   fond violet secondaire, texte blanc en capitales, assombri au survol. */
.wc-block-components-button:not(.is-link) {
    background-color: var(--fs-color-secondary, #813681);
    color: #fff;
    border: 1px solid transparent;
    border-radius: 0;
    font-family: inherit;
    /* Taille fixée sur la page (rem) et non sur le bloc : le formulaire de
       commande WooCommerce a un texte plus petit, qui réduisait le bouton
       « Commander » d'un tiers. .97 × 1.2rem = taille d'un .button Flatsome. */
    font-size: calc(.97 * 1.2rem);
    font-weight: bolder;
    letter-spacing: .03em;
    text-transform: uppercase;
    line-height: 2.4em;
    min-height: 2.5em;
    padding: 0 1.2em;
    box-shadow: none;
    text-decoration: none;
    transition: transform .3s, border .3s, background .3s, box-shadow .3s, opacity .3s, color .3s;
}
.wc-block-components-button:not(.is-link):hover,
.wc-block-components-button:not(.is-link):focus,
.wc-block-components-button:not(.is-link):active {
    background-color: var(--fs-color-secondary, #813681);
    color: #fff;
    box-shadow: inset 0 0 0 100px rgba(0, 0, 0, .2);
    outline: none;
}
.wc-block-components-button:not(.is-link) .wc-block-components-button__text,
.wc-block-components-checkout-place-order-button__text {
    color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit;
}
/* Gros boutons de validation (panier, commande) : pleine largeur, comme le
   bouton de commande du panier classique Flatsome. */
/* (sélecteurs renforcés : ils doivent l'emporter sur la règle commune ci-dessus) */
.wc-block-components-button:not(.is-link).wc-block-cart__submit-button,
.wc-block-components-button:not(.is-link).wc-block-components-checkout-place-order-button {
    width: 100%; min-height: 2.9em; margin-bottom: 0;
    /* Colonne étroite : le libellé peut passer sur deux lignes ; interligne
       de texte et marge verticale plutôt que l'interligne d'un bouton à une
       ligne (2.4em), qui doublait la hauteur. Sur une ligne : même hauteur. */
    line-height: 1.3; padding: .8em 1.2em;
}


/* 52. YoniToy - Univers sur fond sombre (pages de l'univers + rayon)
*-----------------------------------------------------
   Essai du 01/10/2026, version 2 (« plus classe ») — functions.php section 64
   pose les classes, l'image et l'en-tête. Esprit maison de luxe : grande
   image d'ouverture (logo + signature), puis noir profond, beaucoup d'air,
   typographie de magazine (Newsreader fin), filets or très fins, aucun
   cadre. En-tête, menu et pied de page passent en sombre sur ces pages.
   Tout est rangé sous body.adv-univers-yonitoy : rien ne déborde ailleurs. */
body.adv-univers-yonitoy {
    --yoni-nuit: #0b090c;
    --yoni-nuit-2: #120e13;
    --yoni-ivoire: #f1ebe4;
    --yoni-texte: #ebe5e0;
    --yoni-doux: #c3bbc0;
    --yoni-or: #c2a26a;
    --yoni-or-clair: #e2cb98;
    --yoni-filet: rgba(194, 162, 106, .38);
    --yoni-serif: Newsreader, Georgia, "Times New Roman", serif;            /* titres, signature, intitulés */
    --yoni-texte-police: Literata, Georgia, "Times New Roman", serif;        /* texte courant (05/10 : plus lisible que Newsreader 300) */
    /* Transparent : la photo de la page est sur le calque ::before. */
    background: transparent;
}
/* v3 : photo de la page en fond, fixe ; texte blanc dessus.
   Jeu de lumière noire commun à toutes les photos (raccord des fonds) :
   vignette (lumière au centre, noir vers les bords), voile prune-noir qui
   harmonise des photos de tons différents, ombre en haut et en bas. */
body.adv-univers-yonitoy {
    --yoni-ombre:
        radial-gradient(ellipse 110% 80% at 50% 38%, rgba(11, 9, 12, .42) 0%, rgba(11, 9, 12, .64) 52%, rgba(11, 9, 12, .94) 100%),
        linear-gradient(180deg, rgba(11, 9, 12, .55) 0%, rgba(11, 9, 12, .10) 28%, rgba(11, 9, 12, .20) 62%, rgba(11, 9, 12, .80) 100%),
        linear-gradient(0deg, rgba(34, 16, 40, .38), rgba(34, 16, 40, .38));
}
body.adv-univers-yonitoy::before {
    content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
    background:
        var(--yoni-ombre),
        var(--adv-yoni-page, none) center / cover no-repeat,
        var(--yoni-nuit);
}
body.adv-univers-yonitoy #main { text-shadow: 0 1px 12px rgba(0, 0, 0, .55); }
body.adv-univers-yonitoy #main :is(.button, mark, img) { text-shadow: none; }
body.adv-univers-yonitoy #wrapper,
body.adv-univers-yonitoy #main,
body.adv-univers-yonitoy .page-wrapper,
body.adv-univers-yonitoy .shop-page-title,
body.adv-univers-yonitoy .category-page-row { background: transparent; }

/* --- En-tête, menu, pied de page : sombres --- */
body.adv-univers-yonitoy .header-bg-image { background-image: none !important; }
body.adv-univers-yonitoy .header-bg-color,
body.adv-univers-yonitoy .header-main { background-color: var(--yoni-nuit) !important; }
body.adv-univers-yonitoy .header-bottom {
    background-color: var(--yoni-nuit) !important;
    border-top: 1px solid rgba(194, 162, 106, .18); border-bottom: 1px solid rgba(194, 162, 106, .18);
}
body.adv-univers-yonitoy .header-bottom .nav > li > a { color: var(--yoni-texte) !important; letter-spacing: .14em; font-weight: 400; }
body.adv-univers-yonitoy .header-bottom .nav > li.active > a,
body.adv-univers-yonitoy .header-bottom .nav > li > a:hover { color: var(--yoni-or-clair) !important; }
body.adv-univers-yonitoy #logo img { filter: brightness(0) invert(.93) sepia(.15); }
body.adv-univers-yonitoy .header-main :is(.nav > li > a, .cart-icon strong, .icon-search) { color: var(--yoni-texte) !important; }
body.adv-univers-yonitoy .header-main .cart-icon strong { border-color: var(--yoni-texte) !important; }
body.adv-univers-yonitoy .adv-footer-section { background: var(--yoni-nuit-2); border-top: 1px solid rgba(194, 162, 106, .2); }
body.adv-univers-yonitoy .adv-footer-section :is(h1, h2, h3, h4, .adv-footer-title) { color: var(--yoni-ivoire); }
body.adv-univers-yonitoy .adv-footer-section,
body.adv-univers-yonitoy .adv-footer-section :is(p, li, a, span) { color: var(--yoni-doux); }
body.adv-univers-yonitoy .adv-footer-section a:hover { color: var(--yoni-or-clair); }
body.adv-univers-yonitoy .adv-footer-section img { filter: brightness(0) invert(.85) sepia(.15); }
body.adv-univers-yonitoy .absolute-footer { background: #070608 !important; color: var(--yoni-doux); }

/* --- Mise en page : sans colonne latérale, contenu centré --- */
body.adv-univers-yonitoy .page-right-sidebar > .row > .large-3,
body.adv-univers-yonitoy .category-page-row > .large-3 { display: none; }
body.adv-univers-yonitoy .page-right-sidebar > .row > .large-9,
body.adv-univers-yonitoy .category-page-row > .large-9 { flex-basis: 100%; max-width: 100%; border: 0; }
body.adv-univers-yonitoy .page-right-sidebar > .row > .large-9::after,
body.adv-univers-yonitoy .col-divided { border: 0 !important; }
body.adv-univers-yonitoy .page-inner,
body.adv-univers-yonitoy .category-page-row > .large-9 > .shop-container { max-width: 1120px; margin: 0 auto 30px; } /* 30 px avant le pied de page, comme la section 28 */
body.adv-univers-yonitoy .page-inner > :is(p, h2, h3, h4, ul, ol, blockquote, .adv-yoni-cta, .yoni-bloc),
body.adv-univers-yonitoy .term-description { max-width: 760px; margin-left: auto; margin-right: auto; }
/* Intertitres centrés ; sur la page YoniToy®, l'introduction aussi, en italique. */
body.adv-univers-yonitoy .page-inner > :is(h2, h3) { text-align: center; }
body.adv-yoni-accueil.page .page-inner > .adv-yoni-entete + p,
body.adv-yoni-accueil.page .page-inner > .adv-titre-page + .is-divider + p,
body.adv-yoni-accueil.page .page-inner > p:first-of-type {
    text-align: center; font-style: italic; font-size: 1.2em; color: var(--yoni-ivoire); margin-bottom: 60px;
}

/* --- Typographie --- */
body.adv-univers-yonitoy #main {
    color: var(--yoni-texte); font-family: var(--yoni-texte-police); font-weight: 400;
    font-size: 1em; line-height: 1.78;
}
body.adv-univers-yonitoy #main :is(h1, h2, h3, h4, h5, h6, .boxContentTitle, .boxContentTitlePurple, .boxContentTitleRed) {
    color: var(--yoni-ivoire); font-family: var(--yoni-serif); font-weight: 300; letter-spacing: .01em;
}
body.adv-univers-yonitoy #main :is(p, li, td, th, blockquote, figcaption, label, dd, dt) { color: inherit; }
body.adv-univers-yonitoy #main :is(strong, b, .boxContentTextBold) { color: var(--yoni-ivoire); font-weight: 500; }
body.adv-univers-yonitoy #main .adv-titre-page {
    color: var(--yoni-ivoire); text-align: center; font-size: 2.6em; line-height: 1.15; margin: 10px auto 0;
}
body.adv-univers-yonitoy #main .adv-titre-page::after { background: var(--yoni-or); height: 1px; width: 60px; margin: 24px auto 0; }
body.adv-univers-yonitoy #main .adv-titre-page { margin-bottom: 50px; }
body.adv-univers-yonitoy #main .adv-titre-page + .is-divider,
body.adv-univers-yonitoy #main .is-divider {
    background-color: var(--yoni-or) !important; height: 1px; max-width: 60px; margin: 22px auto 40px;
}
body.adv-univers-yonitoy :is(.page-inner, .term-description) a:not(.button):not(.adv-som-card):not(.adv-yoni-logo) {
    color: var(--yoni-or-clair); text-decoration: underline; text-decoration-color: var(--yoni-filet); text-underline-offset: 3px;
}
body.adv-univers-yonitoy :is(.page-inner, .term-description) a:not(.button):not(.adv-som-card):not(.adv-yoni-logo):hover { color: #fff; }
body.adv-univers-yonitoy #main blockquote { border-left: 1px solid var(--yoni-or); font-style: italic; color: var(--yoni-ivoire); }
body.adv-univers-yonitoy #main hr { border: 0; border-top: 1px solid var(--yoni-filet); max-width: 120px; margin: 50px auto; }
/* Survol : jamais le violet foncé des liens Flatsome (illisible sur la nuit). */
body.adv-univers-yonitoy a:is(:hover, :focus-visible),
body.adv-univers-yonitoy .nav > li > a:is(:hover, :focus-visible) { color: var(--yoni-or-clair); }
body.adv-univers-yonitoy #main .adv-som-card:is(:hover, :focus-visible) { color: var(--yoni-texte); }
/* Surlignage jaune (texte à valider) : il reste lisible, texte foncé. */
body.adv-univers-yonitoy #main mark,
body.adv-univers-yonitoy #main mark * { color: #1a1a1a !important; }

/* --- Accueil Adevaya : bouton « Découvrir YoniToy® » (contour blanc) qui se dore
   au survol, au clic et au clavier, comme les pages de l'univers (cliente, 04/10). --- */
.home a.button.white.is-outline[href$="/yonitoy/"] {
    position: relative; overflow: hidden;
    transition: color .35s ease, border-color .35s ease, background-color .35s ease, box-shadow .35s ease;
}
.home a.button.white.is-outline[href$="/yonitoy/"]::after {
    content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%; pointer-events: none;
    background: linear-gradient(100deg, rgba(255, 255, 255, 0) 0%, rgba(255, 246, 220, .55) 50%, rgba(255, 255, 255, 0) 100%);
    transform: skewX(-18deg); opacity: 0;
}
.home a.button.white.is-outline[href$="/yonitoy/"]:is(:hover, :focus-visible, :active) {
    color: #1a1309 !important; border-color: #c2a26a !important;
    background: linear-gradient(135deg, #a8874f 0%, #e2cb98 45%, #c2a26a 70%, #a8874f 100%) !important;
    box-shadow: 0 0 22px rgba(226, 203, 152, .35);
}
.home a.button.white.is-outline[href$="/yonitoy/"]:is(:hover, :focus-visible)::after { animation: adv-reflet-or .9s ease .05s 1 both; }
@keyframes adv-reflet-or { 0% { left: -60%; opacity: 0; } 20% { opacity: 1; } 100% { left: 120%; opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .home a.button.white.is-outline[href$="/yonitoy/"]::after { animation: none !important; } }

/* --- Ouverture : grande image, logo, signature (pleine largeur) --- */
.adv-univers-yonitoy .adv-yoni-entete {
    position: relative; width: 100vw; margin-left: calc(50% - 50vw); margin-top: -30px; margin-bottom: 64px;
    min-height: 300px; display: flex; flex-direction: column; align-items: center; justify-content: center;
    padding: 60px 20px; text-align: center;
    /* Bannière galactique cadrée sur les deux silhouettes ; même jeu de lumière
       noire que les fonds (bords assombris), le bas se fond dans la page. */
    background:
        radial-gradient(ellipse 75% 120% at 60% 40%, rgba(11, 9, 12, 0) 0%, rgba(11, 9, 12, .45) 60%, rgba(11, 9, 12, .9) 100%),
        linear-gradient(180deg, rgba(11, 9, 12, .25) 0%, rgba(11, 9, 12, 0) 35%, rgba(11, 9, 12, 0) 60%, rgba(11, 9, 12, .85) 100%),
        linear-gradient(0deg, rgba(34, 16, 40, .25), rgba(34, 16, 40, .25)),
        var(--adv-yoni-banniere, none) 72% 30% / cover no-repeat;
    border-bottom: 0;
}
.adv-yoni-accueil .adv-yoni-entete { min-height: 340px; }
/* Page YoniToy® : pas de bande, le logo et la signature se posent sur la photo de la page. */
.adv-yoni-accueil.page .adv-yoni-entete { background: none; border: 0; min-height: 40vh; margin-bottom: 24px; } /* moins d'espace sous « Luxe intime… » (cliente, 04/10) */
.adv-yoni-logo { display: inline-block; }
.adv-yoni-logo img { display: block; width: 200px; max-width: 60vw; height: auto; margin: 0 auto; filter: sepia(.35) saturate(.9) brightness(.84) drop-shadow(0 2px 18px rgba(0, 0, 0, .55)); } /* blanc pur adouci en ivoire (cliente, 04/10) */
.adv-yoni-accueil .adv-yoni-logo img { width: 420px; }
.adv-yoni-signature {
    margin: 26px 0 0; font-family: Newsreader, Georgia, serif; font-weight: 300; font-style: italic;
    font-size: 1.35em; letter-spacing: .12em; color: var(--yoni-or-clair, #e2cb98);
    text-shadow: 0 1px 14px rgba(0, 0, 0, .6);
}
.adv-yoni-signature::before, .adv-yoni-signature::after {
    content: ""; display: inline-block; width: 54px; height: 1px; background: currentColor;
    vertical-align: middle; margin: 0 20px; opacity: .55;
}
/* Page YoniToy® : le logo tient lieu de titre (H1 conservé pour les moteurs et les lecteurs d'écran). */
body.adv-yoni-accueil.page .adv-titre-page,
body.adv-yoni-accueil.page .adv-titre-page + .is-divider {
    position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}

/* --- Photos des pages (Concept, Designer) : grandes, centrées, aérées ---
   Base valable aussi quand l'habillage sombre est coupé (option adv_yoni_sombre). */
.adv-yoni-photo { margin: 30px auto; text-align: center; }
.adv-yoni-photo--objet { max-width: 360px; }
.adv-yoni-photo-img { display: block; max-width: 100%; height: auto; margin: 0 auto; }
body.adv-univers-yonitoy .adv-yoni-photo { margin: 70px auto; max-width: 760px; text-align: center; }
body.adv-univers-yonitoy .adv-yoni-photo--large { max-width: 1040px; }
body.adv-univers-yonitoy .adv-yoni-photo--objet { max-width: 360px; }
body.adv-univers-yonitoy .adv-yoni-photo-img { display: block; width: 100%; height: auto; margin: 0 auto; }
body.adv-univers-yonitoy .adv-yoni-photo:not(.adv-yoni-photo--objet) .adv-yoni-photo-img { box-shadow: 0 30px 70px rgba(0, 0, 0, .55); }
body.adv-univers-yonitoy .page-inner > .adv-yoni-photo--large:first-of-type { margin-top: 10px; }
/* Hierarchie des titres (05/10/2026) : H2 > H3 > H4 partout dans l'univers
   (avant : H2 1.25em < H3 1.6em). Un H2 tres long (> 70 caracteres, classe
   adv-titre-long posee par functions.php 64) est une accroche : italique,
   plus petit qu'un H2 mais plus grand qu'un H3. Les titres des accordeons
   (.adv-pli-titre, CSS 57) gardent leurs propres tailles. */
body.adv-univers-yonitoy .page-inner :is(h2, h3, h4) { text-align: center; }
body.adv-univers-yonitoy .page-inner h2 { font-size: 1.75em; line-height: 1.3; margin: 1.6em 0 .9em; }
body.adv-univers-yonitoy .page-inner h2.adv-titre-long { font-size: 1.4em; line-height: 1.5; font-style: italic; }
body.adv-univers-yonitoy .page-inner h3 { font-size: 1.3em; line-height: 1.35; margin: 1.6em 0 .7em; }
body.adv-univers-yonitoy .page-inner h4 { font-size: 1.12em; line-height: 1.4; margin: 1.4em 0 .6em; }
body.adv-univers-yonitoy .page-inner :is(h2, h3):not(.adv-pli-titre)::after { content: ""; display: block; height: 1px; background: var(--yoni-or); margin: 16px auto 0; }
body.adv-univers-yonitoy .page-inner h2:not(.adv-pli-titre)::after { width: 48px; }
body.adv-univers-yonitoy .page-inner h2.adv-titre-long::after { width: 40px; opacity: .7; }
body.adv-univers-yonitoy .page-inner h3:not(.adv-pli-titre)::after { width: 28px; margin-top: 12px; }
@media (max-width: 549px) {
    body.adv-univers-yonitoy .page-inner h2 { font-size: 1.45em; }
    body.adv-univers-yonitoy .page-inner h2.adv-titre-long { font-size: 1.2em; }
    body.adv-univers-yonitoy .page-inner h3 { font-size: 1.15em; }
    body.adv-univers-yonitoy .page-inner h4 { font-size: 1.05em; }
}

/* Le Concept : le montage (œufs et chaînettes détourés) posé sur la photo de fond, à taille de bijou. */
body.adv-univers-yonitoy .yoni-bloc .marge_negative { text-align: center; margin: 0 0 30px; }
body.adv-univers-yonitoy .yoni-bloc .marge_negative .adv-yoni-photo-img {
    display: inline-block; width: 300px; max-width: 70%; height: auto; filter: drop-shadow(0 20px 40px rgba(0, 0, 0, .6));
}
/* Le Concept II : photo produit encadrée d'un filet or. */
body.adv-univers-yonitoy .adv-yoni-photo:not(.adv-yoni-photo--objet):not(.adv-yoni-photo--large) { max-width: 620px; }
body.adv-univers-yonitoy .adv-yoni-photo .adv-yoni-photo-img { outline: 1px solid rgba(194, 162, 106, .35); outline-offset: 8px; }

/* --- Sommaires : pas de cadre, un filet or au-dessus --- */
body.adv-univers-yonitoy .adv-sommaire { gap: 54px 48px; margin: 50px 0 70px; }
body.adv-univers-yonitoy .adv-som-card {
    background: transparent; border: 0; border-top: 1px solid var(--yoni-filet); border-radius: 0;
    box-shadow: none; padding: 26px 0 0; transition: border-color .4s;
}
body.adv-univers-yonitoy .adv-som-card:hover { background: transparent; border-top-color: var(--yoni-or); transform: none; }
body.adv-univers-yonitoy .adv-som-card::before,
body.adv-univers-yonitoy .adv-som-card::after { display: none; }
body.adv-univers-yonitoy #main .adv-som-title {
    font-family: var(--yoni-serif); font-weight: 300; font-size: 1.55em; line-height: 1.25; color: var(--yoni-ivoire);
    transition: color .4s;
}
body.adv-univers-yonitoy #main .adv-som-card:is(:hover, :focus-visible) .adv-som-title { color: var(--yoni-or-clair); }
body.adv-univers-yonitoy #main :is(.adv-som-extrait, .adv-som-sous) {
    font-family: var(--yoni-serif); font-weight: 300; font-size: .98em; line-height: 1.7; color: var(--yoni-doux);
}
body.adv-univers-yonitoy #main .adv-som-go {
    font-family: var(--yoni-serif); font-weight: 400; font-size: .72em; letter-spacing: .28em; text-transform: uppercase;
    color: var(--yoni-or);
}

/* --- Boutons : forme Flatsome (capitales grasses, angles droits), en noir et or ---
   (demande Fred : pas de cartouche à double cadre, la version Flatsome en noir et or) */
body.adv-univers-yonitoy #main .button {
    font-family: var(--fs-font-body, "Bricolage Grotesque", sans-serif); font-weight: 700;
    font-size: calc(.97 * 1.2rem); letter-spacing: .03em; text-transform: uppercase;
    line-height: 2.4em; min-height: 2.5em; padding: 0 1.2em; border-radius: 0;
    background: #000 !important; color: var(--yoni-or-clair) !important;
    border: 1px solid var(--yoni-or) !important; box-shadow: none !important; text-shadow: none;
}
body.adv-univers-yonitoy #main .button:hover { background: var(--yoni-or) !important; color: #000 !important; border-color: var(--yoni-or) !important; }
/* Bouton secondaire (« Retour à l'univers ») : contour or, sans fond */
body.adv-univers-yonitoy #main .button.is-outline { background: transparent !important; }
body.adv-univers-yonitoy #main .button.is-outline:hover { background: var(--yoni-or) !important; color: #000 !important; }
body.adv-univers-yonitoy .adv-yoni-cta { text-align: center; margin-top: 70px !important; padding-top: 50px; border-top: 1px solid rgba(194, 162, 106, .15); }
body.adv-univers-yonitoy #main .adv-yoni-cta { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 22px; }
body.adv-univers-yonitoy #main .adv-yoni-cta .button { margin: 0; }

/* --- Rayon de la boutique --- */
/* Fil d'Ariane : meme police que sur le reste du site (Fred, 01/10) ; seules les couleurs changent */
body.adv-univers-yonitoy .breadcrumbs,
body.adv-univers-yonitoy .breadcrumbs a,
body.adv-univers-yonitoy .breadcrumbs .divider { color: var(--yoni-doux) !important; }
body.adv-univers-yonitoy .breadcrumbs a:hover { color: var(--yoni-or-clair) !important; }
body.adv-univers-yonitoy .woocommerce-result-count { display: none !important; }
/* Bandeau de reassurance du bas de la boutique (accompagnement / paiement / expedition) : version fond noir */
body.adv-univers-yonitoy .adv-reassurance-boutique,
body.adv-univers-yonitoy .adv-reassurance-boutique .section-bg { background: #000 !important; }
body.adv-univers-yonitoy .adv-reassurance-boutique { border-top: 1px solid var(--yoni-filet); border-bottom: 1px solid var(--yoni-filet); }
body.adv-univers-yonitoy .adv-reassurance-boutique strong { color: var(--yoni-ivoire) !important; }
body.adv-univers-yonitoy .adv-reassurance-boutique p,
body.adv-univers-yonitoy .adv-reassurance-boutique span { color: var(--yoni-doux) !important; }
/* pictogrammes violets (SVG en <img>) passes en or */
body.adv-univers-yonitoy .adv-reassurance-boutique .icon-box-img img { filter: brightness(0) invert(71%) sepia(23%) saturate(640%) hue-rotate(358deg) brightness(92%); }
body.adv-univers-yonitoy .adv-yoni-lien { text-align: center; }
body.adv-univers-yonitoy .adv-yoni-lien a {
    font-family: var(--yoni-serif); font-size: .86em; letter-spacing: .22em; text-transform: uppercase; text-decoration: none !important;
    color: var(--yoni-or-clair) !important; border-bottom: 1px solid var(--yoni-filet); padding-bottom: 4px;
}
body.adv-univers-yonitoy .adv-yoni-lien a:hover { color: #fff !important; border-bottom-color: var(--yoni-or); }
body.adv-univers-yonitoy .term-description { font-size: 1.05em; line-height: 1.85; color: var(--yoni-texte); text-align: center; margin-bottom: 60px; }
body.adv-univers-yonitoy .term-description :is(p, span) { color: inherit !important; }
body.adv-univers-yonitoy .term-description :is(strong, b) { color: #fff; font-weight: 400; }
body.adv-univers-yonitoy .products.row { row-gap: 40px; }
body.adv-univers-yonitoy .product-small .box-image { background: var(--yoni-nuit-2); }
body.adv-univers-yonitoy .product-small .box-image img { transition: opacity .5s, transform .8s; }
body.adv-univers-yonitoy .product-small:hover .box-image img { opacity: .9; }
body.adv-univers-yonitoy .product-small .box-text { background: transparent; text-align: center; padding-top: 18px; }
body.adv-univers-yonitoy .product-small .category { display: none; }
body.adv-univers-yonitoy #main .product-small :is(.name, .product-title) a {
    color: var(--yoni-ivoire); font-family: var(--yoni-serif); font-weight: 300; font-size: 1.12em; line-height: 1.35;
}
body.adv-univers-yonitoy #main .product-small :is(.name, .product-title) a:hover { color: var(--yoni-or-clair); }
body.adv-univers-yonitoy #main .product-small .price,
body.adv-univers-yonitoy #main .product-small .price :is(.amount, bdi, span) {
    color: var(--yoni-or-clair); font-family: var(--yoni-serif); font-weight: 400; font-size: 1.02em; letter-spacing: .1em;
}
body.adv-univers-yonitoy .woocommerce-pagination :is(a, span) { color: var(--yoni-texte); border-color: var(--yoni-filet); background: transparent; }

/* --- Transition : la lumière baisse en entrant dans l'univers, revient en sortant ---
   (sur toutes les pages : classes posées sur <html> par la section 64 et
   js/adevaya-yoni-transition.js ; rien n'est actif hors transition) */
html:is(.adv-depart, .adv-arrivee-entree, .adv-arrivee-sortie) body::after {
    content: ""; position: fixed; inset: 0; z-index: 2147483000; pointer-events: none; background: #0b090c;
}
/* Départ : la salle s'assombrit (voile qui se resserre depuis les bords). */
html.adv-depart body::after {
    background: radial-gradient(ellipse at center, rgba(11, 9, 12, .82) 0%, #0b090c 70%);
    animation: adv-eteindre .55s cubic-bezier(.4, 0, .2, 1) forwards;
}
/* Arrivée dans l'univers : révélation lente depuis le noir. */
html.adv-arrivee-entree body::after { animation: adv-allumer 1.4s cubic-bezier(.25, .1, .25, 1) .1s forwards; }
html.adv-arrivee-entree .adv-yoni-entete > * { animation: adv-apparaitre 1.6s ease .45s both; }
/* Retour vers Adevaya : la lumière revient, plus vite. */
html.adv-arrivee-sortie body::after { animation: adv-allumer .9s ease-out forwards; }
@keyframes adv-eteindre { from { opacity: 0; } to { opacity: 1; } }
@keyframes adv-allumer { from { opacity: 1; } to { opacity: 0; } }
@keyframes adv-apparaitre { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
    html:is(.adv-depart, .adv-arrivee-entree, .adv-arrivee-sortie) body::after { display: none; }
}

@media (max-width: 849px) {
    .adv-yoni-accueil.page .adv-yoni-entete { min-height: 34vh; }
    .adv-univers-yonitoy .adv-yoni-entete { min-height: 220px; }
    .adv-yoni-accueil .adv-yoni-logo img { width: 280px; }
    body.adv-univers-yonitoy #main .adv-titre-page { font-size: 2em; }
}
@media (max-width: 640px) {
    .adv-yoni-signature { font-size: 1.08em; letter-spacing: .08em; }
    .adv-yoni-signature::before, .adv-yoni-signature::after { width: 26px; margin: 0 12px; }
    body.adv-univers-yonitoy .adv-sommaire { gap: 40px; }
}


/* 53. Menu mobile - Tiroir en deux habillages (Adevaya clair / YoniToy sombre)
*-----------------------------------------------------
   Même construction partout : logo en tête (functions.php section 65),
   rubriques en Newsreader fin, filets très légers, sous-menus en retrait,
   recherche soulignée, « Mon compte » et « Newsletter » en petites capitales.
   Seules les couleurs changent dans l'univers YoniToy® (nuit et or). */
:root {
    --tiroir-fond: #faf7f2; --tiroir-texte: #2b2232; --tiroir-doux: #6f6475;
    --tiroir-filet: rgba(71, 38, 109, .10); --tiroir-accent: var(--fs-color-primary, #47266d);
    --tiroir-sous: rgba(71, 38, 109, .035);
}
body.adv-univers-yonitoy {
    --tiroir-fond: #0b090c; --tiroir-texte: #f1ebe4; --tiroir-doux: #9b9196;
    --tiroir-filet: rgba(194, 162, 106, .16); --tiroir-accent: #e2cb98;
    --tiroir-sous: rgba(255, 255, 255, .025);
}
.off-canvas .mfp-content:has(> #main-menu) {
    background: var(--tiroir-fond); width: 320px; max-width: 88vw;
    box-shadow: 12px 0 50px rgba(20, 10, 28, .25);
}
.mfp-bg.off-canvas { background: #1a0e24; }
body.adv-univers-yonitoy .mfp-bg.off-canvas { background: #000; }
#main-menu { color: var(--tiroir-texte); }
#main-menu .adv-tiroir-tete { padding: 34px 24px 26px; text-align: center; border-bottom: 1px solid var(--tiroir-filet); }
#main-menu .adv-tiroir-tete img { display: inline-block; width: 150px; height: auto; }
body.adv-univers-yonitoy #main-menu .adv-tiroir-tete img { filter: brightness(0) invert(.93) sepia(.15); }

/* Recherche : un simple trait */
#main-menu .header-search-form { padding: 18px 24px 10px; border: 0 !important; }
#main-menu .searchform .search-field {
    background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--tiroir-filet) !important;
    box-shadow: none !important; padding-left: 0; color: var(--tiroir-texte);
    font-family: Newsreader, Georgia, serif; font-style: italic; font-weight: 300; font-size: 1.05rem;
}
#main-menu .searchform .search-field::placeholder { color: var(--tiroir-doux); opacity: 1; }
#main-menu .searchform button { background: transparent !important; color: var(--tiroir-accent) !important; border: 0 !important; box-shadow: none !important; }

/* Rubriques */
#main-menu .nav-sidebar.nav-vertical > li { border: 0 !important; }
#main-menu .nav-sidebar.nav-vertical > li.menu-item + li.menu-item { border-top: 1px solid var(--tiroir-filet) !important; }
#main-menu .nav-sidebar > li.menu-item > a {
    font-family: Newsreader, Georgia, serif; font-weight: 300; font-size: 1.22rem; line-height: 1.3;
    text-transform: none; letter-spacing: .01em; color: var(--tiroir-texte) !important;
    padding: 17px 24px 17px 28px; position: relative;
}
#main-menu .nav-sidebar > li.menu-item > a::first-letter { text-transform: uppercase; }
#main-menu .nav-sidebar > li:is(.current-menu-item, .current-menu-ancestor, .current_page_item) > a { color: var(--tiroir-accent) !important; }
#main-menu .nav-sidebar > li:is(.current-menu-item, .current-menu-ancestor, .current_page_item) > a::before {
    content: ""; position: absolute; left: 0; top: 50%; width: 3px; height: 22px; margin-top: -11px; background: var(--tiroir-accent);
}
#main-menu .nav-sidebar .toggle { color: var(--tiroir-accent) !important; opacity: .65; }
#main-menu .nav-sidebar .toggle:hover { opacity: 1; }

/* Sous-menus */
#main-menu .nav-sidebar ul.children { background: var(--tiroir-sous); padding: 4px 0 14px; }
#main-menu .nav-sidebar ul.children > li { border: 0 !important; }
#main-menu .nav-sidebar ul.children > li > a {
    font-family: Newsreader, Georgia, serif; font-weight: 300; font-size: 1.02rem; text-transform: none; letter-spacing: 0;
    color: var(--tiroir-doux) !important; padding: 9px 24px 9px 44px;
}
/* Rubrique de 2e niveau qui a ses propres pages : chevron sur la même ligne. */
#main-menu .nav-sidebar ul.children > li.has-child { display: flex; flex-wrap: wrap; align-items: center; }
#main-menu .nav-sidebar ul.children > li.has-child > a { flex: 1 1 0; min-width: 0; }
#main-menu .nav-sidebar ul.children > li.has-child > .toggle { margin: 0 14px 0 0; flex: none; }
#main-menu .nav-sidebar ul.children > li.has-child > ul { flex: 0 0 100%; }
#main-menu .nav-sidebar ul.children ul.children { background: transparent; padding: 0 0 8px; }
#main-menu .nav-sidebar ul.children ul.children > li > a { font-size: .95rem; padding-left: 60px; }
#main-menu .nav-sidebar ul.children li:is(.current-menu-item, .current_page_item) > a,
#main-menu .nav-sidebar ul.children > li > a:hover { color: var(--tiroir-accent) !important; }

/* Mon compte, Newsletter, réseaux : discrets, en petites capitales */
#main-menu .nav-sidebar > li:is(.account-item, .header-newsletter-item) { border-top: 0 !important; }
#main-menu .nav-sidebar > li.account-item { margin-top: 18px; border-top: 1px solid var(--tiroir-filet) !important; padding-top: 10px; }
#main-menu .nav-sidebar > li:is(.account-item, .header-newsletter-item) > a {
    font-family: inherit; font-size: .74rem; font-weight: 400; letter-spacing: .2em; text-transform: uppercase;
    color: var(--tiroir-doux) !important; padding: 10px 24px 10px 28px;
}
#main-menu .nav-sidebar > li:is(.account-item, .header-newsletter-item) > a :is(i, svg) { color: var(--tiroir-accent); opacity: .8; }
#main-menu .header-social-icons a { color: var(--tiroir-doux) !important; }
/* Survol : couleur d'accent de l'habillage (violet sur ivoire, or sur nuit), toujours lisible. */
#main-menu a:is(:hover, :focus-visible),
#main-menu .nav-sidebar li > a:is(:hover, :focus-visible) { color: var(--tiroir-accent) !important; }
#main-menu a:is(:hover, :focus-visible) :is(i, svg, span) { color: inherit; }


/* 54. Colonne de droite - Un seul style de case (rubriques et encarts)
*-----------------------------------------------------
   Demande Fred (01/10/2026) : « Parcours », « Crânes de cristal », « Contact »
   et les encarts « Séance en VISIO », « Newsletter », « Faire un don »
   n'avaient pas le même habillage (filet épais à gauche d'un côté, carte
   arrondie avec ombre de l'autre) : « trop de style ». Une seule case, sobre :
   fond blanc, filet fin, coins légèrement arrondis, sans ombre ; même titre,
   même icône, même texte ; boutons centrés. Colonne de droite seulement. */
#secondary .adv-rubriques { gap: 14px; }
#secondary .adv-rubrique,
#secondary .adv-ombre.adv-encart {
    background: #fff; border: 1px solid rgba(71, 38, 109, .12); border-radius: 6px; box-shadow: none;
    transition: border-color .2s ease;
}
#secondary .adv-rubrique { padding: 18px 20px; gap: 12px; border-left-width: 1px; border-left-color: rgba(71, 38, 109, .12); }
#secondary .adv-ombre.adv-encart > .col-inner { padding: 18px 20px 20px; }
#secondary .adv-rubrique:hover,
#secondary .adv-ombre.adv-encart:hover { border-color: rgba(71, 38, 109, .3); box-shadow: none; transform: none; }
/* Titres et icônes : identiques, couleur principale (plus d'alternance violet / prune) */
#secondary :is(.adv-rubrique-titre, .adv-encart-titre),
#secondary .adv-rubrique:nth-child(even) .adv-rubrique-titre {
    font-family: var(--adv-police-titres, Georgia, serif); font-size: 19px; font-weight: 700; line-height: 1.25;
    color: var(--fs-color-primary, #47266d);
}
#secondary .adv-encart-titre { gap: 12px; }
#secondary :is(.adv-rubrique-ico, .adv-encart-ico),
#secondary .adv-rubrique:nth-child(even) .adv-rubrique-ico {
    width: 20px; height: 20px; flex: 0 0 20px; background: var(--fs-color-primary, #47266d);
}
#secondary .adv-rubrique-ico { margin-top: 1px; }
/* Textes : même corps, même gris */
#secondary :is(.adv-rubrique-extrait, .adv-encart-texte) { font-size: 14.5px; line-height: 1.55; color: #6f6b73; }
#secondary .adv-encart-texte { padding-top: 8px; }
#secondary .adv-encart-texte strong { color: #46424c; }
#secondary .adv-encart-image { margin: 14px -20px 0; }
/* Boutons centrés (dont « Inscription ») */
#secondary .adv-encart-action { text-align: center; padding-top: 16px; }

/* 55. Boutique - Communications importantes en zones depliables
--------------------------------------------------------------------------- */
/* Rayon « Boutique en ligne » : les 8 points de la section 33 deviennent des
   zones a deplier (<details> natif, sans script). La premiere phrase de la
   cliente sert de titre ; le reste du point s'ouvre au clic. Les pastilles
   numerotees de la section 33 sont conservees. */
.adv-cat-plis > li {
    margin: 0;
    padding-top: 14px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(71, 38, 109, .12);
}
.adv-cat-plis > li:first-child { border-top: 1px solid rgba(71, 38, 109, .12); }
.adv-cat-plis > li::before { top: 14px; }
.adv-cat-plis > li > p { margin: 0; }
.adv-cat-plis details > summary {
    position: relative;
    display: block;
    padding-right: 40px;
    cursor: pointer;
    list-style: none;
}
.adv-cat-plis details > summary::-webkit-details-marker { display: none; }
/* Le « + » qui devient « − » a l'ouverture */
.adv-cat-plis details > summary::after {
    content: "+";
    position: absolute;
    right: 4px;
    top: 0;
    width: 26px;
    height: 26px;
    border: 1px solid rgba(71, 38, 109, .35);
    border-radius: 50%;
    color: var(--fs-color-primary, #47266d);
    font-size: 18px;
    font-weight: 400;
    line-height: 24px;
    text-align: center;
    transition: background .2s, color .2s;
}
.adv-cat-plis details[open] > summary::after { content: "\2212"; }
.adv-cat-plis details > summary:hover::after,
.adv-cat-plis details[open] > summary::after { background: var(--fs-color-primary, #47266d); color: #fff; }
.adv-cat-plis details > summary:focus-visible { outline: 2px solid var(--fs-color-primary, #47266d); outline-offset: 4px; }
.adv-cat-pli-texte { padding-top: .8em; }
.adv-cat-pli-texte > p { margin: 0 0 .7em; }
.adv-cat-pli-texte > p:last-child { margin-bottom: 0; }

/* 56. Pages - Sommaire en tete de page (liens vers les parties de la page)
--------------------------------------------------------------------------- */
/* Liste de liens vers les ancres de la page (ul.adv-sommaire-page), a la place
   des anciens sommaires faits de titres H2/H3 : ils prenaient le style des
   intertitres et la cliente ne pouvait pas les regler (05/10/2026, #318).
   Une rubrique par ligne ; ses sous-rubriques en dessous, sur une seule ligne. */
.adv-sommaire-page {
    list-style: none; margin: 0 auto 2.2em !important; padding: 22px 0 !important;
    border-top: 1px solid rgba(71, 38, 109, .15); border-bottom: 1px solid rgba(71, 38, 109, .15);
    text-align: center;
}
.adv-sommaire-page li { margin: 0; padding: 0; list-style: none; }
.adv-sommaire-page > li { padding: 6px 0; font-size: 1.12em; }
.adv-sommaire-page a, .adv-sommaire-page a:hover { text-decoration: none !important; }
.adv-sommaire-page ul { margin: 6px 0 0 !important; padding: 0 !important; display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 0; }
.adv-sommaire-page ul li { font-size: .86em; }
.adv-sommaire-page ul li + li::before { content: "\00B7"; margin: 0 .7em; opacity: .6; }
/* La partie visee ne passe pas sous l'en-tete fixe */
.page-inner :is(h1, h2, h3, h4)[id] { scroll-margin-top: 120px; }

/* Univers YoniToy(R) : liens or clair, filets or, police des titres */
body.adv-univers-yonitoy .adv-sommaire-page { border-color: var(--yoni-filet, rgba(194, 162, 106, .38)); }
body.adv-univers-yonitoy .adv-sommaire-page > li { font-family: var(--yoni-serif, Newsreader, Georgia, serif); font-weight: 300; letter-spacing: .03em; }
body.adv-univers-yonitoy .adv-sommaire-page a { color: var(--yoni-or-clair, #e2cb98) !important; }
body.adv-univers-yonitoy .adv-sommaire-page a:hover { color: #fff !important; }
body.adv-univers-yonitoy .adv-sommaire-page ul li::before { color: var(--yoni-or, #c2a26a); }

/* 57. Pages - Lecture en plis : parties en accordeons
--------------------------------------------------------------------------- */
/* Pages longues ayant un sommaire (functions.php 67, js/adevaya-plis.js).
   Habillage clair Adevaya par defaut, variante sombre dans l'univers YoniToy(R). */
/* Sommaire a deplier en tete de page */
details.adv-sommaire-pli { margin: 0 0 26px; border: 1px solid rgba(71, 38, 109, .2); border-radius: 8px; background: rgba(255, 255, 255, .6); }
.adv-sommaire-pli-tete {
    display: flex; align-items: center; gap: 12px; padding: 14px 18px; cursor: pointer; list-style: none;
    font-size: 15px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--fs-color-primary, #47266d);
}
.adv-sommaire-pli-tete::-webkit-details-marker { display: none; }
/* Le mot en capitales est recalé sur le centre de l'icône (les capitales de la
   police se placent au-dessus du centre de la ligne) */
.adv-sommaire-pli-mot { display: block; line-height: 1; padding-top: .14em; text-box: trim-both cap alphabetic; }
@supports (text-box: trim-both cap alphabetic) { .adv-sommaire-pli-mot { padding-top: 0; } }
/* pictogramme « liste » (trois traits) */
.adv-sommaire-pli-tete::before {
    content: ""; flex: 0 0 auto; width: 18px; height: 12px;
    background: linear-gradient(currentColor, currentColor) 0 0 / 100% 2px no-repeat,
                linear-gradient(currentColor, currentColor) 0 50% / 70% 2px no-repeat,
                linear-gradient(currentColor, currentColor) 0 100% / 85% 2px no-repeat;
}
/* chevron */
.adv-sommaire-pli-tete::after {
    content: ""; margin-left: auto; width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
    transform: rotate(45deg) translate(-2px, -2px); transition: transform .25s;
}
details.adv-sommaire-pli[open] > .adv-sommaire-pli-tete::after { transform: rotate(-135deg) translate(-2px, -2px); }
.adv-sommaire-pli-tete:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; border-radius: 8px; }
details.adv-sommaire-pli .adv-sommaire-page { margin: 0 !important; padding: 4px 18px 18px !important; border: 0; text-align: left; }
details.adv-sommaire-pli .adv-sommaire-page > li { padding: 7px 0; border-top: 1px solid rgba(71, 38, 109, .1); }
details.adv-sommaire-pli .adv-sommaire-page ul { display: block; margin: 6px 0 0 !important; padding: 0 0 0 16px !important; border-left: 1px solid rgba(71, 38, 109, .15); }
details.adv-sommaire-pli .adv-sommaire-page ul li { padding: 4px 0; font-size: .9em; }
details.adv-sommaire-pli .adv-sommaire-page ul li + li::before { content: none; }
details[open].adv-sommaire-pli > .adv-sommaire-page { animation: adv-pli-ouvre .3s ease both; }

/* Accordeons */
details.adv-pli { scroll-margin-top: 150px; border-bottom: 1px solid rgba(71, 38, 109, .14); }
details.adv-pli--h2:first-of-type { border-top: 1px solid rgba(71, 38, 109, .14); }
.adv-pli-tete { display: block; position: relative; list-style: none; cursor: pointer; padding: 22px 52px 22px 0; }
.adv-pli-tete::-webkit-details-marker { display: none; }
.adv-pli-tete .adv-pli-titre { margin: 0 0 6px !important; text-align: left !important; }
.adv-pli--h2 > .adv-pli-tete .adv-pli-titre { font-size: 1.55em !important; }
.adv-pli--h3 > .adv-pli-tete .adv-pli-titre { font-size: 1.25em !important; }
.adv-pli-tete .adv-pli-titre::after { display: none !important; } /* pas de tiret dore dans l'en-tete du pli */
.adv-pli-apercu { display: block; color: #6f6b73; font-size: .95em; line-height: 1.55; }
details[open] > .adv-pli-tete .adv-pli-apercu { display: none; }
/* « Lire la suite » / « Reduire » + rond + / - */
.adv-pli-action {
    display: inline-flex; align-items: center; margin-top: 12px; padding: 5px 14px 4px; border: 1px solid currentColor; border-radius: 999px;
    font-family: var(--fs-font-body, "Bricolage Grotesque", sans-serif); font-size: 12px; font-weight: 700; line-height: 1.4;
    letter-spacing: .05em; text-transform: uppercase; color: var(--fs-color-primary, #47266d); transition: background .2s, color .2s;
}
.adv-pli-tete:hover .adv-pli-action { background: var(--fs-color-primary, #47266d); border-color: var(--fs-color-primary, #47266d); color: #fff; }
.adv-pli-action::before { content: "Lire la suite"; }
details[open] > .adv-pli-tete .adv-pli-action::before { content: "R\0000E9duire"; } /* 6 chiffres : sinon le « d » est lu comme hexadécimal */
.adv-pli-tete::after {
    /* « + » dessiné en deux traits (et non un caractère) : parfaitement centré quelle que soit la police */
    --rond-fond: transparent; --trait-v: 12px;
    content: ""; position: absolute; right: 4px; top: 24px; width: 32px; height: 32px; box-sizing: border-box; border-radius: 50%;
    border: 1px solid rgba(71, 38, 109, .35); color: var(--fs-color-primary, #47266d);
    background:
        linear-gradient(currentColor, currentColor) center / 12px 1.5px no-repeat,
        linear-gradient(currentColor, currentColor) center / 1.5px var(--trait-v) no-repeat,
        var(--rond-fond);
    transition: background-color .2s, color .2s;
}
details[open] > .adv-pli-tete::after { --trait-v: 0px; --rond-fond: var(--fs-color-primary, #47266d); color: #fff; } /* devient « − » */
.adv-pli-tete:hover .adv-pli-titre { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.adv-pli-tete:focus-visible { outline: 2px solid var(--fs-color-primary, #47266d); outline-offset: 4px; }
.adv-pli-corps { padding: 0 0 26px; }
details[open] > .adv-pli-corps { animation: adv-pli-ouvre .35s ease both; }
@keyframes adv-pli-ouvre { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { details[open] > .adv-pli-corps { animation: none; } }
/* Sous-parties : en retrait, filet a gauche */
.adv-pli--h3 { margin-left: 2px; padding-left: 18px; border-bottom: 0; border-left: 2px solid rgba(71, 38, 109, .14); }
.adv-pli--h3 + .adv-pli--h3 { margin-top: 4px; }
.adv-pli--h3 > .adv-pli-tete { padding-top: 14px; padding-bottom: 14px; }
.adv-pli--h3 > .adv-pli-tete::after { top: 14px; width: 28px; height: 28px; }
@media (max-width: 549px) {
    .adv-pli--h2 > .adv-pli-tete .adv-pli-titre { font-size: 1.3em !important; }
    .adv-pli--h3 > .adv-pli-tete .adv-pli-titre { font-size: 1.12em !important; }
    .adv-pli--h3 { padding-left: 12px; }
}

/* Univers YoniToy(R) : nuit, or clair, titres Newsreader */
body.adv-univers-yonitoy details.adv-sommaire-pli { background: rgba(11, 9, 12, .5); border-color: rgba(194, 162, 106, .35); }
body.adv-univers-yonitoy .adv-sommaire-pli-tete { color: var(--yoni-or-clair, #e2cb98); font-family: var(--yoni-serif, Newsreader, Georgia, serif); font-weight: 400; letter-spacing: .14em; }
body.adv-univers-yonitoy details.adv-sommaire-pli .adv-sommaire-page > li { border-top-color: rgba(194, 162, 106, .18); }
body.adv-univers-yonitoy details.adv-sommaire-pli .adv-sommaire-page ul { border-left-color: rgba(194, 162, 106, .3); }
body.adv-univers-yonitoy details.adv-pli { border-color: rgba(194, 162, 106, .22); }
body.adv-univers-yonitoy .adv-pli--h3 { border-left-color: rgba(194, 162, 106, .3); }
body.adv-univers-yonitoy .adv-pli-tete .adv-pli-titre { color: var(--yoni-ivoire, #f1ebe4) !important; }
body.adv-univers-yonitoy .adv-pli-apercu { color: var(--yoni-doux, #c3bbc0); }
body.adv-univers-yonitoy .adv-pli-action { color: var(--yoni-or-clair, #e2cb98); border-color: rgba(194, 162, 106, .6); background: rgba(0, 0, 0, .25); text-shadow: none; }
body.adv-univers-yonitoy .adv-pli-tete:hover .adv-pli-action { background: var(--yoni-or, #c2a26a); border-color: var(--yoni-or, #c2a26a); color: #120d07; }
body.adv-univers-yonitoy .adv-pli-tete::after { border-color: rgba(194, 162, 106, .5); color: var(--yoni-or-clair, #e2cb98); }
body.adv-univers-yonitoy details[open] > .adv-pli-tete::after { --rond-fond: var(--yoni-or, #c2a26a); color: #120d07; }
body.adv-univers-yonitoy .adv-pli-tete:focus-visible { outline-color: var(--yoni-or-clair, #e2cb98); }

/* 58. Commande - Conditions de vente en fenetre
--------------------------------------------------------------------------- */
/* Lien « Conditions generales » de la caisse : la page principale (#276)
   s'ouvre dans une fenetre (functions.php 68). Lecture confortable. */
.adv-cgv-fenetre { font-size: 15px; line-height: 1.65; }
.adv-cgv-fenetre .adv-cgv-fenetre-titre { margin: 0 0 18px; font-size: 1.6em; text-align: center; }
.adv-cgv-fenetre h2:not(.adv-cgv-fenetre-titre) { margin: 1.4em 0 .5em; font-size: 1.2em; }
.adv-cgv-fenetre .terms-and-conditions-lightbox__buttons {
    position: sticky; bottom: -30px; margin: 24px -30px -30px; padding: 16px 30px;
    background: rgba(255, 255, 255, .96); border-top: 1px solid rgba(71, 38, 109, .12);
}

/* 59. En-tete mobile - Voile pour lire le menu et le panier
--------------------------------------------------------------------------- */
/* Sur le ciel clair de la photo, l'icone du menu et le panier disparaissaient.
   Voile violet nuit plus dense sur les cotes (la ou sont les icones), clair
   au centre pour laisser le logo intact. Mobile et tablette (< 850 px). */
@media (max-width: 849px) {
    body:not(.adv-univers-yonitoy) .header-bg-container::after {
        content: ""; position: absolute; inset: 0; pointer-events: none;
        background: linear-gradient(90deg,
            rgba(28, 14, 40, .58) 0%, rgba(28, 14, 40, .28) 20%, rgba(28, 14, 40, 0) 34%,
            rgba(28, 14, 40, 0) 66%, rgba(28, 14, 40, .28) 80%, rgba(28, 14, 40, .58) 100%);
    }
    body:not(.adv-univers-yonitoy) .header-main .mobile-nav > li > a,
    body:not(.adv-univers-yonitoy) .header-main .mobile-nav .icon-menu {
        color: #fff !important; opacity: 1;
        filter: drop-shadow(0 1px 2px rgba(20, 10, 30, .55));
    }
    body:not(.adv-univers-yonitoy) .header-main .mobile-nav .cart-icon strong {
        color: #fff !important; border-color: #fff !important; font-weight: 700;
    }
    body:not(.adv-univers-yonitoy) .header-main .mobile-nav .cart-icon strong::after { border-color: #fff !important; }
}

/* 60. Archives - Titre de categorie aere
--------------------------------------------------------------------------- */
/* Titre d'archive (« Nouvelles ») : 10 px de plus sous le titre (Fred, 09/10). */
.archive-page-header .page-title { padding-bottom: 10px; }

/* 61. Boutique - Produits virtuels sans case Expedition
--------------------------------------------------------------------------- */
/* Livre telechargeable (classe posee par functions.php 70) : la case
   « Expedition soignee » (3e du bandeau) est masquee, les deux autres
   se partagent la largeur. */
body.adv-produit-virtuel .adv-rea-bloc > .col:nth-child(3) { display: none; }
@media (min-width: 550px) {
    body.adv-produit-virtuel .adv-rea-bloc > .col { flex-basis: 50%; max-width: 50%; }
}

/* 62. En-tete mobile - Logo avec 5 px de respiration
--------------------------------------------------------------------------- */
/* Le logo touchait le haut et le bas de l'en-tete : 5 px au-dessus et
   au-dessous (Fred, 09/10). border-box : l'en-tete garde sa hauteur, le
   logo se reduit d'autant, en-tete normal comme colle en haut. */
@media (max-width: 849px) {
    /* Marge portée par le conteneur (plus fiable sur Safari iOS que sur l image). */
    .header-main #logo { padding: 5px 0; box-sizing: border-box; }
    .header-main #logo img,
    .stuck .header-main #logo img { max-height: 60px !important; padding: 0 !important; }
}
