:root {
    /* Palette VerdonMalin — 6 verts */
    --vp-green-xlt:  #f0f4ee;   /* fond fermé très clair */
    --vp-green-pale: #d4e6c3;   /* fond ouvert pâle */
    --vp-green-lt:   #a8c896;   /* bordures actives */
    --vp-green-med:  #6aaa64;   /* hover, accents */
    --vp-green:      #4a8c5c;   /* couleur principale */
    --vp-green-dark: #2d5a3d;   /* texte, titres */

    /* Neutres */
    --vp-text:     #1a1a1a;
    --vp-muted:    #6b7280;
    --vp-border:   #e2e8f0;
    --vp-radius:   8px;
    --vp-shadow:   0 2px 8px rgba(0,0,0,.08);
}

/* ── Accordéons ──────────────────────────────────────────── */
.vp-accordion { display:flex; flex-direction:column; gap:10px; margin-top:14px; margin-bottom:4px; }

/*
 * Les couleurs des toggles passent par des variables CSS locales --vp-acc-*.
 * Les valeurs par défaut sont définies ici sur .vp-activite-item.
 * Les styles scoped générés par PHP (ex: #vp-acc-12) les redéfinissent
 * sur le même élément → héritage garanti, pas de conflit de spécificité.
 */
.vp-activite-item {
    --vp-acc-bg:        #4a8c5c;
    --vp-acc-bg-hover:  #2d5a3d;
    --vp-acc-text:      #ffffff;
    --vp-acc-text-h:    #ffffff;
    --vp-acc-child-bg:  #6aaa64;   /* sous-catégorie — légèrement plus claire */
    --vp-acc-child-bgh: #4a8c5c;
    --vp-acc-mot:       #4a8c5c;
    --vp-acc-btn-bg:    #4a8c5c;
    --vp-acc-btn-text:  #ffffff;
}

.vp-activite-toggle,
.vp-volet-toggle,
.vp-presta-toggle {
    display:flex;
    align-items:center;
    width:100%;
    cursor:pointer;
    box-sizing:border-box;
    padding:.85rem 1.1rem;
    border-radius:var(--vp-radius);
    box-shadow:var(--vp-shadow);
    transition:background .18s, color .18s, border-color .18s;
    font-size:18px;
    font-weight:400;
    font-family:inherit;
    line-height:1.4;
    text-align:left;
    -webkit-appearance:none;
    appearance:none;
    margin:0;
    outline:none;
}

/* Niveau 1 — Catégorie principale */
.vp-activite-toggle {
    background:var(--vp-acc-bg);
    border:1px solid var(--vp-acc-bg);
    color:var(--vp-acc-text);
}
.vp-activite-toggle:hover,
.vp-activite-toggle[aria-expanded="true"] {
    background:var(--vp-acc-bg-hover);
    border-color:var(--vp-acc-bg-hover);
    color:var(--vp-acc-text-h);
}

/* Niveau 2 — Sous-catégorie */
.vp-volets { display:flex; flex-direction:column; gap:6px; margin-top:6px; }
.vp-volet-toggle {
    background:var(--vp-acc-child-bg);
    border:1px solid var(--vp-acc-child-bg);
    color:var(--vp-acc-text);
    padding:.65rem .95rem;
}
.vp-volet-toggle:hover,
.vp-volet-toggle[aria-expanded="true"] {
    background:var(--vp-acc-child-bgh);
    border-color:var(--vp-acc-child-bgh);
    color:var(--vp-acc-text-h);
}

