/* =========================================================
   ASTER BTP — Blocksy child theme
   Palette et styles extraits de la maquette Magic Patterns.
   Préfixe projet : ab-
   ========================================================= */

:root {
	--ab-raspberry: #E42E7E;
	--ab-raspberry-dark: #C21F67;
	--ab-coral: #FF635A;
	--ab-orange: #FD8951;
	--ab-ink: #2B2B2B;
	--ab-dark: #1A1A1A;
	--ab-rose: #FDF3F5;
	--ab-rose-line: #F3E3E9;
	--ab-muted: #6B6B6B;
	--ab-grad: linear-gradient(90deg, #FF635A, #E42E7E);
	--ab-grad-full: linear-gradient(120deg, #FD8951, #FF635A 45%, #E42E7E);
	--ab-shadow-signature: 0 12px 30px -8px rgba(228, 46, 126, .45);
	--ab-shadow-soft: 0 10px 30px -10px rgba(228, 46, 126, .12);
	--ab-radius: 16px;
	--ab-section-y: clamp(64px, 9vw, 110px);
	--ab-font-serif: 'Lora', 'Playfair Display', Georgia, serif;
	--ab-font-display: 'Poppins', system-ui, sans-serif;
	--ab-font-body: 'Inter', system-ui, sans-serif;
}

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

body {
	font-family: var(--ab-font-body);
	color: var(--ab-ink);
	overflow-x: clip;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--ab-font-display);
	color: var(--ab-dark);
}

/* ---------- Header Blocksy ----------
   Hauteur de rangée (80px), logo (64px, titre masqué), suppression recherche
   et typo du menu (Inter 500 14px sans majuscules) : gérés NATIVEMENT dans
   le Customizer (En-tête → éléments Logo / Menu / Rangée principale).
   Ici : uniquement ce que Blocksy free ne sait pas faire. */

/* Le mode « En-tête transparent » (Customizer) rend le header en overlay.
   L'épinglage natif étant une option Pro, on fixe le header en PERMANENCE
   (aucun saut de position possible) et main.js ajoute .ab-pinned au scroll :
   seul le fond blanc flouté apparaît en fondu. */
#header > div[data-device][data-transparent] {
	position: fixed !important;
	top: 0;
	left: 0;
	right: 0;
	z-index: 90;
	background: rgba(255, 255, 255, 0);
	border-bottom: 1px solid transparent;
	transition: background .25s ease, box-shadow .25s ease, border-color .25s ease;
}

#header > div[data-device][data-transparent].ab-pinned {
	background: rgba(255, 255, 255, .92);
	backdrop-filter: blur(12px);
	border-bottom-color: #f4f4f4;
	box-shadow: 0 6px 24px rgba(228, 46, 126, .07);
}

body.admin-bar #header > div[data-device][data-transparent] {
	top: 32px;
}

@media screen and (max-width: 782px) {
	body.admin-bar #header > div[data-device][data-transparent] {
		top: 46px;
	}
}

/* Élément Bouton du header builder : pill dégradé signature + flèche */
.ct-header [data-id="button"] .ct-button {
	background: var(--ab-grad);
	color: #fff;
	border-radius: 999px;
	padding: 11px 24px;
	font-family: var(--ab-font-display);
	font-size: 14px;
	font-weight: 500;
	transition: box-shadow .3s ease, transform .3s ease;
}

.ct-header [data-id="button"] .ct-button::after {
	content: "\2192";
	margin-left: 8px;
}

.ct-header [data-id="button"] .ct-button:hover {
	box-shadow: var(--ab-shadow-signature);
	transform: translateY(-1px);
}

/* ---------- Layout helpers ---------- */

.ab-container {
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: clamp(16px, 4vw, 32px);
}

.ab-section {
	width: 100vw;
	max-width: none; /* Blocksy plafonne les enfants de .entry-content à 100% */
	margin-left: calc(50% - 50vw);
	padding-block: var(--ab-section-y);
}

.ab-section--rose {
	background: linear-gradient(180deg, #FDF3F5, #FBECF1);
}

.ab-section--tight {
	padding-block: calc(var(--ab-section-y) * .6);
}

/* Page d'accueil : pas de titre ni d'espacements Blocksy */
.home .entry-header,
.home .hero-section {
	display: none;
}

.home .ct-container-full,
.home .ct-container {
	padding-block: 0;
}

.home article .entry-content {
	margin-top: 0;
}

.home #main {
	padding-top: 0;
	padding-bottom: 0;
}

.home #main .entry-content > * {
	margin-block: 0;
}

/* Footer Blocksy masqué — remplacé par .ab-footer (inc/footer.php) */
footer.ct-footer,
.ct-footer {
	display: none;
}

/* ---------- Composants typographiques ---------- */

.ab-eyebrow {
	display: flex;
	align-items: center;
	gap: 14px;
	font-family: var(--ab-font-display);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ab-dark);
	margin-bottom: 20px;
}

.ab-eyebrow::before {
	content: "";
	width: 34px;
	height: 2px;
	background: var(--ab-raspberry);
	flex: none;
}

.ab-title {
	font-family: var(--ab-font-display);
	font-size: clamp(28px, 3vw, 36px);
	font-weight: 700;
	line-height: 1.12;
	letter-spacing: -.01em;
	color: var(--ab-dark);
	margin: 0 0 24px;
}

.ab-title em,
.ab-title .ab-accent {
	font-family: var(--ab-font-serif);
	font-style: italic;
	font-weight: 600;
	background: var(--ab-grad-full);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.ab-lead {
	font-size: 15px;
	line-height: 1.75;
	color: #555;
	max-width: 640px;
}

.ab-lead + .ab-lead {
	margin-top: 12px;
}

/* ---------- Boutons ---------- */

.ab-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: var(--ab-grad);
	color: #fff;
	font-family: var(--ab-font-display);
	font-size: 14px;
	font-weight: 500;
	padding: 14px 30px;
	border-radius: 999px;
	text-decoration: none;
	transition: box-shadow .3s ease, transform .3s ease;
}

.ab-btn:hover {
	color: #fff;
	box-shadow: var(--ab-shadow-signature);
	transform: translateY(-1px);
}

.ab-btn__arrow {
	transition: transform .3s ease;
}

.ab-btn:hover .ab-btn__arrow {
	transform: translateX(4px);
}

.ab-btn--outline {
	background: #fff;
	color: var(--ab-raspberry);
	border: 1px solid rgba(228, 46, 126, .35);
	box-shadow: 0 4px 14px rgba(228, 46, 126, .12);
	padding: 10px 22px;
	font-size: 13px;
}

.ab-btn--outline:hover {
	color: var(--ab-raspberry);
	background: #ffeef5;
	box-shadow: 0 8px 20px -6px rgba(255, 99, 90, .35);
}

.ab-btn--sm {
	padding: 10px 22px;
	font-size: 13px;
	margin-top: 18px;
}

.ab-btn--white {
	background: #fff;
	color: var(--ab-raspberry);
}

.ab-btn--white:hover {
	color: var(--ab-raspberry-dark);
	box-shadow: 0 12px 30px -8px rgba(0, 0, 0, .25);
}

/* ---------- Hero ---------- */

.ab-hero {
	position: relative;
	background:
		repeating-linear-gradient(65deg, rgba(228, 46, 126, .02) 0 1px, transparent 1px 72px),
		repeating-linear-gradient(-25deg, rgba(228, 46, 126, .016) 0 1px, transparent 1px 88px),
		radial-gradient(120% 90% at 80% 0%, #FBE4EC 0%, rgba(253, 243, 245, .6) 45%, #fff 100%),
		var(--ab-rose);
	/* le header transparent (80px) recouvre le haut du hero : on compense */
	padding-block: clamp(160px, 14vw, 210px) clamp(56px, 7vw, 96px);
	overflow: hidden;
}

.ab-hero__waves {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: min(68%, 760px);
	pointer-events: none;
}

.ab-hero__inner {
	position: relative;
	z-index: 1;
}

.ab-hero__title {
	font-family: var(--ab-font-serif);
	font-weight: 500;
	font-size: clamp(44px, 6vw, 72px);
	line-height: 1.02;
	letter-spacing: -.025em;
	margin: 0 0 28px;
	background: linear-gradient(160deg, #FD8951 0%, #FF635A 35%, #E42E7E 80%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	max-width: 640px;
}

.ab-hero__sub {
	font-family: var(--ab-font-display);
	font-size: 15px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--ab-dark);
	line-height: 1.5;
	margin: 0 0 20px;
}

.ab-hero__text {
	font-size: 16px;
	line-height: 1.7;
	color: #5a4a52;
	max-width: 560px;
	margin: 0 0 36px;
}

/* ---------- Stats ---------- */

.ab-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
	margin-top: clamp(40px, 6vw, 72px);
}

