/*
Theme Name: Hypno'Flow
Description: Thème sur mesure pour Hypno'Flow — Patricia Retournée (hypnose humaniste, Mouans-Sartoux et en ligne).
Version: 1.2.0
Requires at least: 6.3
Requires PHP: 7.4
Text Domain: hypnoflow
*/

    /* Polices hébergées en local (RGPD + performance) */
    @font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(assets/fonts/fraunces-opsz.woff2) format("woff2")}
    @font-face{font-family:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(assets/fonts/fraunces-opsz-italic.woff2) format("woff2")}
    @font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(assets/fonts/manrope.woff2) format("woff2")}
    :root{--vert:#355851;--vert-fonce:#22403a;--vert-clair:#e3ebe6;--creme:#f7f4ea;--creme-2:#efe9d8;--terre:#c0714f;--encre:#1e1b1c;--texte:#3d3a3b;--doux:#6d6a68;--blanc:#fffdf8;
        --rayon:22px;--ombre:0 18px 50px -20px rgba(34,64,58,.25);--max:1180px;}
    *{box-sizing:border-box;margin:0;padding:0}
    html{scroll-behavior:smooth;scroll-padding-top:90px;overflow-x:clip}
    body{font-family:Manrope,system-ui,sans-serif;color:var(--texte);background:var(--creme);line-height:1.65;font-size:17px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
    img{max-width:100%;display:block}
    a{color:inherit}
    h1,h2,h3{font-family:Fraunces,Georgia,serif;color:var(--encre);font-weight:500;line-height:1.15;letter-spacing:-.01em}
    h1{font-size:clamp(2.3rem,5.2vw,4rem)}
    h2{font-size:clamp(1.9rem,3.6vw,2.8rem)}
    h3{font-size:1.25rem}
    em{font-style:italic;color:var(--vert)}
    .wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
    main>section{padding:clamp(70px,9vw,120px) 0}
    .eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--vert);margin-bottom:18px}
    .eyebrow::before{content:"";width:28px;height:1.5px;background:currentColor}
    .lead{font-size:1.15rem;color:var(--doux);max-width:640px}
    .centre{text-align:center}.centre .lead{margin:0 auto}.centre .eyebrow::after{content:"";width:28px;height:1.5px;background:currentColor}

    /* Boutons */
    .btn{display:inline-flex;align-items:center;gap:10px;padding:15px 26px;border-radius:999px;font-weight:600;text-decoration:none;transition:transform .2s,background .2s,box-shadow .2s;font-size:1rem;border:1.5px solid transparent;cursor:pointer}
    .btn-plein{background:var(--vert);color:var(--blanc)}
    .btn-plein:hover{background:var(--vert-fonce);transform:translateY(-2px);box-shadow:var(--ombre)}
    .btn-contour{border-color:var(--vert);color:var(--vert)}
    .btn-contour:hover{background:var(--vert);color:var(--blanc)}
    .btn svg{width:18px;height:18px}

    /* ====== En-tête ====== */
    #entete{position:fixed;inset:0 0 auto;z-index:50;transition:background .3s,box-shadow .3s}
    #entete.scrolle{background:rgba(247,244,234,.92);backdrop-filter:blur(12px);box-shadow:0 1px 0 rgba(0,0,0,.06)}
    .nav{display:flex;align-items:center;justify-content:space-between;height:78px}
    .logo{font-family:Fraunces,serif;font-size:1.35rem;text-decoration:none;color:var(--encre);line-height:1.1}
    .logo small{display:block;font-family:Manrope;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--vert);font-weight:700}
    .menu{display:flex;gap:30px;list-style:none;align-items:center}
    .menu a{text-decoration:none;font-weight:500;font-size:.95rem;position:relative}
    .menu a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:1.5px;background:var(--vert);transition:width .25s}
    .menu a:not(.btn):hover::after{width:100%}
    .menu .btn{padding:11px 20px;font-size:.92rem}
    .burger{display:none;background:none;border:0;cursor:pointer;width:44px;height:44px}
    .burger span{display:block;width:24px;height:2px;background:var(--encre);margin:5px auto;transition:.3s}

    /* ====== Hero ====== */
    .hero{padding-top:150px;padding-bottom:90px;position:relative;overflow:hidden}
    .hero::before{content:"";position:absolute;top:-200px;right:-200px;width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,var(--vert-clair),transparent 65%);z-index:-1}
    .hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:center}
    .hero h1{margin-bottom:24px}
    .hero .lead{margin-bottom:34px}
    .ctas{display:flex;gap:14px;flex-wrap:wrap}
    .avis-badge{display:inline-flex;align-items:center;gap:12px;margin-top:34px;text-decoration:none;padding:10px 18px 10px 12px;background:var(--blanc);border-radius:999px;box-shadow:0 6px 24px -10px rgba(0,0,0,.18);font-size:.92rem}
    .avis-badge:hover{transform:translateY(-1px)}
    .etoiles{color:#e7a83b;letter-spacing:2px}
    .g{width:28px;height:28px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:inset 0 0 0 1px #eee}
    .portrait{position:relative;justify-self:center;width:min(440px,100%)}
    .portrait .blob{aspect-ratio:4/5;border-radius:220px 220px 20px 20px;overflow:hidden;background:var(--terre);box-shadow:var(--ombre)}
    .portrait .blob img{width:100%;height:100%;object-fit:cover;object-position:center 20%;transform:scale(1.25)}
    .flottant{position:absolute;background:var(--blanc);border-radius:18px;padding:14px 18px;box-shadow:var(--ombre);font-size:.88rem;line-height:1.35;display:flex;align-items:center;gap:12px;animation:flotte 6s ease-in-out infinite}
    .flottant b{font-family:Fraunces,serif;font-size:1.4rem;color:var(--vert);font-weight:600}
    .f1{left:-40px;bottom:70px}.f2{right:-24px;top:50px;animation-delay:-3s}
    @keyframes flotte{50%{transform:translateY(-8px)}}

    /* ====== Bandeau infos ====== */
    .infos{background:var(--vert);color:var(--creme);padding:34px 0}
    .infos-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
    .info{display:flex;gap:14px;align-items:center}
    .info svg{flex:none;width:38px;height:38px;opacity:.85}
    .info b{display:block;font-family:Fraunces,serif;font-size:1.25rem;font-weight:500;color:#fff}
    .info span{font-size:.88rem;opacity:.8}

    /* ====== Pour qui ====== */
    .pourqui-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
    .citation{font-family:Fraunces,serif;font-size:clamp(1.6rem,3vw,2.3rem);line-height:1.3;color:var(--encre)}
    .citation .de{color:var(--doux);text-decoration:line-through;text-decoration-thickness:1.5px;text-decoration-color:var(--terre)}
    .pourqui p+p{margin-top:16px}

    /* ====== Motifs ====== */
    .motifs{background:var(--blanc)}
    .cartes{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:56px}
    .carte{background:var(--creme);border-radius:var(--rayon);padding:32px 28px;transition:transform .3s,box-shadow .3s,background .3s;border:1px solid transparent}
    .carte:hover{transform:translateY(-6px);box-shadow:var(--ombre);background:var(--blanc);border-color:var(--creme-2)}
    .ico{width:52px;height:52px;border-radius:16px;background:var(--vert-clair);color:var(--vert);display:grid;place-items:center;margin-bottom:22px}
    .ico svg{width:26px;height:26px}
    .carte h3{margin-bottom:14px}
    .carte ul{list-style:none;font-size:.95rem;color:var(--doux)}
    .carte li{padding:5px 0 5px 20px;position:relative}
    .carte li::before{content:"";position:absolute;left:0;top:14px;width:8px;height:8px;border-radius:50%;border:1.5px solid var(--vert)}

    /* ====== Approche ====== */
    .approche-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:center}
    .photo-arrondie{border-radius:var(--rayon);overflow:hidden;box-shadow:var(--ombre);aspect-ratio:1}
    .photo-arrondie img{width:100%;height:100%;object-fit:cover}
    .piliers{display:grid;gap:18px;margin-top:34px}
    .pilier{display:flex;gap:18px;padding:22px;border-radius:18px;background:var(--blanc)}
    .pilier .num{font-family:Fraunces,serif;font-size:1.6rem;color:var(--terre);line-height:1;min-width:34px}
    .pilier h3{font-size:1.1rem;margin-bottom:4px}
    .pilier p{font-size:.95rem;color:var(--doux)}

    /* ====== Accompagnements ====== */
    .offres{background:var(--vert-fonce);color:var(--creme)}
    .offres h2,.offres h3{color:#fff}.offres .eyebrow{color:#b9d1c7}.offres .lead{color:#c9d6d0}
    .offres-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:56px}
    .offre{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:var(--rayon);padding:34px 30px;display:flex;flex-direction:column;transition:background .3s,transform .3s}
    .offre:hover{background:rgba(255,255,255,.09);transform:translateY(-4px)}
    .offre.vedette{background:var(--creme);color:var(--texte);border-color:var(--creme)}
    .offre.vedette h3{color:var(--encre)}
    .tag{align-self:flex-start;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:6px 12px;border-radius:999px;background:var(--terre);color:#fff;margin-bottom:18px}
    .tag.discret{background:rgba(255,255,255,.12)}
    .offre h3{font-size:1.5rem;margin-bottom:12px}
    .offre p{font-size:.95rem;opacity:.85;flex:1}
    .prix{display:flex;gap:22px;margin:26px 0;padding-top:22px;border-top:1px solid rgba(127,127,127,.25)}
    .prix div{font-size:.8rem;opacity:.75}
    .prix b{display:block;font-family:Fraunces,serif;font-size:1.5rem;font-weight:500;opacity:1}
    .offre .lien{font-weight:600;text-decoration:none;display:inline-flex;gap:8px;align-items:center}
    .offre .lien:hover{gap:12px}
    .offre.vedette .lien{color:var(--vert)}
    .note-mutuelle{text-align:center;margin-top:30px;font-size:.92rem;opacity:.75}

    /* ====== Déroulement ====== */
    .etapes{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:56px;counter-reset:e;position:relative}
    .etapes::before{content:"";position:absolute;top:28px;left:12%;right:12%;height:1.5px;background:repeating-linear-gradient(90deg,var(--vert) 0 6px,transparent 6px 12px);opacity:.4}
    .etape{text-align:center;position:relative}
    .etape .rond{width:56px;height:56px;border-radius:50%;background:var(--vert);color:#fff;display:grid;place-items:center;margin:0 auto 20px;font-family:Fraunces,serif;font-size:1.3rem;box-shadow:0 0 0 8px var(--creme)}
    .etape h3{font-size:1.1rem;margin-bottom:8px}
    .etape p{font-size:.93rem;color:var(--doux)}

    /* ====== À propos ====== */
    .apropos{background:var(--blanc)}
    .apropos-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
    .apropos p+p{margin-top:16px}
    .badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
    .badges span{font-size:.85rem;padding:8px 14px;border-radius:999px;background:var(--creme);border:1px solid var(--creme-2)}
    .photo-duo{position:relative}
    .photo-duo .photo-arrondie{aspect-ratio:4/5}
    .photo-duo .vignette{position:absolute;width:44%;right:-24px;bottom:-30px;border-radius:50%;border:8px solid var(--blanc);box-shadow:var(--ombre);background:var(--terre);aspect-ratio:1;overflow:hidden}
    .signature{font-family:Fraunces,serif;font-style:italic;font-size:1.6rem;color:var(--vert);margin-top:26px}

    /* ====== Avis ====== */
    .avis-bloc{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px;align-items:center;background:var(--blanc);border-radius:32px;padding:clamp(30px,5vw,60px);box-shadow:var(--ombre)}
    .note-geante{font-family:Fraunces,serif;font-size:clamp(4rem,9vw,6.5rem);line-height:1;color:var(--encre)}
    .note-geante small{font-size:.35em;color:var(--doux)}
    .avis-bloc .etoiles{font-size:1.6rem;margin:8px 0}
    .themes{display:grid;gap:14px}
    .theme{display:flex;gap:16px;align-items:flex-start;padding:18px 20px;border-radius:16px;background:var(--creme)}
    .theme svg{flex:none;width:24px;height:24px;color:var(--vert);margin-top:2px}
    .theme b{color:var(--encre)}
    .theme p{font-size:.94rem;color:var(--doux)}

    /* ====== FAQ ====== */
    .faq-liste{max-width:820px;margin:50px auto 0}
    details{border-bottom:1px solid var(--creme-2);padding:6px 0}
    summary{list-style:none;cursor:pointer;padding:20px 50px 20px 0;font-family:Fraunces,serif;font-size:1.2rem;color:var(--encre);position:relative}
    summary::-webkit-details-marker{display:none}
    summary::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;background:var(--vert-clair);color:var(--vert);display:grid;place-items:center;font-family:Manrope;font-size:1.3rem;transition:transform .3s}
    details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
    details p{padding:0 50px 22px 0;color:var(--doux)}

    /* ====== Contact ====== */
    .contact{background:var(--vert);color:var(--creme)}
    .contact h2{color:#fff}.contact .eyebrow{color:#cfe0d8}
    .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:stretch}
    .lieux{display:grid;gap:16px;margin:34px 0}
    .lieu{display:flex;gap:16px;align-items:center;padding:20px;border-radius:18px;background:rgba(255,255,255,.08);text-decoration:none;transition:background .25s}
    .lieu:hover{background:rgba(255,255,255,.14)}
    .lieu img{width:64px;height:64px;border-radius:14px;object-fit:cover}
    .lieu b{display:block;color:#fff}
    .lieu span{font-size:.9rem;opacity:.8}
    .contact .btn-plein{background:var(--creme);color:var(--vert-fonce)}
    .contact .btn-plein:hover{background:#fff}
    .contact .btn-contour{border-color:var(--creme);color:var(--creme)}
    .contact .btn-contour:hover{background:var(--creme);color:var(--vert-fonce)}
    .carte-map{border-radius:var(--rayon);overflow:hidden;min-height:380px;background:var(--vert-fonce)}
    .carte-map iframe{width:100%;height:100%;min-height:380px;border:0;filter:grayscale(.3) sepia(.15)}

    /* Carte : chargée au clic */
    .carte-map{position:relative}
    .carte-voile{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:28px;text-align:center;background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.1),transparent 60%),var(--vert-fonce)}
    .carte-voile p{color:#fff;font-size:1.05rem}
    .carte-voile .btn-groupe{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
    .carte-voile small{max-width:340px;font-size:.8rem;opacity:.75;line-height:1.5}

    /* ====== Pied de page ====== */
    .site-footer{background:var(--encre);color:#bdb8b2;padding:50px 0 30px;font-size:.9rem}
    .pied{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;align-items:center}
    .site-footer a{text-decoration:none}.site-footer a:hover{color:#fff}
    .liens-pied{display:flex;gap:22px;flex-wrap:wrap}
    .reseaux{display:flex;gap:12px}
    .reseaux a{width:40px;height:40px;border-radius:50%;border:1px solid #444;display:grid;place-items:center}
    .reseaux svg{width:18px;height:18px}
    .copy{margin-top:30px;padding-top:24px;border-top:1px solid #333;font-size:.82rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}

    /* Barre d'action mobile */
    .barre-mobile{display:none}

    /* Apparition au défilement */
    /* Masqué uniquement si le JavaScript est actif (classe "js" posée dans le <head>) */
    .js .reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease}
    .js .reveal.vu{opacity:1;transform:none}
    @media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}.flottant{animation:none}html{scroll-behavior:auto}}

    /* ====== Responsive ====== */
    @media (max-width:980px){
        .hero-grid,.pourqui-grid,.approche-grid,.apropos-grid,.avis-bloc,.contact-grid{grid-template-columns:1fr;gap:44px}
        .cartes,.offres-grid{grid-template-columns:1fr 1fr}
        .etapes{grid-template-columns:1fr 1fr;row-gap:40px}.etapes::before{display:none}
        .infos-grid{grid-template-columns:1fr 1fr}
        .hero{padding-top:120px}
        .portrait{width:min(360px,85%)}
        .f1{left:-10px}.f2{right:-10px}
        .photo-duo{max-width:440px;margin:0 auto}
    }
    @media (max-width:860px){
        .burger{display:block}
        .menu{position:fixed;inset:78px 0 auto;flex-direction:column;background:var(--creme);padding:24px 20px 34px;gap:20px;box-shadow:0 20px 30px -20px rgba(0,0,0,.2);transform:translateY(-130%);transition:transform .35s;z-index:-1}
        .menu.ouvert{transform:none}
        #entete.menu-ouvert{background:var(--creme)}
    }
    @media (max-width:620px){
        body{font-size:16px;padding-bottom:74px}
        .cartes,.offres-grid,.etapes,.infos-grid{grid-template-columns:1fr}
        .flottant{font-size:.8rem;padding:10px 14px}.flottant b{font-size:1.15rem}
        .f1{left:-6px;bottom:30px}.f2{right:-6px;top:20px}
        .photo-duo .vignette{right:-6px}
        .ctas{flex-direction:column}.ctas .btn{justify-content:center;width:100%}
        .barre-mobile{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:60;gap:10px;padding:12px 16px;background:rgba(247,244,234,.95);backdrop-filter:blur(10px);box-shadow:0 -6px 20px -10px rgba(0,0,0,.2)}
        .barre-mobile .btn{flex:1;justify-content:center;padding:13px 10px;font-size:.95rem}
        details p{padding-right:0}
    }

    /* ====== Spécifique WordPress ====== */
    .liens-pied{list-style:none}
    body.admin-bar #entete{top:32px}
    @media (max-width:860px){body.admin-bar .menu{top:110px}}
    @media (max-width:782px){body.admin-bar #entete{top:46px}body.admin-bar .menu{top:124px}}
    @media (max-width:600px){body.admin-bar #entete{top:0}body.admin-bar .menu{top:78px}}

    /* Pages, articles, blog */
    .page-contenu{padding:150px 0 90px}
    .page-contenu .wrap{max-width:820px}
    .page-contenu h1{margin-bottom:28px}
    .meta-article{color:var(--doux);font-size:.9rem;margin:-14px 0 28px}
    .contenu-wp>*+*{margin-top:1.1em}
    .contenu-wp h2{margin-top:1.8em;font-size:clamp(1.5rem,3vw,2rem)}
    .contenu-wp h3{margin-top:1.5em}
    .contenu-wp ul,.contenu-wp ol{padding-left:1.4em}
    .contenu-wp a{color:var(--vert);text-decoration:underline}
    .contenu-wp img{height:auto;border-radius:var(--rayon)}
    .contenu-wp blockquote{border-left:3px solid var(--terre);padding-left:20px;color:var(--doux);font-style:italic}
    .image-une{margin-bottom:30px}
    .image-une img{width:100%;height:auto;border-radius:var(--rayon)}
    .liste-articles{display:grid;gap:22px;margin-top:30px}
    .liste-articles article{background:var(--blanc);border-radius:var(--rayon);padding:28px}
    .liste-articles h2{font-size:1.5rem;margin-bottom:8px}
    .liste-articles a{text-decoration:none}
    .liste-articles .lien-suite{color:var(--vert);font-weight:600}
    .pagination-articles{display:flex;justify-content:space-between;margin-top:36px;font-weight:600;color:var(--vert)}

/* ===== Sous-menu déroulant du menu principal (bureau) ===== */
.menu li{position:relative}
.menu>li.menu-item-has-children{padding:18px 0}
.menu>.menu-item-has-children>a{padding-right:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%233d3a3b' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right center/9px}
.menu .sub-menu{list-style:none;position:absolute;top:100%;left:-16px;min-width:230px;padding:10px;display:grid;gap:2px;background:var(--blanc);border-radius:16px;box-shadow:var(--ombre);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s,transform .2s,visibility .2s;z-index:5}
.menu li:hover>.sub-menu,.menu li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}
.menu .sub-menu a{display:block;padding:10px 14px;border-radius:10px;white-space:nowrap}
.menu .sub-menu a:hover{background:var(--vert-clair)}
.menu .sub-menu a::after{display:none}

/* ===== Mobile : sous-menu toujours déplié, en retrait ===== */
@media (max-width:860px){
    .menu{max-height:calc(100vh - 78px);overflow-y:auto}
    .menu>li.menu-item-has-children{padding:0}
    .menu .sub-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;background:none;min-width:0;padding:6px 0 0 14px;margin-top:8px;border-left:2px solid var(--vert-clair)}
    .menu .sub-menu a{padding:6px 10px;white-space:normal}
}

/* ===== Accessibilité (à coller APRÈS le CSS du sous-menu) ===== */

/* Texte réservé aux lecteurs d'écran */
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Contour visible au clavier */
:focus-visible{outline:3px solid var(--vert);outline-offset:3px}
.offres :focus-visible,.contact :focus-visible,.infos :focus-visible,.site-footer :focus-visible{outline-color:#fff}
summary:focus-visible{outline-offset:-3px}

/* Lien d'évitement « Aller au contenu » */
.skip-link{position:absolute;left:16px;top:-80px;z-index:100;padding:12px 18px;border-radius:999px;background:var(--vert);color:var(--blanc);font-weight:600;text-decoration:none;transition:top .2s}
.skip-link:focus{top:12px}
body.admin-bar .skip-link:focus{top:44px}

/* Contraste des étiquettes (blanc sur fond terre : 5:1 au lieu de 3,7:1) */
.tag{background:#a65a3a}

/* Menu mobile fermé : ses liens ne sont plus accessibles au clavier */
@media (max-width:860px){
    .menu{visibility:hidden;transition:transform .35s,visibility 0s linear .35s}
    .menu.ouvert{visibility:visible;transition:transform .35s,visibility 0s}
    .menu .sub-menu{visibility:inherit}
}

/* ===== Pages « Spécialités » ===== */
.spec-hero{padding-bottom:70px}
.spec-hero .wrap{max-width:860px}
.spec-soustitre{font-family:Fraunces,Georgia,serif;font-size:clamp(1.25rem,2.4vw,1.7rem);color:var(--vert);line-height:1.3;margin:16px 0 26px}
.spec-texte p+p,.spec-texte p+ul,.spec-texte ul+p{margin-top:14px}
.spec-texte ul{list-style:none}
.spec-texte li{position:relative;padding:6px 0 6px 24px}
.spec-texte li::before{content:"";position:absolute;left:0;top:15px;width:8px;height:8px;border-radius:50%;border:1.5px solid var(--vert)}
.spec-hero .spec-texte{max-width:700px;margin-bottom:34px;font-size:1.08rem}
.spec-duo-section{padding-top:20px}
.spec-duo{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
.spec-bloc{border-radius:var(--rayon);padding:clamp(28px,4vw,44px)}
.spec-bloc h2{font-size:clamp(1.45rem,2.5vw,1.95rem);margin-bottom:18px}
.spec-bloc img{width:100%;height:auto;border-radius:16px;margin-top:24px}
.spec-probleme{background:var(--blanc);border:1px solid var(--creme-2)}
.spec-solution{background:var(--vert-fonce);color:var(--creme)}
.spec-solution h2{color:#fff}
.spec-solution .eyebrow{color:#b9d1c7}
.spec-solution li::before{border-color:#b9d1c7}
.spec-solution .btn-plein{background:var(--creme);color:var(--vert-fonce);margin-top:28px}
.spec-solution .btn-plein:hover{background:#fff}
.spec-extra .wrap{max-width:820px}
.spec-accroche{font-family:Fraunces,Georgia,serif;font-size:1.35rem;line-height:1.35;color:var(--encre);margin-bottom:16px}
.spec-photo img{object-position:center 20%}
.spec-infos{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:30px}
.spec-info{background:var(--creme);border-radius:16px;padding:16px 18px;font-size:.85rem;color:var(--doux)}
.spec-info b{display:block;font-family:Fraunces,serif;font-size:1.25rem;font-weight:500;color:var(--encre);line-height:1.2;margin-bottom:4px}
details p+p{margin-top:-8px}
.spec-autres .offres-grid{grid-template-columns:repeat(2,1fr)}
.spec-contact .wrap{max-width:760px}
@media (max-width:980px){.spec-duo{grid-template-columns:1fr}}
@media (max-width:760px){.spec-autres .offres-grid{grid-template-columns:1fr}}
@media (max-width:620px){.spec-infos{grid-template-columns:1fr}}

/* Contenu saisi dans l'administration (pages spécialités) */
.spec-texte ol{padding-left:1.4em;list-style:decimal}
.spec-texte ol li{padding-left:6px}
.spec-texte ol li::before{display:none}
.spec-texte a{text-decoration:underline}
.spec-texte h3,.spec-texte h4{margin-top:1.2em;margin-bottom:6px}
.spec-texte img{height:auto;border-radius:16px;margin-top:18px}
.spec-autres .resume{flex:1}
.spec-autres .resume p{flex:none}
