/**
 * Plombiers Pro — habillage des pages de l'annuaire.
 *
 * Chargé uniquement là où le plugin JCF Annuaire charge ses propres styles,
 * et toujours après eux : ce fichier ne fait que corriger ce qui, dans le
 * plugin, était dessiné pour l'ancien thème (Poppins, liserés colorés,
 * petites étiquettes en capitales, avatars en dégradé).
 *
 * Sommaire
 *   1. Boutons et éléments communs
 *   2. Annuaire : filtres en colonne, résultats à droite
 *   3. Cartes de plombier
 *   4. Pagination, état vide, rangée sponsorisée
 *   5. Pages ville / intervention (introduction, tarifs, FAQ)
 *   6. Fiche plombier
 *   7. Espace professionnel (formulaires, tableau de bord)
 */

/* ==========================================================================
   1. BOUTONS ET ÉLÉMENTS COMMUNS
   ========================================================================== */
.jcf-annuaire-btn,
.jcf-form-btn {
	min-height: 44px;
	padding: 10px 20px;
	border-radius: var(--jdw-radius-sm);
	font-family: var(--jdw-font-heading);
	font-size: 17px;
	font-weight: 600;
	letter-spacing: 0.01em;
	box-shadow: none;
	justify-content: center;
}

.jcf-annuaire-btn-secondary {
	background: #fff;
	color: var(--jdw-primary);
	border: 1px solid var(--jdw-border);
}

.jcf-annuaire-btn-secondary:hover {
	background: #fff;
	border-color: var(--jdw-primary);
	color: var(--jdw-primary);
}

/* Titres de section du plugin : de vrais titres plutôt que des
   étiquettes en capitales soulignées d'un dégradé. */
.jcf-section-title {
	padding: 0;
	margin: 0 0 14px;
	font-family: var(--jdw-font-heading);
	font-size: 24px;
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: 0;
	text-transform: none;
	color: var(--jdw-primary);
}

.jcf-section-title::after { content: none; }

/* Badges « Profil vérifié » et « Fondateur » */
.jcf-verified-tag {
	padding: 3px 10px;
	background: var(--jdw-accent-2-glow);
	color: var(--jdw-accent-2);
	font-family: var(--jdw-font-body);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0;
}

.jcf-founding-tag {
	font-size: 13px;
	background: #fbf3dc;
	color: #7a5600;
}

.jcf-single-founding-badge {
	padding: 4px 12px;
	background: #fbf3dc;
	color: #7a5600;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	vertical-align: top;
}

/* Bandeau « avant-première » réservé aux administrateurs */
.jcf-preview-banner {
	margin: 20px 0 0;
	border-radius: var(--jdw-radius);
}

.jcf-coming-soon h2 { font-size: 30px; font-weight: 600; }

/* ==========================================================================
   2. ANNUAIRE : FILTRES ET RÉSULTATS
   ========================================================================== */
.jcf-annuaire-directory { margin-bottom: 0; }

.jcf-annuaire-filters {
	padding: 20px;
	margin-bottom: 24px;
	border-radius: var(--jdw-radius);
	box-shadow: none;
}

.jcf-annuaire-filters-toggle {
	padding: 0;
	margin: 0 0 16px;
	font-family: var(--jdw-font-heading);
	font-size: 22px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	color: var(--jdw-primary);
	cursor: default;
}

.jcf-annuaire-filters-toggle::after { content: none; }

.jcf-filter-count {
	min-width: 22px;
	height: 22px;
	font-family: var(--jdw-font-body);
	font-size: 12px;
	vertical-align: 3px;
}

.jcf-annuaire-filter-group { margin-bottom: 20px; }

.jcf-annuaire-filter-group > label:first-child {
	margin-bottom: 8px;
	font-family: var(--jdw-font-body);
	font-size: 14px;
	font-weight: 600;
	color: var(--jdw-primary);
}

.jcf-annuaire-filter-group label {
	gap: 10px;
	padding: 5px 0;
	font-size: 15px;
	line-height: 1.35;
}

.jcf-annuaire-filter-group input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin: 0;
	flex: 0 0 auto;
}

.jcf-annuaire-filter-group input[type="text"] {
	min-height: 44px;
	padding: 10px 12px;
	font-size: 16px;
	background: #fff;
	border-radius: var(--jdw-radius-sm);
}