.ab-stat {
	display: flex;
	gap: 16px;
	background: rgba(255, 255, 255, .8);
	backdrop-filter: blur(4px);
	border: 1px solid #F3F4F6;
	border-radius: 16px;
	padding: 24px;
	transition: box-shadow .35s ease;
}

.ab-stat:hover {
	box-shadow: 0 8px 20px -6px rgba(255, 99, 90, .35);
}

.ab-stat::before {
	content: "";
	flex: none;
	width: 3px;
	border-radius: 3px;
	background: var(--ab-grad);
	align-self: stretch;
}

.ab-stat > div {
	flex: 1;
}

.ab-stat strong {
	display: block;
	font-family: var(--ab-font-display);
	font-size: 17px;
	font-weight: 700;
	color: var(--ab-dark);
	margin-bottom: 6px;
}

.ab-stat span {
	font-size: 12.5px;
	line-height: 1.5;
	color: #8a7a82;
}

/* ---------- Logos partenaires ---------- */

.ab-logos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 32px 48px;
	margin-block: clamp(40px, 6vw, 64px) 0;
}

.ab-logos img {
	height: auto;
	width: auto;
	max-height: 40px;
	max-width: 170px;
	opacity: .7;
	transition: opacity .3s ease;
}

.ab-logos img:hover {
	opacity: 1;
}

.ab-intro {
	max-width: 800px;
	margin: clamp(40px, 6vw, 64px) auto 0;
	text-align: center;
	font-size: 15px;
	line-height: 1.8;
	color: #555;
}

/* ---------- Grilles de cartes ---------- */

.ab-grid {
	display: grid;
	gap: 24px;
	margin-top: clamp(36px, 5vw, 56px);
}

.ab-grid--3 {
	grid-template-columns: repeat(3, 1fr);
}

.ab-grid--4 {
	grid-template-columns: repeat(4, 1fr);
}

.ab-card {
	background: #fff;
	border: 1px solid var(--ab-rose-line);
	border-radius: var(--ab-radius);
	padding: 30px 28px;
	transition: box-shadow .35s ease, transform .35s ease, border-color .35s ease;
}

.ab-card:hover {
	border-color: rgba(228, 46, 126, .2);
	box-shadow: 0 8px 20px -6px rgba(255, 99, 90, .35);
	transform: translateY(-3px);
}

.ab-card__icon {
	width: 46px;
	height: 46px;
	border-radius: 12px;
	background: var(--ab-rose);
	color: var(--ab-raspberry);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 20px;
}

.ab-card__icon svg {
	width: 22px;
	height: 22px;
}

.ab-card h3 {
	font-size: 17px;
	font-weight: 600;
	margin: 0 0 12px;
}

.ab-card p {
	font-size: 14px;
	line-height: 1.65;
	color: #6b6b6b;
	margin: 0 0 18px;
}

.ab-card__link {
	font-family: var(--ab-font-display);
	font-size: 13px;
	font-weight: 500;
	color: var(--ab-raspberry);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.ab-card__link:hover {
	color: var(--ab-raspberry-dark);
}

.ab-card__link:hover .ab-btn__arrow {
	transform: translateX(4px);
}

/* ---------- En-tête de section avec bouton à droite ---------- */

.ab-section-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
}

.ab-section-head .ab-title {
	margin-bottom: 0;
}

/* ---------- Carte de France (shortcode aster_carte_france) ---------- */

.ab-carte {
	position: relative;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	height: min(72vh, 640px);
	border-radius: 0;
	overflow: hidden;
	background: #fdf6f9;
	box-shadow: 0 24px 60px rgba(228, 46, 126, .10);
	user-select: none;
	touch-action: none;
	margin-top: clamp(36px, 5vw, 56px);
}

.ab-carte canvas {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	cursor: grab;
}

.ab-carte__tip {
	position: absolute;
	display: none;
	pointer-events: none;
	z-index: 4;
	background: #fff;
	border: 1px solid rgba(228, 46, 126, .4);
	color: var(--ab-ink);
	font-size: 12px;
	font-family: var(--ab-font-body);
	padding: 6px 10px;
	border-radius: 8px;
	white-space: nowrap;
	box-shadow: 0 6px 20px rgba(228, 46, 126, .15);
}

/* ---------- Agences ---------- */

.ab-agences {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 18px;
	margin-top: 40px;
}

.ab-agence {
	background: #fff;
	border: 1px solid var(--ab-rose-line);
	border-radius: 14px;
	padding: 22px 20px;
	transition: box-shadow .35s ease, transform .35s ease;
}

.ab-agence:hover {
	box-shadow: var(--ab-shadow-soft);
	transform: translateY(-2px);
}

.ab-agence__tag {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-family: var(--ab-font-display);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #b0a0a8;
	margin-bottom: 10px;
}

.ab-agence__tag svg {
	width: 14px;
	height: 14px;
	color: var(--ab-raspberry);
}

.ab-agence h3 {
	font-size: 19px;
	font-weight: 700;
	margin: 0 0 2px;
}

.ab-agence__region {
	font-size: 12px;
	font-weight: 500;
	color: var(--ab-raspberry);
	margin: 0 0 14px;
}

.ab-agence address {
	font-style: normal;
	font-size: 13px;
	line-height: 1.6;
	color: #6b6b6b;
}

.ab-agence address a {
	color: var(--ab-dark);
	font-weight: 500;
	text-decoration: none;
}

/* ---------- Références ---------- */

.ab-refs {
	display: grid;
	grid-template-columns: 1.6fr 1fr;
	gap: 24px;
	margin-top: clamp(36px, 5vw, 56px);
}

.ab-ref {
	position: relative;
	border-radius: 20px;
	overflow: hidden;
	min-height: 380px;
	display: flex;
	align-items: flex-end;
	background: linear-gradient(160deg, #d8ccd2, #b8a8b0);
	text-decoration: none;
}

.ab-ref img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ab-ref::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0, 0, 0, .6), transparent 55%);
}

.ab-ref h3 {
	position: relative;
	z-index: 1;
	color: #fff;
	font-size: 20px;
	font-weight: 600;
	padding: 28px;
	margin: 0;
}

/* ---------- Actualités ---------- */

.ab-news {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin-top: clamp(36px, 5vw, 56px);
}

.ab-news-card {
	display: flex;
	align-items: center;
	gap: 16px;
	background: #fff;
	border: 1px solid var(--ab-rose-line);
	border-radius: 14px;
	padding: 16px 18px;
	text-decoration: none;
	transition: box-shadow .35s ease, transform .35s ease;
}

.ab-news-card:hover {
	box-shadow: var(--ab-shadow-soft);
	transform: translateY(-2px);
}

