/*
Theme Name:   JBR (MB Starter)
Theme URI:    https://jbr.mbagency.dev
Description:  Thème enfant MB Starter pour Jardi Bat Rénov 34, basé sur Hello Elementor. En-tête et pied de page en PHP.
Author:       MB Agency
Author URI:   https://m-bagency.com
Template:     hello-elementor
Version:      1.2.1
Text Domain:  jbr
*/

/* Jetons : reprennent les couleurs globales du kit Elementor */
:root {
	--jbr-orange: var(--e-global-color-primary, #FA5E05);
	--jbr-vert: var(--e-global-color-secondary, #529926);
	--jbr-encre: var(--e-global-color-text, #1F2B17);
	--jbr-vert-moyen: var(--e-global-color-accent, #3E7D1C);
	--jbr-gris: #566150;
	--jbr-creme: #F7F3EA;
	--jbr-pierre: #EEF0DF;
	--jbr-ligne: #DCDCC8;
	--jbr-titre: "Outfit", sans-serif;
	--jbr-texte: "DM Sans", sans-serif;
	--jbr-degrade-texte: linear-gradient(90deg, #FA5E05 0%, #529926 100%);
	--jbr-degrade-bloc: linear-gradient(135deg, #529926 0%, #FA5E05 100%);
}

/* Utilitaires de contenu (classes CSS posées dans Elementor) */
.jbr-grad-text .elementor-heading-title,
.jbr-grad-text.jbr-texte-degrade {
	background: var(--jbr-degrade-texte);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
}
.jbr-grad-bloc { background: var(--jbr-degrade-bloc); }

.jbr-surtitre .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-family: var(--jbr-texte);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 1.56px;
	text-transform: uppercase;
	color: var(--jbr-vert-moyen);
}
.jbr-surtitre .jbr-num { color: var(--jbr-orange); }
.jbr-surtitre .jbr-trait {
	display: inline-block;
	width: 32px;
	height: 1.5px;
	background: currentColor;
}

/* Boutons Elementor : variantes */
.jbr-btn-fleche .elementor-button-text::after,
.jbr-btn::after {
	content: "";
	display: inline-block;
	width: 18px;
	height: 18px;
	margin-left: 8px;
	vertical-align: -3px;
	background: currentColor;
	-webkit-mask: url("assets/icons/fleche.svg") center / contain no-repeat;
	mask: url("assets/icons/fleche.svg") center / contain no-repeat;
}
.jbr-btn-contour .elementor-button {
	background: transparent;
	color: var(--jbr-vert-moyen);
	border: 1.5px solid var(--jbr-vert-moyen);
}
.jbr-btn-contour .elementor-button:hover,
.jbr-btn-contour .elementor-button:focus {
	background: var(--jbr-vert-moyen);
	color: #fff;
}

/* Icônes */
.jbr-icone { display: inline-flex; width: 20px; height: 20px; }
.jbr-icone svg { width: 100%; height: 100%; display: block; }

/* ---------- En-tête ---------- */
.jbr-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 50;
	border-bottom: 1px solid rgba(62, 125, 28, 0.45);
	font-family: var(--jbr-texte);
}
.admin-bar .jbr-header { top: 32px; }
.jbr-header__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 20px 24px;
	display: flex;
	align-items: center;
	gap: 32px;
	box-sizing: content-box;
}
.jbr-header__gauche,
.jbr-header__droite {
	flex: 1 1 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	min-width: 0;
}
.jbr-header__logo { flex: 0 0 176px; display: block; line-height: 0; }
.jbr-header__logo-img { width: 176px; height: 121px; object-fit: contain; }
.jbr-nav { display: flex; gap: 32px; }
.jbr-nav a {
	font-size: 17px;
	font-weight: 500;
	line-height: 1;
	color: var(--jbr-vert-moyen);
	text-decoration: none;
	white-space: nowrap;
}
.jbr-nav a:hover, .jbr-nav a:focus { color: var(--jbr-orange); }

.jbr-btn {
	display: inline-flex;
	align-items: center;
	padding: 16px 24px;
	border-radius: 999px;
	background: var(--jbr-orange);
	color: #fff;
	font-family: var(--jbr-texte);
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color .2s;
}
.jbr-header .jbr-btn::after { display: none; }
.jbr-btn:hover, .jbr-btn:focus { background: var(--jbr-vert); color: #fff; }

/* Carte de visite des deux associés */
.jbr-carte {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 8px 12px;
	background: rgba(247, 243, 234, 0.85);
	border-radius: 12px;
	box-shadow: 0 6px 18px rgba(31, 43, 23, 0.10);
}
.jbr-carte__pers {
	display: flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
	color: var(--jbr-encre);
}
.jbr-carte__photo {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	object-fit: cover;
	flex: 0 0 32px;
	border: 2px solid currentColor;
}
.jbr-carte__pers--bat .jbr-carte__photo { border-color: var(--jbr-orange); }
.jbr-carte__pers--jardin .jbr-carte__photo { border-color: var(--jbr-vert); }
.jbr-carte__texte { display: flex; flex-direction: column; line-height: 1.15; }
.jbr-carte__nom { font-family: var(--jbr-titre); font-size: 14px; font-weight: 600; }
.jbr-carte__pers--bat .jbr-carte__nom { color: var(--jbr-orange); }
.jbr-carte__pers--jardin .jbr-carte__nom { color: var(--jbr-vert); }
.jbr-carte__tel { font-size: 15px; font-weight: 500; white-space: nowrap; }
.jbr-carte__pers:hover .jbr-carte__tel { color: var(--jbr-orange); }

/* Burger et menu mobile */
.jbr-burger { display: none; }
.jbr-menu-mobile[hidden] { display: none; }

@media (max-width: 1100px) {
	.jbr-header__inner { padding: 12px 20px; gap: 16px; justify-content: space-between; }
	.jbr-header__gauche, .jbr-header__droite { display: none; }
	.jbr-header__logo { flex-basis: 120px; }
	.jbr-header__logo-img { width: 120px; height: 82px; }
	.jbr-burger {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 48px;
		height: 48px;
		padding: 0;
		border: 0;
		border-radius: 999px;
		background: var(--jbr-orange);
		cursor: pointer;
	}
	.jbr-burger__barres,
	.jbr-burger__barres::before,
	.jbr-burger__barres::after {
		display: block;
		width: 20px;
		height: 2px;
		background: #fff;
		position: relative;
		content: "";
		transition: transform .2s;
	}
	.jbr-burger__barres::before { position: absolute; top: -6px; }
	.jbr-burger__barres::after { position: absolute; top: 6px; }
	.jbr-burger[aria-expanded="true"] .jbr-burger__barres { background: transparent; }
	.jbr-burger[aria-expanded="true"] .jbr-burger__barres::before { top: 0; transform: rotate(45deg); }
	.jbr-burger[aria-expanded="true"] .jbr-burger__barres::after { top: 0; transform: rotate(-45deg); }
	.jbr-menu-mobile {
		display: flex;
		flex-direction: column;
		gap: 24px;
		padding: 24px 20px 32px;
		background: var(--jbr-creme);
		border-top: 1px solid var(--jbr-ligne);
		box-shadow: 0 16px 32px rgba(31, 43, 23, 0.15);
	}
	.jbr-menu-mobile__nav { display: flex; flex-direction: column; gap: 4px; }
	.jbr-menu-mobile__nav a {
		padding: 12px 0;
		font-family: var(--jbr-titre);
		font-size: 22px;
		font-weight: 600;
		color: var(--jbr-encre);
		text-decoration: none;
		border-bottom: 1px solid var(--jbr-ligne);
	}
	.jbr-menu-mobile .jbr-carte { background: #fff; flex-direction: row; justify-content: space-between; flex-wrap: wrap; }
	.jbr-menu-mobile .jbr-btn { justify-content: center; }
	body.jbr-menu-ouvert .jbr-header { background: var(--jbr-creme); }
}

/* ---------- Hero ---------- */
.jbr-hero .jbr-intro { max-width: 680px; margin-left: auto; margin-right: auto; }
.jbr-reassurance {
	display: flex;
	gap: 48px;
	margin: 0;
	padding: 20px 32px;
	list-style: none;
	background: var(--jbr-creme);
	border-radius: 24px;
	box-shadow: 0 12px 32px rgba(5, 51, 26, 0.18);
}
.jbr-reassurance li { display: flex; align-items: center; gap: 12px; }
.jbr-pastille {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	flex: 0 0 40px;
	border-radius: 999px;
	background: var(--jbr-orange);
	color: #fff;
}
.jbr-reassurance__texte {
	font-family: var(--jbr-titre);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--jbr-vert-moyen);
	white-space: nowrap;
}
@media (max-width: 1024px) {
	.jbr-reassurance { gap: 24px; padding: 16px 20px; }
	.jbr-reassurance__texte { font-size: 16px; }
}
@media (max-width: 767px) {
	.jbr-reassurance { flex-direction: column; gap: 12px; width: 100%; box-sizing: border-box; }
	.jbr-reassurance__texte { white-space: normal; }
}

/* ---------- Pied de page ---------- */
.jbr-footer {
	background: var(--jbr-vert-moyen);
	color: var(--jbr-creme);
	font-family: var(--jbr-texte);
	padding: 80px 24px 32px;
}
.jbr-footer__inner { max-width: 1200px; margin: 0 auto; display: flex; flex-direction: column; gap: 48px; }
.jbr-footer__colonnes { display: flex; gap: 64px; }
.jbr-footer__colonnes > * { flex: 1 1 0; min-width: 0; }
.jbr-footer__marque { display: flex; flex-direction: column; gap: 16px; }
.jbr-footer__marque p { margin: 0; opacity: .7; line-height: 1.6; }
.jbr-footer__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 160px;
	height: 110px;
	background: var(--jbr-creme);
	border-radius: 12px;
	border-bottom: 4px solid var(--jbr-orange);
}
.jbr-footer__logo img { width: 140px; height: 96px; object-fit: contain; }
.jbr-footer__col { display: flex; flex-direction: column; gap: 12px; }
.jbr-footer__titre {
	margin: 0;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 1.56px;
	text-transform: uppercase;
	color: var(--jbr-orange);
}
.jbr-footer__col a, .jbr-footer__col span {
	color: var(--jbr-creme);
	opacity: .85;
	line-height: 1.6;
	text-decoration: none;
}
.jbr-footer__col a:hover, .jbr-footer__col a:focus { opacity: 1; color: #fff; text-decoration: underline; text-decoration-color: var(--jbr-orange); text-underline-offset: 4px; }
.jbr-footer__reseaux { display: flex; gap: 12px; }
.jbr-footer__reseau {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 999px;
	background: var(--jbr-orange);
	color: #fff !important;
	opacity: 1 !important;
}
.jbr-footer__bas {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	padding-top: 24px;
	border-top: 1px solid rgba(247, 243, 234, 0.5);
	font-size: 14px;
	line-height: 1.5;
}
.jbr-footer__bas p { margin: 0; opacity: .6; }
.jbr-footer__legal { display: flex; gap: 24px; flex-wrap: wrap; }
.jbr-footer__legal a, .jbr-footer__legal span { color: var(--jbr-creme); opacity: .6; text-decoration: none; }
.jbr-footer__legal a:hover { opacity: 1; }
@media (max-width: 1024px) {
	.jbr-footer__colonnes { flex-wrap: wrap; gap: 40px; }
	.jbr-footer__colonnes > * { flex: 1 1 40%; }
}
@media (max-width: 767px) {
	.jbr-footer { padding: 64px 20px 24px; }
	.jbr-footer__colonnes > * { flex-basis: 100%; }
	.jbr-footer__bas { flex-direction: column; }
}

/* Pages sans hero (mentions légales, confidentialité) : place pour l'en-tête */
body:not(.elementor-page) .jbr-contenu { padding-top: 180px; }

/* ---------- Correctifs v1.1.1 (priorité sur la couleur de lien globale Elementor) ---------- */
.jbr-header a.jbr-btn,
.jbr-header a.jbr-btn:hover,
.jbr-header a.jbr-btn:focus { color: #fff; }
.jbr-header a.jbr-carte__pers { color: var(--jbr-encre); }
.jbr-header a.jbr-carte__pers:hover .jbr-carte__tel { color: var(--jbr-orange); }
.jbr-hero .jbr-btn-contour .elementor-button { background: rgba(247, 243, 234, 0.85); }
.jbr-hero .jbr-btn-contour .elementor-button:hover { background: var(--jbr-vert-moyen); }
@media (max-width: 1024px) {
	.jbr-hero.e-con::before,
	.jbr-hero > .elementor-background-overlay {
		background-image: linear-gradient(180deg, rgba(247, 243, 234, 0.9) 0%, rgba(247, 243, 234, 0.75) 55%, rgba(247, 243, 234, 0) 85%) !important;
		opacity: 1 !important;
	}
}

/* =========================================================
   v1.2.0 : sections de l'accueil et fiches détail
   ========================================================= */
:root {
	--jbr-degrade-section: linear-gradient(135deg, #2F6A14 14%, #529926 54%, #F27A1A 86%);
	--jbr-ombre: 0 10px 30px rgba(31, 43, 23, 0.08);
}
.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* Icônes en masque (couleur = couleur du texte) */
.jbr-ico {
	display: inline-block; flex: 0 0 auto; width: 24px; height: 24px; background: currentColor;
	-webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat;
}
.jbr-ico--leaf { --i: url("assets/icons/leaf.svg"); }
.jbr-ico--hammer { --i: url("assets/icons/hammer.svg"); }
.jbr-ico--home { --i: url("assets/icons/home.svg"); }
.jbr-ico--clock { --i: url("assets/icons/clock.svg"); }
.jbr-ico--users { --i: url("assets/icons/users.svg"); }
.jbr-ico--calendar { --i: url("assets/icons/calendar.svg"); }
.jbr-ico--shield { --i: url("assets/icons/shield.svg"); }
.jbr-ico--sparkle { --i: url("assets/icons/sparkle.svg"); }
.jbr-ico--phone { --i: url("assets/icons/phone.svg"); }
.jbr-ico--mail { --i: url("assets/icons/mail.svg"); }
.jbr-ico--pin { --i: url("assets/icons/pin.svg"); }
.jbr-ico--star { --i: url("assets/icons/star.svg"); }
.jbr-ico--plus { --i: url("assets/icons/plus.svg"); }
.jbr-ico--fleche { --i: url("assets/icons/fleche.svg"); }

/* Sections : fonds et rythme */
.jbr-section { padding-left: 24px; padding-right: 24px; }
.jbr-fond-creme { background: var(--jbr-creme); }
.jbr-fond-pierre { background: var(--jbr-pierre); }
.jbr-fond-blanc { background: #fff; }
.jbr-fond-degrade { background: var(--jbr-degrade-section); }
.jbr-fond-degrade-inverse { background: linear-gradient(135deg, #F27A1A 8%, #529926 52%, #2F6A14 92%); }
.jbr-fond-degrade .elementor-heading-title,
.jbr-fond-degrade-inverse .elementor-heading-title { color: #fff; }
.jbr-fond-degrade .jbr-surtitre .elementor-heading-title,
.jbr-fond-degrade-inverse .jbr-surtitre .elementor-heading-title { color: var(--jbr-creme); }
.jbr-fond-degrade .jbr-intro, .jbr-fond-degrade-inverse .jbr-intro,
.jbr-fond-degrade .jbr-intro p, .jbr-fond-degrade-inverse .jbr-intro p { color: rgba(247, 243, 234, .88) !important; }
.jbr-intro p:last-child { margin-bottom: 0; }

/* Lignes et colonnes (containers Elementor) */
.jbr-ligne-titre { align-items: flex-end; }
.jbr-col-flex > .e-con { --width: auto !important; flex: 1 1 0 !important; min-width: 0; }

/* Badges */
.jbr-badge {
	display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; border-radius: 999px;
	background: #E5EEDA; color: var(--jbr-vert-moyen); font-family: var(--jbr-texte);
	font-size: 13px; font-weight: 600; line-height: 1.2; letter-spacing: .26px; white-space: nowrap;
}
.jbr-badge .jbr-ico { width: 16px; height: 16px; }
.jbr-badge--pierre { background: var(--jbr-pierre); color: var(--jbr-encre); }
.jbr-badge--creme { background: var(--jbr-creme); color: var(--jbr-encre); }
.jbr-badge--orange { background: var(--jbr-orange); color: #fff; }
.jbr-tags, .jbr-communes, .jbr-badges-fiche { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }

/* Lien texte avec flèche */
.jbr-lien-fleche {
	display: inline-flex; align-items: center; gap: 8px; padding: 12px 0; color: var(--jbr-vert-moyen);
	font-family: var(--jbr-texte); font-size: 16px; font-weight: 700; line-height: 1; text-decoration: none;
}
.jbr-lien-fleche::after {
	content: ""; width: 18px; height: 18px; background: currentColor;
	-webkit-mask: url("assets/icons/fleche.svg") center / contain no-repeat; mask: url("assets/icons/fleche.svg") center / contain no-repeat;
	transition: transform .2s;
}
.jbr-lien-fleche:hover, .jbr-lien-fleche:focus { color: var(--jbr-orange); }
.jbr-lien-fleche:hover::after { transform: translateX(3px); }
.jbr-btn-creme .elementor-button { background: var(--jbr-creme); color: var(--jbr-vert-moyen); }
.jbr-btn-creme .elementor-button:hover { background: #fff; color: var(--jbr-orange); }

/* 002 · Chiffres clés */
.jbr-chiffres { align-items: flex-end; }
.jbr-chiffres .jbr-photo-chiffres img { width: 100%; height: 320px; object-fit: cover; border-radius: 24px; }
.jbr-chiffre { border-top: 1.5px solid var(--jbr-vert); padding-top: 24px !important; }
.jbr-chiffre .elementor-heading-title { line-height: 1; }
.jbr-chiffre .jbr-chiffre__texte p { margin: 0; color: var(--jbr-gris); font-size: 16px; line-height: 1.5; }

/* 003 · Cartes des pôles */
.jbr-poles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.jbr-poles--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.jbr-pole { display: flex; flex-direction: column; background: #fff; border-radius: 24px; overflow: hidden; box-shadow: var(--jbr-ombre); }
.jbr-pole__img { display: block; height: 280px; overflow: hidden; }
.jbr-poles--2 .jbr-pole__img { height: 320px; }
.jbr-pole__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.jbr-pole:hover .jbr-pole__img img { transform: scale(1.04); }
.jbr-pole__contenu { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding: 32px; flex: 1 1 auto; }
.jbr-pole__entete { display: flex; align-items: center; gap: 12px; margin: 0; color: var(--jbr-vert-moyen); }
.jbr-pole__num { color: var(--jbr-orange); font-size: 13px; font-weight: 700; letter-spacing: 1.56px; }
.jbr-pole__titre { margin: 0; font-family: var(--jbr-titre); font-size: 28px; font-weight: 600; line-height: 1.2; letter-spacing: -.14px; }
.jbr-pole__titre a { color: var(--jbr-encre); text-decoration: none; }
.jbr-pole__titre a:hover { color: var(--jbr-orange); }
.jbr-pole__texte { margin: 0; color: var(--jbr-gris); font-size: 16px; line-height: 1.6; }
.jbr-pole .jbr-lien-fleche { margin-top: auto; }

/* 004 · Valeurs et étapes */
.jbr-valeurs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.jbr-valeur {
	display: flex; flex-direction: column; gap: 16px; padding: 32px 24px; border-radius: 24px;
	background: rgba(31, 66, 12, 0.38); backdrop-filter: blur(2px); color: var(--jbr-creme);
}
.jbr-valeur__pastille {
	display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 50%;
	background: var(--jbr-orange); color: var(--jbr-encre);
}
.jbr-valeur__titre { margin: 0; font-family: var(--jbr-titre); font-size: 20px; font-weight: 600; line-height: 1.3; color: var(--jbr-creme); }
.jbr-valeur p { margin: 0; font-size: 14px; line-height: 1.5; opacity: .85; }
.jbr-etapes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 48px 0 0; list-style: none; border-top: 1px solid rgba(247, 243, 234, .6); }
.jbr-etapes li { display: flex; flex-direction: column; gap: 12px; }
.jbr-etape__num { font-family: var(--jbr-titre); font-size: 28px; font-weight: 600; line-height: 1.2; color: var(--jbr-orange); }
.jbr-etape__titre { margin: 0; font-family: var(--jbr-titre); font-size: 20px; font-weight: 600; line-height: 1.3; }
.jbr-etapes p { margin: 0; font-size: 14px; line-height: 1.5; }
.jbr-etapes--sombre { color: var(--jbr-creme); }
.jbr-etapes--sombre .jbr-etape__titre { color: var(--jbr-creme); }
.jbr-etapes--sombre p { opacity: .8; }
.jbr-etapes--clair { border-top-color: var(--jbr-ligne); }
.jbr-etapes--clair .jbr-etape__titre { color: var(--jbr-encre); }
.jbr-etapes--clair p { color: var(--jbr-gris); }

/* 005 · Réalisations */
.jbr-real { display: flex; flex-direction: column; gap: 48px; }
.jbr-real__filtres { display: flex; flex-wrap: wrap; gap: 8px; }
.jbr-filtre {
	padding: 8px 16px; border: 0; border-radius: 999px; background: #E5EEDA; color: var(--jbr-vert-moyen);
	font-family: var(--jbr-texte); font-size: 13px; font-weight: 600; line-height: 1.2; cursor: pointer;
}
.jbr-filtre:hover, .jbr-filtre:focus-visible { background: var(--jbr-vert); color: #fff; }
.jbr-filtre.is-actif { background: var(--jbr-vert-moyen); color: var(--jbr-creme); }
.jbr-aa { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin: 0; height: 560px; border-radius: 24px; overflow: hidden; background: #fff; }
.jbr-aa[hidden], .jbr-real__carte[hidden] { display: none; }
.jbr-aa__img { position: relative; overflow: hidden; }
.jbr-aa__img img { width: 100%; height: 100%; object-fit: cover; }
.jbr-aa__img .jbr-badge { position: absolute; top: 24px; left: 24px; }
.jbr-aa__img + .jbr-aa__img .jbr-badge { left: auto; right: 24px; }
.jbr-aa__legende { position: absolute; left: 24px; bottom: 24px; display: flex; flex-direction: column; gap: 4px; padding: 16px 20px; border-radius: 12px; background: var(--jbr-creme); }
.jbr-real__cartes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.jbr-real__carte { display: flex; flex-direction: column; gap: 16px; margin: 0; }
.jbr-real__img { position: relative; height: 460px; border-radius: 24px; overflow: hidden; }
.jbr-real__img img { width: 100%; height: 100%; object-fit: cover; }
.jbr-real__img .jbr-badge { position: absolute; top: 16px; left: 16px; }
.jbr-real__num { position: absolute; right: 20px; bottom: 16px; color: #fff; font-size: 13px; font-weight: 700; letter-spacing: 1.56px; text-shadow: 0 1px 6px rgba(0, 0, 0, .45); }
.jbr-real__titre { margin: 0; font-family: var(--jbr-titre); font-size: 20px; font-weight: 600; color: var(--jbr-vert-moyen); }
.jbr-real__lieu { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--jbr-gris); }
.jbr-real__lieu .jbr-ico { width: 16px; height: 16px; }
.jbr-real__actions { display: flex; justify-content: center; }
.e-con:has(> .elementor-widget-shortcode .jbr-real-vide),
.jbr-section:has(.jbr-real-vide) { display: none !important; }

/* 006 · Le duo */
.jbr-duo { position: relative; width: 100%; max-width: 540px; padding: 0 40px 40px 0; }
.jbr-duo__photo { position: relative; border-radius: 24px; }
.jbr-duo__photo > img { display: block; width: 100%; aspect-ratio: 5 / 6; object-fit: cover; border-radius: 24px; }
.jbr-duo__vignette { position: absolute; right: 0; bottom: 0; width: 220px; height: 260px; border: 8px solid var(--jbr-creme); border-radius: 20px; overflow: hidden; box-shadow: var(--jbr-ombre); }
.jbr-duo__vignette img { width: 100%; height: 100%; object-fit: cover; }
.jbr-point { position: absolute; z-index: 2; transform: translate(-50%, -50%); }
.jbr-point.is-ouvert { z-index: 5; }
.jbr-point__btn {
	position: relative; display: block; width: 36px; height: 36px; padding: 0; border: 3px solid #fff; border-radius: 50%;
	background: var(--jbr-orange); cursor: pointer; box-shadow: 0 4px 14px rgba(0, 0, 0, .25);
}
.jbr-point--dominique .jbr-point__btn { background: var(--jbr-vert); }
.jbr-point__btn::before { content: ""; position: absolute; inset: 7px; background: #fff; -webkit-mask: url("assets/icons/plus.svg") center / contain no-repeat; mask: url("assets/icons/plus.svg") center / contain no-repeat; transition: transform .2s; }
.jbr-point.is-ouvert .jbr-point__btn::before { transform: rotate(45deg); }
.jbr-point__btn::after { content: ""; position: absolute; inset: -9px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .8); animation: jbr-pulse 2s infinite; }
@keyframes jbr-pulse { 0% { transform: scale(.7); opacity: 1; } 100% { transform: scale(1.35); opacity: 0; } }
.jbr-point__carte {
	position: absolute; top: calc(100% + 12px); left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 12px;
	width: max-content; max-width: 260px; padding: 12px 16px; border-radius: 12px; background: #fff; box-shadow: 0 12px 30px rgba(0, 0, 0, .18);
}
.jbr-point__carte[hidden] { display: none; }
.jbr-point__portrait { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; flex: 0 0 48px; }
.jbr-point__carte > div { display: flex; flex-direction: column; gap: 2px; font-size: 13px; line-height: 1.35; color: var(--jbr-gris); }
.jbr-point__carte strong { font-family: var(--jbr-titre); font-size: 18px; color: var(--jbr-encre); }
.jbr-point--frantz .jbr-point__carte strong { color: var(--jbr-orange); }
.jbr-point--dominique .jbr-point__carte strong { color: var(--jbr-vert); }
.jbr-point__carte a { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; color: var(--jbr-encre); font-weight: 700; text-decoration: none; }
.jbr-point__carte a .jbr-ico { width: 16px; height: 16px; color: var(--jbr-orange); }
.jbr-fondateurs { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.jbr-fondateur { display: flex; align-items: center; gap: 16px; padding: 16px; border-radius: 12px; background: var(--jbr-creme); text-decoration: none; transition: box-shadow .2s; }
.jbr-fondateur:hover { box-shadow: var(--jbr-ombre); }
.jbr-fondateur__portrait { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; flex: 0 0 56px; border: 2px solid var(--jbr-vert); }
.jbr-fondateur--bat .jbr-fondateur__portrait { border-color: var(--jbr-orange); }
.jbr-fondateur__texte { display: flex; flex-direction: column; gap: 2px; font-size: 14px; line-height: 1.45; color: var(--jbr-gris); }
.jbr-fondateur__texte strong { font-family: var(--jbr-titre); font-size: 20px; font-weight: 600; color: var(--jbr-vert); }
.jbr-fondateur--bat .jbr-fondateur__texte strong { color: var(--jbr-orange); }
.jbr-fondateur__tel { display: inline-flex; align-items: center; gap: 6px; margin-top: 2px; color: var(--jbr-encre); font-weight: 700; }
.jbr-fondateur__tel .jbr-ico { width: 14px; height: 14px; color: var(--jbr-orange); }
.jbr-signature .elementor-heading-title { display: inline-flex; align-items: center; gap: 12px; }

/* 007 · Avis (section masquée tant qu'aucun avis réel n'est renseigné) */
.e-con:has(.jbr-avis-vide) { display: none !important; }
.jbr-note { display: inline-flex; align-items: center; gap: 16px; padding: 16px 24px; border-radius: 12px; background: #fff; }
.jbr-note__chiffre { font-family: var(--jbr-titre); font-size: 48px; font-weight: 700; line-height: 1; background: var(--jbr-degrade-texte); -webkit-background-clip: text; background-clip: text; color: transparent; }
.jbr-note__detail { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--jbr-gris); }
.jbr-etoiles { display: inline-flex; gap: 4px; color: var(--jbr-orange); }
.jbr-etoiles .jbr-ico { width: 16px; height: 16px; }
.jbr-avis-cartes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 32px; }
.jbr-avis-carte { display: flex; flex-direction: column; gap: 16px; margin: 0; padding: 32px; border: 0; border-radius: 24px; background: #fff; }
.jbr-avis-carte p { margin: 0; font-size: 16px; line-height: 1.6; color: var(--jbr-encre); }
.jbr-avis-carte footer { display: flex; align-items: center; gap: 12px; font-size: 13px; color: var(--jbr-gris); }
.jbr-avis-carte footer > span:last-child { display: flex; flex-direction: column; }
.jbr-avis-carte strong { color: var(--jbr-vert-moyen); font-size: 15px; }
.jbr-avis-carte__initiale { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--jbr-orange); color: #fff; font-weight: 700; }
.jbr-avis-actions { text-align: center; margin: 32px 0 0; }

/* Bandeau défilant des communes */
.jbr-bandeau { display: flex; overflow: hidden; padding: 24px 0; background: var(--jbr-degrade-section); color: #fff; }
.jbr-bandeau__piste { display: flex; flex: 0 0 auto; align-items: center; gap: 48px; margin: 0; padding: 0 24px; list-style: none; animation: jbr-defile 40s linear infinite; }
.jbr-bandeau__piste li { display: flex; align-items: center; gap: 48px; font-family: var(--jbr-titre); font-size: 28px; font-weight: 600; line-height: 1.2; white-space: nowrap; }
.jbr-bandeau__piste li:nth-child(even) .jbr-ico { color: var(--jbr-creme); }
.jbr-bandeau__piste li:nth-child(3n) .jbr-ico { color: #FFD3B5; }
.jbr-bandeau:hover .jbr-bandeau__piste { animation-play-state: paused; }
@keyframes jbr-defile { to { transform: translateX(-100%); } }
@media (prefers-reduced-motion: reduce) { .jbr-bandeau__piste { animation: none; } .jbr-point__btn::after { animation: none; } }

/* 008 · Zone */
.jbr-carte-zone img { width: 100%; height: auto; border-radius: 24px; }

/* FAQ */
.jbr-faq { display: flex; flex-direction: column; gap: 12px; }
.jbr-faq__item { border-radius: 16px; background: #fff; }
.jbr-faq__item summary {
	display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 24px; cursor: pointer; list-style: none;
	font-family: var(--jbr-titre); font-size: 18px; font-weight: 600; line-height: 1.35; color: var(--jbr-vert-moyen);
}
.jbr-faq__item summary::-webkit-details-marker { display: none; }
.jbr-faq__item summary:hover { color: var(--jbr-orange); }
.jbr-faq__plus { flex: 0 0 20px; width: 20px; height: 20px; background: var(--jbr-orange); -webkit-mask: url("assets/icons/plus.svg") center / contain no-repeat; mask: url("assets/icons/plus.svg") center / contain no-repeat; transition: transform .2s; }
.jbr-faq__item[open] .jbr-faq__plus { transform: rotate(45deg); }
.jbr-faq__reponse { padding: 0 24px 22px; }
.jbr-faq__reponse p { margin: 0; font-size: 15px; line-height: 1.65; color: var(--jbr-gris); }

/* 009 · Devis et contact */
.jbr-coord { display: flex; flex-direction: column; gap: 16px; margin: 0; padding: 0; list-style: none; }
.jbr-coord li { display: flex; align-items: center; gap: 16px; color: #fff; font-size: 16px; line-height: 1.6; }
.jbr-coord a { color: #fff; text-decoration: none; }
.jbr-coord a:hover { text-decoration: underline; }
.jbr-coord__pastille { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; flex: 0 0 44px; border-radius: 50%; background: rgba(31, 66, 12, .55); color: var(--jbr-orange); }
.jbr-coord__pastille .jbr-ico { width: 20px; height: 20px; }
.jbr-form-carte { padding: 48px; border-radius: 24px; background: var(--jbr-creme); box-shadow: 0 20px 50px rgba(0, 0, 0, .15); }
.jbr-form__titre { margin: 0 0 24px; font-family: var(--jbr-titre); font-size: 28px; font-weight: 600; line-height: 1.2; color: var(--jbr-vert-moyen); }
.jbr-form__grille { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 16px; }
.jbr-form__grille p { margin: 0; display: flex; flex-direction: column; gap: 8px; }
.jbr-form__large { grid-column: 1 / -1; }
.jbr-form label { font-size: 13px; font-weight: 600; color: var(--jbr-vert-moyen); }
.jbr-form input[type="text"], .jbr-form input[type="tel"], .jbr-form input[type="email"], .jbr-form select, .jbr-form textarea {
	width: 100%; padding: 14px 16px; border: 1px solid var(--jbr-ligne); border-radius: 10px; background: #fff;
	font-family: var(--jbr-texte); font-size: 15px; color: var(--jbr-encre); box-sizing: border-box;
}
.jbr-form input:focus, .jbr-form select:focus, .jbr-form textarea:focus { outline: 2px solid var(--jbr-vert); outline-offset: 1px; border-color: var(--jbr-vert); }
.jbr-form textarea { min-height: 120px; resize: vertical; }
.jbr-form__rgpd { display: flex; align-items: flex-start; gap: 12px; margin: 20px 0 0; }
.jbr-form__rgpd input { width: 20px; height: 20px; margin: 2px 0 0; flex: 0 0 20px; accent-color: var(--jbr-vert); }
.jbr-form__rgpd label { font-size: 12px; font-weight: 400; line-height: 1.5; color: var(--jbr-gris); }
.jbr-form__rgpd a { color: var(--jbr-vert-moyen); }
.jbr-form__actions { margin: 24px 0 0; }
.jbr-form button.jbr-btn { border: 0; cursor: pointer; }
.jbr-form__piege { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.jbr-form__message { margin: 0 0 20px; padding: 12px 16px; border-radius: 10px; font-size: 14px; }
.jbr-form__message--ok { background: #E5EEDA; color: var(--jbr-vert-moyen); }
.jbr-form__message--erreur { background: #FDE5D6; color: #9A3A04; }

/* Fiches détail */
.jbr-page-fiche .jbr-nav a { color: var(--jbr-creme); }
.jbr-page-fiche .jbr-nav a:hover { color: #FFD3B5; }
.jbr-page-fiche .jbr-header { border-bottom-color: rgba(247, 243, 234, .3); }
.jbr-hero-fiche .elementor-heading-title { color: var(--jbr-creme); }
.jbr-ariane ol { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; font-size: 13px; color: rgba(247, 243, 234, .85); }
.jbr-ariane li + li::before { content: "›"; margin-right: 8px; }
.jbr-ariane a { color: rgba(247, 243, 234, .85); text-decoration: none; }
.jbr-ariane a:hover { color: #fff; text-decoration: underline; }
.jbr-visuel-fiche { position: relative; width: 100%; }
.jbr-visuel-fiche img { display: block; width: 100%; height: 620px; object-fit: cover; border-radius: 24px; }
.jbr-sticker {
	position: absolute; left: -56px; bottom: 20px; display: flex; flex-direction: column; align-items: center; justify-content: center;
	width: 160px; height: 160px; border-radius: 50%; background: var(--jbr-orange); color: #fff; text-decoration: none;
	transform: rotate(-12deg); box-shadow: 0 10px 30px rgba(0, 0, 0, .2); transition: transform .2s;
}
.jbr-sticker:hover { transform: rotate(-4deg) scale(1.04); color: #fff; }
.jbr-sticker span { font-size: 15px; font-weight: 600; }
.jbr-sticker strong { font-family: var(--jbr-titre); font-size: 30px; font-weight: 700; line-height: 1; }
.jbr-hero-fiche .jbr-badge--creme { background: rgba(247, 243, 234, .95); }
.jbr-hero-fiche .jbr-btn-contour .elementor-button { color: var(--jbr-creme); border-color: var(--jbr-creme); }
.jbr-hero-fiche .jbr-btn-contour .elementor-button:hover { background: var(--jbr-creme); color: var(--jbr-vert-moyen); }
.jbr-presta { align-items: center; }
.jbr-presta .jbr-presta__img img { width: 100%; height: 380px; object-fit: cover; border-radius: 24px; }
.jbr-presta__num .elementor-heading-title { font-size: 13px; font-weight: 700; letter-spacing: 1.56px; color: var(--jbr-orange); }
.jbr-presta__texte p { margin: 0 0 12px; color: var(--jbr-gris); font-size: 16px; line-height: 1.65; }
.jbr-photo-attente {
	display: flex; align-items: center; justify-content: center; width: 100%; height: 380px; border-radius: 24px;
	background: var(--jbr-degrade-section); color: rgba(255, 255, 255, .85);
}
.jbr-photo-attente .jbr-ico { width: 96px; height: 96px; }

/* Pages simples (mentions légales, confidentialité) */
.jbr-page-simple { max-width: 820px; margin: 0 auto; padding: 60px 24px 100px; }
.jbr-page-simple h1 { font-family: var(--jbr-titre); font-size: 44px; line-height: 1.1; margin: 0 0 32px; background: var(--jbr-degrade-texte); -webkit-background-clip: text; background-clip: text; color: transparent; }
.jbr-page-simple h2 { font-family: var(--jbr-titre); font-size: 24px; margin: 40px 0 12px; color: var(--jbr-vert-moyen); }
.jbr-page-simple p, .jbr-page-simple li { color: var(--jbr-encre); line-height: 1.7; }

/* Responsive */
@media (max-width: 1024px) {
	.jbr-valeurs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.jbr-etapes { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 32px; }
	.jbr-poles { grid-template-columns: 1fr 1fr; }
	.jbr-poles .jbr-pole:last-child:nth-child(odd) { grid-column: 1 / -1; }
	.jbr-real__img { height: 340px; }
	.jbr-aa { height: 420px; }
	.jbr-avis-cartes { grid-template-columns: 1fr; }
	.jbr-visuel-fiche img { height: 480px; }
	.jbr-sticker { left: auto; right: 16px; bottom: -24px; width: 130px; height: 130px; }
	.jbr-sticker strong { font-size: 24px; }
	.jbr-duo { margin: 0 auto; }
}
@media (max-width: 767px) {
	.jbr-col-flex > .e-con { flex-basis: 100% !important; }
	.jbr-valeurs, .jbr-poles, .jbr-poles--2, .jbr-real__cartes, .jbr-fondateurs, .jbr-form__grille { grid-template-columns: 1fr; }
	.jbr-etapes { grid-template-columns: 1fr; }
	.jbr-aa { height: 300px; }
	.jbr-aa__img .jbr-badge { top: 12px; left: 12px; }
	.jbr-aa__img + .jbr-aa__img .jbr-badge { right: 12px; }
	.jbr-real__img { height: 300px; }
	.jbr-pole__img, .jbr-poles--2 .jbr-pole__img { height: 220px; }
	.jbr-pole__contenu { padding: 24px; }
	.jbr-pole__titre { font-size: 24px; }
	.jbr-chiffres .jbr-photo-chiffres img { height: 240px; }
	.jbr-duo { padding: 0 24px 24px 0; }
	.jbr-duo__vignette { width: 130px; height: 160px; border-width: 5px; }
	.jbr-point__btn { width: 30px; height: 30px; }
	.jbr-point__carte { max-width: 220px; }
	.jbr-bandeau__piste li { font-size: 20px; gap: 32px; }
	.jbr-bandeau__piste { gap: 32px; }
	.jbr-form-carte { padding: 28px 20px; }
	.jbr-faq__item summary { padding: 18px; font-size: 16px; }
	.jbr-faq__reponse { padding: 0 18px 18px; }
	.jbr-visuel-fiche img { height: 340px; }
	.jbr-presta .jbr-presta__img img, .jbr-photo-attente { height: 260px; }
	.jbr-page-simple h1 { font-size: 34px; }
}

/* v1.2.1 : correctifs de recette */
.jbr-col-flex > .e-con > .elementor-widget-image,
.jbr-col-flex > .e-con > .elementor-widget-shortcode { width: 100%; }
.jbr-fond-degrade .jbr-surtitre .jbr-num,
.jbr-fond-degrade-inverse .jbr-surtitre .jbr-num { color: #fff; }
.jbr-valeur h3.jbr-valeur__titre,
.jbr-etapes--sombre h3.jbr-etape__titre { color: var(--jbr-creme); }
.jbr-etapes--clair h3.jbr-etape__titre { color: var(--jbr-encre); }
.jbr-etapes--sombre .jbr-etape__num { color: var(--jbr-creme); }
.jbr-pole h3.jbr-pole__titre { color: var(--jbr-encre); }
.jbr-real button.jbr-filtre { padding: 8px 16px; border: 0; border-radius: 999px; background: #E5EEDA; color: var(--jbr-vert-moyen); font-size: 13px; font-weight: 600; line-height: 1.2; }
.jbr-real button.jbr-filtre:hover, .jbr-real button.jbr-filtre:focus-visible { background: var(--jbr-vert); color: #fff; }
.jbr-real button.jbr-filtre.is-actif { background: var(--jbr-vert-moyen); color: var(--jbr-creme); }
.jbr-duo button.jbr-point__btn { width: 36px; height: 36px; padding: 0; border: 3px solid #fff; border-radius: 50%; background: var(--jbr-orange); }
.jbr-duo .jbr-point--dominique button.jbr-point__btn { background: var(--jbr-vert); }
.jbr-hero-fiche a.jbr-sticker, .jbr-hero-fiche a.jbr-sticker:hover { color: #fff; }
.jbr-page-fiche .jbr-header__logo { background: rgba(247, 243, 234, .92); border-radius: 16px; }
.jbr-fond-degrade-inverse a.jbr-coord__lien, .jbr-coord li a { color: #fff; }
@media (max-width: 767px) { .jbr-duo button.jbr-point__btn { width: 30px; height: 30px; } }

/* Pages légales */
.jbr-page-legale .jbr-legal h2 { font-family: var(--jbr-titre); font-size: 24px; line-height: 1.25; letter-spacing: 0; margin: 32px 0 8px; color: var(--jbr-vert-moyen); }
.jbr-page-legale .jbr-legal p { font-size: 16px; line-height: 1.7; margin: 0 0 12px; }
.jbr-page-legale .elementor-widget-heading h1 { font-size: 48px; }
@media (max-width: 767px) { .jbr-page-legale .elementor-widget-heading h1 { font-size: 34px; } }