.jcf-annuaire-filter-group input[type="text"]:focus {
	border-color: var(--jdw-primary);
	box-shadow: 0 0 0 3px rgba(20, 35, 59, 0.12);
}

.jcf-annuaire-filter-scroll {
	max-height: 220px;
	padding-right: 6px;
}

/* « Profils vérifiés uniquement » : la case la plus utile, mise à part */
.jcf-annuaire-filter-group > label.jcf-annuaire-filter-verified:first-child {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
	padding: 12px;
	border: 1px solid var(--jdw-border);
	border-radius: var(--jdw-radius-sm);
	background: var(--jdw-bg);
}

.jcf-annuaire-filter-verified input { margin-top: 2px; }

.jcf-annuaire-filter-verified strong {
	font-size: 15px;
	color: var(--jdw-primary);
}

.jcf-annuaire-filter-verified small {
	font-size: 13px;
	line-height: 1.45;
	color: var(--jdw-text-muted);
}

/* Les filtres s'appliquent dès qu'on coche : le bouton ne sert qu'aux
   navigateurs sans JavaScript, il reste discret. */
.jcf-annuaire-filter-form > .jcf-annuaire-btn {
	background: #fff;
	color: var(--jdw-primary);
	border: 1px solid var(--jdw-border);
}

.jcf-annuaire-filter-form > .jcf-annuaire-btn:hover {
	border-color: var(--jdw-primary);
	background: #fff;
	color: var(--jdw-primary);
}

/* Bureau : filtres dans une colonne fixe à gauche, résultats à droite */
@media (min-width: 1024px) {
	.jcf-annuaire-directory {
		display: grid;
		grid-template-columns: 280px minmax(0, 1fr);
		gap: 32px;
		align-items: start;
	}

	.jcf-annuaire-filters-wrapper {
		position: sticky;
		top: calc(var(--jdw-header-h) + 20px);
	}

	.admin-bar .jcf-annuaire-filters-wrapper { top: calc(var(--jdw-header-h) + 52px); }

	.jcf-annuaire-filters { margin-bottom: 0; }

	.jcf-annuaire-filter-form { display: block; }

	.jcf-annuaire-filter-form > .jcf-annuaire-btn { width: 100%; margin-top: 0; }

	.jcf-filter-chevron { display: none; }

	/* La colonne ne doit jamais dépasser l'écran */
	.jcf-annuaire-filter-scroll { max-height: min(220px, calc((100vh - 620px) / 2)); min-height: 120px; }
}

/* Tablette : filtres sur trois colonnes au-dessus des résultats (plugin) */
@media (min-width: 769px) and (max-width: 1023px) {
	.jcf-filter-chevron { display: none; }
}

/* Mobile : le titre devient un vrai bouton de dépliage */
@media (max-width: 768px) {
	.jcf-annuaire-filters { padding: 0; }

	.jcf-annuaire-filters-toggle {
		min-height: 52px;
		margin: 0;
		padding: 12px 16px;
		font-size: 20px;
		cursor: pointer;
	}

	.jcf-annuaire-filters-body {
		margin: 0;
		padding: 16px;
	}
}

/* Grille de résultats */
.jcf-annuaire-grid {
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
	gap: 16px;
	margin-bottom: 24px;
}

.jcf-annuaire-results.jcf-is-loading { opacity: 0.45; }

/* ==========================================================================
   3. CARTES DE PLOMBIER
   --------------------------------------------------------------------------
   La plupart des fiches n'ont ni photo ni logo : un grand carré coloré en
   tête de carte prenait la moitié de la hauteur pour n'afficher que des
   initiales. La carte devient une fiche compacte, lisible d'un coup d'œil :
   visuel réduit à côté du nom, puis les preuves de confiance, l'extrait
   et le tarif de déplacement. Toute la carte est cliquable.
   ========================================================================== */
