/* ==========================================================================
   Glass Pare-Brise 2026 — styles principaux
   Palette : noir de marque (logo), vert « tranche de verre », teintes givrées.
   ========================================================================== */

:root {
	/* Charte Glass Pare-Brise : #30BFBF + #000000 */
	--ink: #000;
	--brand: #30BFBF;        /* turquoise du logo : fonds, boutons (texte noir), accents sur noir */
	--brand-hover: #5CCFCF;
	--brand-ink: #137A7A;    /* même teinte, assombrie : texte, liens et icônes sur fond blanc (contraste 5,1) */
	--brand-tint: #E2F6F6;
	--text: #1d2626;
	--muted: #4f5f5f;
	--glass: #F1F9F9;
	--glass-2: #DDF1F1;
	--line: #CDE3E3;
	--plate-blue: #1d4fb3;
	--white: #fff;

	--font: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--wrap: 1200px;
	--gutter: clamp(1rem, 4vw, 2rem);
	--r-s: 6px;
	--r-m: 12px;
	--r-l: 20px;
	--header-h: 80px;
	--section: clamp(3.5rem, 7vw, 6rem);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 1rem); overflow-x: clip; }
body { overflow-x: clip; }

/* Paragraphes justifiés sur tout le site, avec coupure des mots en français
   (évite les grands espaces entre les mots, surtout sur mobile). */
p { text-align: justify; -webkit-hyphens: auto; hyphens: auto; hyphenate-limit-chars: 7 3 3; }
/* Les blocs centrés volontairement le restent. */
p:where(.gpb-chosen, .gpb-aside__call),
:where(.gpb-done, .gpb-done__when, .gpb-verdict, .gpb-hero__badge, .gpb-steps-label, .gpb-chosen, .gpb-aside__call, .has-text-align-center, .gchoice) p,
p.has-text-align-center { text-align: center; }
p.has-text-align-right { text-align: right; }
/* Lignes courtes d'interface : alignées à gauche (en justifié, elles s'étireraient). */
p:where(.gpb-hero__call, .gpb-trust__note, .gpb-rv__total, .gpb-centre__hours, .gpb-centre-hero__rating, .gpb-legal__updated),
:where(.gpb-hero__call, .gpb-trust__note, .gpb-footer, .gpb-rv__total, .gpb-centre__hours, .gpb-centre-hero__rating, .gpb-legal__updated, .gpb-offer, .gpb-rv-score) p { text-align: left; -webkit-hyphens: manual; hyphens: manual; }

body {
	margin: 0;
	font-family: var(--font);
	font-size: 1rem;
	line-height: 1.65;
	color: var(--text);
	background: var(--white);
	-webkit-font-smoothing: antialiased;
}
img, svg { max-width: 100%; height: auto; }
a { color: var(--brand-ink); text-underline-offset: .18em; }
a:hover { color: var(--brand-ink); }
h1, h2, h3, h4 {
	color: var(--ink);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -.015em;
	margin: 0 0 .6em;
	text-wrap: balance;
}
h1 { font-size: clamp(1.9rem, 1.3rem + 2.6vw, 3.2rem); }
h2 { font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.4rem); }
h3 { font-size: 1.2rem; }
p { margin: 0 0 1em; }
address { font-style: normal; }
:focus-visible { outline: 3px solid var(--brand-ink); outline-offset: 3px; border-radius: 2px; }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.gpb-skip {
	position: absolute; left: 1rem; top: -100px; z-index: 1000;
	background: var(--ink); color: var(--white); padding: .75rem 1rem; border-radius: var(--r-s);
}
.gpb-skip:focus { top: 1rem; color: var(--white); }

.gpb-wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter); }
.gpb-icon { width: 1.4em; height: 1.4em; flex: none; }