.ab-news-card__thumb {
	flex: none;
	width: 64px;
	height: 64px;
	border-radius: 10px;
	background: linear-gradient(140deg, #e8dce2, #cfbfc8);
	overflow: hidden;
}

.ab-news-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ab-news-card h3 {
	flex: 1;
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.45;
	margin: 0;
	color: var(--ab-dark);
}

.ab-news-card__arrow {
	flex: none;
	color: var(--ab-raspberry);
	transition: transform .3s ease;
}

.ab-news-card:hover .ab-news-card__arrow {
	transform: translateX(4px);
}

/* ---------- CTA final ---------- */

.ab-cta {
	border-radius: 24px;
	background: linear-gradient(100deg, #FD8951 0%, #FF635A 45%, #E42E7E 100%);
	padding: clamp(40px, 6vw, 72px);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	flex-wrap: wrap;
	box-shadow: var(--ab-shadow-signature);
}

.ab-cta h2 {
	color: #fff;
	font-size: clamp(26px, 3vw, 36px);
	font-weight: 700;
	line-height: 1.2;
	margin: 0 0 14px;
}

.ab-cta p {
	color: rgba(255, 255, 255, .9);
	font-size: 15px;
	line-height: 1.65;
	margin: 0;
	max-width: 480px;
}

/* ---------- Bandeau « Demander un devis » (commun à toutes les pages) ---------- */

.ab-devis-band {
	width: 100vw;
	max-width: none;
	margin-left: calc(50% - 50vw);
	padding-top: clamp(48px, 7vw, 88px);
	background: linear-gradient(180deg, transparent 58%, #FDF7F9 58%);
}

.ab-devis-band__card {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: flex;
	align-items: center;
	min-height: clamp(340px, 30vw, 420px);
	border-radius: 28px;
	background: #E42E7E;
	box-shadow: 0 30px 60px -24px rgba(228, 46, 126, .45);
}

.ab-devis-band__media {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 62%;
	background-size: cover;
	background-position: center 40%;
	transform: scale(1.06);
	transition: transform 1.4s cubic-bezier(.2, .7, .2, 1);
}

.ab-devis-band__card.is-visible .ab-devis-band__media {
	transform: scale(1);
}

.ab-devis-band__wave {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
}

.ab-devis-band__text {
	position: relative;
	z-index: 2;
	max-width: 57%;
	padding: clamp(32px, 5vw, 64px);
	color: #fff;
}

.ab-devis-band__text h2 {
	color: #fff;
	font-size: clamp(24px, 2.7vw, 38px);
	line-height: 1.15;
	letter-spacing: -.01em;
	margin: 0 0 16px;
}

.ab-devis-band__text h2 strong {
	display: block;
	font-weight: 700;
}

.ab-devis-band__text h2 span {
	display: block;
	font-weight: 400;
}

.ab-devis-band__text p {
	color: rgba(255, 255, 255, .92);
	font-size: 15px;
	line-height: 1.65;
	max-width: 440px;
	margin: 0 0 28px;
}

.ab-devis-band__verbs {
	position: absolute;
	z-index: 2;
	top: clamp(22px, 3vw, 38px);
	right: clamp(22px, 3vw, 38px);
	list-style: none;
	margin: 0;
	padding: 18px 26px 16px;
	border-radius: 18px;
	background: rgba(255, 255, 255, .8);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	box-shadow: 0 12px 30px -12px rgba(43, 26, 36, .28);
	font-family: var(--ab-font-display);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: #9b8791;
}

.ab-devis-band__verbs::before {
	content: "";
	display: block;
	width: 28px;
	height: 2px;
	margin-bottom: 10px;
	background: var(--ab-raspberry);
}

.ab-devis-band__verbs li {
	padding: 4px 0;
	transition: color .45s ease, transform .45s ease;
}

.ab-devis-band__verbs li.is-done {
	color: var(--ab-ink);
}

.ab-devis-band__verbs li.is-on {
	color: var(--ab-raspberry);
	transform: translateX(6px);
}

@media (prefers-reduced-motion: reduce) {
	.ab-devis-band__verbs li {
		color: var(--ab-ink);
		transition: none;
	}

	.ab-devis-band__media {
		transform: none;
		transition: none;
	}
}

/* ---------- Footer (fond clair, logo coupé en décor) ---------- */

.ab-footer {
	position: relative;
	overflow: hidden;
	width: 100vw;
	max-width: none;
	margin-left: calc(50% - 50vw);
	background: #FDF7F9;
	color: var(--ab-ink);
	padding-top: clamp(56px, 7vw, 88px);
	font-size: 14px;
}

.ab-footer > .ab-container {
	position: relative;
	z-index: 1;
}

.ab-footer__mark {
	position: absolute;
	z-index: 0;
	right: -6vw;
	bottom: -9vw;
	width: min(38vw, 520px);
	height: auto;
	opacity: .11;
	transform: rotate(-8deg);
	pointer-events: none;
}

.ab-footer__grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1.15fr .95fr;
	gap: clamp(28px, 4vw, 56px);
	padding-bottom: 48px;
}

.ab-footer__logo {
	height: 64px;
	width: auto;
	margin-bottom: 18px;
}

.ab-footer__baseline {
	max-width: 320px;
	margin: 0 0 22px;
	font-size: 14px;
	line-height: 1.7;
	color: #5b5b5b;
}

.ab-footer__contact {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
}

.ab-footer__contact li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 12px;
	line-height: 1.55;
	color: #5b5b5b;
}

.ab-footer__contact svg {
	flex: none;
	margin-top: 2px;
	color: var(--ab-raspberry);
}

.ab-footer__contact a {
	color: var(--ab-ink);
	text-decoration: none;
}

.ab-footer__contact a:hover {
	color: var(--ab-raspberry);
}

.ab-footer__contact a.ab-footer__phone {
	font-family: var(--ab-font-display);
	font-size: 16px;
	font-weight: 600;
}

.ab-footer__social {
	display: flex;
	align-items: center;
	gap: 12px;
}

.ab-footer__follow {
	margin-right: 6px;
	font-family: var(--ab-font-serif);
	font-size: 20px;
	font-style: italic;
	font-weight: 600;
	background: var(--ab-grad-full);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.ab-footer__social a {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	border: 1.5px solid rgba(228, 46, 126, .35);
	background: #fff;
	color: var(--ab-raspberry);
	transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}

.ab-footer__social a:hover {
	background: var(--ab-grad);
	border-color: transparent;
	color: #fff;
	transform: translateY(-2px);
}

.ab-footer__col h3 {
	position: relative;
	margin: 6px 0 20px;
	padding-bottom: 14px;
	font-family: var(--ab-font-display);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--ab-dark);
}

.ab-footer__col h3::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 28px;
	height: 2px;
	background: var(--ab-raspberry);
}

.ab-footer__col ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ab-footer__col li {
	margin: 0;
}

.ab-footer__col li a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 7px 0;
	font-size: 14px;
	line-height: 1.35;
	color: var(--ab-ink);
	text-decoration: none;
	transition: color .2s ease;
}

.ab-footer__col li a small {
	display: block;
	margin-top: 3px;
	font-size: 10.5px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #a08c96;
}

.ab-footer__chev {
	flex: none;
	color: var(--ab-raspberry);
	transition: transform .2s ease;
}

.ab-footer__col li a:hover {
	color: var(--ab-raspberry);
}

.ab-footer__col li a:hover .ab-footer__chev {
	transform: translateX(3px);
}

.ab-footer .ab-btn,
.ab-footer .ab-btn:hover {
	margin-top: 22px;
	color: #fff;
}

.ab-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 16px;
	padding-block: 22px;
	border-top: 1px solid var(--ab-rose-line);
	font-size: 12.5px;
	color: #8a7a82;
}

.ab-footer__bottom p {
	margin: 0;
}

.ab-footer__bottom a.ab-footer__credit {
	margin-left: 4px;
	font-weight: 600;
	color: var(--ab-raspberry);
	text-decoration: none;
}

.ab-footer__legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	row-gap: 8px;
}

.ab-footer .ab-footer__legal a,
.ab-footer .ab-footer__legal button.ab-footer__cookies {
	margin: 0;
	padding: 0;
	min-height: 0;
	height: auto;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	font: inherit;
	color: #8a7a82;
	text-decoration: none;
	cursor: pointer;
}

.ab-footer__legal > * + *::before {
	content: "";
	display: inline-block;
	width: 1px;
	height: 12px;
	margin: 0 16px;
	vertical-align: -1px;
	background: #dccbd3;
}

.ab-footer .ab-footer__legal a:hover,
.ab-footer .ab-footer__legal button.ab-footer__cookies:hover {
	color: var(--ab-raspberry);
}