.jcf-plombier-card {
	position: relative;
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr);
	/* Dernière rangée extensible : le pied de carte reste aligné en bas
	   quand les cartes d'une même ligne n'ont pas la même hauteur. */
	grid-template-rows: auto auto auto auto auto auto 1fr;
	column-gap: 14px;
	row-gap: 0;
	align-content: start;
	padding: 18px;
	background: var(--jdw-card-bg);
	border: 1px solid var(--jdw-border);
	border-radius: var(--jdw-radius);
	box-shadow: none;
	overflow: visible;
	transition: border-color 0.15s var(--jdw-ease), box-shadow 0.15s var(--jdw-ease);
}

.jcf-plombier-card:hover {
	transform: none;
	border-color: var(--jdw-border-hover);
	box-shadow: var(--jdw-shadow-md);
}

.jcf-plombier-card[data-premium="1"] { border-left-color: var(--jdw-border); }
.jcf-plombier-card[data-premium="1"]:hover { border-left-color: var(--jdw-border-hover); }

.jcf-plombier-card:focus-within {
	border-color: var(--jdw-primary);
}

/* Les conteneurs du plugin s'effacent : leurs enfants se placent
   directement dans la grille de la carte. */
.jcf-plombier-card .jcf-annuaire-card-image,
.jcf-plombier-card .jcf-annuaire-card-body {
	display: contents;
}

.jcf-plombier-card .jcf-annuaire-card-avatar-fallback::before { content: none; }

/* Ligne 1 : mentions Sponsorisé / Premium (seulement si présentes) */
.jcf-plombier-card .jcf-card-badges {
	grid-column: 1 / -1;
	grid-row: 1;
	position: static;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 12px;
	padding: 0;
	background: none;
	pointer-events: auto;
}

.jcf-plombier-card .jcf-card-badges .jcf-premium-badge,
.jcf-plombier-card .jcf-card-badges .jcf-card-sponsored {
	padding: 2px 10px;
	font-family: var(--jdw-font-body);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	line-height: 1.6;
}

.jcf-plombier-card .jcf-card-badges .jcf-card-sponsored {
	background: var(--jdw-bg-alt);
	color: var(--jdw-text-light);
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}

.jcf-plombier-card .jcf-card-badges .jcf-premium-badge {
	background: var(--jdw-accent);
	color: #fff;
}

/* Lignes 2-3 : visuel à gauche, nom et badges de confiance à droite */
.jcf-plombier-card .jcf-annuaire-card-image > img,
.jcf-plombier-card .jcf-avatar-initials {
	grid-column: 1;
	grid-row: 2 / span 2;
	align-self: start;
	width: 56px;
	height: 56px;
	max-width: none;
	min-width: 0;
	border-radius: var(--jdw-radius-sm);
	transform: none !important;
	transition: none;
}

.jcf-plombier-card .jcf-annuaire-card-image > img {
	object-fit: cover;
	background: var(--jdw-bg);
	border: 1px solid var(--jdw-border-light);
}

.jcf-plombier-card .jcf-avatar-initials {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--jdw-bg-alt);
	border: 0;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
	font-family: var(--jdw-font-heading);
	font-size: 22px;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--jdw-primary);
}

.jcf-plombier-card .jcf-annuaire-card-body h3 {
	grid-column: 2;
	grid-row: 2;
	align-self: center;
	min-height: 28px;
	margin: 0;
	font-family: var(--jdw-font-heading);
	font-size: 21px;
	font-weight: 600;
	line-height: 1.15;
	overflow-wrap: anywhere;
}

.jcf-plombier-card .jcf-annuaire-card-body h3 a {
	color: var(--jdw-primary);
	text-decoration: none;
}

/* Le lien du nom couvre toute la carte */
.jcf-plombier-card .jcf-annuaire-card-body h3 a::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
}

.jcf-plombier-card .jcf-annuaire-card-body h3 a:focus-visible { outline: none; }

.jcf-plombier-card:hover .jcf-annuaire-card-body h3 a { color: var(--jdw-accent); }

.jcf-plombier-card .jcf-card-tags {
	grid-column: 2;
	grid-row: 3;
	align-self: start;
	margin: 6px 0 0;
}

.jcf-plombier-card .jcf-card-tags .jcf-verified-tag,
.jcf-plombier-card .jcf-founding-tag {
	padding: 1px 9px;
	font-size: 13px;
}

/* Lignes suivantes : pleine largeur */
.jcf-plombier-card .jcf-card-response {
	grid-column: 1 / -1;
	grid-row: 4;
	margin: 14px 0 0;
	font-size: 14px;
	color: var(--jdw-text-light);
}