/* Niveau 3 — Prestataire */
.vp-presta-toggle {
    background:#fff;
    border:1px solid #fff;
    padding:.6rem .95rem;
    color:var(--vp-green-dark);
    font-size:16px;
}
.vp-presta-toggle:hover {
    background:var(--vp-acc-child-bg, var(--vp-green-pale));
    border-color:var(--vp-acc-child-bg, var(--vp-green-pale));
    color:var(--vp-acc-text, var(--vp-green-dark));
}
.vp-presta-toggle[aria-expanded="true"] {
    background:var(--vp-acc-bg, var(--vp-green));
    border-color:var(--vp-acc-bg, var(--vp-green));
    color:var(--vp-acc-text, #fff);
    border-bottom-left-radius:0;
    border-bottom-right-radius:0;
}
.vp-presta-toggle[aria-expanded="true"] .vp-presta-stars { color:rgba(255,255,255,.85); }

/* Titres */
.vp-act-title  { font-weight:400; font-size:18px; flex:1; line-height:1.4; }
.vp-vol-title  { font-weight:400; font-size:18px; flex:1; line-height:1.4; }
.vp-presta-nom { font-weight:400; font-size:16px; flex:1; line-height:1.4; }

/* Chevron + / − — via ::after pour être inattaquable par le thème */
.vp-activite-toggle,
.vp-volet-toggle,
.vp-presta-toggle {
    position:relative;
    padding-right:3rem; /* espace pour le + */
}
/* On cache le span .vp-chevron (gardé pour le JS) */
.vp-chevron { display:none !important; }

/* Pseudo-élément ::after = le vrai + visible */
.vp-activite-toggle::after,
.vp-volet-toggle::after,
.vp-presta-toggle::after {
    content:'+';
    position:absolute;
    right:1rem;
    top:50%;
    transform:translateY(-50%);
    font-size:22px !important;
    font-family:Arial, Helvetica, sans-serif !important;
    font-weight:300 !important;
    font-style:normal !important;
    line-height:1 !important;
    color:var(--vp-green);
    transition:color .18s;
    width:22px;
    text-align:center;
    display:block !important;
}
/* Couleur blanche quand hover / ouvert */
.vp-activite-toggle:hover::after,
.vp-activite-toggle[aria-expanded="true"]::after,
.vp-volet-toggle:hover::after,
.vp-volet-toggle[aria-expanded="true"]::after,
.vp-presta-toggle:hover::after,
.vp-presta-toggle[aria-expanded="true"]::after {
    color:#fff !important;
}
/* − quand ouvert */
.vp-activite-toggle[aria-expanded="true"]::after,
.vp-volet-toggle[aria-expanded="true"]::after,
.vp-presta-toggle[aria-expanded="true"]::after {
    content:'−';
}

.vp-activite-content { padding:4px 0; }
.vp-volet-content    { padding:4px 0; }

/* ── Prestataires ────────────────────────────────────────── */
.vp-prestataires { margin-top:.6rem; }
.vp-presta-card  { margin-bottom:.25rem; }
.vp-presta-stars { font-size:.82rem; color:var(--vp-muted); }
.vp-presta-content {
    padding:.8rem 1rem .9rem 1.1rem;
    border:1px solid var(--vp-green);
    border-top:none;
    border-radius:0 0 var(--vp-radius) var(--vp-radius);
    background:#fff;
}
.vp-no-presta { color:var(--vp-muted); font-style:italic; font-size:.9rem; padding:.5rem 0; }

/* ── Le mot de l'établissement ───────────────────────────── */
.vp-presta-desc-base {
    font-size:.92rem;
    color:#555;
    line-height:1.6;
    margin:0 0 .6rem;
}
/* ── Mot de l'établissement ─────────────────────────────── */
.vp-mot-simple {
    margin: .5rem 0 .5rem;
    border: 1.5px solid var(--vp-acc-mot, var(--vp-green));
    border-radius: 10px;
    padding: .5rem .75rem .55rem;
    background: linear-gradient(135deg, var(--vp-green-xlt), #fff);
}
.vp-mot-simple-label {
    display: block;
    font-size: .72rem;
    font-weight: 700;
    font-style: italic;
    color: var(--vp-acc-mot, var(--vp-green));
    margin-bottom: .3rem;
}
.vp-mot-simple-text {
    margin: 0;
    font-style: italic;
    color: #3d3220;
    line-height: 1.55;
    font-size: .78rem;
}

/* ── Encadré compact — une seule ligne ───────────────────── */
.vp-inline-footer {
    margin-top: .5rem;
    padding: .35rem .6rem;
    background: #f8fafb;
    border-radius: 8px;
    border: 1px solid #e9eef0;
}
.vp-inline-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .2rem .6rem;
}
.vp-info-item {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    font-size: .75rem;
    color: var(--vp-muted) !important;
    text-decoration: none !important;
    white-space: nowrap;
    transition: color .15s;
}
.vp-info-item:hover { color: var(--vp-green) !important; }
.vp-info-item svg { flex-shrink: 0; opacity: .7; }
.vp-info-sep {
    flex: 1;
    min-width: 4px;
}
.vp-info-stars {
    display: inline-flex;
    align-items: center;
    gap: .2rem;
    font-size: .75rem;
    color: var(--vp-muted);
    white-space: nowrap;
}
.vp-info-stars small { font-size: .72rem; }

/* ── Barre infos — PAGE SINGLE (grande, mise en valeur) ──── */
.vp-presta-infos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    margin: .5rem 0 .3rem;
    font-size: .95rem;
}
.vp-presta-infos a, .vp-presta-infos-adr {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .3rem .9rem;
    border-radius: 20px;
    font-size: .92rem;
    font-weight: 600;
    text-decoration: none !important;
    border: 1px solid #cde0d8;
    background: #f0f6f3;
    color: #2d6a4f !important;
    transition: background .15s, border-color .15s;
    white-space: nowrap;
}
.vp-presta-infos a:hover {
    background: #d1fae5;
    border-color: var(--vp-green);
}