/* ---------- Boutons ---------- */
.gpb-btn {
	white-space: nowrap;
	display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
	min-height: 48px; padding: .7rem 1.25rem;
	font: inherit; font-weight: 650; font-size: 1rem; line-height: 1.2;
	text-decoration: none; border: 2px solid transparent; border-radius: var(--r-s);
	cursor: pointer; transition: background-color .15s, color .15s, border-color .15s;
}
.gpb-btn .gpb-icon { width: 1.2em; height: 1.2em; }
.gpb-btn--primary { background: var(--brand); color: var(--ink); }
.gpb-btn--primary:hover { background: var(--ink); color: var(--white); }
.gpb-btn--ghost { background: transparent; color: var(--ink); border-color: var(--ink); }
.gpb-btn--ghost:hover { background: var(--ink); color: var(--white); }
.gpb-btn--light { background: var(--white); color: var(--ink); }
.gpb-btn--light:hover { background: var(--brand-tint); color: var(--ink); }
.gpb-btn--dark { background: var(--ink); color: var(--white); }
.gpb-btn--dark:hover { background: #1f2a2a; color: var(--white); }
.gpb-btn--outline-dark { color: var(--ink); border-color: var(--ink); }
.gpb-btn--outline-dark:hover { background: var(--ink); color: var(--white); }
.gpb-btn--outline-light { color: var(--white); border-color: rgba(255,255,255,.6); }
.gpb-btn--outline-light:hover { border-color: var(--white); color: var(--white); background: rgba(255,255,255,.08); }
.gpb-btn--link { padding-inline: .25rem; background: transparent; color: var(--brand-ink); text-decoration: underline; }
.gpb-btn--link:hover { background: var(--glass); color: var(--ink); }
.gpb-btn--block { width: 100%; }
.gpb-btn--lg { min-height: 64px; padding-inline: 1.6rem; font-size: 1.05rem; }

/* ---------- Liens téléphone (cibles Dexem) ----------
   Le numéro reste l'unique texte du lien ; l'icône est un pseudo-élément. */
.gpb-phone { white-space: nowrap; font-weight: 650; }
.gpb-phone--icon { display: inline-flex; align-items: center; gap: .45rem; }
.gpb-phone--icon::before {
	content: ""; width: 1.15em; height: 1.15em; 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' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 3h3l2 5-2 1.5a11 11 0 0 0 6.5 6.5L16 14l5 2v3a2 2 0 0 1-2 2A16 16 0 0 1 3 5a2 2 0 0 1 2-2z'/%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='M5 3h3l2 5-2 1.5a11 11 0 0 0 6.5 6.5L16 14l5 2v3a2 2 0 0 1-2 2A16 16 0 0 1 3 5a2 2 0 0 1 2-2z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- En-tête ---------- */
.gpb-header {
	position: sticky; top: 0; z-index: 50;
	background: var(--white);
	border-bottom: 1px solid var(--line);
	/* Pas de backdrop-filter : il enfermerait le menu mobile (position: fixed) dans l'en-tête. */
}
.admin-bar .gpb-header { top: 32px; }
.gpb-header__inner { display: flex; align-items: center; gap: 1rem; min-height: var(--header-h); }
.gpb-logo { display: inline-flex; flex: none; }
.gpb-logo img { width: auto; height: 52px; display: block; }
.gpb-nav { margin-left: auto; }
.gpb-menu { list-style: none; margin: 0; padding: 0; }
.gpb-menu--primary { display: flex; gap: .25rem; }
.gpb-menu--primary > li { position: relative; }
.gpb-menu--primary > li > a {
	white-space: nowrap;
	display: flex; align-items: center; min-height: 44px; padding: .5rem .7rem;
	color: var(--ink); text-decoration: none; font-weight: 600; font-size: .95rem; border-radius: var(--r-s);
}
.gpb-menu--primary > li > a:hover,
.gpb-menu--primary > .current-menu-item > a,
.gpb-menu--primary > .current-menu-ancestor > a { background: var(--glass); }
.gpb-submenu-toggle {
	display: none; border: 0; background: none; padding: .5rem; color: var(--ink); cursor: pointer;
}
.gpb-submenu-toggle .gpb-icon { width: 1.1rem; height: 1.1rem; transition: transform .2s; }
.gpb-submenu-toggle[aria-expanded="true"] .gpb-icon { transform: rotate(180deg); }
.gpb-menu .sub-menu { list-style: none; margin: 0; padding: 0; }

.gpb-header__actions { display: flex; align-items: center; gap: 1rem; }
.gpb-header__phone { color: var(--ink); text-decoration: none; font-size: 1.05rem; }
.gpb-header__phone:hover { color: var(--brand-ink); }
.gpb-burger { display: none; border: 0; background: none; padding: .5rem; color: var(--ink); cursor: pointer; }
.gpb-burger .gpb-icon { width: 28px; height: 28px; }
.gpb-burger__close { display: none; }
.gpb-burger[aria-expanded="true"] .gpb-burger__open { display: none; }
.gpb-burger[aria-expanded="true"] .gpb-burger__close { display: block; }
.gpb-nav__mobile-extra { display: none; }

.gpb-header--funnel .gpb-header__help { margin-left: auto; display: flex; align-items: center; gap: .75rem; color: var(--muted); }

@media (min-width: 1281px) {
	.gpb-menu--primary .sub-menu {
		position: absolute; top: 100%; left: 0; min-width: 260px; padding: .5rem;
		background: var(--white); border: 1px solid var(--line); border-radius: var(--r-m);
		box-shadow: 0 18px 40px -18px rgba(0, 40, 34, .35);
		opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .15s, transform .15s, visibility .15s;
	}
	.gpb-menu--primary li:hover > .sub-menu,
	.gpb-menu--primary li:focus-within > .sub-menu,
	.gpb-menu--primary li.is-open > .sub-menu { opacity: 1; visibility: visible; transform: none; }
	.gpb-menu--primary .sub-menu a { display: block; padding: .6rem .8rem; color: var(--ink); text-decoration: none; border-radius: var(--r-s); }
	.gpb-menu--primary .sub-menu a:hover { background: var(--glass); }
}

@media (max-width: 1280px) {
	.gpb-burger { display: inline-flex; }
	.gpb-header__actions { margin-left: auto; }
	.gpb-nav {
		position: fixed; inset: var(--header-h) 0 0 0; z-index: 49; overflow-y: auto;
		background: var(--white); padding: 1rem var(--gutter) 6rem;
		opacity: 0; transform: translateY(-8px); transition: opacity .2s ease, transform .2s ease, visibility .2s; visibility: hidden; pointer-events: none;
	}
	.admin-bar .gpb-nav { top: calc(var(--header-h) + 46px); }
	.gpb-nav.is-open { opacity: 1; transform: none; visibility: visible; pointer-events: auto; }
	.gpb-menu--primary { flex-direction: column; gap: 0; }
	.gpb-menu--primary > li { display: flex; flex-wrap: wrap; align-items: center; border-bottom: 1px solid var(--line); }
	.gpb-menu--primary > li > a { flex: 1; min-height: 56px; font-size: 1.1rem; }
	.gpb-submenu-toggle { display: inline-flex; }
	.gpb-menu--primary .sub-menu { display: none; width: 100%; padding: 0 0 .75rem .8rem; }
	.gpb-menu--primary li.is-open > .sub-menu { display: block; }
	.gpb-menu--primary .sub-menu a { display: block; padding: .6rem 0; color: var(--text); text-decoration: none; }
	.gpb-nav__mobile-extra { display: grid; gap: .75rem; margin-top: 1.5rem; }
	body.gpb-nav-open { overflow: hidden; }
}
@media (max-width: 600px) {
	:root { --header-h: 64px; }
	.gpb-logo img { height: 42px; }
	.gpb-header__rdv { display: none; }
	.gpb-header:not(.gpb-header--funnel) .gpb-header__phone { display: none; }
	.gpb-header--funnel .gpb-header__help > span { display: none; }
}

/* ---------- Accueil : hero ---------- */
.gpb-hero {
	background:
		linear-gradient(180deg, var(--glass) 0%, var(--white) 100%);
	padding: clamp(2rem, 5vw, 4.5rem) 0 2.5rem;
	overflow: hidden;
}
.gpb-hero__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
.gpb-hero__title {
	font-size: clamp(1.9rem, 1.1rem + 2.7vw, 3.1rem);
	font-weight: 700;
	line-height: 1.08;
	letter-spacing: -.025em;
	max-width: 18ch;
	overflow-wrap: break-word;
	margin-bottom: .45em;
}
.gpb-nowrap { white-space: nowrap; }
.gpb-hero__text { min-width: 0;
}
.gpb-hero__lead { font-size: 1.15rem; color: var(--text); max-width: 46ch; margin-bottom: 1.75rem; }
.gpb-hero__call { margin: 1rem 0 0; color: var(--muted); }
.gpb-hero__call a { color: var(--ink); }

.gpb-hero__visual { position: relative; }
.gpb-windshield-art { display: block; width: 100%; filter: drop-shadow(0 30px 40px rgba(0, 50, 42, .18)); }
.gpb-hero__badge {
	position: absolute; right: 2%; top: -2%;
	width: clamp(110px, 14vw, 150px); aspect-ratio: 1;
	display: grid; place-content: center; text-align: center;
	background: var(--brand); color: var(--ink); border-radius: 50%;
	transform: rotate(8deg);
}
.gpb-hero__badge strong { font-size: clamp(1.7rem, 1rem + 1.8vw, 2.4rem); line-height: 1; }
.gpb-hero__badge span { font-size: .8rem; line-height: 1.2; margin-top: .25rem; }

/* Le seul mouvement automatique : reflet + fissure au chargement. */
.gpb-shine { animation: gpb-shine 1.6s .3s ease-out both; }
.gpb-crack path, .gpb-crack circle { stroke-dasharray: 400; stroke-dashoffset: 400; animation: gpb-draw 1.1s .9s ease-out forwards; }
@keyframes gpb-shine { from { transform: skewX(-18deg) translateX(0); } to { transform: skewX(-18deg) translateX(1100px); } }
@keyframes gpb-draw { to { stroke-dashoffset: 0; } }

/* Plaque d'immatriculation */
.gpb-plate-form__label { display: block; font-weight: 650; color: var(--ink); margin-bottom: .5rem; }
.gpb-plate-form__row { display: flex; flex-wrap: wrap; gap: .75rem; }
.gpb-plate {
	display: flex; flex: 1 1 260px; max-width: 360px; height: 64px;
	background: var(--white); border: 2px solid var(--ink); border-radius: 8px; overflow: hidden;
}
.gpb-plate:focus-within { outline: 3px solid var(--brand-ink); outline-offset: 2px; }
.gpb-plate__band {
	flex: none; width: 40px; background: var(--plate-blue); color: var(--white);
	display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
	padding-bottom: 7px; font-weight: 700; font-size: 1.05rem; gap: 6px;
}
.gpb-plate__band--right { padding: 0; }
.gpb-plate__stars { width: 18px; height: 18px; border-radius: 50%; border: 2px dotted #ffd200; }
.gpb-plate input {
	flex: 1; width: 100%; min-width: 0; border: 0; outline: 0; text-align: center;
	font: 600 1.55rem/1 var(--font); letter-spacing: .06em; text-transform: uppercase; color: var(--ink);
	background: transparent;
}
.gpb-plate input::placeholder { color: #aab7b5; }

/* Engagements */
.gpb-trust { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; }
.gpb-trust li { display: flex; gap: .85rem; align-items: flex-start; }
.gpb-trust .gpb-icon { width: 2rem; height: 2rem; color: var(--brand-ink); }
.gpb-trust strong { display: block; color: var(--ink); }
.gpb-trust span { display: block; font-size: .95rem; color: var(--muted); line-height: 1.45; }
.gpb-trust--hero { grid-template-columns: repeat(4, 1fr); margin-top: clamp(2rem, 5vw, 3.5rem); padding-top: 1.75rem; border-top: 1px solid var(--line); }
.gpb-trust--inline { grid-template-columns: repeat(4, 1fr); padding: 1.5rem 0; border-bottom: 1px solid var(--line); }
.gpb-trust--stack { gap: 1rem; }

@media (max-width: 900px) {
	.gpb-hero__grid { grid-template-columns: minmax(0, 1fr); }
	.gpb-hero__visual { order: -1; max-width: 420px; margin-inline: auto; width: 100%; }
	.gpb-trust--hero, .gpb-trust--inline { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) {
	.gpb-hero__visual { max-width: 280px; }
	.gpb-hero__badge { width: 92px; right: -4%; top: -8%; }
	.gpb-hero__badge strong { font-size: 1.45rem; }
	.gpb-hero__badge span { font-size: .75rem; }
	.gpb-nowrap { white-space: normal; }
	.gpb-plate { max-width: none; }
	.gpb-plate-form__row .gpb-btn { width: 100%; }
	.gpb-trust--hero, .gpb-trust--inline { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Sections ---------- */
.gpb-section { padding: var(--section) 0; }
.gpb-section--tint { background: var(--glass); }
.gpb-section--ink { background: var(--ink); color: #d7e3e1; }
.gpb-section--ink h2, .gpb-section--ink h3 { color: var(--white); }
.gpb-section--slim { padding: 2.5rem 0; }
.gpb-section--flush { padding-top: 0; }
.gpb-section__head h2::before {
	content: ""; display: block; width: 44px; height: 14px; margin-bottom: 1rem;
	background:
		linear-gradient(var(--brand), var(--brand)) 0 0 / 100% 4px no-repeat,
		linear-gradient(var(--brand), var(--brand)) 0 10px / 100% 4px no-repeat;
	clip-path: polygon(14% 0, 86% 0, 100% 100%, 0 100%);
}
.gpb-section--ink .gpb-section__head h2::before { background:
		linear-gradient(var(--brand), var(--brand)) 0 0 / 100% 4px no-repeat,
		linear-gradient(var(--brand), var(--brand)) 0 10px / 100% 4px no-repeat; }
.gpb-section__head { max-width: 62ch; margin-bottom: clamp(1.75rem, 4vw, 2.75rem); }
.gpb-section__head p { color: var(--muted); font-size: 1.1rem; margin: 0; }
.gpb-section--ink .gpb-section__head p { color: #b8c9c6; }

.gpb-split { display: grid; grid-template-columns: 1fr 1.25fr; gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.gpb-split > div > p { color: var(--muted); font-size: 1.1rem; }
@media (max-width: 900px) { .gpb-split { grid-template-columns: minmax(0, 1fr); } }

/* Prestations */
.gpb-services { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.gpb-service a {
	display: flex; flex-direction: column; height: 100%; padding: 1.5rem;
	color: var(--text); text-decoration: none;
	background: var(--white); border: 1px solid var(--line); border-radius: var(--r-m);
	transition: border-color .15s, background-color .15s;
}
.gpb-service a:hover { border-color: var(--brand-ink); background: var(--glass); }
.gpb-service__icon {
	display: grid; place-items: center; width: 56px; height: 56px; margin-bottom: 1.25rem;
	border-radius: 50%; background: var(--brand-tint); color: var(--brand-ink);
}
.gpb-service__icon .gpb-icon { width: 30px; height: 30px; }
.gpb-service__title { font-size: 1.15rem; margin-bottom: .5rem; }
.gpb-service p { color: var(--muted); font-size: .97rem; flex: 1; }
.gpb-service__more { font-weight: 650; color: var(--brand-ink); text-decoration: underline; text-underline-offset: .18em; }
@media (max-width: 1000px) { .gpb-services { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .gpb-services { grid-template-columns: minmax(0, 1fr); } }

/* Critères de remplacement */
.gpb-criteria { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.gpb-criteria li {
	display: flex; gap: 1.25rem; align-items: center; padding: 1.25rem 1.5rem;
	background: var(--white); border-radius: var(--r-m); border: 1px solid var(--line);
}
.gpb-criteria svg { width: 64px; height: 64px; flex: none; }
.gpb-criteria h3 { margin-bottom: .25rem; font-size: 1.1rem; }
.gpb-criteria p { margin: 0; color: var(--muted); font-size: .97rem; }
.c-coin { fill: #e4d7a8; stroke: #b9a35a; stroke-width: 2; }
.c-impact { fill: none; stroke: var(--brand-ink); stroke-width: 2.5; stroke-dasharray: 4 3; }
.c-crack { fill: none; stroke: var(--brand-ink); stroke-width: 3; stroke-linecap: round; }

/* Étapes (séquence réelle → numérotation) */
.gpb-steps { list-style: none; margin: 0; padding: 0; counter-reset: step; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.gpb-steps li { counter-increment: step; position: relative; padding-top: 3.75rem; }
.gpb-steps li::before {
	content: counter(step); position: absolute; top: 0; left: 0;
	width: 2.75rem; height: 2.75rem; display: grid; place-items: center;
	border-radius: 50%; background: var(--brand); color: var(--ink); font-weight: 700;
}
.gpb-steps li:not(:last-child)::after {
	content: ""; position: absolute; top: 1.375rem; left: 3.5rem; right: -.75rem; height: 2px;
	background: repeating-linear-gradient(90deg, var(--line) 0 8px, transparent 8px 14px);
}
.gpb-steps h3 { font-size: 1.1rem; margin-bottom: .35rem; }
.gpb-steps p { color: var(--muted); font-size: .97rem; margin: 0; }
@media (max-width: 900px) {
	.gpb-steps { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
	.gpb-steps li { padding: 0 0 0 4rem; min-height: 2.75rem; }
	.gpb-steps li:not(:last-child)::after { top: 3.25rem; bottom: -1rem; left: 1.35rem; right: auto; width: 2px; height: auto; background: repeating-linear-gradient(180deg, var(--line) 0 8px, transparent 8px 14px); }
}

/* Offres */
.gpb-offers { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: #2a3a3c; border: 1px solid #2a3a3c; border-radius: var(--r-m); overflow: hidden; }
.gpb-offers a { display: block; height: 100%; padding: 2rem; background: var(--ink); color: #c9d8d5; text-decoration: none; }
.gpb-offers a:hover { background: #0d1a1b; }
.gpb-offers .gpb-icon { width: 2.25rem; height: 2.25rem; color: var(--brand); margin-bottom: 1rem; }
.gpb-offers h3, .gpb-offers h2 { font-size: 1.2rem; text-decoration: underline; text-decoration-color: rgba(255,255,255,.3); text-underline-offset: .25em; }
.gpb-offers p { margin: 0; }
.gpb-offers--light { background: var(--line); border-color: var(--line); }
.gpb-offers--light a { background: var(--white); color: var(--muted); }
.gpb-offers--light a:hover { background: var(--glass); }
.gpb-offers--light h2 { color: var(--ink); text-decoration-color: var(--line); }
.gpb-offers--light .gpb-icon { color: var(--brand-ink); }
@media (max-width: 860px) { .gpb-offers { grid-template-columns: minmax(0, 1fr); } }

/* Centres */
.gpb-centres { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
.gpb-centres--page { padding-bottom: var(--section); }
.gpb-centre { display: flex; flex-direction: column; background: var(--white); border: 1px solid var(--line); border-radius: var(--r-m); overflow: hidden; }
.gpb-centre__photo { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; background: var(--glass-2); }
.gpb-centre__body { padding: 1.5rem; display: flex; flex-direction: column; gap: 1rem; flex: 1; }
.gpb-centre__title { margin: 0; font-size: 1.3rem; }
.gpb-centre__title a { color: var(--ink); text-decoration: none; }
.gpb-centre__title a:hover { color: var(--brand-ink); }
.gpb-centre__address { display: grid; gap: .5rem; }
.gpb-centre__address > span { display: flex; gap: .5rem; align-items: center; }
.gpb-centre__address .gpb-icon { width: 1.15em; height: 1.15em; color: var(--brand-ink); }
.gpb-centre__phone .gpb-phone { color: var(--ink); font-size: 1.1rem; }
.gpb-centre__phone .gpb-phone::before { color: var(--brand-ink); }
.gpb-centre__hours { margin: 0; line-height: 1.55; padding: .75rem 1rem; background: var(--glass); border-radius: var(--r-s); font-size: .95rem; }
.gpb-centre__actions { margin-top: auto; display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
@media (max-width: 760px) { .gpb-centres { grid-template-columns: minmax(0, 1fr); } }

/* Partenaires */
.gpb-partners { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem; }
.gpb-partners h2 { font-size: 1.1rem; margin: 0; color: var(--muted); font-weight: 600; }
.gpb-partners ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 2.5rem; align-items: center; }
.gpb-partners img { height: 44px; width: auto; filter: grayscale(1); opacity: .8; }

/* FAQ */
.gpb-faq { border-top: 1px solid var(--line); }
.gpb-faq__item { border-bottom: 1px solid var(--line); }
.gpb-faq__item summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.15rem 0; cursor: pointer; list-style: none; }
.gpb-faq__item summary::-webkit-details-marker { display: none; }
.gpb-faq__item summary h3 { margin: 0; font-size: 1.08rem; }
.gpb-faq__item summary .gpb-icon { transition: transform .2s; color: var(--brand-ink); }
.gpb-faq__item[open] summary .gpb-icon { transform: rotate(180deg); }
.gpb-faq__answer { padding: 0 0 1.25rem; color: var(--muted); max-width: 70ch; }
.gpb-faq__answer p { margin: 0; }

/* ---------- Pages intérieures ---------- */
.gpb-page-hero { background: var(--glass); padding: clamp(1.5rem, 4vw, 3rem) 0 clamp(2rem, 4vw, 3rem); border-bottom: 1px solid var(--line); }
.gpb-page-hero__title { max-width: 22ch; margin-bottom: .4em; }
.gpb-page-hero__lead { font-size: 1.15rem; max-width: 60ch; color: var(--text); }
.gpb-page-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
.gpb-crumbs { font-size: .9rem; color: var(--muted); margin-bottom: 1rem; }
.gpb-crumbs a { color: var(--muted); }

.gpb-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: clamp(2rem, 5vw, 4.5rem); padding-block: clamp(2rem, 5vw, 4rem); align-items: start; }
.gpb-layout--single { grid-template-columns: minmax(0, 760px); }
@media (max-width: 960px) { .gpb-layout { grid-template-columns: minmax(0, 1fr); } }

.gpb-aside { position: sticky; top: calc(var(--header-h) + 1.5rem); }
.gpb-aside__card { display: grid; gap: 1rem; padding: 1.5rem; border: 1px solid var(--line); border-radius: var(--r-m); background: var(--white); }
.gpb-aside__call { margin: 0; text-align: center; color: var(--muted); }
.gpb-aside__call a { color: var(--ink); }
.gpb-aside__checks { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; font-size: .97rem; }
.gpb-aside__checks li { display: flex; gap: .5rem; align-items: center; }
.gpb-aside__checks .gpb-icon { color: var(--brand-ink); width: 1.2em; height: 1.2em; }
@media (max-width: 960px) { .gpb-aside { position: static; } }

/* Offre 150 € */
.gpb-offer { display: flex; gap: 1rem; align-items: center; padding: 1rem 1.25rem; background: var(--ink); color: #d7e3e1; border-radius: var(--r-m); }
.gpb-offer__amount { margin: 0; font-size: 2.2rem; font-weight: 700; color: var(--brand) !important; line-height: 1; color: var(--white); flex: none; }
.gpb-offer__title { margin: 0 0 .2rem; color: var(--white); font-weight: 650; line-height: 1.3; }
.gpb-offer__text { margin: 0; font-size: .92rem; line-height: 1.45; }
.gpb-offer__text a { color: var(--brand); }
.gpb-offer--stack { flex-direction: column; align-items: flex-start; }

/* Contenu éditorial (pages existantes, éditeur de blocs) */
.gpb-prose { max-width: 72ch; }
.gpb-prose > * + * { margin-top: 1em; }
.gpb-prose h2 { margin-top: 2em; font-size: clamp(1.45rem, 1.2rem + 1vw, 1.9rem); }
.gpb-prose h3 { margin-top: 1.6em; }
.gpb-prose ul, .gpb-prose ol { padding-left: 1.25rem; }
.gpb-prose li + li { margin-top: .4em; }
.gpb-prose img { border-radius: var(--r-m); }
.gpb-prose hr { border: 0; border-top: 1px solid var(--line); margin: 2.5rem 0; }
.gpb-prose blockquote { margin-inline: 0; padding: 1rem 1.25rem; border-left: 4px solid var(--brand-ink); background: var(--glass); border-radius: 0 var(--r-s) var(--r-s) 0; }
.gpb-prose table { width: 100%; border-collapse: collapse; display: block; overflow-x: auto; }
.gpb-prose th, .gpb-prose td { padding: .6rem .75rem; border-bottom: 1px solid var(--line); text-align: left; }
.gpb-prose .wp-block-button__link, .gpb-prose a.button { background: var(--brand-ink); color: var(--white); border-radius: var(--r-s); padding: .8rem 1.3rem; text-decoration: none; font-weight: 650; display: inline-block; }
.gpb-prose .wp-block-button__link:hover { background: var(--brand-ink); }
.gpb-prose .wp-block-columns { gap: 2rem; }
.gpb-prose .wp-block-details { border-bottom: 1px solid var(--line); padding: 1rem 0; }
.gpb-prose .wp-block-details summary { font-weight: 650; color: var(--ink); cursor: pointer; }
/* Blocs FAQ Yoast */
.gpb-prose .schema-faq-section { border-bottom: 1px solid var(--line); padding: 1rem 0; }
.gpb-prose .schema-faq-question { display: block; font-weight: 700; color: var(--ink); margin-bottom: .4rem; }
.gpb-prose .schema-faq-answer { margin: 0; color: var(--muted); }
.gpb-meta { color: var(--muted); font-size: .95rem; }

/* Fiche centre */
.gpb-centre-detail { display: grid; grid-template-columns: 1.3fr 1fr; gap: 2rem; padding-block: clamp(2rem, 5vw, 3.5rem); align-items: start; }
.gpb-centre-detail__side { display: grid; gap: 1rem; }
.gpb-areas { padding: 1.25rem 1.5rem; border: 1px solid var(--line); border-radius: var(--r-m); }
.gpb-areas h2 { font-size: 1.05rem; margin-bottom: .75rem; }
.gpb-areas ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.gpb-areas li { padding: .3rem .7rem; background: var(--glass); border-radius: var(--r-s); font-size: .93rem; }
@media (max-width: 900px) { .gpb-centre-detail { grid-template-columns: minmax(0, 1fr); } }

/* Parcours de rendez-vous */
.gpb-funnel { background: var(--glass); padding: clamp(1.5rem, 4vw, 3rem) 0 var(--section); min-height: 70vh; }
.gpb-funnel__grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 2rem; align-items: start; }
.gpb-funnel__title { font-size: clamp(1.8rem, 1.3rem + 2vw, 2.6rem); margin-bottom: .3em; }
.gpb-funnel__lead { color: var(--muted); max-width: 60ch; }
.gpb-funnel__form { background: var(--white); border: 1px solid var(--line); border-radius: var(--r-l); padding: clamp(1.25rem, 4vw, 2.5rem); }
.gpb-funnel__aside { display: grid; gap: 1rem; position: sticky; top: calc(var(--header-h) + 1.5rem); }
.gpb-funnel__box { background: var(--white); border: 1px solid var(--line); border-radius: var(--r-m); padding: 1.25rem; }
.gpb-funnel__box h2 { font-size: 1.05rem; margin-bottom: .6rem; }
.gpb-funnel__box p { font-size: .95rem; color: var(--muted); }
.gpb-funnel__aside .gpb-trust { background: var(--white); border: 1px solid var(--line); border-radius: var(--r-m); padding: 1.25rem; }
@media (max-width: 960px) {
	.gpb-funnel__grid { grid-template-columns: minmax(0, 1fr); }
	.gpb-funnel__aside { position: static; }
}

/* Bandeau CTA */
.gpb-cta-band { background: var(--brand); color: var(--ink); padding: clamp(2.5rem, 5vw, 3.5rem) 0; }
.gpb-cta-band__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem; }
.gpb-cta-band h2 { color: var(--ink); margin-bottom: .3em; font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.2rem); }
.gpb-cta-band p { margin: 0; }
.gpb-cta-band__actions { display: flex; flex-wrap: wrap; gap: .75rem; }

/* Pied de page */
.gpb-footer { border-top: 6px solid var(--brand); background: var(--ink); color: #b8c9c6; padding: clamp(3rem, 6vw, 4.5rem) 0 1.5rem; font-size: .97rem; }
.gpb-footer a { color: #e3eeec; text-decoration: none; }
.gpb-footer a:hover { color: var(--brand); text-decoration: underline; }
.gpb-footer__grid { display: grid; grid-template-columns: 1.4fr repeat(4, 1fr); gap: 2rem; }
.gpb-footer__brand .gpb-logo img { height: 60px; margin-bottom: 1.25rem; }
.gpb-footer__phone { font-size: 1.2rem; color: var(--white) !important; }
.gpb-footer h2 { color: var(--white); font-size: 1rem; margin-bottom: 1rem; }
.gpb-footer__menu, .gpb-footer__centres { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.gpb-footer__centres li { display: grid; gap: .1rem; }
.gpb-footer__centres li > a:first-child { font-weight: 650; }
.gpb-footer__centres span { font-size: .9rem; }
.gpb-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid #263335; font-size: .9rem; }
.gpb-footer__bottom p { margin: 0; }
@media (max-width: 1000px) { .gpb-footer__grid { grid-template-columns: 1fr 1fr; } .gpb-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 520px) { .gpb-footer__grid { grid-template-columns: minmax(0, 1fr); } }

/* Barre d'action mobile */
.gpb-mobile-bar { display: none; }
@media (max-width: 760px) {
	body:not(.gpb-is-funnel) { padding-bottom: 72px; }
	.gpb-mobile-bar {
		display: grid; grid-template-columns: 1fr 1fr; gap: .5rem;
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
		padding: .6rem var(--gutter) calc(.6rem + env(safe-area-inset-bottom));
		background: var(--white); border-top: 1px solid var(--line);
	}
	.gpb-mobile-bar a {
		display: flex; align-items: center; justify-content: center; gap: .4rem; min-height: 50px;
		border-radius: var(--r-s); font-weight: 650; text-decoration: none; font-size: .98rem;
	}
	.gpb-mobile-bar__call { color: var(--ink); border: 2px solid var(--ink); }
	.gpb-mobile-bar__rdv { background: var(--brand); color: var(--ink); }
	.gpb-mobile-bar__rdv .gpb-icon { width: 1.2em; height: 1.2em; }
}

/* Blog / archives */
.gpb-posts { list-style: none; margin: 0; padding: clamp(2rem, 5vw, 4rem) 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.5rem; }
.gpb-post-card a { display: block; color: var(--text); text-decoration: none; }
.gpb-post-card img { border-radius: var(--r-m); aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }
.gpb-post-card h2 { font-size: 1.2rem; margin: 1rem 0 .4rem; }
.gpb-post-card a:hover h2 { color: var(--brand-ink); }
.gpb-empty { padding: 3rem 0; }

/* Accessibilité : mouvement réduit */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
	.gpb-crack path, .gpb-crack circle { stroke-dashoffset: 0; }
	.gpb-shine { display: none; }
}

/* ---------- Page FAQ (/faq/) ---------- */
.gpb-faqp__nav { border-bottom: 1px solid var(--line); background: var(--white); }
.gpb-faqp__nav ul { list-style: none; margin: 0; padding: 1rem 0; display: flex; gap: .6rem; overflow-x: auto; scrollbar-width: none; }
.gpb-faqp__nav a {
	display: inline-flex; align-items: center; min-height: 44px; padding: 0 1.1rem; white-space: nowrap;
	border: 2px solid var(--line); border-radius: 999px; color: var(--ink); font-weight: 600; font-size: .92rem; text-decoration: none;
}
.gpb-faqp__nav a:hover { border-color: var(--ink); }
.gpb-faqp__group { scroll-margin-top: 6rem; }
.gpb-faqp__head h2 { margin-bottom: .5em; }
.gpb-faqp__head p { color: var(--muted); font-size: 1.1rem; margin: 0; }
.gpb-faq__answer a { font-weight: 600; }
.gpb-faq__answer .gpb-phone { white-space: nowrap; }

/* ---------- Illustrations des étapes (page Fonctionnement) ---------- */
.c-glass { fill: var(--brand-tint); stroke: var(--brand-ink); stroke-width: 2.5; stroke-linejoin: round; }
.c-line { fill: none; stroke: var(--brand-ink); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.c-accent { fill: var(--brand); }
.c-ink { fill: none; stroke: var(--ink); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.gpb-criteria__step { display: block; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--brand-ink); margin-bottom: .2rem; }
.gpb-fonct__note { margin-top: 1.5rem; color: var(--muted); }

/* ---------- Pages légales (CGV, confidentialité) ---------- */
.gpb-legal { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: clamp(2rem, 5vw, 4rem); padding-block: clamp(2rem, 5vw, 4rem); align-items: start; }
.gpb-legal__toc { position: sticky; top: 6.5rem; max-height: calc(100vh - 8rem); overflow: auto; }
.gpb-legal__toc details { border: 1px solid var(--line); border-radius: var(--r-m); padding: 1rem 1.1rem; background: var(--white); }
.gpb-legal__toc summary { font-weight: 700; color: var(--ink); cursor: pointer; list-style: none; }
.gpb-legal__toc summary::-webkit-details-marker { display: none; }
.gpb-legal__toc ol { list-style: none; margin: .75rem 0 0; padding: 0; display: grid; gap: .15rem; font-size: .9rem; }
.gpb-legal__toc a { display: block; padding: .35rem .5rem; border-radius: var(--r-s); color: var(--text); text-decoration: none; line-height: 1.35; }
.gpb-legal__toc a:hover { background: var(--glass); color: var(--ink); }
.gpb-legal__body { max-width: 78ch; }
.gpb-legal__body h2 { scroll-margin-top: 6.5rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.gpb-legal__body h2:first-of-type { border-top: 0; }
.gpb-legal__updated { color: var(--muted); font-size: .92rem; }
.gpb-legal__body .wp-block-table { margin: 1.5rem 0; overflow-x: auto; border: 1px solid var(--line); border-radius: var(--r-m); }
.gpb-legal__body .wp-block-table table { display: table; min-width: 560px; font-size: .93rem; }
.gpb-legal__body th { background: var(--glass); color: var(--ink); font-weight: 650; }
.gpb-legal__body td:first-child { font-weight: 600; color: var(--ink); }
.gpb-legal__body tr:last-child td { border-bottom: 0; }
.gpb-todo { background: #fff3c4; color: #6b4e00; padding: 0 .2em; border-radius: 3px; }
@media (max-width: 960px) {
	.gpb-legal { grid-template-columns: minmax(0, 1fr); }
	.gpb-legal__toc { position: static; max-height: none; }
}

/* ---------- Fiches centres (/ateliers/…) ---------- */
.gpb-centre-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 380px); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.gpb-centre-hero__rating { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin: 0 0 .5rem; }
.gpb-centre-hero__rating strong { font-size: 1.5rem; font-variant-numeric: tabular-nums; }
.gpb-centre-hero__rating a { font-weight: 600; }
.gpb-centre-hero .gpb-stars svg { display: block; fill: var(--brand); }
.gpb-trust--stack { grid-template-columns: minmax(0, 1fr); gap: 1rem; padding: 1.25rem 1.5rem; border: 1px solid var(--line); border-radius: var(--r-m); }
.gpb-centre-services { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 1rem; }
.gpb-centre-services li { display: flex; gap: 1rem; align-items: flex-start; padding: 1.25rem; background: var(--white); border: 1px solid var(--line); border-radius: var(--r-m); }
.gpb-centre-services .gpb-icon { flex: none; width: 2.5rem; height: 2.5rem; padding: .5rem; border-radius: 50%; background: var(--brand-tint); color: var(--brand-ink); }
.gpb-centre-services h3 { font-size: 1.02rem; margin: 0 0 .2rem; }
.gpb-centre-services p { margin: 0; color: var(--muted); font-size: .95rem; }
.gpb-centre-reviews { display: grid; grid-template-columns: minmax(0, 320px) minmax(0, 1fr); gap: clamp(1rem, 3vw, 1.5rem); align-items: start; }
.gpb-centre-reviews .gpb-rv__grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
.gpb-centre-reviews__more { margin: 1.75rem 0 0; }
@media (max-width: 900px) {
	.gpb-centre-hero__grid, .gpb-centre-reviews { grid-template-columns: minmax(0, 1fr); }
}
.gpb-footer__legal { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
.gpb-trust__note { margin: .75rem 0 0; font-size: .82rem; color: var(--muted); }
.gpb-trust__note a { color: inherit; }

/* ==========================================================================
   Pages prestations et avantages (inc/content-pages.php) — 1.6.0
   ========================================================================== */
.gpb-cp-hero { background: linear-gradient(160deg, var(--glass) 0%, var(--brand-tint) 100%); padding: clamp(1.5rem, 4vw, 3rem) 0 clamp(2rem, 5vw, 4rem); border-bottom: 1px solid var(--line); overflow: hidden; }
.gpb-cp-hero__grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.gpb-cp-kicker { display: inline-block; margin: .75rem 0 .75rem; padding: .3rem .8rem; border-radius: 999px; background: var(--ink); color: var(--brand); font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.gpb-cp-hero__title { font-size: clamp(2rem, 4.4vw, 3.1rem); line-height: 1.1; margin-bottom: .45em; max-width: 18ch; }
.gpb-cp-hero__lead { font-size: 1.15rem; max-width: 52ch; color: var(--text); }
.gpb-cp-hero__visual { position: relative; }
.gpb-cp-hero__frame { border-radius: var(--r-l); overflow: hidden; box-shadow: 0 24px 60px -24px rgba(0,0,0,.45); aspect-ratio: 4 / 3; background: var(--glass-2); border: 6px solid #fff; }
.gpb-cp-hero__photo { width: 100%; height: 100%; object-fit: cover; display: block; }
.gpb-cp-hero__art { background: #fff; border-radius: var(--r-l); padding: clamp(1rem, 3vw, 2rem); box-shadow: 0 24px 60px -30px rgba(19,122,122,.55); }
.gpb-cp-hero__art .gpb-windshield-art { width: 100%; height: auto; display: block; }
.gpb-cp-hero__badge { position: absolute; top: -.75rem; right: -.25rem; background: var(--brand); color: var(--ink); font-weight: 700; font-size: 1.05rem; padding: .55rem 1.1rem; border-radius: 999px; box-shadow: 0 10px 24px -10px rgba(0,0,0,.5); transform: rotate(4deg); }
.gpb-illus { width: 100%; height: auto; display: block; max-height: 380px; }
@media (max-width: 900px) {
	.gpb-cp-hero__grid { grid-template-columns: minmax(0, 1fr); }
	.gpb-cp-hero__visual { order: 2; max-width: 520px; }
}

/* Cartes à pictogramme */
.gpb-cp-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.25rem; }
.gpb-cp-cards > li { background: #fff; border: 1px solid var(--line); border-radius: var(--r-m); padding: 1.5rem; transition: transform .2s, box-shadow .2s; }
.gpb-section--tint .gpb-cp-cards > li { border-color: transparent; }
.gpb-cp-cards > li:hover { transform: translateY(-3px); box-shadow: 0 14px 34px -20px rgba(0,0,0,.35); }
.gpb-cp-cards__icon { display: inline-grid; place-items: center; width: 3rem; height: 3rem; border-radius: 14px; background: var(--ink); color: var(--brand); margin-bottom: 1rem; }
.gpb-cp-cards__icon svg { width: 1.5rem; height: 1.5rem; }
.gpb-cp-cards h3 { font-size: 1.1rem; margin-bottom: .35rem; }
.gpb-cp-cards p { color: var(--muted); font-size: .97rem; margin: 0; text-align: left; hyphens: manual; }
.gpb-cp-cards--links a { display: block; color: inherit; text-decoration: none; }
.gpb-cp-cards--links > li { padding: 0; }
.gpb-cp-cards--links a { padding: 1.5rem; }

/* Texte + visuel */
.gpb-cp-split { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.gpb-cp-split--rev .gpb-cp-split__text { order: 2; }
.gpb-cp-split__text > p { color: var(--muted); font-size: 1.05rem; }
.gpb-cp-split--solo { grid-template-columns: minmax(0, 1fr); }
.gpb-cp-split--solo .gpb-cp-split__text { max-width: 820px; }
.gpb-cp-checks { list-style: none; margin: 1.25rem 0; padding: 0; display: grid; gap: .6rem; }
.gpb-cp-checks li { display: flex; gap: .65rem; align-items: flex-start; font-weight: 500; }
.gpb-cp-checks svg { flex: none; width: 1.4rem; height: 1.4rem; padding: .2rem; border-radius: 50%; background: var(--brand); color: var(--ink); margin-top: .1rem; }
.gpb-cp-more { font-weight: 700; color: var(--brand-ink); }
.gpb-cp-big { background: var(--ink); color: #fff; border-radius: var(--r-l); padding: clamp(2rem, 5vw, 3.5rem); text-align: center; }
.gpb-cp-big strong { display: block; font-size: clamp(4rem, 10vw, 6.5rem); line-height: 1; color: var(--brand); }
.gpb-cp-big span { display: block; margin-top: .5rem; font-size: 1.25rem; font-weight: 600; }
@media (max-width: 900px) {
	.gpb-cp-split { grid-template-columns: minmax(0, 1fr); }
	.gpb-cp-split--rev .gpb-cp-split__text { order: 0; }
	.gpb-cp-split__visual { max-width: 460px; }
}

/* Deux options (franchise / carte cadeau) */
.gpb-cp-options { display: grid; grid-template-columns: 1fr auto 1fr; gap: 1.25rem; align-items: stretch; }
.gpb-cp-option { border-radius: var(--r-l); padding: clamp(1.5rem, 4vw, 2.25rem); background: var(--brand-tint); border: 2px solid var(--brand); }
.gpb-cp-option.is-dark { background: var(--ink); color: #fff; border-color: var(--ink); }
.gpb-cp-option.is-dark h3 { color: #fff; }
.gpb-cp-option__tag { display: inline-block; font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--brand-ink); margin-bottom: .5rem; }
.gpb-cp-option.is-dark .gpb-cp-option__tag { color: var(--brand); }
.gpb-cp-option h3 { font-size: 1.3rem; margin-bottom: .25rem; }
p.gpb-cp-option__amount { font-size: clamp(2.2rem, 5vw, 3rem); font-weight: 700; line-height: 1.1; margin: .25rem 0 .75rem; color: var(--brand-ink); text-align: left; }
.gpb-cp-option.is-dark .gpb-cp-option__amount { color: var(--brand); }
.gpb-cp-option p { margin: 0; text-align: left; hyphens: manual; }
.gpb-cp-options__or { align-self: center; display: grid; place-items: center; width: 3.25rem; height: 3.25rem; border-radius: 50%; background: var(--brand); color: var(--ink); font-weight: 700; }
p.gpb-cp-note { text-align: center; margin-top: 1.25rem; color: var(--muted); }
@media (max-width: 760px) {
	.gpb-cp-options { grid-template-columns: minmax(0, 1fr); }
	.gpb-cp-options__or { justify-self: center; margin: -.5rem 0; }
}

/* Étapes 3 ou 4 colonnes */
.gpb-steps--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .gpb-steps--3 { grid-template-columns: minmax(0, 1fr); } }

/* Encarts discrets « Bon à savoir » */
.gpb-cp-encarts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; }
.gpb-cp-encarts li { display: flex; gap: 1rem; align-items: flex-start; padding: 1.1rem 1.25rem; border-radius: var(--r-m); background: var(--glass); border-left: 4px solid var(--brand); }
.gpb-cp-encarts__icon { flex: none; color: var(--brand-ink); }
.gpb-cp-encarts__icon svg { width: 1.6rem; height: 1.6rem; }
.gpb-cp-encarts h3 { font-size: 1rem; margin: 0 0 .2rem; }
.gpb-cp-encarts p { margin: 0; font-size: .93rem; color: var(--muted); text-align: left; hyphens: manual; }
.gpb-cp-encarts a { font-weight: 600; color: var(--brand-ink); white-space: nowrap; }

/* Conditions */
.gpb-cp-conditions { max-width: 860px; border-top: 1px solid var(--line); padding-top: 1.5rem; }
.gpb-cp-conditions h2 { font-size: 1.1rem; }
.gpb-cp-conditions p { font-size: .9rem; color: var(--muted); }
.gpb-cp-photo { border-radius: var(--r-l); overflow: hidden; aspect-ratio: 4 / 3; background: var(--glass-2); box-shadow: 0 24px 60px -28px rgba(0,0,0,.45); }
.gpb-cp-photo__img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Encart mis en avant (libre choix du réparateur) */
.gpb-cp-highlight { display: grid; grid-template-columns: auto 1fr; gap: clamp(1.25rem, 3vw, 2.5rem); background: var(--ink); color: #fff; border-radius: var(--r-l); padding: clamp(1.75rem, 5vw, 3.25rem); position: relative; overflow: hidden; }
.gpb-cp-highlight::after { content: ""; position: absolute; right: -80px; top: -80px; width: 260px; height: 260px; border-radius: 50%; border: 40px solid var(--brand); opacity: .14; }
.gpb-cp-highlight__icon { width: 4rem; height: 4rem; border-radius: 18px; background: var(--brand); color: var(--ink); display: grid; place-items: center; }
.gpb-cp-highlight__icon svg { width: 2rem; height: 2rem; }
p.gpb-cp-highlight__kicker { color: var(--brand); font-weight: 700; font-size: .85rem; letter-spacing: .05em; text-transform: uppercase; margin: 0 0 .5rem; text-align: left; }
.gpb-cp-highlight h2 { color: #fff; margin-bottom: .6em; }
.gpb-cp-highlight p { color: #D7E4E4; max-width: 70ch; }
.gpb-cp-highlight .gpb-cp-checks li { color: #fff; }
@media (max-width: 640px) { .gpb-cp-highlight { grid-template-columns: minmax(0, 1fr); } }

/* Petits écrans (320–380 px) : les longs boutons passent à la ligne au lieu de déborder. */
@media (max-width: 420px) {
	.gpb-btn { white-space: normal; text-align: center; max-width: 100%; }
	.gpb-page-hero__actions .gpb-btn, .gpb-cta-band__actions .gpb-btn { width: 100%; }
}
.gpb-cp-cards__more { display: inline-block; margin-top: .9rem; font-weight: 700; color: var(--brand-ink); }
.gpb-cp-cards--links a:hover h3 { color: var(--brand-ink); }

/* /prestations/ : texte centré et aéré avant les cartes */
.gpb-section--intro { padding-bottom: clamp(2rem, 5vw, 3.5rem); }
.gpb-prose--center { max-width: 760px; margin: 0 auto; }
.gpb-prose--center h2, .gpb-prose--center h3 { text-align: center; }
.gpb-prose--center p { font-size: 1.08rem; line-height: 1.75; }
.gpb-prose--center img { margin-left: auto; margin-right: auto; border-radius: var(--r-m); }
.gpb-section__head--center { text-align: center; }
.gpb-section__head--center { margin-left: auto; margin-right: auto; }
.gpb-section__head--center h2::before { margin-left: auto; margin-right: auto; }

/* Textes courts des cartes (colonnes étroites) : alignés à gauche pour éviter les grands blancs de la justification. */
p:where(.gpb-service p, .gpb-steps p, .gpb-criteria p, .gpb-cp-encarts p) { text-align: left; hyphens: manual; }
.gpb-service p, .gpb-steps p, .gpb-criteria p { text-align: left; -webkit-hyphens: manual; hyphens: manual; }