.jcf-plombier-card .jcf-annuaire-card-rating {
	grid-column: 1 / -1;
	grid-row: 5;
	margin: 10px 0 0;
	font-size: 15px;
}

.jcf-plombier-card .jcf-annuaire-card-excerpt {
	grid-column: 1 / -1;
	grid-row: 6;
	margin: 12px 0 0;
	font-size: 15px;
	line-height: 1.55;
	color: var(--jdw-text-light);
}

.jcf-plombier-card .jcf-annuaire-card-excerpt:empty { display: none; }

.jcf-plombier-card .jcf-annuaire-card-footer {
	grid-column: 1 / -1;
	grid-row: 7;
	align-self: end;
	margin-top: 16px;
	padding-top: 14px;
	border-top: 1px solid var(--jdw-border-light);
}

.jcf-plombier-card .jcf-annuaire-card-price {
	font-family: var(--jdw-font-body);
	font-size: 15px;
	font-weight: 600;
	color: var(--jdw-text);
}

.jcf-plombier-card .jcf-annuaire-card-cta {
	position: relative;
	z-index: 2;
	font-family: var(--jdw-font-heading);
	font-size: 17px;
	font-weight: 600;
	color: var(--jdw-accent);
}

.jcf-plombier-card .jcf-annuaire-card-cta:hover { gap: 6px; color: var(--jdw-accent-dark); }