/* ── Infos contact — ACCORDÉON et KADENCE (compact, discret) ── */
.vp-infos-compact {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem .7rem;
    margin: .4rem 0 .2rem;
    font-size: .78rem;
    color: var(--vp-muted);
    line-height: 1.5;
}
.vp-infos-compact a {
    color: var(--vp-muted) !important;
    text-decoration: none !important;
    font-size: .78rem;
    white-space: nowrap;
    transition: color .15s;
}
.vp-infos-compact a:hover {
    color: var(--vp-green) !important;
    text-decoration: underline !important;
}

/* ── Étoiles dans contexte Kadence ──────────────────────── */
.vp-kadence-stars {
    display: flex;
    align-items: center;
    gap: .4rem;
    margin: .3rem 0 .4rem;
    font-size: .8rem;
    color: var(--vp-muted);
}
.vp-kadence-stars .vp-stars { font-size: .9rem; }
.vp-kadence-stars .vp-stars-empty { color: #d1d5db; font-size: .85rem; }

/* ── Mot de l'établissement dans contexte inline (Kadence/accordéon) ── */
.vp-mot-inline {
    margin: .4rem 0 .5rem !important;
    padding: .7rem .85rem .6rem !important;
}
.vp-mot-inline .vp-presta-desc {
    font-size: .88rem !important;
    line-height: 1.55 !important;
}
.vp-mot-inline .vp-mot-label {
    font-size: .65rem !important;
}

/* ── Lien fiche complète (Kadence/accordéon) ────────────── */
.vp-kadence-fiche-link {
    margin-top: .55rem;
}
.vp-lien-fiche {
    display: inline-block;
    font-size: .75rem;
    color: var(--vp-acc-btn-text, #fff) !important;
    text-decoration: none !important;
    padding: .25rem .75rem;
    border-radius: 12px;
    background: var(--vp-acc-btn-bg, var(--vp-green));
    font-weight: 600;
    transition: background .15s, color .15s;
}
.vp-lien-fiche:hover {
    background: var(--vp-acc-bg-hover, var(--vp-green-dark));
    color: #fff !important;
}

.vp-presta-adr { display: none; }
.vp-presta-tel { display: none; }

/* ── Bouton lien ─────────────────────────────────────────── */
.vp-btn-lien {
    display:inline-block; background:var(--vp-green); color:#fff !important;
    padding:.4rem 1rem; border-radius:20px; font-size:.88rem; font-weight:600;
    text-decoration:none !important; transition:background .18s; margin-top:.4rem;
}
.vp-btn-lien:hover { background:#1b4332; }

/* ── Prestations & Tarifs ────────────────────────────────── */
.vp-prest-wrap {
    margin: .5rem 0;
}
.vp-prest-toggle {
    display: flex;
    align-items: center;
    width: 100%;
    position: relative;
    padding: .5rem .75rem;
    padding-right: 2.5rem;
    background: linear-gradient(135deg, var(--vp-green-xlt), #fff);
    border: 1.5px solid var(--vp-acc-mot, var(--vp-green));
    border-radius: 10px;
    color: var(--vp-acc-mot, var(--vp-green));
    font-size: .78rem;
    font-weight: 700;
    font-style: italic;
    cursor: pointer;
    text-align: left;
    transition: background .15s;
    -webkit-appearance: none;
    appearance: none;
    outline: none;
    font-family: inherit;
}
.vp-prest-toggle[aria-expanded="true"] {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}
.vp-prest-toggle::after {
    content: '+';
    position: absolute;
    right: .75rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 20px !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-weight: 300 !important;
    font-style: normal !important;
    line-height: 1 !important;
    color: var(--vp-acc-mot, var(--vp-green));
    display: block !important;
    width: 20px;
    text-align: center;
}
.vp-prest-toggle[aria-expanded="true"]::after { content: '−'; }
.vp-prest-content {
    border: 1.5px solid var(--vp-acc-mot, var(--vp-green));
    border-top: none;
    border-radius: 0 0 10px 10px;
    background: #fff;
    padding: .5rem .75rem;
}
.vp-prest-list {
    margin: 0;
    padding: 0;
    list-style: none;
}
.vp-prest-list li {
    font-size: .78rem;
    color: #3d3220;
    padding: .25rem 0;
    border-bottom: 1px solid #f0f0f0;
    line-height: 1.5;
}
.vp-prest-list li:last-child { border-bottom: none; }
.vp-prest-texte {
    font-size: .78rem;
    color: #3d3220;
    line-height: 1.5;
    white-space: normal;
}
.vp-prest-list-sep {
    margin-top: .5rem;
    padding-top: .5rem;
    border-top: 1px dashed #e0e0e0;
}

/* Sur la fiche single — légèrement plus grand */
.vp-single-wrap .vp-prest-toggle { font-size: .85rem; }
.vp-single-wrap .vp-prest-list li { font-size: .85rem; }


.vp-form-wrap, .vp-avis-form-wrap {
    background:#fff; border:1px solid var(--vp-border); border-radius:var(--vp-radius);
    padding:1.4rem; margin-top:1rem; box-shadow:var(--vp-shadow);
}
.vp-field { margin-bottom:1rem; }
.vp-field label { display:block; font-weight:600; margin-bottom:.3rem; font-size:.92rem; }
.vp-field input, .vp-field select, .vp-field textarea {
    width:100%; padding:.52rem .75rem; border:1px solid #cbd5e1;
    border-radius:6px; font-size:.93rem; box-sizing:border-box; transition:border-color .18s;
}
.vp-field input:focus, .vp-field select:focus, .vp-field textarea:focus {
    outline:none; border-color:var(--vp-green); box-shadow:0 0 0 3px rgba(45,106,79,.1);
}
.vp-word-count { font-size:.78rem; color:var(--vp-muted); float:right; }
.vp-word-count.over { color:#dc2626; font-weight:600; }
.vp-btn-submit {
    background:var(--vp-green); color:#fff; border:none;
    padding:.62rem 1.5rem; border-radius:20px; font-size:.98rem; font-weight:600;
    cursor:pointer; transition:background .18s;
}
.vp-btn-submit:hover { background:#1b4332; }
.vp-rgpd label { display:flex; align-items:flex-start; gap:.5rem; font-weight:400; cursor:pointer; }
.vp-rgpd input[type="checkbox"] { width:auto !important; margin-top:3px; flex-shrink:0; }

/* ── Messages ────────────────────────────────────────────── */
.vp-success { background:var(--vp-green-lt); color:#065f46; border:1px solid #6ee7b7; border-radius:var(--vp-radius); padding:.9rem 1.1rem; }
.vp-error   { background:#fee2e2; color:#991b1b; border:1px solid #fca5a5; border-radius:var(--vp-radius); padding:.9rem 1.1rem; }

/* ── Avis ────────────────────────────────────────────────── */
.vp-avis-wrap { margin-top:1rem; border-top:1px solid var(--vp-border); padding-top:.9rem; }
.vp-avg { display:flex; align-items:center; gap:.5rem; margin-bottom:.7rem; }
.vp-avg .vp-stars { font-size:1.15rem; }
.vp-avis-item { background:#f9fafb; border:1px solid var(--vp-border); border-radius:6px; padding:.65rem .9rem; margin-bottom:.4rem; }
.vp-avis-text { margin:.25rem 0 .15rem; font-size:.91rem; }
.vp-avis-date { color:var(--vp-muted); font-size:.78rem; }
.vp-star-picker { display:flex; flex-direction:row-reverse; gap:3px; width:fit-content; }
.vp-star-picker input[type="radio"] { display:none; }
.vp-star-picker label { font-size:1.55rem; color:#d1d5db; cursor:pointer; transition:color .12s; }
.vp-star-picker input:checked ~ label,
.vp-star-picker label:hover,
.vp-star-picker label:hover ~ label { color:#f59e0b; }
.vp-stars { color:#f59e0b; letter-spacing:1px; }

@media (max-width:600px) {
    .vp-activite-toggle, .vp-volet-toggle, .vp-presta-toggle { padding:.65rem .75rem; }
}

/* ── Carte inline (volet Kadence + accordéon) ────────────── */
.vp-inline-card {
    padding: .3rem 0 .5rem;
}

/* Photo + description côte à côte */
.vp-inline-top {
    display: flex;
    gap: .9rem;
    align-items: flex-start;
    margin-bottom: .7rem;
}
.vp-inline-img {
    flex-shrink: 0;
    width: 90px;
    height: 90px;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid var(--vp-border);
}
.vp-inline-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.vp-inline-desc {
    font-size: .88rem;
    color: #374151;
    line-height: 1.55;
    flex: 1;
}

/* Encadré unique : infos contact + étoiles + lien fiche — tout sur une ligne */
.vp-inline-footer {
    margin-top: .6rem;
    padding: .35rem .75rem;
    background: #f8faf9;
    border: 1px solid var(--vp-border);
    border-radius: 8px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
}

/* Infos contact dans l'encadré — séparateur vertical */
.vp-inline-footer .vp-infos-compact {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: .3rem .6rem;
    align-items: center;
}

/* Séparateur entre infos et étoiles */
.vp-inline-footer .vp-infos-compact::after {
    content: '';
    display: inline-block;
    width: 1px;
    height: 14px;
    background: var(--vp-border);
    margin-left: .3rem;
    vertical-align: middle;
}

/* Ligne étoiles + lien fiche */
.vp-inline-bottom {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-left: auto;
}

@media (max-width: 480px) {
    .vp-inline-top { flex-direction: column; }
    .vp-inline-img { width: 100%; height: 160px; }
}

/* ── Bloc mot de l'établissement (affichage single) ─────── */
.vp-presta-card-single {
    padding: .5rem 0;
}
.vp-presta-nom-single {
    font-weight:700;
    font-size:1.05rem;
    color:var(--vp-green);
    margin-bottom:.6rem;
}

/* ═══════════════════════════════════════════════════════════
   PAGE SINGLE PRESTATAIRE
   ═══════════════════════════════════════════════════════════ */

.vp-single-wrap {
    max-width: 860px;
    margin: 0 auto;
    padding: 1.5rem 1rem 3rem;
    font-family: inherit;
}

/* ── Fil d'ariane ─────────────────────────────────────────── */
.vp-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .3rem;
    font-size: .82rem;
    color: var(--vp-muted);
    margin-bottom: 1.5rem;
}
.vp-breadcrumb a {
    color: var(--vp-green);
    text-decoration: none;
}
.vp-breadcrumb a:hover { text-decoration: underline; }
.vp-bc-sep { color: #cbd5e1; }
.vp-bc-current { color: var(--vp-text); font-weight: 600; }

/* ── Carte principale ─────────────────────────────────────── */
.vp-single-card {
    background: #fff;
    border: 1px solid var(--vp-border);
    border-radius: 14px;
    box-shadow: 0 4px 20px rgba(0,0,0,.08);
    overflow: hidden;
}

/* Image */
.vp-single-img {
    width: 100%;
    max-height: 320px;
    overflow: hidden;
}
.vp-single-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Corps */
.vp-single-body {
    padding: 1.8rem 2rem;
}

/* En-tête */
.vp-single-header { margin-bottom: 1.2rem; }
.vp-single-nom {
    font-size: 1.7rem;
    font-weight: 700;
    color: var(--vp-text);
    margin: 0 0 .5rem;
    line-height: 1.2;
}
.vp-single-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .6rem;
}
.vp-single-cat {
    display: inline-block;
    background: var(--vp-green-lt);
    color: var(--vp-green);
    border: 1px solid #a7f3d0;
    padding: .2rem .75rem;
    border-radius: 20px;
    font-size: .82rem;
    font-weight: 600;
}
.vp-single-stars { font-size: .92rem; color: var(--vp-muted); }

/* Description importée */
.vp-single-desc-base {
    font-size: .97rem;
    color: #374151;
    line-height: 1.7;
    margin-bottom: 1.2rem;
    padding-bottom: 1.2rem;
    border-bottom: 1px solid var(--vp-border);
}

/* Mot établissement sur single */
.vp-single-mot {
    margin-bottom: 1.2rem;
}

/* Barre infos sur single */
.vp-single-infos {
    margin: 1.2rem 0;
    padding: 1rem 1.2rem;
    background: #f8faf9;
    border: 1px solid var(--vp-border);
    border-radius: 10px;
}

/* Avis sur single */
.vp-single-reviews {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--vp-border);
}

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 600px) {
    .vp-single-body { padding: 1.2rem 1rem; }
    .vp-single-nom  { font-size: 1.3rem; }
}