@media (max-width: 1080px) {
	.ab-footer__grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 900px) {
	.ab-devis-band__card {
		flex-direction: column;
		align-items: stretch;
		background: linear-gradient(120deg, #FD8951, #FF635A 45%, #E42E7E);
	}

	.ab-devis-band__media {
		position: relative;
		width: 100%;
		height: 220px;
	}

	.ab-devis-band__wave {
		display: none;
	}

	.ab-devis-band__text {
		max-width: none;
	}

	.ab-devis-band__verbs {
		top: 16px;
		right: 16px;
		padding: 12px 16px 10px;
		font-size: 10px;
	}
}

@media (max-width: 720px) {
	.ab-footer__grid {
		grid-template-columns: 1fr;
	}

	.ab-footer__bottom {
		flex-direction: column;
		align-items: flex-start;
	}

	.ab-footer__mark {
		right: -22vw;
		bottom: -16vw;
		width: 72vw;
	}
}

/* ---------- Animation d'apparition ---------- */

.ab-reveal {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .7s ease, transform .7s ease;
}

.ab-reveal.is-visible {
	opacity: 1;
	transform: none;
}

.ab-grid .ab-card:nth-child(2),
.ab-agences .ab-agence:nth-child(2),
.ab-news .ab-news-card:nth-child(2) {
	transition-delay: .1s;
}

.ab-grid .ab-card:nth-child(3),
.ab-agences .ab-agence:nth-child(3),
.ab-news .ab-news-card:nth-child(3) {
	transition-delay: .2s;
}

.ab-grid .ab-card:nth-child(4),
.ab-agences .ab-agence:nth-child(4) {
	transition-delay: .3s;
}

.ab-grid .ab-card:nth-child(5),
.ab-agences .ab-agence:nth-child(5) {
	transition-delay: .4s;
}

.ab-grid .ab-card:nth-child(6) {
	transition-delay: .5s;
}

.ab-grid .ab-card:nth-child(7) {
	transition-delay: .6s;
}

.ab-grid .ab-card:nth-child(8) {
	transition-delay: .7s;
}

@media (prefers-reduced-motion: reduce) {
	.ab-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

/* ---------- Responsive ---------- */

@media (max-width: 1080px) {
	.ab-grid--3,
	.ab-grid--4 {
		grid-template-columns: repeat(2, 1fr);
	}

	.ab-agences {
		grid-template-columns: repeat(3, 1fr);
	}

	.ab-news {
		grid-template-columns: 1fr 1fr;
	}

	.ab-refs {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 720px) {
	.ab-stats {
		grid-template-columns: 1fr 1fr;
	}

	.ab-grid--3,
	.ab-grid--4,
	.ab-news,
	.ab-agences {
		grid-template-columns: 1fr;
	}

	.ab-carte {
		height: 60vh;
	}

	.ab-cta {
		flex-direction: column;
		align-items: flex-start;
	}
}

@media (max-width: 480px) {
	.ab-stats {
		grid-template-columns: 1fr;
	}
}

/* =========================================================
   SOUS-PAGES — composants déclinés de la maquette
   ========================================================= */

/* Toutes les pages ont un hero custom : on masque l'en-tête Blocksy
   (les articles, eux, gardent leur titre) */
.page .entry-header {
	display: none;
}

.page .ct-container-full,
.page .ct-container {
	padding-block: 0;
}

/* Blocksy laisse un espace fantôme de 40px au-dessus du contenu des pages
   (spacing du conteneur, non neutralisable via padding). On le compense pour
   que le hero glisse sous le header translucide, comme sur la maquette. */
.page #main > .ct-container-full {
	margin-top: -40px;
}

.page #main .entry-content > * {
	margin-block: 0;
}

/* ---------- Hero de sous-page ---------- */

.ab-page-hero {
	position: relative;
	background:
		repeating-linear-gradient(65deg, rgba(228, 46, 126, .02) 0 1px, transparent 1px 72px),
		radial-gradient(110% 100% at 85% 0%, #FBE4EC 0%, rgba(253, 243, 245, .55) 50%, #fff 100%),
		var(--ab-rose);
	/* header transparent en overlay (80px) : padding haut renforcé */
	padding-block: clamp(140px, 12vw, 178px) clamp(40px, 5vw, 72px);
	overflow: hidden;
}

.ab-page-hero__title {
	font-family: var(--ab-font-serif);
	font-weight: 500;
	font-size: clamp(34px, 4.6vw, 56px);
	line-height: 1.05;
	letter-spacing: -.02em;
	margin: 0 0 18px;
	background: linear-gradient(150deg, #FD8951 0%, #FF635A 40%, #E42E7E 85%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	max-width: 720px;
}

.ab-page-hero .ab-lead {
	max-width: 680px;
}

.ab-crumb {
	font-size: 12.5px;
	color: #9a8a92;
	margin: 0 0 26px;
}

.ab-crumb a {
	color: #9a8a92;
	text-decoration: none;
}

.ab-crumb a:hover {
	color: var(--ab-raspberry);
}

/* ---------- Panneau canvas (animations métier) ---------- */

.ab-canvas-panel {
	position: relative;
	background: #fff;
	border: 1px solid var(--ab-rose-line);
	border-radius: 20px;
	box-shadow: var(--ab-shadow-soft);
	overflow: hidden;
	margin-block: clamp(28px, 4vw, 48px);
}

.ab-canvas-panel canvas {
	display: block;
	width: 100%;
	height: 320px;
}

.ab-canvas-panel--tall canvas {
	height: 380px;
}

/* ---------- Timeline / itinéraire (ligne de progression) ---------- */

.ab-steps {
	position: relative;
	margin-block: clamp(28px, 4vw, 48px);
	padding-left: 34px;
}

.ab-steps::before {
	content: "";
	position: absolute;
	left: 9px;
	top: 6px;
	bottom: 6px;
	width: 2px;
	background: var(--ab-rose-line);
	border-radius: 2px;
}

.ab-steps::after {
	content: "";
	position: absolute;
	left: 9px;
	top: 6px;
	width: 2px;
	height: calc((100% - 12px) * var(--ab-progress, 0));
	background: var(--ab-grad);
	border-radius: 2px;
	transition: height .1s linear;
}

.ab-step {
	position: relative;
	padding-bottom: clamp(26px, 3.5vw, 42px);
}

.ab-step:last-child {
	padding-bottom: 0;
}

.ab-step::before {
	content: "";
	position: absolute;
	left: -31px;
	top: 5px;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: #fff;
	border: 2px solid #d9c3cd;
	transition: border-color .3s ease, box-shadow .3s ease, background .3s ease;
	z-index: 1;
}

.ab-step.is-past::before {
	border-color: var(--ab-raspberry);
	background: var(--ab-raspberry);
	box-shadow: 0 0 0 5px rgba(228, 46, 126, .15);
}

.ab-step__tag {
	display: inline-block;
	font-family: var(--ab-font-display);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--ab-raspberry);
	margin-bottom: 6px;
}

.ab-step h3 {
	font-size: 18px;
	font-weight: 600;
	margin: 0 0 8px;
}

.ab-step p,
.ab-step ul {
	font-size: 14px;
	line-height: 1.65;
	color: #6b6b6b;
	margin: 0;
	max-width: 640px;
}

.ab-step ul {
	padding-left: 18px;
	margin-top: 6px;
}

/* ---------- Sections alternées texte / image ---------- */

.ab-split {
	display: grid;
	grid-template-columns: 1.1fr .9fr;
	gap: clamp(28px, 5vw, 64px);
	align-items: center;
	margin-block: clamp(28px, 4vw, 56px);
}

.ab-split--rev {
	grid-template-columns: .9fr 1.1fr;
}

.ab-split--rev .ab-split__media {
	order: -1;
}

.ab-split__media img {
	width: 100%;
	height: auto;
	border-radius: 20px;
	box-shadow: var(--ab-shadow-soft);
}

.ab-split h2,
.ab-split h3 {
	margin-top: 0;
}

/* ---------- Listes à puces "check" ---------- */

.ab-checklist {
	list-style: none;
	padding: 0;
	margin: 18px 0 0;
	display: grid;
	gap: 10px;
}

.ab-checklist--2col {
	grid-template-columns: 1fr 1fr;
	gap: 10px 28px;
}

.ab-checklist li {
	position: relative;
	padding-left: 30px;
	font-size: 14.5px;
	line-height: 1.55;
	color: #555;
}

.ab-checklist li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 2px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--ab-rose);
}

.ab-checklist li::after {
	content: "";
	position: absolute;
	left: 5px;
	top: 7px;
	width: 8px;
	height: 5px;
	border-left: 2px solid var(--ab-raspberry);
	border-bottom: 2px solid var(--ab-raspberry);
	transform: rotate(-45deg);
}

/* ---------- Chips ---------- */

