/**
 * Styles de la fiche professionnel — /pro/{slug}
 * Chargé UNIQUEMENT sur ce type de page (cf. inc/01-assets.php).
 *
 * 2.10.0 — LE FOND N'EST PLUS NOIR. La fiche a rejoint la coquille de
 * l'accueil (`parts/coquille-*`, `assets/coquille.css`) : fond papier,
 * capsule en verre, plus de carte crème posée sur du noir.
 *
 * Les variables `--welcome-*` de `style.css` sont REDÉFINIES ici, en portée
 * locale sur `.welcome-pro` et `.pro-body`. Deux raisons de faire ainsi
 * plutôt que de réécrire les 550 règles :
 *   ① la bascule tient en quinze lignes et ne touche à aucune structure ;
 *   ② la portée est locale — les autres pages qui lisent ces mêmes
 *      variables ne bougent pas d'un pixel.
 * ⚠️ Ne PAS déplacer ce bloc dans `style.css` : il repeindrait tout le site.
 */

.pro-body {
	background: #FAF8F4;
	margin: 0;
	font-family: "Archivo", "Helvetica Neue", Arial, sans-serif;
	font-weight: 300;
	-webkit-font-smoothing: antialiased;
}

.welcome-pro {
	/* Les tokens de la coquille (assets/accueil-v2.css : --papier, --encre,
	   --brun, --filet…), branchés sur les anciens noms. */
	--welcome-creme:    #FAF8F4;
	--welcome-surface:  #F1EEE7;
	--welcome-encre:    #17150F;
	--welcome-cardinal: #8A6A45;  /* le rouge #D2042D a disparu du système */
	--welcome-tan:      #E0DCD1;
	--welcome-gris:     #8A8578;
	/* ⚠️ #8A8578 ne fait que 3,47:1 sur le papier — il convient à une
	   légende, PAS à du texte courant ni à un lien. Le gris de texte est
	   `--welcome-encre2` (7,9:1). Le banc `essai-peau.mjs` refuse tout
	   texte sous 4,5:1 : c'est lui qui a attrapé le fil d'Ariane. */
	--welcome-encre2:   #4E4A3F;
	--welcome-serif:    "Instrument Serif", "Iowan Old Style", Georgia, serif;
	--welcome-sans:     "Archivo", "Helvetica Neue", Arial, sans-serif;
	--welcome-mono:     "DM Mono", ui-monospace, Menlo, monospace;

	--wp-gap: clamp(16px, 3vw, 28px);
	max-width: 900px;
	margin: 0 auto 64px;
	padding: 0 16px;
	/* 01/10 — LA PLACE DE LA CAPSULE. Depuis 2.10.0 la fiche vit sous la capsule
	   de verre, qui flotte sans prendre de hauteur dans la page : le fil d'Ariane
	   (0 à 20 px) passait dessous à toutes les largeurs, et le haut de la photo
	   aussi. Même règle que les pages de résultats et les guides. */
	padding-top: calc(var(--cap-t, 14px) + var(--cap-h, 60px) + clamp(14px, 2vw, 28px));
	font-family: var(--welcome-sans, "Archivo", sans-serif);
	color: var(--welcome-encre, #17150F);
}

/* ---------- EN-TÊTE ---------- */

.wp-hero {
	position: relative;
	border-radius: 10px;
	overflow: hidden;
	background: var(--welcome-surface, #F1EEE7);
	margin-bottom: var(--wp-gap);
}

.wp-hero__cover {
	display: block;
	width: 100%;
	height: clamp(180px, 34vw, 320px);
	object-fit: cover;
}

.wp-hero__contenu {
	position: relative;
	background: var(--welcome-creme, #FAF8F4);
	padding: clamp(18px, 4vw, 32px);
	text-align: center;
}

.wp-hero__avatar {
	width: 96px;
	height: 96px;
	border-radius: 50%;
	object-fit: cover;
	border: 4px solid var(--welcome-creme, #FAF8F4);
	background: var(--welcome-surface, #F1EEE7);
	margin-top: -68px;
	position: relative;
	display: inline-block;
}

/* Sans photo de couverture, l'avatar n'a pas à remonter. */
.wp-hero--sans-photo .wp-hero__avatar { margin-top: 0; }

/* Le h1 contient DEUX lignes : le prénom (dominant) et la qualification
   métier + ville (discrète mais présente sémantiquement). */
.wp-hero__titre {
	margin: 12px 0 10px;
	color: var(--welcome-encre, #17150F);
	font-weight: 400;
}

.wp-hero__prenom {
	display: block;
	font-family: var(--welcome-sans, "Archivo", sans-serif);
	font-weight: 300;
	font-size: clamp(1.8rem, 5vw, 2.6rem);
	line-height: 1.15;
}

.wp-hero__qualif {
	display: block;
	margin-top: 4px;
	font-family: var(--welcome-sans, "Archivo", sans-serif);
	font-size: 1.02rem;
	font-weight: 400;
	color: var(--welcome-encre2, #4E4A3F);
}

.wp-hero__sous-titre {
	margin: 0 0 10px;
	font-size: 1.02rem;
	color: var(--welcome-encre2, #4E4A3F);
}

.wp-hero__note {
	margin: 0 0 6px;
	font-size: .95rem;
}
/* 13/09 — or #F2B01E, repris de l'application. Décoratif (aria-hidden) :
   la note reste lisible en texte juste a cote. */
.wp-etoiles { color: var(--welcome-or, #F2B01E); letter-spacing: 1px; }

.wp-hero__prix {
	margin: 0;
	font-size: .95rem;
	color: var(--welcome-encre2, #4E4A3F);
}
.wp-hero__prix strong { color: var(--welcome-cardinal, #8A6A45); }

/* 06/09 — ligne de confiance du héro (Phase 1 parcours client) */
.wp-hero__confiance {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px 14px;
	margin: 12px 0 0;
	font-size: .9rem;
	color: var(--welcome-encre2, #4E4A3F);
}
.wp-hero__gage { display: inline-flex; align-items: center; gap: 5px; }
.wp-hero__gage svg { color: var(--welcome-cardinal, #8A6A45); flex: none; }
.wp-hero__gage a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.wp-hero__gage--fort { font-weight: 600; color: var(--welcome-encre, #1A1A1A); }

/* 07/09 — les engagements, posés au-dessus du bloc de réservation. Ils sont
   HORS de la carte #rdv (le tunnel masque tout ce qu'il trouve dedans), donc
   sans fond ni bordure : une simple ligne sur le fond de page. */
.wp-engagements { margin: 0; padding: 2px clamp(18px, 4vw, 28px); }
.wp-engagements .wl-engagements { justify-content: center; }

/* 07/09 — quand le tunnel se monte sur #rdv, il masque tous les enfants de la
   section (`.wt-monte`) mais la CARTE du thème reste : un trait blanc de 2 px
   en travers de la page. Le fond et les marges sont déjà neutralisés côté
   tunnel ; la bordure est à nous, c'est nous qui la posons via .wp-bloc. */
#rdv.wt-monte { border: 0 !important; box-shadow: none !important; }

/* 07/09 — phase 4D : la demande en repli sur les fiches réservables. Repliée
   par défaut : elle ne doit jamais concurrencer « Réserver ». */
.wp-attente { padding: 0; overflow: hidden; }
.wp-attente summary {
	display: block;
	padding: clamp(16px, 3.5vw, 22px) clamp(18px, 4vw, 28px);
	cursor: pointer;
	list-style: none;
	position: relative;
	padding-right: 52px;
}
.wp-attente summary::-webkit-details-marker { display: none; }
.wp-attente summary::after {
	content: "";
	position: absolute;
	right: clamp(18px, 4vw, 28px);
	top: 50%;
	width: 9px; height: 9px;
	margin-top: -6px;
	border-right: 2px solid var(--welcome-cardinal, #8A6A45);
	border-bottom: 2px solid var(--welcome-cardinal, #8A6A45);
	transform: rotate(45deg);
	transition: transform .15s ease;
}
.wp-attente details[open] summary::after { transform: rotate(-135deg); margin-top: -2px; }
.wp-attente summary:hover { background: #FBF8F4; }
.wp-attente__titre { display: block; font-weight: 600; color: var(--welcome-encre, #1A1A1A); }
.wp-attente__sous { display: block; margin-top: 3px; font-size: .92rem;
	color: var(--welcome-encre2, #4E4A3F); }
.wp-attente__corps { padding: 0 clamp(18px, 4vw, 28px) clamp(18px, 4vw, 28px);
	text-align: left; }
.wp-attente__corps > p { margin: 0 0 16px; }

/* 06/09 — la prochaine ouverture d'agenda. Vert, et seule sur sa ligne : c'est
   la réponse à « est-ce que c'est possible bientôt ? ». */
.wp-hero__dispo {
	display: inline-block;
	margin: 12px 0 0;
	padding: 7px 14px;
	background: #EFF8F2;
	color: #1E7A4B;
	border-radius: 999px;
	font-size: .92rem;
	font-weight: 600;
}

/* ---------- BLOCS DE CONTENU ---------- */

.wp-corps { display: flex; flex-direction: column; gap: var(--wp-gap); }

 /* ═══════════════════════════════════════════════════════════════════
    LES BLOCS SONT DES CARTES — ET ELLES DOIVENT SE VOIR (2.10.4)
    ═══════════════════════════════════════════════════════════════════
    Elles étaient crème sur le fond NOIR du site : le contraste faisait
    la carte. Depuis que la fiche est passée au papier (2.10.0), leur
    fond valait `--welcome-creme`, c'est-à-dire EXACTEMENT celui de la
    page : les cartes avaient disparu et il ne restait que leur creux —
    36 px de padding plus 28 px de gouttière, soit cent pixels de vide
    entre deux paragraphes, sans rien pour expliquer la coupure.
    Le blanc et le filet rétablissent la lecture. L'ombre est presque
    nulle : sur du papier, c'est le filet qui porte, pas l'ombre.
    ═══════════════════════════════════════════════════════════════════ */
.wp-bloc {
	background: #FFFFFF;
	border: 1px solid var(--welcome-tan, #E0DCD1);
	border-radius: 10px;
	padding: clamp(18px, 4vw, 28px);
	box-shadow: 0 1px 2px rgba(52, 40, 24, .04);
}

.wp-bloc h2 {
	font-family: var(--welcome-sans, "Archivo", sans-serif);
	font-weight: 300;
	font-size: clamp(1.25rem, 3vw, 1.6rem);
	margin: 0 0 .55em;
	letter-spacing: -.01em;
	color: var(--welcome-encre, #17150F);
}

.wp-prose p { margin: 0 0 1em; line-height: 1.75; }
.wp-prose p:last-child { margin-bottom: 0; }

.wp-note {
	font-size: .85rem;
	color: var(--welcome-encre2, #4E4A3F);
	margin: 14px 0 0;
	line-height: 1.5;
}

/* ---------- PRESTATIONS ---------- */

.wp-prestations { list-style: none; margin: 0; padding: 0; }

.wp-presta {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
	padding: 14px 0;
	border-bottom: 1px solid var(--welcome-tan, #E0DCD1);
}
.wp-presta:last-child { border-bottom: 0; }

.wp-presta__texte { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.wp-presta__titre { font-weight: 500; }
.wp-presta__desc,
.wp-presta__duree { font-size: .87rem; color: var(--welcome-encre2, #4E4A3F); }

.wp-presta__prix {
	white-space: nowrap;
	font-weight: 500;
	color: var(--welcome-cardinal, #8A6A45);
}

/* ---------- GALERIE ---------- */

.wp-galerie {
	display: grid;
	/* `auto-fill` laissait des colonnes VIDES en fin de ligne quand la
	   galerie ne remplissait pas : les photos semblaient flotter. `auto-fit`
	   répartit ce qui existe. Vignettes un peu plus petites : une galerie
	   est un aperçu, pas la pièce principale de la page. */
	grid-template-columns: repeat(auto-fit, minmax(104px, 1fr));
	gap: 8px;
}
.wp-galerie img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 8px;
	background: var(--welcome-surface, #F1EEE7);
}

/* ---------- ZONES ---------- */

.wp-zones { margin: 0; line-height: 2; }
.wp-zones a { color: var(--welcome-encre, #17150F); text-decoration: underline; text-underline-offset: 3px; }
.wp-zones a:hover { color: var(--welcome-cardinal, #8A6A45); }
.wp-zones__alentours { color: var(--welcome-encre2, #4E4A3F); font-style: italic; }

/* ---------- APPEL À L'ACTION ---------- */

.wp-cta { text-align: center; }
.wp-cta p { margin: 0 0 16px; }

.wp-btn {
	display: inline-block;
	background: var(--welcome-cardinal, #8A6A45);
	color: #fff !important;
	text-decoration: none !important;
	padding: 14px 32px;
	border-radius: 999px;
	font-weight: 500;
	border: 0;
	cursor: pointer;
	font-size: 1rem;
	font-family: inherit;
	transition: opacity .15s ease;
}
.wp-btn:hover { opacity: .88; }

/* ---------- FORMULAIRE DE DEMANDE ---------- */

.wp-form {
	display: flex;
	flex-direction: column;
	gap: 12px;
	max-width: 420px;
	margin: 0 auto;
	text-align: left;
}
.wp-form label { display: flex; flex-direction: column; gap: 5px; font-size: .9rem; font-weight: 500; }
.wp-form input {
	padding: 11px 14px;
	border: 1px solid var(--welcome-tan, #E0DCD1);
	border-radius: 10px;
	font: inherit;
	font-weight: 400;
	background: #fff;
	color: var(--welcome-encre, #17150F);
}
.wp-form input:focus { outline: 2px solid var(--welcome-cardinal, #8A6A45); outline-offset: 1px; }
.wp-form .wp-btn { margin-top: 6px; }

/* ---------- RÉSEAUX & MAILLAGE ---------- */

.wp-social p, .wp-maillage p { margin: 0; display: flex; flex-wrap: wrap; gap: 10px 18px; }
.wp-social a, .wp-maillage a {
	color: var(--welcome-cardinal, #8A6A45);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* 22/10 — LES FICHES VOISINES (bas de fiche). Des cartes compactes, une
   colonne sur téléphone, deux ou trois au-delà. Photo de profil allégée en
   56 px, sinon l'initiale. Textes secondaires en --welcome-encre2 (7,9:1) :
   le gris --welcome-gris ne passe pas les 4,5:1 sur le papier. */
.wp-voisines {
	list-style: none;
	margin: 0 0 20px;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 10px;
}
.wp-maillage .wp-voisine__lien {
	display: flex;
	align-items: center;
	gap: 12px;
	height: 100%;
	box-sizing: border-box;
	padding: 10px 12px;
	border: 1px solid var(--welcome-tan, #E0DCD1);
	border-radius: 10px;
	background: var(--welcome-creme, #FAF8F4);
	color: var(--welcome-encre, #17150F);
	text-decoration: none;
	transition: border-color .15s ease, transform .15s ease;
}
.wp-maillage .wp-voisine__lien:hover { border-color: var(--welcome-cardinal, #8A6A45); transform: translateY(-1px); }
.wp-maillage .wp-voisine__lien:focus-visible { outline: 2px solid var(--welcome-cardinal, #8A6A45); outline-offset: 2px; }
.wp-voisine__photo {
	flex: 0 0 56px;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--welcome-surface, #F1EEE7);
	font-family: var(--welcome-serif, "Instrument Serif", Georgia, serif);
	font-size: 1.6rem;
	color: var(--welcome-encre2, #4E4A3F);
}
.wp-voisine__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wp-voisine__texte { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.wp-voisine__nom { font-weight: 500; font-size: 1rem; line-height: 1.25; overflow-wrap: anywhere; }
.wp-voisine__meta,
.wp-voisine__plus { font-size: .85rem; line-height: 1.3; color: var(--welcome-encre2, #4E4A3F); }
.wp-voisine__plus b { font-weight: 600; color: var(--welcome-encre, #17150F); }

/* ---------- MOBILE ---------- */

@media (max-width: 560px) {
	.wp-presta { flex-direction: column; align-items: flex-start; gap: 4px; }
	.wp-presta__prix { align-self: flex-start; }
}

/* =========================================================
   AJOUTS v2.2.0 — confiance, fil d'Ariane, FAQ, barre collante
   ========================================================= */

/* ---------- FIL D'ARIANE ----------
   Il vit sur le fond NOIR du site, hors des cartes crème :
   ses couleurs doivent donc être claires. */
.wp-ariane {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	font-size: .85rem;
	margin: 0 0 14px;
	color: var(--welcome-encre2, #4E4A3F);
}
.wp-ariane a { color: var(--welcome-encre2, #4E4A3F); text-decoration: none; }
.wp-ariane a:hover { color: var(--welcome-cardinal, #8A6A45); text-decoration: underline; }
.wp-ariane [aria-current="page"] { color: var(--welcome-encre2, #4E4A3F); }

/* ---------- EN-TÊTE SANS PHOTO ----------
   Dégradé de marque + initiale, plutôt qu'un vide. */
.wp-hero__placeholder {
	height: clamp(140px, 26vw, 220px);
	background: linear-gradient(135deg, var(--welcome-tan, #E0DCD1), var(--welcome-surface, #F1EEE7));
	display: flex;
	align-items: center;
	justify-content: center;
}
.wp-hero__placeholder span {
	font-family: var(--welcome-sans, "Archivo", sans-serif);
	font-weight: 300;
	font-size: clamp(3rem, 9vw, 5rem);
	color: rgba(26, 26, 26, .22);
	line-height: 1;
}

/* ---------- BANDEAU DE CONFIANCE ---------- */
.wp-confiance {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 4px;
	background: var(--welcome-creme, #FAF8F4);
	border-radius: 16px;
	padding: 16px 10px;
	margin-bottom: var(--wp-gap);
	text-align: center;
}
.wp-confiance__item { display: flex; flex-direction: column; gap: 2px; padding: 0 4px; }
.wp-confiance__item strong {
	font-family: var(--welcome-sans, "Archivo", sans-serif);
	font-weight: 300;
	font-size: clamp(1.05rem, 2.6vw, 1.35rem);
	color: var(--welcome-cardinal, #8A6A45);
	line-height: 1.1;
}
.wp-confiance__item span {
	font-size: .74rem;
	color: var(--welcome-encre2, #4E4A3F);
	line-height: 1.25;
}

/* ---------- CATÉGORIES DE PRESTATIONS ---------- */
.wp-presta-cat {
	font-family: var(--welcome-sans, "Archivo", sans-serif);
	font-weight: 300;
	font-size: 1.05rem;
	margin: 1.6em 0 .2em;
	color: var(--welcome-encre2, #4E4A3F);
}
.wp-presta-cat:first-of-type { margin-top: .4em; }

/* ---------- FAQ ---------- */
.wp-faq details {
	border-bottom: 1px solid var(--welcome-tan, #E0DCD1);
	padding: 4px 0;
}
.wp-faq details:last-of-type { border-bottom: 0; }
.wp-faq summary {
	cursor: pointer;
	padding: 13px 0;
	font-weight: 500;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 14px;
}
.wp-faq summary::-webkit-details-marker { display: none; }
.wp-faq summary::after {
	content: "+";
	color: var(--welcome-cardinal, #8A6A45);
	font-size: 1.3rem;
	line-height: 1;
	flex-shrink: 0;
}
.wp-faq details[open] summary::after { content: "−"; }
.wp-faq details p {
	margin: 0 0 14px;
	line-height: 1.7;
	color: var(--welcome-encre2, #4E4A3F);
}

/* ---------- DATE DE MISE À JOUR ---------- */
.wp-maj {
	text-align: center;
	font-size: .82rem;
	color: rgba(23, 21, 15, .45);
	margin: 4px 0 0;
}

/* ---------- BARRE COLLANTE MOBILE ---------- */
.wp-sticky {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 90;
	display: none;               /* activée en mobile uniquement */
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
	background: var(--welcome-creme, #FAF8F4);
	box-shadow: 0 -4px 18px rgba(0, 0, 0, .3);
	transition: transform .22s ease;
}
.wp-sticky--cache { transform: translateY(110%); }
.wp-sticky__info { display: flex; flex-direction: column; min-width: 0; }
.wp-sticky__info strong { font-size: .95rem; line-height: 1.2; }
.wp-sticky__info span { font-size: .8rem; color: var(--welcome-encre2, #4E4A3F); }
.wp-btn--sm { padding: 11px 22px; font-size: .92rem; flex-shrink: 0; }

@media (max-width: 780px) {
	.wp-sticky { display: flex; }
	/* Évite que la barre masque la fin du contenu. */
	.welcome-pro { padding-bottom: 78px; }
	.wp-confiance { grid-template-columns: repeat(2, 1fr); gap: 14px 4px; }
}

/* Respect des préférences d'accessibilité. */
@media (prefers-reduced-motion: reduce) {
	.wp-sticky { transition: none; }
}

/* =========================================================
   AJOUTS v2.3.0 — zones repliées, minimum de commande
   ========================================================= */

/* ---------- COMMUNES SUPPLÉMENTAIRES ----------
   Repliées pour le visiteur, présentes dans le HTML pour Google. */
.wp-zones-plus { margin-top: 10px; }
.wp-zones-plus summary {
	cursor: pointer;
	font-size: .88rem;
	color: var(--welcome-cardinal, #8A6A45);
	list-style: none;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.wp-zones-plus summary::-webkit-details-marker { display: none; }
.wp-zones-plus summary::after { content: "▾"; font-size: .75rem; }
.wp-zones-plus[open] summary::after { content: "▴"; }
.wp-zones-plus .wp-zones { margin-top: 8px; font-size: .95rem; }

/* ---------- MONTANT MINIMUM DE COMMANDE ----------
   Encadré discret : c'est une information, pas un avertissement. */
.wp-presta-mini {
	margin: 18px 0 0;
	padding: 12px 16px;
	background: var(--welcome-surface, #F1EEE7);
	border-radius: 12px;
	font-size: .92rem;
	line-height: 1.5;
}
.wp-presta-mini strong { color: var(--welcome-cardinal, #8A6A45); }
.wp-presta-mini span { color: var(--welcome-encre2, #4E4A3F); font-size: .85rem; }

/* =========================================================
   AJOUTS v2.5.0 — bloc de revendication (pro se googlant)
   ========================================================= */

.wp-revendiquer {
	background: var(--welcome-surface, #F1EEE7);
	border-radius: 16px;
	padding: clamp(16px, 3vw, 26px);
	text-align: center;
	font-size: .92rem;
	line-height: 1.6;
	color: var(--welcome-encre2, #4E4A3F);
}
.wp-revendiquer p { margin: 0 0 14px; }
.wp-revendiquer strong { color: var(--welcome-encre, #17150F); }

/* Fiche incomplète : liseré discret, pas d'alarme. La page reste
   présentable pour une cliente — c'est le pro qu'on interpelle. */
.wp-revendiquer--incomplete {
	border: 1px solid var(--welcome-tan, #E0DCD1);
}

.wp-revendiquer__lien {
	display: inline-block;
	color: var(--welcome-cardinal, #8A6A45) !important;
	text-decoration: underline;
	text-underline-offset: 3px;
	font-weight: 500;
}

/* ── Capture de demande de rendez-vous (chantier A5, thème 2.7.0) ────── */

/* Pot de miel : hors écran pour les humains, présent pour les robots.
   PAS display:none — certains robots l'ignorent, et un lecteur d'écran
   est tenu à l'écart par aria-hidden + tabindex=-1. */
.wp-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.wp-bandeau {
	padding: 14px 18px;
	border-radius: 10px;
	font-weight: 500;
	margin: 0 0 18px;
}

.wp-bandeau--ok {
	background: #e8f6ee;
	color: #14532d;
	border: 1px solid #bbe5cb;
}

.wp-bandeau--erreur {
	background: #fdecec;
	color: #7f1d1d;
	border: 1px solid #f5c2c2;
}


/* ═══════════ Lot du 21/08 — decisions A, E, F, I, J + logos sociaux ═══════════ */

/* I1 — le monogramme Welcome remplace l'initiale (couverture absente). */
.wp-hero__placeholder--marque span { display: none; }
.wp-hero__placeholder--marque img {
	width: 88px; height: 88px; border-radius: 22px;
	box-shadow: 0 10px 26px rgba(26, 26, 26, .14);
}

/* I1 — avatar de repli : le monogramme, entier, sur blanc. */
.wp-hero__avatar--marque { object-fit: contain; padding: 12px; background: #fff; }

/* F2 — la rangee d'ancres de categories. */
.wp-presta-nav { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; }
.wp-presta-nav a {
	padding: 7px 13px; border-radius: 999px; background: #fff;
	border: 1px solid var(--welcome-surface, #F1EEE7);
	color: var(--welcome-encre, #17150F); text-decoration: none; font-size: .88rem;
}
.wp-presta-nav a:hover { border-color: var(--welcome-cardinal, #8A6A45); }

/* F3 — categories repliables au-dela de 20 prestations. */
.wp-presta-groupe { margin: 0 0 6px; }
.wp-presta-groupe summary {
	cursor: pointer; list-style: none;
	display: flex; align-items: center; gap: 10px; padding: 10px 0;
}
.wp-presta-groupe summary::-webkit-details-marker { display: none; }
.wp-presta-groupe summary::after {
	content: "+"; margin-left: auto; font-size: 1.25rem;
	color: var(--welcome-encre2, #4E4A3F); line-height: 1;
}
.wp-presta-groupe[open] summary::after { content: "\2212"; }
.wp-presta-groupe .wp-presta-cat { margin: 0; }
.wp-presta-nb {
	font-size: .82rem; color: var(--welcome-encre2, #4E4A3F); background: #fff;
	border: 1px solid var(--welcome-surface, #F1EEE7);
	border-radius: 999px; padding: 2px 9px;
}

/* 2.10.6 — une pile de categories fermees doit se lire comme une LISTE.
   Sans filet, les intitules flottaient les uns sous les autres. */
.wp-presta-groupe { margin: 0; border-bottom: 1px solid var(--welcome-tan, #E0DCD1); }
.wp-presta-groupe:last-of-type { border-bottom: 0; }
.wp-presta-groupe > summary { padding: 14px 0; }
.wp-presta-groupe > summary:hover .wp-presta-cat { color: var(--welcome-cardinal, #8A6A45); }
.wp-presta-groupe[open] > summary { padding-bottom: 6px; }
.wp-presta-groupe[open] > .wp-prestations { padding-bottom: 8px; }

/* 2.10.6 — repli de SECOURS : la liste elle-meme, quand la fiche n'a pas
   assez de categories pour que le repli par categorie s'applique. */
.wp-presta-reste { margin: 0; }
.wp-presta-reste > summary {
	cursor: pointer; list-style: none;
	display: flex; align-items: center; gap: 8px;
	padding: 14px 0 2px; margin-top: 4px;
	border-top: 1px solid var(--welcome-tan, #E0DCD1);
	font-size: .92rem; font-weight: 500;
	color: var(--welcome-cardinal, #8A6A45);
}
.wp-presta-reste > summary::-webkit-details-marker { display: none; }
.wp-presta-reste > summary::after { content: "\25BE"; font-size: .7rem; }
.wp-presta-reste[open] > summary::after { content: "\25B4"; }

/* E2 — l'etat vide franc. */
.wp-vide p { margin: 0 0 10px; }
.wp-vide a { color: var(--welcome-cardinal, #8A6A45); }

/* J2 — la carte statique des environs : image de fond + halos VECTORIELS. */
.wp-carte { margin: 0 0 18px; }
.wp-carte__cadre { position: relative; border-radius: 14px; overflow: hidden; }
.wp-carte img { width: 100%; height: auto; display: block; }
.wp-carte__halos {
	position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none;
}
.wp-carte__halos ellipse {
	fill: var(--welcome-cardinal, #8A6A45); fill-opacity: .13;
}
.wp-carte__epingle {
	position: absolute; transform: translate(-50%, -100%); pointer-events: none;
	display: flex; flex-direction: column; align-items: center; gap: 3px;
}
.wp-carte__epingle::after {
	content: ""; width: 11px; height: 11px; border-radius: 50%;
	background: var(--welcome-cardinal, #8A6A45); border: 2px solid #fff;
	box-shadow: 0 1px 4px rgba(26, 26, 26, .4);
}
.wp-carte__epingle b {
	font-size: .72rem; font-weight: 500; background: #fff; color: var(--welcome-encre, #17150F);
	padding: 2px 7px; border-radius: 999px; white-space: nowrap;
	box-shadow: 0 1px 4px rgba(26, 26, 26, .18);
}
.wp-carte figcaption { font-size: .78rem; color: var(--welcome-encre2, #4E4A3F); margin-top: 6px; }
.wp-carte__credit { display: block; opacity: .8; }

/* Logos sociaux — pastilles rondes, SVG en courant. */
.wp-social a.wp-social__lien {
	display: inline-flex; width: 42px; height: 42px; border-radius: 50%;
	align-items: center; justify-content: center; background: #fff;
	border: 1px solid var(--welcome-surface, #F1EEE7);
	color: var(--welcome-encre, #17150F);
}
.wp-social a.wp-social__lien:hover {
	color: var(--welcome-cardinal, #8A6A45);
	border-color: var(--welcome-cardinal, #8A6A45);
}
.wp-social svg { width: 20px; height: 20px; fill: currentColor; }


/* ═══════════════════════════════════════════════════════════════════════
   LES EMOJI DES NOMS COMMERCIAUX (2.10.2)
   ═══════════════════════════════════════════════════════════════════════
   WordPress remplace les emoji par des <img class="emoji"> et leur donne
   leur taille par une feuille INLINE. Cette feuille est dequeuée depuis la
   2.9.29 (voir « pages-metier ») : sans règle de remplacement, une image de
   150 px s'affiche à SA TAILLE NATURELLE — relevé à 796 px de large sur
   `/pro/banc-essai-lou/`, au milieu du nom de la professionnelle.
   La règle ci-dessous est celle de WordPress, reprise telle quelle. Elle
   doit vivre dans CHAQUE feuille de page qui affiche un nom saisi par une
   pro — un jour, la mettre en commun dans `coquille.css`.
   ═══════════════════════════════════════════════════════════════════════ */
/* ⚠️ SANS PORTÉE, ET C'EST VOULU. Portée par `.welcome-pro`, la règle
   laissait passer la modale du tunnel, qui vit HORS du <main> : les emoji
   d'une description de lieu s'y affichaient à 307 px (relevé le 31/08).
   `wp-emoji-release.min.js` observe le DOM et convertit AUSSI ce qui est
   injecté après coup — tout contenu dynamique est concerné.
   ⚠️ BLOC IDENTIQUE dans welcome-tunnel/assets/reservation.css : le tunnel
   porte la sienne pour rester protégé sur les pages qui ne chargent pas
   pro.css. Toute modification doit être reportée. */
img.emoji,
img.wp-smiley {
	display: inline !important;
	width: 1em !important;
	height: 1em !important;
	margin: 0 .07em !important;
	padding: 0 !important;
	border: none !important;
	box-shadow: none !important;
	background: none !important;
	vertical-align: -.1em !important;
}

/* ═══════════ AVIS CLIENTS (07/09) ═══════════
   Rien de tout ceci ne s'affiche tant que la synchro n'envoie pas d'avis :
   le bloc entier est conditionné en PHP. */
.wp-avis__tete { display: flex; align-items: baseline; justify-content: space-between;
	gap: 12px; flex-wrap: wrap; }
.wp-avis__tete h2 { margin: 0; }
.wp-avis__moyenne { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
	margin: 16px 0 4px; }
.wp-avis__moyenne strong { font-size: 2.4rem; line-height: 1;
	font-family: var(--welcome-serif, Georgia, serif); }
.wp-avis__moyenne .wp-etoiles { color: var(--welcome-or, #F2B01E); letter-spacing: .08em;
	font-size: 1.6rem; }
.wp-avis__sur { color: var(--welcome-gris, #5A5148); font-size: .95rem; }
.wp-avis__moyenne--peu { font-size: 1.05rem; font-weight: 600; }

.wp-avis__liste { list-style: none; margin: 22px 0 0; padding: 0; }
.wp-avis__item { padding: 18px 0; border-top: 1px solid var(--welcome-tan, #E4DACE); }
.wp-avis__item:first-child { border-top: 0; padding-top: 4px; }
.wp-avis__note { margin: 0 0 4px; }
.wp-avis__note .wp-etoiles { color: var(--welcome-or, #F2B01E); letter-spacing: .1em; }
/* La ligne d'en-tête porte les DEUX dates imposées par D.111-10 : celle de la
   prestation et celle du dépôt. Discrète, mais jamais absente. */
.wp-avis__qui { margin: 0 0 8px; font-size: .88rem; color: var(--welcome-gris, #5A5148); }
.wp-avis__qui strong { color: var(--welcome-encre, #1A1A1A); font-size: .95rem; }
.wp-avis__presta { margin: 0 0 8px; font-size: .88rem; font-weight: 600;
	color: var(--welcome-encre2, #4E4A3F); }
.wp-avis__tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.wp-avis__tags span { font-size: .78rem; padding: 3px 10px; border-radius: 999px;
	background: var(--welcome-surface, #F0EBE3); color: var(--welcome-encre2, #4E4A3F); }
.wp-avis__texte { margin: 0; line-height: 1.6; }
/* La réponse de la pro est décalée : on doit voir d'un coup d'œil que ce
   n'est plus la cliente qui parle. */
.wp-avis__reponse { margin: 12px 0 0 18px; padding: 12px 14px;
	background: var(--welcome-creme, #FAF6F1); border-left: 3px solid var(--welcome-tan, #E4DACE);
	border-radius: 0 10px 10px 0; }
.wp-avis__reponse p { margin: 0; font-size: .92rem; line-height: 1.55; }
.wp-avis__reponse-titre { font-weight: 600; margin-bottom: 4px !important;
	color: var(--welcome-encre, #1A1A1A); }
/* Mention L.111-7-2 — obligatoire, et à côté du bloc. Ne pas retirer. */
.wp-avis__pied { margin: 20px 0 0; padding-top: 14px; font-size: .84rem;
	color: var(--welcome-gris, #5A5148);
	border-top: 1px solid var(--welcome-tan, #E4DACE); }
.wp-avis__pied a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.wp-hero__note--peu strong, .wp-hero__note--peu { font-weight: 500; }
.wp-hero__note a { color: inherit; }

/* ═══ 21/09 — parité fiche / application : tags cités, répartition des
   notes (S2) et conditions de la pro (S3). ═══ */
.wp-avis__cites { margin: 16px 0 6px; font-size: .88rem; font-weight: 600;
	color: var(--welcome-gris, #5A5148); }
.wp-avis__tags--top span { background: var(--welcome-creme, #F5EFE6); }
.wp-avis__repartition { list-style: none; margin: 14px 0 0; padding: 0; max-width: 360px; }
.wp-avis__repartition li { display: grid; grid-template-columns: 38px 1fr 28px; align-items: center;
	gap: 8px; margin: 0 0 4px; font-size: .84rem; color: var(--welcome-gris, #5A5148); }
.wp-avis__rep-barre { height: 8px; border-radius: 999px; overflow: hidden;
	background: var(--welcome-tan, #E4DACE); }
.wp-avis__rep-barre i { display: block; height: 100%; border-radius: 999px;
	background: var(--welcome-or, #F2B01E); }
.wp-avis__rep-n { text-align: right; }
.wp-conditions__item { border-top: 1px solid var(--welcome-tan, #E4DACE); padding: 12px 0; }
.wp-conditions__item:first-of-type { border-top: 0; padding-top: 4px; }
.wp-conditions__item summary { cursor: pointer; font-weight: 600; font-size: 1rem; }
.wp-conditions__item .wp-prose { margin-top: 10px; font-size: .95rem; }