/* Note en étoiles */
.jcf-annuaire-rating {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.jcf-annuaire-stars { color: #d98b06; letter-spacing: 1px; }
.jcf-annuaire-stars .empty { color: var(--jdw-border-hover); }

/* ==========================================================================
   4. PAGINATION, ÉTAT VIDE, RANGÉE SPONSORISÉE
   ========================================================================== */
.jcf-annuaire-pagination {
	justify-content: flex-start;
	margin: 8px 0 0;
}

.jcf-annuaire-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 12px;
	border-color: var(--jdw-border);
	border-radius: var(--jdw-radius-sm);
	color: var(--jdw-primary);
	font-family: var(--jdw-font-body);
	font-size: 15px;
	font-weight: 500;
}

.jcf-annuaire-pagination .page-numbers:hover {
	background: #fff;
	border-color: var(--jdw-primary);
	color: var(--jdw-primary);
}

.jcf-annuaire-pagination .page-numbers.current {
	background: var(--jdw-primary);
	border-color: var(--jdw-primary);
	color: #fff;
	box-shadow: none;
}

.jcf-annuaire-pagination .page-numbers.dots {
	border-color: transparent;
	background: none;
}

.jcf-annuaire-no-results {
	padding: 32px 24px;
	border: 1px dashed var(--jdw-border-hover);
	border-radius: var(--jdw-radius);
	background: #fff;
	color: var(--jdw-text-light);
}

.jcf-annuaire-no-results p { margin: 0; font-size: 17px; }

.jcf-featured-row {
	padding-bottom: 24px;
	margin-bottom: 24px;
	border-bottom: 1px solid var(--jdw-border);
}

/* ==========================================================================
   5. PAGES VILLE / INTERVENTION
   ========================================================================== */

/* Sans photo, le plugin teinte le bandeau d'un dégradé tiré au hasard
   (violet, vert…) : on garde le bandeau marine quadrillé du site. Une
   photo choisie pour la ville reste affichée par-dessus. */
.tax-localisation .jdw-page-header,
.tax-specialite .jdw-page-header {
	background-color: var(--jdw-primary);
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
	background-size: 32px 32px;
	background-position: -1px -1px;
	background-repeat: repeat;
}
.jcf-seo-intro {
	max-width: 70ch;
	font-size: 17px;
	color: var(--jdw-text);
}

.jcf-seo-intro h2,
.jcf-seo-intro h3 {
	font-size: 26px;
	font-weight: 600;
}

.jcf-seo-tarifs {
	margin-top: 48px;
	padding: clamp(20px, 3vw, 28px);
	border-radius: var(--jdw-radius);
}

.jcf-seo-tarifs h2,
.jcf-seo-faq h2 {
	font-size: clamp(26px, 2.8vw, 32px);
	font-weight: 600;
}

.jcf-seo-tarifs-grid { text-align: left; }

.jcf-seo-tarif {
	padding: 16px 18px;
	border-radius: var(--jdw-radius-sm);
	background: var(--jdw-bg);
}

.jcf-seo-tarif-median {
	background: var(--jdw-primary);
}

.jcf-seo-tarif-value {
	font-size: 30px;
	font-weight: 700;
}

.jcf-seo-tarif-median .jcf-seo-tarif-value { color: #fff; }
.jcf-seo-tarif-median .jcf-seo-tarif-label { color: rgba(255, 255, 255, 0.75); }

.jcf-seo-tarif-label { font-size: 14px; }
.jcf-seo-tarifs-note { font-size: 14px; color: var(--jdw-text-muted); }

.jcf-seo-faq { margin-top: 48px; max-width: 820px; }

.jcf-seo-faq-item {
	margin: 0;
	border: 0;
	border-top: 1px solid var(--jdw-border);
	border-radius: 0;
	background: none;
	overflow: visible;
}

.jcf-seo-faq-item:last-child { border-bottom: 1px solid var(--jdw-border); }

.jcf-seo-faq-item:hover,
.jcf-seo-faq-item[open] {
	border-color: var(--jdw-border);
	box-shadow: none;
}

.jcf-seo-faq-item summary {
	min-height: 56px;
	padding: 16px 0;
	font-family: var(--jdw-font-heading);
	font-size: 21px;
	font-weight: 600;
	line-height: 1.25;
}

.jcf-seo-faq-item summary::after {
	width: 30px;
	height: 30px;
	background: none;
	border: 1px solid var(--jdw-border);
	color: var(--jdw-primary);
	font-family: var(--jdw-font-body);
}

.jcf-seo-faq-item:hover summary::after { background: none; border-color: var(--jdw-primary); }

.jcf-seo-faq-item[open] summary::after {
	background: var(--jdw-primary);
	border-color: var(--jdw-primary);
	color: #fff;
}

.jcf-seo-faq-answer {
	padding: 0 0 20px;
	font-size: 16px;
	color: var(--jdw-text-light);
}

@media (max-width: 599px) {
	.jcf-seo-faq-item summary { padding: 14px 0; font-size: 19px; }
	.jcf-seo-faq-answer { padding: 0 0 16px; }
	.jcf-seo-tarif-value { font-size: 24px; }
}

/* ==========================================================================
   6. FICHE PLOMBIER
   ========================================================================== */

/* Bannière par défaut : la trame de plan et le tube cuivre du site, à la
   place des points et des halos colorés. La couleur choisie par le
   plombier est conservée. */
.jcf-banner--designed::before {
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.06) 1px, transparent 1px);
	background-size: 32px 32px;
	background-position: -1px -1px;
	-webkit-mask-image: none;
	mask-image: none;
	opacity: 1;
}

.jcf-banner--designed::after {
	height: 8px;
	bottom: 22px;
	background: var(--jdw-pipe);
	box-shadow: 0 2px 0 rgba(0, 0, 0, 0.25);
}

.jcf-banner-orb { display: none; }

.jcf-banner--ardoise { background: var(--jdw-primary) !important; }

.jcf-banner-word {
	bottom: 34px;
	font-family: var(--jdw-font-heading);
	font-weight: 700;
	letter-spacing: -0.01em;
	-webkit-text-stroke: 1.5px rgba(255, 255, 255, 0.22);
}

@media (min-width: 1024px) {
	.jcf-banner {
		margin-top: 24px;
		max-width: calc(var(--jdw-content-width) - 2 * var(--jdw-gutter));
		border-radius: var(--jdw-radius-lg);
	}
}

@media (min-width: 1304px) {
	.jcf-banner { max-width: var(--jdw-content-width); }
}

/* En-tête sous une bannière : clair, sur le fond de page. Un second
   aplat marine sous la bannière formait un bloc sombre trop massif. */
.jdw-single-header--banded {
	background: none;
	color: var(--jdw-text-light);
	padding: clamp(20px, 3vw, 32px) 0 0;
	margin-bottom: clamp(20px, 3vw, 32px);
}

.jdw-single-header--banded .jdw-single-title {
	color: var(--jdw-primary);
	margin-bottom: 10px;
}