.ab-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 16px;
}

.ab-chips span {
	font-family: var(--ab-font-display);
	font-size: 13px;
	font-weight: 500;
	color: var(--ab-ink);
	background: #fff;
	border: 1px solid var(--ab-rose-line);
	border-radius: 999px;
	padding: 8px 16px;
}

/* ---------- Citation / mot du président ---------- */

.ab-quote {
	display: grid;
	grid-template-columns: 180px 1fr;
	gap: clamp(24px, 4vw, 48px);
	align-items: center;
	background: #fff;
	border: 1px solid var(--ab-rose-line);
	border-radius: 24px;
	padding: clamp(28px, 4vw, 48px);
	box-shadow: var(--ab-shadow-soft);
	margin-block: clamp(28px, 4vw, 56px);
}

.ab-quote img {
	width: 180px;
	height: 180px;
	object-fit: cover;
	border-radius: 50%;
	border: 4px solid var(--ab-rose);
}

.ab-quote blockquote {
	margin: 0;
	border: none;
	padding: 0;
	font-family: var(--ab-font-serif);
	font-style: italic;
	font-size: clamp(16px, 1.6vw, 19px);
	line-height: 1.65;
	color: var(--ab-ink);
}

.ab-quote figcaption {
	margin-top: 14px;
	font-family: var(--ab-font-display);
	font-size: 13px;
	font-weight: 600;
	color: var(--ab-raspberry);
}

/* ---------- Mur de logos + marquee ---------- */

.ab-logo-wall {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 16px;
	margin-top: clamp(28px, 4vw, 48px);
}

.ab-logo-wall > div {
	background: #fff;
	border: 1px solid var(--ab-rose-line);
	border-radius: 14px;
	padding: 18px;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 84px;
	transition: box-shadow .3s ease;
}

.ab-logo-wall > div:hover {
	box-shadow: var(--ab-shadow-soft);
}

.ab-logo-wall img {
	max-height: 44px;
	max-width: 130px;
	width: auto;
	height: auto;
	filter: grayscale(1);
	opacity: .75;
	transition: filter .3s ease, opacity .3s ease;
}

.ab-logo-wall > div:hover img {
	filter: none;
	opacity: 1;
}

.ab-marquee {
	overflow: hidden;
	mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
	margin-top: clamp(28px, 4vw, 48px);
}

.ab-marquee__track {
	display: flex;
	align-items: center;
	gap: clamp(40px, 6vw, 80px);
	width: max-content;
	animation: ab-marquee 38s linear infinite;
	padding-block: 8px;
}

.ab-marquee:hover .ab-marquee__track {
	animation-play-state: paused;
}

.ab-marquee img {
	max-height: 40px;
	max-width: 140px;
	width: auto;
	height: auto;
	filter: grayscale(1);
	opacity: .7;
}

@keyframes ab-marquee {
	to { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
	.ab-marquee__track { animation: none; }
}

/* ---------- Accordéon (offres, détails) ---------- */

.ab-acc {
	background: #fff;
	border: 1px solid var(--ab-rose-line);
	border-radius: 16px;
	margin-bottom: 16px;
	overflow: hidden;
}

.ab-acc summary {
	cursor: pointer;
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 20px 24px;
	font-family: var(--ab-font-display);
	font-size: 16px;
	font-weight: 600;
	color: var(--ab-dark);
}

.ab-acc summary::-webkit-details-marker {
	display: none;
}

.ab-acc summary::after {
	content: "+";
	flex: none;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--ab-rose);
	color: var(--ab-raspberry);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	font-weight: 500;
	transition: transform .3s ease;
}

.ab-acc[open] summary::after {
	transform: rotate(45deg);
}

.ab-acc__body {
	padding: 0 24px 24px;
	font-size: 14.5px;
	line-height: 1.7;
	color: #555;
}

.ab-acc__body ul {
	padding-left: 18px;
}

/* ---------- Bande CTA / stats réutilisable ---------- */

.ab-band {
	border-radius: 24px;
	background: var(--ab-dark);
	color: #eee;
	padding: clamp(28px, 4vw, 48px);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	flex-wrap: wrap;
	margin-block: clamp(28px, 4vw, 56px);
}

.ab-band strong {
	color: #fff;
}

.ab-band .ab-stat-inline {
	text-align: center;
}

.ab-stat-inline .ab-counter {
	display: block;
	font-family: var(--ab-font-display);
	font-size: clamp(30px, 3.4vw, 44px);
	font-weight: 700;
	background: var(--ab-grad-full);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.ab-stat-inline span:not(.ab-counter) {
	font-size: 12.5px;
	color: #bbb;
}

/* ---------- Cartes projets (références) ---------- */

.ab-projects {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	margin-top: clamp(28px, 4vw, 48px);
}

.ab-project {
	position: relative;
	border-radius: 20px;
	overflow: hidden;
	min-height: 340px;
	display: flex;
	align-items: flex-end;
	text-decoration: none;
	background: #d8ccd2;
}

.ab-project img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s ease;
}

.ab-project:hover img {
	transform: scale(1.05);
}

.ab-project::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(20, 8, 14, .72), transparent 60%);
}

.ab-project__body {
	position: relative;
	z-index: 1;
	padding: 26px;
}

.ab-project__tag {
	display: inline-block;
	font-family: var(--ab-font-display);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #fff;
	background: var(--ab-grad);
	border-radius: 999px;
	padding: 5px 12px;
	margin-bottom: 12px;
}

.ab-project h3 {
	color: #fff;
	font-size: 19px;
	font-weight: 600;
	margin: 0 0 6px;
}

.ab-project p {
	color: rgba(255, 255, 255, .85);
	font-size: 13.5px;
	line-height: 1.55;
	margin: 0;
}

/* ---------- Formulaire (devis / candidature) ---------- */

.ab-form {
	background: #fff;
	border: 1px solid var(--ab-rose-line);
	border-radius: 24px;
	padding: clamp(24px, 4vw, 44px);
	box-shadow: var(--ab-shadow-soft);
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
	margin-block: clamp(28px, 4vw, 48px);
}

.ab-form label {
	display: block;
	font-family: var(--ab-font-display);
	font-size: 13px;
	font-weight: 600;
	color: var(--ab-dark);
	margin-bottom: 6px;
}

.ab-form .ab-field--full {
	grid-column: 1 / -1;
}

.ab-form input,
.ab-form select,
.ab-form textarea {
	width: 100%;
	border: 1px solid #eadde3;
	border-radius: 12px;
	background: #FDFAFB;
	padding: 12px 14px;
	font-family: var(--ab-font-body);
	font-size: 14px;
	color: var(--ab-ink);
	transition: border-color .2s ease, box-shadow .2s ease;
}

.ab-form input:focus,
.ab-form select:focus,
.ab-form textarea:focus {
	outline: none;
	border-color: var(--ab-raspberry);
	box-shadow: 0 0 0 3px rgba(228, 46, 126, .12);
}

.ab-form textarea {
	min-height: 130px;
	resize: vertical;
}

/* ---------- Prose (articles, légal) ---------- */

.ab-prose {
	max-width: 760px;
	margin-inline: auto;
	font-size: 15.5px;
	line-height: 1.75;
	color: #444;
}

.ab-prose h2 {
	font-size: 26px;
	margin: 44px 0 14px;
}

.ab-prose h3 {
	font-size: 19px;
	margin: 32px 0 10px;
}

.ab-prose img {
	border-radius: 16px;
	margin-block: 10px;
}

.ab-prose figure {
	margin: 24px 0;
}

.ab-prose figcaption {
	font-size: 12.5px;
	color: #999;
	margin-top: 8px;
}

/* ---------- Hero subaquatique ---------- */

.ab-page-hero--under {
	padding-bottom: 0;
}

.ab-underwater {
	display: block;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	height: 240px;
	margin-top: 24px;
}

/* ---------- Archive actualités (Blocksy) ---------- */

.blog .entry-card,
.archive .entry-card {
	background: #fff;
	border: 1px solid var(--ab-rose-line);
	border-radius: 16px;
	padding: 18px;
	transition: box-shadow .3s ease, transform .3s ease;
}

.blog .entry-card:hover,
.archive .entry-card:hover {
	box-shadow: var(--ab-shadow-soft);
	transform: translateY(-2px);
}

