/*
 * Kelborne : styles du thème, reproduits à l'identique de la maquette
 * Claude Design (design-source/maquette/lp-borne-maison.dc.html).
 *
 * Page dans un conteneur de 1440 px maximum (unités cqw de la maquette).
 * Points de rupture de la maquette : 1180, 1024, 768, 700 et 520 px.
 */

/* ---------- Base ---------- */

html,
body {
	margin: 0;
	background: #FFFFFF;
	font-family: 'DM Sans', sans-serif;
	color: #07002B;
	-webkit-font-smoothing: antialiased;
}

.wp-site-blocks {
	padding: 0 !important;
}

.wp-site-blocks > * {
	margin-block: 0 !important;
}

.kb-maq a {
	color: #3A7300;
}

.kb-maq a:hover {
	color: #07002B;
}

.kb-maq input,
.kb-maq select,
.kb-maq button {
	font-family: inherit;
}

.kb-maq :focus-visible {
	outline: 2px solid var(--focus, #07002B);
	outline-offset: 2px;
}

.kb-maq input:focus,
.kb-maq input:focus-visible,
.kb-maq textarea:focus,
.kb-maq textarea:focus-visible {
	outline: none;
}

.kb-maq summary {
	list-style: none;
	cursor: pointer;
}

.kb-maq summary::-webkit-details-marker {
	display: none;
}

.kb-sr,
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.skip-link.screen-reader-text:focus {
	clip: auto;
	clip-path: none;
	width: auto;
	height: auto;
	left: 8px;
	top: 8px;
	z-index: 100000;
	padding: 12px 16px;
	background: #FFFFFF;
	color: #07002B;
}

[hidden] {
	display: none !important;
}

/*
 * Conteneur de la page (maquette : container-type inline-size, 1440 px).
 * Au-delà de 1440 px, les fonds des sections occupent toute la largeur et le
 * contenu reste centré sur 1280 px : --kb-g est la marge latérale des sections
 * (identique à la maquette jusqu'à 1440 px).
 */
.kb-maq {
	--kb-g: max(clamp(20px, 6cqw, 80px), 50cqw - 640px);
	--kb-g-classement: max(clamp(16px, 8.5cqw - 16px, 80px), 50cqw - 640px);
	font-size: 16px;
	line-height: normal;
	container-type: inline-size;
	margin: 0 !important;
	background: #FFFFFF;
	min-height: 100vh;
}

/* Neutralise les marges de mise en page ajoutées par WordPress. */
.kb-maq :where(p, h1, h2, h3, ul, ol, figure, form) {
	margin: 0;
}

.kb-maq > *,
.kb-maq .wp-block-group > *,
.kb-maq .is-layout-flow > *,
.kb-maq .is-layout-constrained > * {
	margin-block-start: 0;
	margin-block-end: 0;
}

.kb-maq .wp-block-image {
	margin: 0;
}

.kb-maq .wp-block-image img {
	display: block;
	max-width: none;
	height: auto;
}

.kb-maq .wp-block-heading {
	color: #07002B;
}

/* ---------- En-tête (design-source/blocs/header.html) ---------- */

.kb-maq-entete {
	position: relative;
	z-index: 40;
}

.kb-h {
	position: relative;
	z-index: 40;
	height: 72px;
	padding: 0 var(--kb-g);
	display: flex;
	align-items: center;
	gap: 24px;
	border-bottom: 1px solid #E1DEEE;
	background: #FFFFFF;
	box-sizing: border-box;
}

.kb-h *,
.kb-h *::before {
	box-sizing: border-box;
}

.kb-maq .kb-h a {
	color: #07002B;
	text-decoration: none;
}

.kb-maq .kb-h a:focus-visible,
.kb-h button:focus-visible {
	outline: 3px solid #07002B;
	outline-offset: 2px;
}

.kb-h__logo {
	display: flex;
	flex: none;
}

.kb-h__logo img {
	height: 36px;
	width: auto;
	display: block;
}

.kb-h__nav {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-left: 24px;
	margin-right: auto;
	font: 500 16px/24px 'DM Sans';
	white-space: nowrap;
}

.kb-h__item {
	position: relative;
}

.kb-maq .kb-h__link {
	height: 72px;
	padding: 3px 14px 0;
	display: flex;
	align-items: center;
	gap: 6px;
	border: 0;
	border-bottom: 3px solid transparent;
	border-radius: 0;
	background: none;
	color: #07002B;
	font: 500 16px/24px 'DM Sans';
	cursor: pointer;
}

.kb-maq .kb-h__link:hover {
	border-bottom-color: #E1DEEE;
}

.kb-maq .kb-h__link.is-current {
	border-bottom-color: #BEF975;
	font-weight: 600;
}

.kb-h__link svg {
	transition: transform .15s;
}

.kb-h__link[aria-expanded="true"] svg {
	transform: rotate(180deg);
}

/* Menu déroulant « Borne de recharge ». */
.kb-h__drop {
	position: absolute;
	top: 72px;
	left: 0;
	width: 540px;
	background: #FFFFFF;
	border: 1px solid #E1DEEE;
	border-top: 0;
	border-radius: 0 0 16px 16px;
	box-shadow: 0 16px 32px rgba(7, 0, 43, .14);
	overflow: hidden;
}

.kb-h__rows {
	padding: 12px;
	display: flex;
	flex-direction: column;
}

.kb-maq .kb-h__row {
	display: grid;
	grid-template-columns: 52px minmax(0, 1fr) auto;
	gap: 16px;
	align-items: center;
	padding: 12px;
	border-radius: 12px;
	white-space: normal;
}

.kb-maq .kb-h__row:hover {
	background: #F2FEE3;
}

.kb-maq .kb-h__row[aria-current="page"] {
	background: #F6F5FA;
}

.kb-h__row svg,
.kb-h__mrow svg {
	display: block;
}

.kb-h__row-t {
	display: block;
	font: 700 17px/22px Arvo;
}

.kb-h__row-s {
	display: block;
	margin-top: 3px;
	font: 400 14px/20px 'DM Sans';
	color: #3D3766;
}

.kb-h__tag {
	font: 700 11px/1 'DM Sans';
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #3A7300;
}

.kb-h__trust {
	background: #F6F5FA;
	padding: 14px 24px;
}

.kb-h__google {
	display: flex;
	align-items: center;
	gap: 8px;
	font: 400 14px/20px 'DM Sans';
	color: #3D3766;
}

.kb-h__google img {
	width: 18px;
	height: 18px;
	display: block;
}

.kb-h__google strong {
	color: #07002B;
}

.kb-h__etoiles {
	color: #F5B400;
	letter-spacing: 1px;
}

.kb-maq .kb-h__cta {
	flex: none;
	height: 48px;
	padding: 0 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #BEF975;
	border: 2px solid #07002B;
	border-radius: 999px;
	color: #07002B;
	font: 600 16px/1 'DM Sans';
	white-space: nowrap;
}

.kb-maq .kb-h__cta:hover {
	background: #A9EE55;
}

.kb-h__burger {
	display: none;
	margin-left: auto;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 2px solid #07002B;
	border-radius: 999px;
	background: #FFFFFF;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: #07002B;
}

/* Menu mobile. */
.kb-h__mnav {
	position: absolute;
	left: 0;
	right: 0;
	top: 72px;
	background: #FFFFFF;
	border-bottom: 1px solid #E1DEEE;
	box-shadow: 0 16px 32px rgba(7, 0, 43, .14);
	display: flex;
	flex-direction: column;
}

.kb-h__mnav[hidden] {
	display: none;
}

.kb-h__mlist {
	padding: 20px 16px 8px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.kb-h__mlabel {
	font: 700 12px/1 'DM Sans';
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #5B5485;
	padding: 0 0 8px;
}

.kb-maq .kb-h__mrow {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr) 20px;
	gap: 14px;
	align-items: center;
	min-height: 68px;
	border-bottom: 1px solid #E1DEEE;
}

.kb-h__mrow-t {
	display: block;
	font: 600 16px/22px 'DM Sans';
}

.kb-h__mrow-s {
	display: block;
	margin-top: 2px;
	font: 400 13px/18px 'DM Sans';
	color: #3D3766;
}

.kb-maq .kb-h__mlink {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 56px;
	margin-top: 4px;
	font: 600 16px/22px 'DM Sans';
}

.kb-h__mfoot {
	padding: 16px;
	border-top: 1px solid #E1DEEE;
	display: flex;
	flex-direction: column;
	gap: 12px;
	align-items: center;
}

.kb-maq .kb-h__mfoot .kb-h__cta {
	width: 100%;
	height: 52px;
}

.kb-h__mfoot .kb-h__google {
	font-size: 13px;
}

.kb-h__mfoot .kb-h__google img {
	width: 16px;
	height: 16px;
}

@media (max-width: 1023px) {
	.kb-h__nav,
	.kb-h > .kb-h__cta {
		display: none;
	}

	.kb-h__burger {
		display: flex;
	}
}

/* Mobile : marges du hero (20 px), logo plus petit. */
@media (max-width: 767px) {
	.kb-h__logo img {
		height: 28px;
	}
}

@media (max-width: 699px) {
	.kb-h {
		padding: 0 20px;
	}
}

@media (min-width: 1024px) {
	.kb-h__mnav {
		display: none !important;
	}
}

/* ---------- Hero (design-source/blocs/hero-maison.html et hero-copropriete.html) ---------- */

.kb-hero {
	position: relative;
	background: #F2FEE3;
	color: #07002B;
	padding: 56px var(--kb-g) 64px;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 56px;
	align-items: center;
}

.kb-hero__texte {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.kb-maq .kb-hero__surtitre {
	margin-bottom: -8px;
	font: 700 13px/1 'DM Sans';
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #3A7300;
}

.kb-hero__surtitre--m {
	display: none;
}

.kb-maq .kb-hero__h1 {
	margin: 0;
	font: 700 clamp(28px, 1.8cqw + 20px, 44px)/1.2 Arvo;
	text-wrap: balance;
	max-width: 760px;
}

.kb-hero__h1 mark {
	background: linear-gradient(transparent 62%, #BEF975 62%);
	color: inherit;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

.kb-hero__chapo {
	font: 400 18px/28px 'DM Sans';
	color: #2A2450;
	max-width: 640px;
	text-wrap: pretty;
}

/* Points forts : icône verte, texte long (ordinateur) ou court (mobile). */
.kb-hero__usp {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
	font: 400 17px/24px 'DM Sans';
}

/* Icône positionnée à gauche : le texte (avec ses mots en gras) reste d'un seul tenant. */
.kb-hero__usp li {
	position: relative;
	padding-left: 34px;
	text-wrap: pretty;
}

.kb-hero__usp li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1px;
	width: 22px;
	height: 22px;
	background: #3A7300;
	-webkit-mask: var(--kb-icone-usp) center / contain no-repeat;
	mask: var(--kb-icone-usp) center / contain no-repeat;
}

.kb-hero__usp .kb-usp--m {
	display: none;
}

.kb-icone-usp-certifie {
	--kb-icone-usp: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 7.2a2.2 2.2 0 0 1 2.2 -2.2h1a2.2 2.2 0 0 0 1.55 -.64l.7 -.7a2.2 2.2 0 0 1 3.12 0l.7 .7c.412 .41 .97 .64 1.55 .64h1a2.2 2.2 0 0 1 2.2 2.2v1c0 .58 .23 1.138 .64 1.55l.7 .7a2.2 2.2 0 0 1 0 3.12l-.7 .7a2.2 2.2 0 0 0 -.64 1.55v1a2.2 2.2 0 0 1 -2.2 2.2h-1a2.2 2.2 0 0 0 -1.55 .64l-.7 .7a2.2 2.2 0 0 1 -3.12 0l-.7 -.7a2.2 2.2 0 0 0 -1.55 -.64h-1a2.2 2.2 0 0 1 -2.2 -2.2v-1a2.2 2.2 0 0 0 -.64 -1.55l-.7 -.7a2.2 2.2 0 0 1 0 -3.12l.7 -.7a2.2 2.2 0 0 0 .64 -1.55v-1M9 12l2 2l4 -4'/%3E%3C/svg%3E");
}

.kb-icone-usp-gratuit {
	--kb-icone-usp: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0M14.4 8c-.67 -.63 -1.5 -1 -2.4 -1c-2.21 0 -4 2.24 -4 5s1.790 5 4 5c.9 0 1.73 -.37 2.4 -1M7 10.5h4M7 13.5h4'/%3E%3C/svg%3E");
}

.kb-icone-usp-tva {
	--kb-icone-usp: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 14l6 -6M9.5 8.5m-.5 0a.5 .5 0 1 0 1 0a.5 .5 0 1 0 -1 0M14.5 13.5m-.5 0a.5 .5 0 1 0 1 0a.5 .5 0 1 0 -1 0M5 21v-16a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v16l-3 -2l-2 2l-2 -2l-2 2l-2 -2l-3 2'/%3E%3C/svg%3E");
}

.kb-icone-usp-advenir {
	--kb-icone-usp: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 14l6 -6M9.5 8.5m-.5 0a.5 .5 0 1 0 1 0a.5 .5 0 1 0 -1 0M14.5 13.5m-.5 0a.5 .5 0 1 0 1 0a.5 .5 0 1 0 -1 0M5 21v-16a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v16l-3 -2l-2 2l-2 -2l-2 2l-2 -2l-3 2'/%3E%3C/svg%3E");
}

.kb-icone-usp-donnees {
	--kb-icone-usp: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v6a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2zM11 16a1 1 0 1 0 2 0a1 1 0 0 0 -2 0M8 11v-4a4 4 0 1 1 8 0v4'/%3E%3C/svg%3E");
}

.kb-icone-usp-prise {
	--kb-icone-usp: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.785 6l8.215 8.215l-2.054 2.054a5.81 5.81 0 1 1 -8.215 -8.215l2.054 -2.054zM4 20l3.5 -3.5M15 4l-3.5 3.5M20 9l-3.5 3.5'/%3E%3C/svg%3E");
}

/* Champ code postal, note Google et date (sous le texte du hero). */
.kb-recherche {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

/* La zone d'erreur reste dans la page (annonce aux lecteurs d'écran) : pas d'écart quand elle est vide. */
.kb-recherche__form {
	display: flex;
	flex-direction: column;
	max-width: 720px;
}

.kb-recherche__champ {
	display: flex;
	flex-direction: row;
	gap: 0;
	border: 2px solid #07002B;
	border-radius: 999px;
	overflow: hidden;
	background: #FFFFFF;
}

.kb-recherche__champ:focus-within {
	box-shadow: 0 0 0 3px #F2FEE3, 0 0 0 5px #07002B;
}

.kb-recherche__champ input {
	flex: 1;
	min-width: 0;
	height: 64px;
	box-sizing: border-box;
	padding: 0 28px;
	border: 0;
	border-radius: 0;
	background: #FFFFFF;
	color: #07002B;
	font: 500 18px/1 'DM Sans';
}

.kb-recherche__champ input::placeholder {
	color: #6E6893;
}

.kb-recherche__champ button {
	height: 64px;
	padding: 0 28px;
	border: 0;
	border-left: 2px solid #07002B;
	background: #BEF975;
	box-shadow: none;
	color: #07002B;
	font: 600 18px/1 'DM Sans';
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	white-space: nowrap;
}

.kb-recherche__champ button:hover {
	background: #A9EE55;
}

.kb-recherche__erreur {
	margin-top: 12px;
	font: 500 15px/22px 'DM Sans';
	color: #B3261E;
}

.kb-recherche__meta {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	margin-top: -8px;
}

.kb-maq .kb-recherche__avis {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 24px;
	font: 500 15px/20px 'DM Sans';
	color: #07002B;
	text-decoration: none;
	white-space: nowrap;
}

.kb-maq .kb-recherche__avis:hover {
	color: #07002B;
}

.kb-recherche__avis img {
	flex: none;
	width: 18px;
	height: 18px;
	display: block;
}

.kb-recherche__note {
	font-weight: 700;
}

.kb-recherche__etoiles {
	flex: none;
	display: flex;
	gap: 1px;
}

.kb-recherche__etoiles svg {
	display: block;
}

.kb-recherche__nombre {
	color: #3A3563;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.kb-recherche__maj {
	font: 400 14px/20px 'DM Sans';
	color: #5B5485;
}

/* Tablette : une colonne, sans photo. */
@media (max-width: 1023px) {
	.kb-hero {
		padding-top: 48px;
		padding-bottom: 56px;
	}
}

/* Mobile : textes courts, points forts sur deux colonnes, champ et bouton séparés. */
@media (max-width: 699px) {
	.kb-hero {
		padding: 28px 20px 32px;
		gap: 0;
	}

	.kb-hero__texte {
		gap: 20px;
	}

	.kb-maq .kb-hero__surtitre {
		font-size: 12px;
	}

	.kb-hero__surtitre--d,
	.kb-hero__usp .kb-usp--d,
	.kb-hero__chapo {
		display: none;
	}

	.kb-hero__surtitre--m {
		display: block;
	}

	.kb-hero__usp .kb-usp--m {
		display: block;
	}

	.kb-hero__usp {
		grid-template-columns: 1fr 1fr;
		gap: 12px 14px;
		font: 400 14px/19px 'DM Sans';
	}

	.kb-hero__usp li {
		padding-left: 26px;
	}

	.kb-hero__usp li::before {
		width: 18px;
		height: 18px;
	}

	.kb-recherche {
		gap: 20px;
	}

	.kb-recherche__champ {
		flex-direction: column;
		gap: 10px;
		border: 0;
		border-radius: 0;
		overflow: visible;
		background: transparent;
	}

	.kb-recherche__champ:focus-within {
		box-shadow: none;
	}

	.kb-recherche__champ input {
		flex: none;
		height: 56px;
		padding: 0 22px;
		border: 2px solid #07002B;
		border-radius: 999px;
	}

	.kb-recherche__champ input:focus {
		box-shadow: 0 0 0 3px #F2FEE3, 0 0 0 5px #07002B;
	}

	.kb-recherche__champ button {
		height: 56px;
		border: 2px solid #07002B;
		border-radius: 999px;
	}

	.kb-recherche__meta {
		align-items: center;
	}
}

/* Photo arrondie et carte n° 1 (1024 px et plus). */
.kb-hero-photo {
	display: none;
}

@media (min-width: 1024px) {
	.kb-hero {
		grid-template-columns: minmax(0, 1fr) minmax(0, 460px);
	}

	.kb-maq .kb-hero-photo {
		display: block;
		position: relative;
		height: 560px;
		margin: 0;
		border-radius: 24px;
		overflow: hidden;
		background: #DDE7D0;
	}
}

.kb-hero-photo__cadre {
	position: absolute;
	inset: 0;
}

.kb-hero-photo__cadre picture,
.kb-hero-photo__cadre img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--kb-cadrage, 42% 50%);
}

.kb-maq .kb-hero-photo__carte {
	position: absolute;
	left: 16px;
	right: 16px;
	bottom: 16px;
	box-sizing: border-box;
	background: #FFFFFF;
	border-radius: 16px;
	box-shadow: 0 8px 24px rgba(7, 0, 43, .18);
	padding: 18px 20px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	color: #07002B;
	text-decoration: none;
}

.kb-maq .kb-hero-photo__carte:hover {
	color: #07002B;
	box-shadow: 0 10px 28px rgba(7, 0, 43, .28);
}

.kb-hero-photo__ligne {
	display: flex;
	align-items: center;
	gap: 10px;
}

.kb-hero-photo__rang {
	flex: none;
	background: #07002B;
	color: #FFFFFF;
	font: 700 15px/1 Arvo;
	padding: 7px 9px;
	border-radius: 4px;
}

.kb-hero-photo__nom {
	flex: 1;
	min-width: 0;
	font: 700 20px/24px Arvo;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.kb-hero-photo__ligne img {
	flex: none;
	width: 92px;
	height: auto;
	display: block;
}

.kb-hero-photo__ligne--bas {
	justify-content: space-between;
	gap: 8px;
	font: 400 14px/20px 'DM Sans';
	color: #3A3563;
}

.kb-hero-photo__voir {
	font-weight: 600;
	color: #07002B;
	text-decoration: underline;
	text-decoration-color: #BEF975;
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

/* ---------- Classement ---------- */

.kb-classement {
	padding: clamp(28px, 5cqw, 64px) var(--kb-g-classement) 0;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.kb-maq .kb-classement__h2 {
	margin: 0;
	font: 700 clamp(17px, min(5.6cqw - 1.8px, 1.6cqw + 14px), 32px)/1.25 Arvo;
	letter-spacing: -.01em;
	text-wrap: pretty;
}

.kb-cl {
	display: contents;
}

/* Barre d'état */
.kb-cl-etat {
	position: relative;
	margin-bottom: 12px;
}

.kb-cl-etat--m {
	display: none;
}

.kb-cl-etat--d .kb-cl-etat__barre {
	background: #F6F5FA;
	border-radius: 10px;
	min-height: 52px;
	padding: 4px 16px;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0 16px;
	flex-wrap: wrap;
}

.kb-cl-etat--d .kb-cl-etat__ligne {
	display: flex;
	align-items: center;
	gap: 8px;
	font: 600 16px/24px 'DM Sans';
}

.kb-cl-etat--d .kb-cl-etat__ligne svg {
	flex: none;
}

.kb-cl-etat__point {
	color: #8C87AD;
}

.kb-cl-etat--d .kb-cl-etat__ligne button {
	min-height: 44px;
	padding: 0;
	border: 0;
	background: none;
	color: #3A7300;
	font: 600 16px/24px 'DM Sans';
	text-decoration: underline;
	cursor: pointer;
}

.kb-cl-etat__info {
	min-height: 44px;
	padding: 0;
	border: 0;
	background: none;
	display: flex;
	align-items: center;
	gap: 6px;
	font: 500 14px/20px 'DM Sans';
	color: #5B5485;
	text-decoration: underline;
	text-underline-offset: 2px;
	cursor: pointer;
	white-space: nowrap;
}

.kb-cl-etat__info svg {
	flex: none;
}

.kb-cl-etat__info:hover {
	color: #07002B;
}

.kb-cl-pop {
	position: absolute;
	right: 0;
	top: calc(100% + 8px);
	width: min(440px, 100%);
	box-sizing: border-box;
	z-index: 30;
	background: #FFFFFF;
	border: 1px solid #E1DEEE;
	border-radius: 16px;
	box-shadow: 0 12px 32px rgba(7, 0, 43, .14);
	padding: 18px 20px;
	font: 400 14px/22px 'DM Sans';
	color: #3B3566;
}

/* Aucun résultat */
.kb-cl-vide {
	border-radius: 16px;
	background: #F6F5FA;
	padding: 24px;
	display: flex;
	gap: 24px;
	align-items: center;
	flex-wrap: wrap;
}

.kb-cl-vide > img {
	width: 120px;
	height: auto;
	display: block;
}

.kb-cl-vide__texte {
	flex: 1 1 320px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.kb-cl-vide__titre {
	font: 700 22px/28px Arvo;
}

.kb-cl-vide__sous {
	font: 400 16px/26px 'DM Sans';
	color: #3B3566;
}

.kb-cl-vide__form {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: flex-end;
}

.kb-cl-vide__champ {
	flex: 1 1 240px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.kb-cl-vide__champ label {
	font: 600 15px/22px 'DM Sans';
}

.kb-cl-vide__champ input {
	height: 48px;
	box-sizing: border-box;
	padding: 0 14px;
	border: 1px solid #8C87AD;
	border-radius: 999px;
	background: #FFFFFF;
	color: #07002B;
	font: 400 16px/1 'DM Sans';
}

.kb-cl-vide__form button {
	min-height: 48px;
	padding: 0 20px;
	border: 2px solid #07002B;
	border-radius: 999px;
	background: #FFFFFF;
	color: #07002B;
	font: 600 16px/1 'DM Sans';
	cursor: pointer;
}

.kb-cl-vide__ok {
	background: #F2FEE3;
	color: #2F6300;
	padding: 12px 14px;
	display: flex;
	gap: 8px;
	align-items: center;
	font: 600 15px/22px 'DM Sans';
}

/* Cartes */
.kb-cl-liste {
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.kb-carte {
	position: relative;
	border: 1px solid #E1DEEE;
	border-radius: 16px;
	background: #FFFFFF;
	scroll-margin-top: 16px;
}

.kb-carte.is-vedette {
	border: 2px solid #07002B;
	box-shadow: 0 12px 32px rgba(7, 0, 43, .10);
}

.kb-carte.is-hors-zone {
	background: #F6F5FA;
}

.kb-carte__vedette {
	position: absolute;
	top: -14px;
	left: 24px;
	z-index: 2;
	background: #BEF975;
	color: #07002B;
	border: 2px solid #07002B;
	font: 700 12px/16px 'DM Sans';
	letter-spacing: .08em;
	padding: 4px 10px;
	border-radius: 999px;
}

.kb-carte__d {
	display: grid;
	grid-template-columns: 180px minmax(0, 1fr) 340px;
	align-items: stretch;
}

.kb-carte__visuel {
	padding: 32px 0 32px 32px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.kb-carte.is-vedette .kb-carte__visuel {
	padding-top: 44px;
}

.kb-carte__logo {
	position: relative;
	width: 100%;
	aspect-ratio: 3 / 2;
	border: 1px solid #E1DEEE;
	border-radius: 10px;
	background: repeating-linear-gradient(45deg, #FFFFFF 0 8px, #F6F5FA 8px 16px);
	display: flex;
	align-items: center;
	justify-content: center;
	font: 400 11px/1 monospace;
	color: #5B5485;
}

/* Logo renseigné dans la fiche de l'installateur. */
.kb-carte__logo.has-logo {
	background: #FFFFFF;
	padding: 12px;
	box-sizing: border-box;
}

.kb-carte__logo.has-logo img {
	display: block;
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

.kb-carte__rang {
	position: absolute;
	top: -1px;
	left: -1px;
	width: max-content;
	white-space: nowrap;
	background: #07002B;
	color: #FFFFFF;
	font: 700 15px/18px Arvo;
	padding: 6px 10px;
	border-radius: 6px;
}

.kb-carte__milieu {
	min-width: 0;
	padding: 32px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 16px;
}

.kb-carte.is-vedette .kb-carte__milieu {
	padding: 44px 32px 32px;
}

.kb-carte__tete {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.kb-carte__titre {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}

.kb-maq .kb-carte__titre h3,
.kb-maq .kb-carte__m-nom :is(h3,.kb-carte__m-h) {
	margin: 0;
	font: 700 24px/30px Arvo;
}

.kb-maq .kb-carte :is(h3,.kb-carte__m-h) a {
	color: #07002B;
	text-decoration: underline;
	text-decoration-color: #BEF975;
	text-decoration-thickness: 3px;
	text-underline-offset: 4px;
}

.kb-maq .kb-carte :is(h3,.kb-carte__m-h) a:hover {
	text-decoration-color: #07002B;
}

.kb-hors-zone {
	background: #E9E7F3;
	color: #07002B;
	font: 700 11px/14px 'DM Sans';
	letter-spacing: .08em;
	padding: 3px 7px;
	border-radius: 999px;
}

.kb-carte__zone {
	display: flex;
	align-items: center;
	gap: 6px;
	font: 400 15px/22px 'DM Sans';
	color: #5B5485;
}

.kb-carte__zone svg {
	flex: none;
}

.kb-carte__zone span {
	font-size: 14px;
}

.kb-carte.is-chez-vous .kb-carte__zone,
.kb-carte.is-chez-vous .kb-carte__m-zone > span:first-child {
	font-weight: 600;
	color: #2F6300;
}

.kb-carte__points {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.kb-carte__points li {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font: 400 16px/22px 'DM Sans';
}

.kb-carte__points img {
	width: 20px;
	height: 20px;
	flex: none;
	margin-top: 1px;
}

.kb-carte.is-hors-zone .kb-carte__visuel,
.kb-carte.is-hors-zone .kb-carte__milieu,
.kb-carte.is-hors-zone .kb-carte__indice {
	opacity: .6;
}

.kb-carte__panneau {
	background: transparent;
	padding: 24px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 18px 24px;
	flex-wrap: wrap;
}

.kb-carte__indice {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	gap: 12px;
}

.kb-carte__indice img {
	width: 100px;
	height: 34px;
	display: block;
}

.kb-carte__indice span {
	font: 700 18px/22px Arvo;
}

.kb-carte__actions {
	flex: none;
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.kb-carte__promo {
	display: flex;
	gap: 8px;
	align-items: center;
	background: #FFEDE2;
	border-radius: 10px;
	padding: 12px;
	font: 600 14px/20px 'DM Sans';
	color: #07002B;
	min-width: 0;
}

.kb-carte__promo img {
	width: 18px;
	height: 18px;
	flex: none;
}

.kb-carte__promo span {
	min-width: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.kb-maq .kb-choix {
	width: 100%;
	min-height: 56px;
	padding: 0 16px;
	box-sizing: border-box;
	border: 2px solid #07002B;
	border-radius: 999px;
	background: #FFFFFF;
	color: #07002B;
	font: 600 16px/1 'DM Sans';
	text-decoration: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

.kb-maq .kb-choix:hover {
	background: #F6F5FA;
	color: #07002B;
}

.kb-maq .kb-choix.is-principal {
	background: #BEF975;
}

.kb-maq .kb-choix.is-principal:hover {
	background: #A9EE55;
}

.kb-maq .kb-choix[aria-pressed="true"] {
	background: #F2FEE3;
}

.kb-maq .kb-choix[aria-pressed="true"]:hover {
	background: #DDFCB8;
}

.kb-maq .kb-choix:disabled {
	opacity: .5;
	cursor: default;
}

.kb-carte.is-hors-zone .kb-choix {
	display: none;
}

/* Carte mobile (moins de 768 px) */
.kb-carte__m {
	display: none;
	padding: 20px;
	flex-direction: column;
	gap: 16px;
}

.kb-carte.is-vedette .kb-carte__m {
	padding: 32px 20px 20px;
}

.kb-carte__m-tete {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 10px;
}

.kb-carte__m-nom {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
}

.kb-carte__m-rang {
	flex: none;
	width: max-content;
	white-space: nowrap;
	background: #07002B;
	color: #FFFFFF;
	font: 700 14px/16px Arvo;
	padding: 5px 8px;
	border-radius: 6px;
}

.kb-maq .kb-carte__m-nom :is(h3,.kb-carte__m-h) {
	font: 700 20px/26px Arvo;
	min-width: 0;
}

.kb-carte__m-indice {
	flex: none;
	display: flex;
}

.kb-carte__m-indice img {
	width: 64px;
	height: 22px;
	display: block;
}

.kb-carte__m-zone {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin-top: -8px;
	font: 400 15px/22px 'DM Sans';
	color: #5B5485;
}

.kb-carte__m-zone .kb-hors-zone {
	flex: none;
	font-size: 10px;
	padding: 2px 6px;
}

.kb-carte__m-points {
	margin: 4px 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.kb-carte__m-points li {
	display: flex;
	gap: 8px;
	align-items: center;
	font: 400 15px/20px 'DM Sans';
}

.kb-carte__m-points img {
	width: 18px;
	height: 18px;
	flex: none;
}

.kb-carte__m .kb-carte__promo {
	align-items: flex-start;
	padding: 12px 14px;
}

.kb-carte__m .kb-carte__promo img {
	margin-top: 1px;
}

.kb-maq .kb-carte__m .kb-choix {
	min-height: 48px;
}

/* 768 à 1023 px : panneau d'action sous le contenu */
@media (max-width: 1023px) {
	.kb-carte__d {
		grid-template-columns: 160px minmax(0, 1fr);
	}

	.kb-carte__panneau {
		grid-column: 1 / -1;
		flex-direction: row;
	}

	.kb-carte__actions {
		flex: 1 1 320px;
		width: auto;
	}
}

@media (max-width: 767px) {
	.kb-classement {
		gap: 16px;
	}

	.kb-cl-etat--d,
	.kb-carte__d {
		display: none;
	}

	.kb-cl-etat--m {
		display: block;
		margin-bottom: 16px;
	}

	.kb-carte__m {
		display: flex;
	}

	.kb-carte__vedette {
		left: 16px;
	}

	.kb-cl-etat--m .kb-cl-etat__barre {
		background: #F6F5FA;
		padding: 4px 12px;
		display: flex;
		flex-direction: column;
	}

	.kb-cl-etat--m .kb-cl-etat__ligne {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 8px;
		min-height: 36px;
		font: 600 14px/20px 'DM Sans';
	}

	.kb-cl-etat__txt {
		display: flex;
		align-items: center;
		gap: 6px;
		white-space: nowrap;
	}

	.kb-cl-etat__txt svg {
		flex: none;
	}

	.kb-cl-etat--m .kb-cl-etat__ligne button {
		min-height: 36px;
		padding: 0 0 0 8px;
		border: 0;
		background: none;
		color: #3A7300;
		font: 600 14px/20px 'DM Sans';
		text-decoration: underline;
		cursor: pointer;
	}

	.kb-cl-etat--m .kb-cl-etat__info {
		align-self: flex-start;
		min-height: 32px;
		font: 500 13px/18px 'DM Sans';
	}

	.kb-cl-etat--m .kb-cl-pop {
		left: 0;
		right: 0;
		top: 100%;
		margin-top: 8px;
		width: auto;
		padding: 14px 16px;
		font: 400 14px/22px 'DM Sans';
	}
}

/* Barre d'action collante */
.kb-barre {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 50;
	background: #FFFFFF;
	border-top: 2px solid #07002B;
	padding: 12px var(--kb-g);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}

.kb-barre__texte {
	font: 500 16px/24px 'DM Sans';
}

.kb-maq .kb-barre__demande {
	flex: 1 1 auto;
	max-width: 360px;
	margin-left: auto;
	min-height: 52px;
	padding: 0 24px;
	box-sizing: border-box;
	border: 2px solid #07002B;
	border-radius: 999px;
	background: #BEF975;
	font: 600 17px/1 'DM Sans';
	color: #07002B;
	text-decoration: none;
	display: flex;
	align-items: center;
	justify-content: center;
}

.kb-maq .kb-barre__demande:hover {
	background: #A9EE55;
	color: #07002B;
}

.kb-barre__cp {
	flex: 1;
	min-height: 52px;
	padding: 0 20px;
	border: 2px solid #07002B;
	border-radius: 999px;
	background: #BEF975;
	font: 600 17px/1 'DM Sans';
	color: #07002B;
	cursor: pointer;
}

@media (max-width: 699px) {
	.kb-barre__texte {
		display: none !important;
	}

	.kb-maq .kb-barre__demande {
		max-width: none;
	}
}

html.kb-avec-barre .kb-ft {
	padding-bottom: 112px;
}

/* ---------- Pourquoi nous faire confiance (design-source/blocs/usp-confiance.html) ---------- */

.kb-confiance {
	background: #FFFFFF;
	color: #07002B;
	padding: 72px var(--kb-g);
	display: grid;
	grid-template-columns: 360px minmax(0, 1fr);
	gap: 64px;
	align-items: start;
}

.kb-confiance__intro {
	display: flex;
	flex-direction: column;
	gap: 16px;
	position: sticky;
	top: 24px;
}

.kb-maq .kb-confiance__intro h2 {
	margin: 0;
	font: 700 40px/1.15 Arvo;
	text-wrap: balance;
}

.kb-maq .kb-confiance__chapo {
	font: 400 17px/27px 'DM Sans';
	color: #3D3766;
	text-wrap: pretty;
}

/* Lien souligné volt avec flèche (« Comparer les prix »). */

.kb-maq .kb-lien-cp a {
	min-height: 44px;
	color: #07002B;
	font: 600 16px/22px 'DM Sans';
	text-decoration: underline;
	text-decoration-color: #BEF975;
	text-decoration-thickness: 3px;
	text-underline-offset: 5px;
	display: flex;
	align-items: center;
	gap: 8px;
}

.kb-maq .kb-lien-cp a:hover {
	text-decoration-color: #07002B;
	color: #07002B;
}

.kb-lien-cp a::after {
	content: "";
	width: 18px;
	height: 18px;
	flex: none;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 18l6 -6M13 6l6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 18l6 -6M13 6l6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.kb-maq .kb-confiance__lien {
	align-self: flex-start;
	margin-top: 8px !important;
}

.kb-maq .kb-confiance__lien a:focus-visible {
	outline: 3px solid #07002B;
	outline-offset: 3px;
}

.kb-confiance__liste {
	display: flex;
	flex-direction: column;
}

.kb-confiance__item {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr) auto;
	gap: 24px;
	align-items: center;
	padding: 28px 0;
	border-top: 1px solid #E1DEEE;
}

.kb-confiance__item:last-child {
	border-bottom: 1px solid #E1DEEE;
}

.kb-maq .kb-confiance__picto img {
	display: block;
	width: 72px;
	height: 72px;
}

.kb-confiance__texte {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.kb-maq .kb-confiance__texte h3 {
	margin: 0;
	font: 700 22px/28px Arvo;
}

.kb-maq .kb-confiance__texte p {
	font: 400 16px/24px 'DM Sans';
	color: #3D3766;
	text-wrap: pretty;
}

.kb-maq .kb-confiance__preuve {
	background: #E4FCC8;
	color: #07002B;
	font: 700 15px/1 'DM Sans';
	padding: 11px 16px;
	border-radius: 999px;
	white-space: nowrap;
}

/* Tablette : intro au-dessus, liste dessous. */
@media (max-width: 1023px) {
	.kb-confiance {
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
		padding-top: 56px;
		padding-bottom: 56px;
	}

	.kb-confiance__intro {
		position: static;
		max-width: 640px;
	}

	.kb-maq .kb-confiance__intro h2 {
		font-size: 32px;
	}
}

/* Mobile : picto à gauche, texte et pastille à droite. */
@media (max-width: 767px) {
	.kb-confiance {
		padding-top: 48px;
		padding-bottom: 48px;
		gap: 20px;
	}

	.kb-confiance__intro {
		gap: 12px;
	}

	.kb-maq .kb-confiance__intro h2 {
		font-size: 26px;
		line-height: 1.2;
	}

	.kb-maq .kb-confiance__chapo {
		font-size: 16px;
		line-height: 24px;
	}

	.kb-maq .kb-confiance__lien {
		margin-top: 0 !important;
	}

	.kb-confiance__item {
		grid-template-columns: 56px minmax(0, 1fr);
		gap: 16px;
		align-items: start;
		padding: 20px 0;
	}

	.kb-maq .kb-confiance__picto img {
		width: 56px;
		height: 56px;
	}

	.kb-maq .kb-confiance__texte h3 {
		font-size: 19px;
		line-height: 25px;
	}

	.kb-maq .kb-confiance__texte p {
		font-size: 15px;
		line-height: 22px;
	}

	.kb-maq .kb-confiance__preuve {
		grid-column: 2;
		justify-self: start;
		margin-top: -6px !important;
		font-size: 13px;
		padding: 8px 12px;
		white-space: normal;
	}
}

/* ---------- Guide ---------- */

.kb-seo {
	padding: clamp(48px, 7cqw, 88px) var(--kb-g) 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 64px;
	align-items: start;
}

.kb-seo__aside {
	display: none;
}

/*
 * L'encadré occupe l'espace laissé par le texte (820 px au plus) : de 280 à
 * 400 px selon la largeur de l'écran.
 */
@media (min-width: 1024px) {
	.kb-seo {
		grid-template-columns: minmax(0, 1fr) clamp(280px, 100% - 820px - 64px, 400px);
	}

	.kb-maq .kb-seo__aside {
		container-type: inline-size;
		order: 2;
		position: sticky;
		top: 24px;
		margin-bottom: 64px;
		display: flex;
		flex-direction: column;
	}
}

.kb-seo__cta {
	--focus: #BEF975;
	background: #07002B;
	border-radius: 16px;
	color: #FFFFFF;
	padding: 24px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.kb-seo__cta-titre {
	font: 700 20px/26px Arvo;
	text-wrap: balance;
}

.kb-seo__cta-texte {
	font: 400 16px/24px 'DM Sans';
	color: #A9A5C4;
	text-wrap: balance;
}

.kb-maq .kb-seo__cta-boutons {
	margin-top: 16px;
}

.kb-seo__cta-boutons,
.kb-seo__cta-boutons .wp-block-button {
	display: block;
	width: 100%;
}

.kb-maq .kb-seo__cta .wp-block-button__link,
.kb-maq .kb-bandeau .wp-block-button__link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	box-sizing: border-box;
	padding: 0;
	border: 2px solid #07002B;
	border-radius: 999px;
	background: #BEF975;
	box-shadow: none;
	font: 600 15px/1 'DM Sans';
	color: #07002B;
	text-decoration: none;
	cursor: pointer;
}

.kb-maq .kb-seo__cta .wp-block-button__link:hover,
.kb-maq .kb-bandeau .wp-block-button__link:hover {
	background: #A9EE55;
	color: #07002B;
}

/* Bouton de l'encadré : cible tactile de 52 px, flèche comme « Comparer les prix ». */
.kb-maq .kb-seo__cta .wp-block-button__link {
	min-height: 52px;
	padding: 0 16px;
	gap: 8px;
	font-size: 16px;
	white-space: nowrap;
}

.kb-seo__cta .wp-block-button__link::after {
	content: "";
	width: 18px;
	height: 18px;
	flex: none;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 18l6 -6M13 6l6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 18l6 -6M13 6l6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Encadré large (340 px et plus) : plus d'air, titre et bouton plus grands. */
@container (min-width: 340px) {
	.kb-seo__cta {
		padding: 32px;
	}

	.kb-seo__cta-titre {
		font-size: 24px;
		line-height: 30px;
	}

	.kb-maq .kb-seo__cta .wp-block-button__link {
		min-height: 56px;
		font-size: 17px;
	}
}

.kb-seo__contenu {
	min-width: 0;
	max-width: 820px;
	display: flex;
	flex-direction: column;
}

.kb-s {
	display: flex;
	flex-direction: column;
	gap: 16px;
	border-top: 1px solid #E1DEEE;
	padding: clamp(48px, 6cqw, 72px) 0;
}

.kb-s--prix {
	border-top: 0;
	padding: 0 0 clamp(48px, 6cqw, 72px);
}

.kb-s--aides,
.kb-s--cout {
	gap: 20px;
}

.kb-s--etapes {
	gap: 24px;
}

.kb-s--choisir {
	padding-bottom: clamp(48px, 7cqw, 88px);
}

.kb-maq .kb-s h2 {
	margin: 0;
	font: 700 clamp(26px, 1.2cqw + 20px, 32px)/1.2 Arvo;
	text-wrap: pretty;
}

.kb-maq .kb-s > h3 {
	margin: 16px 0 0;
	font: 700 22px/28px Arvo;
}

.kb-maq .kb-s > h3.kb-h3-premier {
	margin-top: 8px;
}

.kb-s > p {
	font: 400 17px/28px 'DM Sans';
	color: #2A2450;
	text-wrap: pretty;
}

.kb-s > p.kb-chapo {
	font-weight: 600;
	color: #07002B;
}

.kb-s > p.kb-note {
	font: 400 14px/22px 'DM Sans';
	color: #5B5485;
	text-wrap: wrap;
}

.kb-conseil {
	background: #F2FEE3;
	border-radius: 10px;
	padding: 16px;
	display: flex;
	gap: 10px;
	font: 500 16px/25px 'DM Sans';
	color: #1F4200;
}

.kb-conseil::before {
	content: "";
	flex: none;
	width: 22px;
	height: 22px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12h1m8 -9v1m8 8h1m-15.4 -6.4l.7 .7m12.1 -.7l-.7 .7M9 16a5 5 0 1 1 6 0a3.5 3.5 0 0 0 -1 3a2 2 0 0 1 -4 0a3.5 3.5 0 0 0 -1 -3M9.7 17h4.6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12h1m8 -9v1m8 8h1m-15.4 -6.4l.7 .7m12.1 -.7l-.7 .7M9 16a5 5 0 1 1 6 0a3.5 3.5 0 0 0 -1 3a2 2 0 0 1 -4 0a3.5 3.5 0 0 0 -1 -3M9.7 17h4.6'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Tableaux (grand écran : tableau ; moins de 768 px : cartes) */
.kb-tab {
	overflow-x: auto;
	border: 1px solid #E1DEEE;
	border-radius: 12px;
}

.kb-tab__t {
	display: table;
	width: 100%;
	min-width: 560px;
	border-collapse: collapse;
}

.kb-tab__t--600 {
	min-width: 600px;
}

.kb-tab__t--480 {
	min-width: 480px;
}

.kb-tab__t thead tr {
	background: #07002B;
	color: #FFFFFF;
	text-align: left;
}

.kb-tab__t thead th {
	padding: 12px 16px;
	font-weight: 600;
}

.kb-tab__t tbody tr {
	border-top: 1px solid #E1DEEE;
	background: #FFFFFF;
}

.kb-tab__t tbody th {
	padding: 12px 16px;
	text-align: left;
	font: 600 16px/22px 'DM Sans';
	color: #07002B;
}

.kb-tab__t tbody td {
	padding: 12px 16px;
	font: 400 16px/22px 'DM Sans';
	color: #07002B;
}

.kb-tab__t tbody td.kb-tab__cle {
	font: 700 16px/22px Arvo;
	white-space: nowrap;
}

.kb-tab__m,
.kb-tab__badge {
	display: none;
}

.kb-tab__sep {
	padding: 0 6px;
}

.kb-bp thead td {
	padding: 12px 16px;
}

.kb-bp thead th.kb-bp__h {
	font: 600 16px/22px 'DM Sans';
	text-align: left;
}

.kb-bp tbody th {
	font: 600 16px/normal 'DM Sans';
}

@media (max-width: 767px) {
	.kb-tab {
		overflow-x: visible;
		border: 0;
	}

	.kb-tab__t {
		display: block;
		min-width: 0 !important;
	}

	.kb-tab__t thead {
		display: none;
	}

	.kb-tab__t tbody {
		display: flex;
		flex-direction: column;
		gap: 8px;
	}

	.kb-tab__t tbody tr {
		display: flex;
		flex-wrap: wrap;
		align-items: baseline;
		position: relative;
		padding: 16px;
		min-height: 76px;
		box-sizing: border-box;
		border: 1px solid #E1DEEE;
		border-radius: 12px;
	}

	.kb-tab__t tbody tr.is-hl {
		border: 2px solid #07002B;
	}

	.kb-tab__t tbody th {
		display: block;
		flex-basis: 100%;
		padding: 0 130px 4px 0;
	}

	.kb-tab--170 .kb-tab__t tbody th {
		padding-right: 170px;
	}

	.kb-tab__t tbody td {
		display: block;
		padding: 0;
		font: 400 14px/20px 'DM Sans';
		color: #5B5485;
	}

	.kb-tab__t tbody td.kb-tab__cle {
		position: absolute;
		top: 16px;
		right: 16px;
		font: 700 20px/24px Arvo;
		color: #07002B;
	}

	.kb-tab__o1 { order: 1; }
	.kb-tab__o2 { order: 2; }
	.kb-tab__o3 { order: 3; }

	.kb-tab__m {
		display: inline;
	}

	.kb-tab__badge {
		display: block;
		margin-top: 6px;
		width: max-content;
		background: #07002B;
		color: #BEF975;
		font: 700 11px/14px 'DM Sans';
		letter-spacing: .08em;
		padding: 3px 7px;
		border-radius: 999px;
	}

	/* Borne ou prise renforcée : deux cartes */
	.kb-bp {
		display: flex !important;
		flex-direction: column;
	}

	.kb-bp thead,
	.kb-bp tbody,
	.kb-bp tr {
		display: contents !important;
	}

	.kb-bp thead td,
	.kb-bp tbody th {
		display: none !important;
	}

	.kb-bp thead th.kb-bp__h {
		display: block;
		order: 0;
		padding: 12px 16px;
		background: #07002B;
		color: #FFFFFF;
		font: 700 18px/24px Arvo;
		border-radius: 4px 4px 0 0;
	}

	.kb-bp thead th.kb-bp__h--b {
		order: 10;
		margin-top: 16px;
	}

	.kb-bp tbody td {
		display: block;
		padding: 10px 16px;
		border-left: 1px solid #E1DEEE;
		border-right: 1px solid #E1DEEE;
		background: #FFFFFF;
		font: 400 16px/22px 'DM Sans';
		color: #07002B;
	}

	.kb-bp tbody td.is-dernier {
		border-bottom: 1px solid #E1DEEE;
		border-radius: 0 0 4px 4px;
	}

	.kb-bp__k {
		font: 600 14px/20px 'DM Sans';
		color: #5B5485;
	}

	.kb-bp__1 { order: 1; }
	.kb-bp__2 { order: 2; }
	.kb-bp__3 { order: 3; }
	.kb-bp__4 { order: 4; }
	.kb-bp__11 { order: 11; }
	.kb-bp__12 { order: 12; }
	.kb-bp__13 { order: 13; }
	.kb-bp__14 { order: 14; }
}

/* Aides */
.kb-aides {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
	gap: 20px;
}

.kb-aides--240 {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
}

.kb-aide {
	background: #F6F5FA;
	border-radius: 16px;
	padding: 24px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.kb-aide--info {
	background: #ECEBFB;
	border-top: 0;
}

.kb-aide__chiffre {
	font: 700 28px/32px Arvo;
}

.kb-maq .kb-aide h3 {
	margin: 0;
	font: 700 20px/26px Arvo;
}

.kb-aide > p:last-child {
	font: 400 16px/25px 'DM Sans';
	color: #3B3566;
}

.kb-maq .kb-aide--info h3,
.kb-aide--info > p:last-child {
	color: #1F1760;
}

.kb-aide__sur {
	display: flex;
	align-items: center;
	gap: 8px;
	color: #3E35A8;
	font: 700 12px/16px 'DM Sans';
	letter-spacing: .08em;
}

.kb-aide__sur::before {
	content: "";
	flex: none;
	width: 20px;
	height: 20px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0M12 9h.01M11 12h1v4h1'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0M12 9h.01M11 12h1v4h1'/%3E%3C/svg%3E") center / contain no-repeat;
}

.kb-encart {
	border: 2px solid #07002B;
	border-radius: 16px;
	padding: 20px 24px;
	display: flex;
	gap: 20px;
	align-items: center;
	flex-wrap: wrap;
}

.kb-encart__volty {
	flex: none;
}

.kb-maq .kb-encart__volty img {
	width: 88px;
	height: auto;
	display: block;
}

.kb-encart__texte {
	flex: 1 1 300px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.kb-encart__titre {
	font: 700 18px/24px Arvo;
}

.kb-encart__desc {
	font: 400 16px/25px 'DM Sans';
	color: #3B3566;
}

.kb-maq .kb-encart__lien a {
	font: 600 16px/24px 'DM Sans';
	min-height: 44px;
	display: flex;
	align-items: center;
}

/* Coût aux 100 km */
.kb-cout {
	background: #F6F5FA;
	padding: clamp(20px, 3cqw, 28px);
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.kb-cout__item {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.kb-cout__ligne {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
}

.kb-cout__label {
	font: 600 16px/24px 'DM Sans';
}

.kb-cout__detail {
	font: 400 14px/20px 'DM Sans';
	color: #5B5485;
}

.kb-cout__prix {
	font: 700 20px/26px Arvo;
	white-space: nowrap;
}

.kb-cout__piste {
	height: 14px;
	background: #E9E7F3;
}

.kb-cout__piste > div {
	height: 14px;
	background: #8C87AD;
	border-right: 2px solid #07002B;
	box-sizing: border-box;
}

.kb-cout__piste > div.is-domicile {
	background: #BEF975;
}

.kb-eco {
	border: 2px solid #07002B;
	border-radius: 16px;
	padding: 20px 24px;
	display: flex;
	gap: 16px 24px;
	align-items: center;
	flex-wrap: wrap;
}

.kb-eco__chiffre {
	font: 700 32px/38px Arvo;
	white-space: nowrap;
}

.kb-eco__texte {
	flex: 1 1 300px;
	font: 400 16px/25px 'DM Sans';
	color: #2A2450;
}

/* Frise des étapes */
.kb-frise {
	display: flex;
	flex-direction: column;
	counter-reset: etape;
}

.kb-etape {
	counter-increment: etape;
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 4px 0 28px 68px;
	min-height: 72px;
	box-sizing: border-box;
}

.kb-etape::before {
	content: counter(etape);
	position: absolute;
	left: 0;
	top: 0;
	width: 48px;
	height: 48px;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #FFFFFF;
	border: 2px solid #07002B;
	font: 700 20px/1 Arvo;
	border-radius: 50%;
}

.kb-etape::after {
	content: "";
	position: absolute;
	left: 23px;
	top: 48px;
	bottom: 0;
	width: 2px;
	background: #07002B;
}

.kb-etape:last-child::before {
	background: #BEF975;
}

.kb-etape:last-child::after {
	background: transparent;
}

.kb-etape__duree {
	font: 700 12px/16px 'DM Sans';
	letter-spacing: .08em;
	color: #5B5485;
}

.kb-etape__titre {
	font: 700 20px/26px Arvo;
}

.kb-etape__texte {
	font: 400 16px/25px 'DM Sans';
	color: #3B3566;
	text-wrap: pretty;
}

/* ---------- FAQ ---------- */

.kb-faq {
	background: #F6F5FA;
	padding: clamp(48px, 7cqw, 88px) var(--kb-g);
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.kb-faq__tete {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 8px 32px;
	flex-wrap: wrap;
}

.kb-maq .kb-faq__tete h2 {
	margin: 0;
	font: 700 clamp(26px, 1.2cqw + 20px, 32px)/1.2 Arvo;
}

.kb-faq__contact {
	font: 400 16px/26px 'DM Sans';
	color: #5B5485;
}

.kb-faq__liste {
	border-top: 1px solid #D6D2E6;
}

.kb-maq .kb-faq__liste .wp-block-details {
	border-bottom: 1px solid #D6D2E6;
	margin: 0;
	padding: 0;
}

.kb-faq__liste summary {
	min-height: 44px;
	padding: 18px 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	font: 600 17px/24px 'DM Sans';
}

.kb-faq__liste summary::after {
	content: "";
	flex: none;
	width: 20px;
	height: 20px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6l6 -6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6l6 -6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.kb-faq__liste details[open] > summary::after {
	transform: rotate(180deg);
}

.kb-maq .kb-faq__liste details > p {
	margin: 0;
	padding: 0 0 20px;
	max-width: 760px;
	font: 400 16px/26px 'DM Sans';
	color: #3B3566;
}

/* ---------- Bandeau « On se branche ? » ---------- */

.kb-bandeau-zone {
	padding: clamp(48px, 7cqw, 88px) var(--kb-g);
}

.kb-bandeau {
	--focus: #BEF975;
	background: #07002B;
	color: #FFFFFF;
	padding: clamp(24px, 4cqw, 32px) clamp(20px, 4cqw, 48px);
	display: flex;
	flex-wrap: wrap;
	gap: 24px 32px;
	align-items: center;
	border-radius: 24px;
}

.kb-bandeau__volty {
	flex: none;
}

.kb-maq .kb-bandeau__volty img {
	width: 88px;
	height: 88px;
	display: block;
}

.kb-bandeau__texte {
	flex: 1 1 320px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.kb-bandeau__titre {
	font: 700 28px/34px Arvo;
}

.kb-bandeau__desc {
	font: 400 18px/28px 'DM Sans';
	color: #A9A5C4;
}

.kb-maq .kb-bandeau .wp-block-button__link {
	min-height: 56px;
	padding: 0 28px;
	font: 600 17px/1 'DM Sans';
}

/* ---------- Pied de page ---------- */

.kb-ft {
	--focus: #BEF975;
	background: #07002B;
	color: #A9A5C4;
	padding: 48px var(--kb-g) 32px;
	display: flex;
	flex-direction: column;
	gap: 32px;
	font: 400 15px/24px 'DM Sans';
}

.kb-ft__grille {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
	gap: 32px;
}

.kb-ft__col--marque {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.kb-maq .kb-ft__logo img {
	height: 36px;
	width: auto;
	display: block;
}

.kb-ft__col:not(.kb-ft__col--marque) {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.kb-maq .kb-ft__titre {
	color: #FFFFFF;
	font-weight: 600;
	margin-bottom: 4px;
}

.kb-ft__liens {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.kb-maq .kb-ft__liens a {
	color: #A9A5C4;
	min-height: 32px;
	display: flex;
	align-items: center;
}

.kb-maq .kb-ft__liens a:hover {
	color: #FFFFFF;
}

.kb-ft__legal {
	border-top: 1px solid #2A1E5C;
	padding-top: 20px;
	font: 400 14px/22px 'DM Sans';
	color: #A9A5C4;
}

/* ---------- Pages génériques ---------- */

.kb-page {
	padding: clamp(32px, 5cqw, 64px) var(--kb-g) clamp(48px, 7cqw, 88px);
}

.kb-maq .kb-page > * + * {
	margin-top: 24px;
}

/* ---------- Éditeur ---------- */

.kb-apercu-editeur .kb-barre {
	position: static;
}