.jdw-single-header--banded .jdw-single-meta {
	color: var(--jdw-text-light);
	font-size: 16px;
}

.jdw-single-header--banded .jdw-category-badge,
.jdw-single-header--banded .jcf-single-founding-badge {
	margin: 0 6px 12px 0;
}

/* Disponibilité « occupé » et note : couleurs lisibles sur fond clair */
.jdw-single-header--banded .jdw-single-meta span[style*="#ef4444"] { color: #c62828 !important; }
.jdw-single-header--banded .jdw-single-meta span[style*="#eab308"] { color: #8a6100 !important; }
.jdw-single-header--banded .jdw-single-meta span[style*="#f5a623"] { color: #b86f00 !important; }

.jdw-single-header--banded .jcf-response-badge {
	margin: 0;
	background: var(--jdw-accent-2-glow);
	color: var(--jdw-accent-2);
	font-weight: 500;
}

/* Contenu de la fiche */
.single-plombier .jdw-single-content {
	font-size: 17px;
	line-height: 1.7;
}

.single-plombier .jdw-single-content > h2:first-child {
	margin-top: 0;
	font-size: clamp(26px, 2.6vw, 30px);
}

.single-plombier .jdw-single-content p { max-width: 70ch; }

.jcf-section { margin: 32px 0 0; }

.jcf-tags { gap: 8px; }

/* Barre latérale de la fiche */
.single-plombier .jdw-sidebar .widget-title {
	font-size: 22px;
}

.jcf-widget-identity .jcf-avatar-fallback {
	background: var(--jdw-bg-alt) !important;
}

.jcf-widget-identity .jcf-avatar-fallback span,
.jcf-avatar-fallback span {
	color: var(--jdw-primary);
	font-family: var(--jdw-font-heading);
	font-weight: 600;
	text-shadow: none;
}

.jcf-identity-name {
	margin-top: 2px;
	font-size: 22px;
	font-weight: 600;
}

.jcf-identity-place { font-size: 15px; }

.jcf-widget-pricing .jcf-price-line {
	display: flex;
	align-items: baseline;
	gap: 8px;
	padding: 10px 0;
	border-bottom: 1px solid var(--jdw-border-light);
}

.jcf-widget-pricing .jcf-price-line:last-child { border-bottom: 0; padding-bottom: 0; }

.jcf-price-amount {
	font-family: var(--jdw-font-heading);
	font-size: 28px;
	font-weight: 700;
	color: var(--jdw-primary);
}

.jcf-price-label { font-size: 15px; color: var(--jdw-text-light); }

/* Demande de devis : le bloc qui compte, il se détache des autres */
.jdw-sidebar .jcf-lead-widget {
	border: 2px solid var(--jdw-primary);
	box-shadow: var(--jdw-shadow-md);
}

.jcf-lead-intro,
.jcf-lead-unclaimed-warning {
	font-size: 15px;
	line-height: 1.5;
}

.jcf-lead-field label {
	font-size: 14px;
	font-weight: 600;
	color: var(--jdw-primary);
}

.jcf-lead-field input,
.jcf-lead-field textarea {
	width: 100%;
	min-height: 44px;
	padding: 10px 12px;
	border: 1px solid var(--jdw-border);
	border-radius: var(--jdw-radius-sm);
	background: #fff;
	font-family: var(--jdw-font-body);
	font-size: 16px;
	color: var(--jdw-text);
}

.jcf-lead-field input:focus,
.jcf-lead-field textarea:focus {
	outline: none;
	border-color: var(--jdw-primary);
	box-shadow: 0 0 0 3px rgba(20, 35, 59, 0.12);
}

.jcf-lead-submit { min-height: 48px; font-size: 18px; }

.jcf-lead-legal { font-size: 13px; color: var(--jdw-text-muted); }

.single-plombier .jdw-single-content h3 {
	margin: 28px 0 12px;
	font-size: 22px;
}

.single-plombier .jdw-single-content .jdw-share-buttons + h3 { margin-top: 24px; }

/* Avis : une seule liste à filets plutôt qu'une pile de cartes à liseré */
.jcf-reviews-section > .jcf-section-title { margin-top: 8px; }

.jcf-reviews-summary {
	gap: 16px;
	padding: 18px 22px;
	border-left-width: 1px;
	border-left-color: var(--jdw-border);
	box-shadow: none;
}

.jcf-reviews-avg {
	font-size: 44px;
	font-weight: 700;
	letter-spacing: 0;
}

.jcf-reviews-avg-stars,
.jcf-review-card-stars { color: #d98b06; }

.jcf-reviews-avg-count { font-size: 14px; color: var(--jdw-text-muted); }

.jcf-reviews-list {
	gap: 0;
	border: 1px solid var(--jdw-border);
	border-radius: var(--jdw-radius);
	background: var(--jdw-card-bg);
	overflow: hidden;
}

.jcf-review-card {
	border: 0;
	border-bottom: 1px solid var(--jdw-border-light);
	border-radius: 0;
	box-shadow: none;
	padding: 18px 22px;
}

.jcf-review-card:last-child { border-bottom: 0; }
.jcf-review-card:hover { box-shadow: none; }

.jcf-review-card-avatar {
	background: var(--jdw-bg-alt);
	color: var(--jdw-primary);
	font-weight: 600;
	font-size: 16px;
}

.jcf-review-card-date { font-size: 13px; }

.jcf-review-card-text { font-size: 16px; }

.jcf-reviews-empty-icon { background: var(--jdw-bg-alt); color: var(--jdw-primary); }

.jcf-review-form-card {
	border-left-width: 1px;
	border-left-color: var(--jdw-border);
	box-shadow: none;
}

.jcf-review-form-title {
	font-size: 22px;
	font-weight: 600;
}

/* Mobile et tablette : la colonne (identité, tarifs, devis) remonte
   juste après « À propos ». En dessous, le formulaire de devis arrivait
   après tous les avis et le formulaire d'avis. */
@media (max-width: 1024px) {
	.single-plombier .jdw-grid > .jdw-content { display: contents; }
	.single-plombier .jdw-grid > .jdw-content > * { order: 3; min-width: 0; }
	.single-plombier .jdw-grid > .jdw-content > .jdw-single-content { order: 1; margin-bottom: 0; }
	.single-plombier .jdw-grid > .jdw-sidebar { order: 2; }
	.single-plombier .jdw-sidebar .widget:last-child { margin-bottom: 0; }
}

@media (max-width: 991px) {
	.jcf-widget-identity {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr);
		column-gap: 16px;
		align-items: center;
	}

	.jcf-identity-photo { grid-row: 1 / span 2; }
	.jcf-identity-name { align-self: end; margin: 0; }
	.jcf-identity-place { align-self: start; margin-top: 2px; }
}

/* Le plugin colle la bannière en haut de .jdw-main pour l'ancien en-tête
   fixe ; l'en-tête est désormais collant, rien à compenser. */
.jdw-main:has( > .jcf-banner:first-child ) { padding-top: 0; }

/* ==========================================================================
   7. ESPACE PROFESSIONNEL (formulaire de fiche, tableau de bord, compte)
   ========================================================================== */
.jdw-page-app .jcf-fieldset {
	border-radius: var(--jdw-radius);
	background: #fff;
}

.jdw-page-app .jcf-fieldset legend {
	font-family: var(--jdw-font-heading);
	font-size: 22px;
	font-weight: 600;
	color: var(--jdw-primary);
	text-transform: none;
	letter-spacing: 0;
}

.jcf-account-gate {
	border-left-width: 1px;
	border-left-color: var(--jdw-border);
	box-shadow: var(--jdw-shadow-md);
}

.jcf-dashboard-card { box-shadow: none; }

.jcf-form-input,
.jcf-input {
	min-height: 44px;
	font-size: 16px;
}

.jcf-form-group label {
	font-size: 15px;
	color: var(--jdw-primary);
}

.jcf-dashboard-header h2,
.jcf-account-intro h2 {
	font-size: clamp(28px, 3vw, 36px);
	font-weight: 600;
}

.jcf-dashboard-tab {
	font-family: var(--jdw-font-heading);
	font-size: 18px;
	font-weight: 600;
}

.jcf-dashboard-section > h3,
.jcf-account-settings-card h3,
.jcf-2fa-card h3,
.jcf-referral-card h3 {
	font-size: 22px;
	font-weight: 600;
}