.blog .entry-title,
.archive .entry-title,
.single .entry-title {
	font-family: var(--ab-font-display);
}

/* ---------- Responsive sous-pages ---------- */

@media (max-width: 900px) {
	.ab-split,
	.ab-split--rev {
		grid-template-columns: 1fr;
	}

	.ab-split--rev .ab-split__media {
		order: 0;
	}

	.ab-quote {
		grid-template-columns: 1fr;
		text-align: center;
		justify-items: center;
	}

	.ab-logo-wall {
		grid-template-columns: repeat(3, 1fr);
	}

	.ab-projects {
		grid-template-columns: 1fr;
	}

	.ab-checklist--2col {
		grid-template-columns: 1fr;
	}

	.ab-form {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 560px) {
	.ab-logo-wall {
		grid-template-columns: 1fr 1fr;
	}

	.ab-canvas-panel canvas {
		height: 240px;
	}
}

/* =========================================================
   MEGA-MENU — Expertises & Services
   Sous-menus WP standards restylés en panneau 2 colonnes,
   icônes identiques aux cartes de la home (SVG data-URI).
   ========================================================= */

/* Icônes : carré rose arrondi + pictogramme framboise (partout, y compris offcanvas mobile) */
.menu .ab-mi > a::before,
#offcanvas .ab-mi > a::before {
	content: "";
	flex: none;
	width: 40px;
	height: 40px;
	border-radius: 11px;
	background-color: var(--ab-rose);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 19px 19px;
}

.ab-mi-zap > a::before,
html [data-header] #offcanvas .ab-mi-zap > a::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E42E7E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='13 2 3 14 12 14 11 22 21 10 12 10 13 2'/%3E%3C/svg%3E"); }
.ab-mi-search > a::before,
html [data-header] #offcanvas .ab-mi-search > a::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E42E7E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E"); }
.ab-mi-clipboard > a::before,
html [data-header] #offcanvas .ab-mi-clipboard > a::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E42E7E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8' y='2' width='8' height='4' rx='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3C/svg%3E"); }
.ab-mi-activity > a::before,
html [data-header] #offcanvas .ab-mi-activity > a::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E42E7E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='22 12 18 12 15 21 9 3 6 12 2 12'/%3E%3C/svg%3E"); }
.ab-mi-layers > a::before,
html [data-header] #offcanvas .ab-mi-layers > a::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E42E7E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='12 2 2 7 12 12 22 7 12 2'/%3E%3Cpolyline points='2 17 12 22 22 17'/%3E%3Cpolyline points='2 12 12 17 22 12'/%3E%3C/svg%3E"); }
.ab-mi-droplet > a::before,
html [data-header] #offcanvas .ab-mi-droplet > a::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E42E7E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z'/%3E%3C/svg%3E"); }
.ab-mi-wrench > a::before,
html [data-header] #offcanvas .ab-mi-wrench > a::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E42E7E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z'/%3E%3C/svg%3E"); }
.ab-mi-shield > a::before,
html [data-header] #offcanvas .ab-mi-shield > a::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E42E7E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3C/svg%3E"); }
.ab-mi-eye > a::before,
html [data-header] #offcanvas .ab-mi-eye > a::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E42E7E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E"); }

/* Panneau mega (desktop uniquement) */
@media (min-width: 1000px) {
	.ct-header .menu > li:has(> .sub-menu .ab-mi) {
		position: static;
	}

	.ct-header .menu > li:has(> .sub-menu .ab-mi) > .sub-menu {
		position: absolute;
		top: 100%;
		left: 50%;
		transform: translateX(-50%) translateY(10px);
		width: min(720px, 92vw);
		display: grid !important;
		grid-template-columns: 1fr 1fr;
		gap: 4px;
		padding: 14px;
		margin: 0;
		list-style: none;
		background: rgba(255, 255, 255, .96);
		backdrop-filter: blur(14px);
		border: 1px solid var(--ab-rose-line);
		border-radius: 18px;
		box-shadow: 0 30px 70px -20px rgba(228, 46, 126, .3), 0 6px 20px rgba(0, 0, 0, .05);
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transition: opacity .25s ease, transform .25s ease, visibility .25s;
		z-index: 120;
	}

	.ct-header .menu > li.ab-mega-open:has(> .sub-menu .ab-mi) > .sub-menu,
	.ct-header .menu > li:has(> .sub-menu .ab-mi):has(:focus-visible) > .sub-menu {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: translateX(-50%) translateY(0);
	}

	.ct-header .sub-menu .ab-mi {
		margin: 0;
	}

	.ct-header .sub-menu .ab-mi > a {
		display: flex;
		align-items: center;
		gap: 14px;
		padding: 10px 14px;
		border-radius: 12px;
		font-family: var(--ab-font-body);
		font-size: 14px;
		font-weight: 500;
		color: var(--ab-dark);
		white-space: normal;
		transition: background .2s ease, color .2s ease;
	}

	.ct-header .sub-menu .ab-mi > a:hover {
		background: var(--ab-rose);
		color: var(--ab-raspberry);
	}
}

/* Offcanvas mobile : lignes avec icônes, plus compactes */
#offcanvas .ab-mi > a {
	display: flex;
	align-items: center;
	gap: 12px;
}

#offcanvas .ab-mi > a::before {
	width: 32px;
	height: 32px;
	border-radius: 9px;
	background-size: 16px 16px;
}

/* Ancres des étapes de la page Services sous le header sticky */
.ab-step {
	scroll-margin-top: 130px;
}

/* Logos partenaires : plusieurs fichiers du site prod sont des versions
   blanches (pour bandeau sombre) — on uniformise en silhouettes monochromes
   pour que tous soient visibles sur fond clair. */
.ab-marquee img,
.ab-logo-wall img {
	filter: brightness(0) grayscale(1);
	opacity: .5;
}

.ab-marquee img:hover,
.ab-logo-wall > div:hover img {
	filter: brightness(0) grayscale(1);
	opacity: .8;
}

/* ---------- Carrousel agences : une seule ligne, defilement automatique ---------- */

.ab-agences--carousel {
	display: block;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
}

.ab-agences__track {
	display: flex;
	gap: 18px;
	width: max-content;
	animation: ab-agences-scroll 45s linear infinite;
	will-change: transform;
}

.ab-agences--carousel .ab-agence {
	flex: 0 0 auto;
	width: min(320px, 82vw);
}

.ab-agences--carousel:hover .ab-agences__track,
.ab-agences--carousel:focus-within .ab-agences__track {
	animation-play-state: paused;
}

@keyframes ab-agences-scroll {
	to { transform: translateX(calc(-50% - 9px)); }
}

@media (prefers-reduced-motion: reduce) {
	.ab-agences__track { animation: none; }

	.ab-agences--carousel {
		overflow-x: auto;
		mask-image: none;
		-webkit-mask-image: none;
	}
}

/* ---------- Carrousel logos clients (hero) : ~5 visibles a la fois ---------- */

.ab-logos--carousel {
	margin-block: clamp(40px, 6vw, 64px) 0;
}

.ab-logos--carousel .ab-marquee__track {
	gap: 0;
	animation-duration: 32s;
}

.ab-logo-slot {
	flex: 0 0 min(232px, 18.4vw);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 14px;
	box-sizing: border-box;
}

.ab-logo-slot img {
	max-height: 44px;
	max-width: 100%;
	width: auto;
	height: auto;
	filter: brightness(0) grayscale(1);
	opacity: .55;
	transition: opacity .3s ease;
}

.ab-logo-slot img:hover,
.ab-logos--carousel .ab-marquee__track img:hover {
	filter: brightness(0) grayscale(1);
	opacity: .85;
}

.ab-mi-arch > a::before,
html [data-header] #offcanvas .ab-mi-arch > a::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E42E7E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 22V8a8 8 0 0 1 16 0v14'/%3E%3Cline x1='2' y1='22' x2='22' y2='22'/%3E%3Cpath d='M9 22v-6a3 3 0 0 1 6 0v6'/%3E%3C/svg%3E");
}

/* ---------- Galerie references : filtres par expertise (systeme colza.fr) ---------- */

.ab-galerie {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 36px;
	align-items: start;
	margin-top: clamp(32px, 5vw, 48px);
}

.ab-galerie__filtres {
	display: flex;
	flex-direction: column;
	gap: 12px;
	position: sticky;
	top: 130px;
}

.ab-galerie__filtres button {
	appearance: none;
	border: 1px solid var(--ab-rose-line);
	background: #fff;
	color: var(--ab-ink, #2b2b2b);
	font: 500 15px/1.3 'Poppins', sans-serif;
	text-align: left;
	padding: 14px 22px;
	border-radius: 999px;
	cursor: pointer;
	transition: background .25s ease, color .25s ease, border-color .25s ease, box-shadow .25s ease;
}

.ab-galerie__filtres button:hover {
	border-color: #E42E7E;
	color: #E42E7E;
}

.ab-galerie__filtres button.is-active {
	background: linear-gradient(90deg, #FF635A, #E42E7E);
	border-color: transparent;
	color: #fff;
	box-shadow: 0 10px 24px rgba(228, 46, 126, .25);
}

.ab-galerie__grille {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

.ab-galerie__item {
	display: none;
	position: relative;
	margin: 0;
	border-radius: 16px;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	cursor: zoom-in;
	background: #f6eef1;
}

.ab-galerie__item.is-on {
	display: block;
	animation: ab-gal-in .45s ease both;
}

.ab-galerie__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}

.ab-galerie__item:hover img {
	transform: scale(1.05);
}

.ab-galerie__item figcaption {
	position: absolute;
	inset: auto 0 0 0;
	padding: 28px 16px 12px;
	background: linear-gradient(180deg, rgba(26, 26, 26, 0), rgba(26, 26, 26, .72));
	color: #fff;
	font-size: 13px;
	line-height: 1.4;
}

@keyframes ab-gal-in {
	from { opacity: 0; transform: translateY(12px); }
}

.ab-lightbox {
	border: 0;
	padding: 0;
	background: transparent;
	max-width: min(1100px, 92vw);
}

.ab-lightbox::backdrop {
	background: rgba(26, 26, 26, .85);
	backdrop-filter: blur(4px);
}

.ab-lightbox img {
	display: block;
	max-width: 100%;
	max-height: 80vh;
	margin: 0 auto;
	border-radius: 12px;
}

.ab-lightbox p {
	color: #fff;
	text-align: center;
	font: 500 14px/1.5 'Inter', sans-serif;
	margin: 14px 0 0;
}

.ab-lightbox__close {
	position: absolute;
	top: -8px;
	right: -8px;
	z-index: 2;
	width: 40px;
	height: 40px;
	border: 0;
	border-radius: 50%;
	background: #fff;
	color: #2b2b2b;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}

@media (max-width: 1080px) {
	.ab-galerie {
		grid-template-columns: 1fr;
	}

	.ab-galerie__filtres {
		position: static;
		flex-direction: row;
		flex-wrap: wrap;
	}

	.ab-galerie__grille {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 720px) {
	.ab-galerie__grille {
		grid-template-columns: 1fr;
	}
}

/* Infobulle carte : carte d'agence multi-lignes */
.ab-carte__tip {
	padding: 10px 14px;
	line-height: 1.55;
	box-shadow: 0 10px 24px rgba(43, 26, 36, .12);
}

.ab-carte__tip strong {
	display: block;
	font-family: var(--ab-font-display);
	color: var(--ab-raspberry);
	margin-bottom: 2px;
}

/* ---------- Contact Form 7 dans le style .ab-form ---------- */

.ab-form .wpcf7-form-control-wrap {
	display: block;
}

.ab-form .wpcf7-not-valid-tip {
	display: block;
	margin-top: 6px;
	font-size: 12px;
	color: #d0244f;
}

.ab-form .wpcf7-response-output {
	grid-column: 1 / -1;
	margin: 8px 0 0;
	padding: 12px 16px;
	border: 1px solid var(--ab-rose-line);
	border-radius: 12px;
	font-size: 14px;
	background: #fff5f8;
}

.ab-form .wpcf7-form.sent .wpcf7-response-output {
	border-color: #bfe3c8;
	background: #f1faf3;
	color: #1f6b3a;
}

.ab-form__consent .wpcf7-list-item {
	margin: 0;
}

.ab-form__consent label {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-family: var(--ab-font-body);
	font-size: 12px;
	font-weight: 400;
	color: #8a7a82;
	line-height: 1.5;
	cursor: pointer;
}

.ab-form__consent input[type="checkbox"] {
	width: 16px;
	height: 16px;
	margin-top: 2px;
	flex: none;
	accent-color: var(--ab-raspberry);
}

.ab-form__submit {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 12px;
}

.ab-form .wpcf7-submit {
	width: auto;
	border: 0;
	cursor: pointer;
}

.ab-form .wpcf7-submit::after {
	content: "\2192";
	margin-left: 8px;
}

.ab-form .wpcf7-spinner {
	margin: 0;
}

/* CF7 : hauteur auto des champs (Blocksy force --form-field-height) et libelle consentement */
.ab-form input:not([type="checkbox"]):not([type="submit"]),
.ab-form select,
.ab-form textarea {
	height: auto !important;
	min-height: 0 !important;
}

.ab-form .ab-form__consent .wpcf7-list-item label {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-family: var(--ab-font-body);
	font-size: 12px;
	font-weight: 400;
	color: #8a7a82;
	line-height: 1.5;
	margin: 0;
}

/* CF7 : bouton d'envoi = pill degrade (la regle generique .ab-form input l'ecrasait) */
.ab-form input[type="submit"].wpcf7-submit {
	width: auto;
	background: var(--ab-grad);
	color: #fff;
	border: 0;
	border-radius: 999px;
	padding: 14px 30px;
	font-family: var(--ab-font-display);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.2;
	cursor: pointer;
	box-shadow: none;
	transition: box-shadow .3s ease, transform .3s ease;
}

.ab-form input[type="submit"].wpcf7-submit:hover {
	color: #fff;
	box-shadow: var(--ab-shadow-signature);
	transform: translateY(-1px);
}


/* ---------- Page Le Groupe : conviction + mot du président ---------- */

.ab-conviction {
	max-width: 680px;
	margin: 26px 0 0;
	padding-left: 20px;
	border-left: 3px solid var(--ab-raspberry);
	font-family: var(--ab-font-display);
	font-size: clamp(16px, 1.5vw, 18px);
	font-weight: 500;
	line-height: 1.6;
	color: var(--ab-dark);
}

.ab-conviction strong {
	color: var(--ab-raspberry);
}

.ab-quote blockquote p {
	margin: 0 0 14px;
}

.ab-quote blockquote p:last-child {
	margin-bottom: 0;
}

.ab-quote figcaption strong {
	display: block;
	font-size: 15px;
	color: var(--ab-dark);
}

.ab-quote figcaption span {
	display: block;
	margin-top: 2px;
	font-weight: 500;
	color: var(--ab-raspberry);
}

.ab-clients-text {
	max-width: 780px;
}

/* ---------- Demande de devis : depot de photos / documents ---------- */

.ab-upload.is-enhanced .wpcf7-form-control-wrap {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

.ab-upload .ab-upload__hint {
	margin: -2px 0 10px;
	font-size: 12px;
	color: #8a7a82;
}

.ab-upload__zone {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 26px 18px;
	border: 1.5px dashed rgba(228, 46, 126, .4);
	border-radius: 16px;
	background: #FDFAFB;
	text-align: center;
	font-size: 14px;
	color: #6b5a63;
	cursor: pointer;
	transition: border-color .2s ease, background .2s ease;
}

.ab-upload__zone:hover,
.ab-upload__zone.is-drag {
	border-color: var(--ab-raspberry);
	background: #fff4f8;
}

.ab-upload__zone svg {
	color: var(--ab-raspberry);
}

.ab-upload__zone strong {
	color: var(--ab-raspberry);
}

.ab-upload__list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 12px 0 0;
	padding: 0;
	list-style: none;
}

.ab-upload__list li {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	max-width: 100%;
	padding: 6px 8px 6px 14px;
	border: 1px solid var(--ab-rose-line);
	border-radius: 999px;
	background: #fff;
	font-size: 13px;
}

.ab-upload__list li span {
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	max-width: 260px;
}

.ab-form .ab-upload__list button {
	width: 22px;
	height: 22px;
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--ab-rose);
	color: var(--ab-raspberry);
	font-size: 15px;
	line-height: 1;
	cursor: pointer;
}

.ab-upload__error {
	margin: 8px 0 0;
	font-size: 12px;
	color: #d0244f;
}

/* ---------- Plan du site ---------- */

.ab-plan {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(28px, 5vw, 64px);
}

.ab-plan h2 {
	font-size: 20px;
	margin: 0 0 16px;
}

.ab-plan ul {
	margin: 0;
	padding-left: 18px;
	line-height: 2;
}

.ab-plan ul ul {
	padding-left: 20px;
	line-height: 1.9;
}

.ab-plan a {
	color: var(--ab-ink);
	text-decoration: none;
}

.ab-plan a:hover {
	color: var(--ab-raspberry);
}

@media (max-width: 720px) {
	.ab-plan {
		grid-template-columns: 1fr;
	}
}

/* CF7 autop : le paragraphe qui contient les 3 champs fichiers masques ne doit pas prendre de place */
.ab-upload.is-enhanced > p:has(.wpcf7-form-control-wrap) {
	height: 0;
	margin: 0;
	overflow: hidden;
}

.ab-upload > p:first-child {
	margin-bottom: 4px;
}

.ab-quote figcaption {
	text-align: left;
}

/* Mega-menu : ouverture pilotee par main.js (delai de fermeture + intention de survol),
   pont invisible au-dessus du panneau pour ne jamais perdre le survol en descendant. */
@media (min-width: 1000px) {
	.ct-header .menu > li:has(> .sub-menu .ab-mi) > .sub-menu::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: 100%;
		height: 22px;
	}

	.ct-header .menu > li.ab-mega-open > a {
		color: var(--ab-raspberry);
	}
}

/* Accueil : bouton du hero plus compact, chiffres cles rapproches */
.ab-hero .ab-hero__inner > .ab-btn {
	padding: 12px 24px;
	font-size: 13.5px;
}

.ab-hero__text {
	margin-bottom: 28px;
}

.ab-hero .ab-stats {
	margin-top: clamp(32px, 4vw, 48px);
}

/* Ancres des poles (/services/#...) sous le header fixe */
.ab-card[id] {
	scroll-margin-top: 130px;
}

/* Apparition des cartes : delai par colonne (et non par rang), pour que les grilles
   longues (9 domaines) n'affichent pas leurs dernieres cartes avec 0,7 s de retard. */
.ab-grid .ab-card:nth-child(n) {
	transition-delay: 0s;
}

.ab-grid .ab-card:nth-child(3n+2) {
	transition-delay: .1s;
}

.ab-grid .ab-card:nth-child(3n) {
	transition-delay: .2s;
}

/* Galerie references : intitule des filtres + libelles sur une seule ligne */
.ab-galerie {
	grid-template-columns: 300px 1fr;
}

.ab-galerie__label {
	margin: 0 0 4px;
	font-family: var(--ab-font-display);
	font-size: 13px;
	font-weight: 600;
	color: var(--ab-dark);
}

.ab-galerie__filtres button {
	white-space: nowrap;
}

@media (max-width: 1080px) {
	.ab-galerie {
		grid-template-columns: 1fr;
	}

	.ab-galerie__label {
		flex-basis: 100%;
	}

	.ab-galerie__filtres button {
		white-space: normal;
	}
}

/* =========================================================
   MENU MOBILE — panneau hors champ Blocksy aux couleurs du site
   (menu principal + bouton devis + coordonnees, reglages dans Personnaliser)
   ========================================================= */

html [data-header] #offcanvas {
	--side-panel-width: 100vw;
	--theme-box-shadow: none;
}

@media (min-width: 690px) {
	html [data-header] #offcanvas {
		--side-panel-width: 420px;
		--theme-box-shadow: -30px 0 80px rgba(43, 26, 36, .18);
		background-color: rgba(43, 26, 36, .28);
	}
}

html [data-header] #offcanvas .ct-panel-inner {
	background: linear-gradient(180deg, #fff 0%, #fff 60%, #FDF3F5 100%);
}

html [data-header] #offcanvas .ct-panel-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px;
	border-bottom: 1px solid var(--ab-rose-line);
}

html [data-header] #offcanvas .ct-panel-actions::before {
	content: "";
	width: 150px;
	height: 64px;
	background: url("../img/logo.svg") left center / contain no-repeat;
}

html [data-header] #offcanvas .ct-toggle-close {
	--theme-icon-color: var(--ab-dark);
	--theme-icon-hover-color: var(--ab-raspberry);
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	margin: 0;
	border-radius: 50%;
	background: var(--ab-rose);
}

html [data-header] #offcanvas .ct-panel-content-inner {
	align-items: stretch;
	padding: 6px 20px 32px;
}

html [data-header] #offcanvas [data-id="mobile-menu"] {
	--theme-font-size: 17px;
	--theme-font-weight: 600;
	--theme-link-initial-color: var(--ab-dark);
	--theme-link-hover-color: var(--ab-raspberry);
	--theme-link-active-color: var(--ab-raspberry);
	--theme-icon-color: var(--ab-raspberry);
	--mobile-menu-divider: none;
	font-family: var(--ab-font-display);
}

html [data-header] #offcanvas .mobile-menu > ul > li {
	border-bottom: 1px solid var(--ab-rose-line);
}

html [data-header] #offcanvas .mobile-menu > ul > li > a,
html [data-header] #offcanvas .mobile-menu > ul > li > .ct-sub-menu-parent > a {
	font-family: var(--ab-font-display);
	padding-block: 15px;
}

html [data-header] #offcanvas .mobile-menu .current-menu-item > a,
html [data-header] #offcanvas .mobile-menu .current-menu-item > .ct-sub-menu-parent > a,
html [data-header] #offcanvas .mobile-menu .current-menu-ancestor > .ct-sub-menu-parent > a {
	color: var(--ab-raspberry);
}

html [data-header] #offcanvas .ct-toggle-dropdown-mobile {
	--toggle-button-size: 34px;
	display: grid;
	place-items: center;
	height: 34px;
	border-radius: 50%;
	background: var(--ab-rose);
}

html [data-header] #offcanvas .mobile-menu .sub-menu {
	padding: 0 0 12px;
}

html [data-header] #offcanvas .mobile-menu .sub-menu .ab-mi > a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding-block: 7px;
	font-family: var(--ab-font-body);
	font-size: 15px;
	font-weight: 500;
	color: var(--ab-ink);
}

/* les points decoratifs de Blocksy partagent ::before avec nos icones : on les neutralise */
html [data-header] #offcanvas .mobile-menu[data-submenu-dots] .sub-menu .ab-mi > a::before {
	position: static;
	inset: auto;
	width: 34px;
	height: 34px;
	opacity: 1;
	border-radius: 9px;
	background-size: 17px 17px;
}

html [data-header] #offcanvas [data-id="button"] {
	width: 100%;
	margin-top: 26px;
}

html [data-header] #offcanvas [data-id="button"] .ct-button {
	display: flex;
	justify-content: center;
	width: 100%;
	padding: 15px 24px;
	font-size: 15px;
}

html [data-header] #offcanvas [data-id="text"] {
	width: 100%;
	margin-top: 22px;
}

.ab-oc-contact {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	font-family: var(--ab-font-body);
	font-size: 14px;
	line-height: 1.5;
	color: #6b5a63;
	text-align: center;
}

.ab-oc-contact a {
	color: var(--ab-ink);
	text-decoration: none;
}

.ab-oc-contact a.ab-oc-contact__tel {
	font-family: var(--ab-font-display);
	font-size: 20px;
	font-weight: 600;
	color: var(--ab-raspberry);
}

/* En-tete compact sur telephone */
@media (max-width: 689.98px) {
	html [data-header] #header [data-device="mobile"] [data-row*="middle"] {
		--height: 78px;
	}

	html [data-header] #header [data-device="mobile"] [data-id="logo"] .site-logo-container {
		--logo-max-height: 66px;
	}
}

/* Bouton menu : zone tactile de 44 px sans deplacer l'icone */
html [data-header] #header [data-id="trigger"] {
	--toggle-button-padding: 13px;
	margin: -13px;
	box-sizing: content-box;
}
