/*
 Theme Name:   Qlick And Care Theme by Wecode
 Theme URI:    https://bricksbuilder.io/
 Description:  Use this child theme to extend Bricks.
 Author:       Wecode
 Author URI:   https://bricksbuilder.io/
 Template:     bricks
 Version:      1.1
 Text Domain:  qlickandcare
*/

/* ──────────────────────────────────────────────────────────────────
 * Gilroy — déclarations @font-face
 * Bricks enregistre la police (font manager, id 42) mais n'émet pas le
 * @font-face en front quand les fichiers sont des chemins du child theme
 * (et non des médias WP). On les déclare donc ici, de façon déterministe
 * et versionnée. URLs relatives à ce style.css.
 * ────────────────────────────────────────────────────────────────── */
@font-face {
	font-family: "Gilroy";
	src: url("assets/fonts/gilroy/Gilroy-Light.woff2") format("woff2");
	font-weight: 300;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Gilroy";
	src: url("assets/fonts/gilroy/Gilroy-Regular.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Gilroy";
	src: url("assets/fonts/gilroy/Gilroy-Medium.woff2") format("woff2");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Gilroy";
	src: url("assets/fonts/gilroy/Gilroy-SemiBold.woff2") format("woff2");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Gilroy";
	src: url("assets/fonts/gilroy/Gilroy-Bold.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

/* ──────────────────────────────────────────────────────────────────
 * Header — règles non gérables via les réglages d'éléments Bricks.
 * (Le `_cssCustom` de Bricks n'est pas résolu — %root% sort en clair
 *  dans le rendu inline — donc on cible ici des classes stables.)
 * ────────────────────────────────────────────────────────────────── */
/* Navigation : items sur une seule ligne, espacement, état actif (Figma) */
.brxe-nav-menu ul {
	flex-wrap: nowrap;
	gap: 30px;
}

.brxe-nav-menu a {
	white-space: nowrap;
	font-weight: 300;
}

.brxe-nav-menu li.current-menu-item>a,
.brxe-nav-menu li.current_page_item>a,
.brxe-nav-menu li.current-page-ancestor>a {
	border-bottom: 1.5px solid var(--bricks-color-primary);
	padding-bottom: 4px;
}

/* CTA « Prendre RDV » : libellé sur une seule ligne */
.brxe-block.btn.btn-primary,
.brxe-block.btn.btn-primary * {
	white-space: nowrap;
}

/* ──────────────────────────────────────────────────────────────────
 * Phase 4 — Composants réutilisables.
 * CSS structurel non exprimable via les réglages d'éléments Bricks
 * (overlay de carte cliquable, pseudo-éléments). On cible des classes
 * globales stables (`qac-*`) ; le reste du style passe par les classes
 * Bricks / réglages d'éléments.
 * ────────────────────────────────────────────────────────────────── */

/* Carte entièrement cliquable : un lien « couverture » étire sa zone de
 * clic sur toute la carte sans imbriquer de <a> (les chips/étoiles restent
 * de simples <span>). La carte racine porte .qac-card-link (position
 * relative gérée aussi côté Bricks par sécurité). */
.qac-card-link {
	position: relative;
}

/* Le contenu interactif réel (chips liées, etc.) repasse au-dessus si besoin */

/* Carte média (thérapeute / article photo / traitement sombre) :
 * l'image de fond est gérée en réglage Bricks ; on garantit la lisibilité
 * du texte par un voile dégradé bas → haut. */

/* Zoom doux de l'image de fond au survol */

/* Étoiles de notation : rangée d'icônes, pleines en rouge, vides grisées. */
.qac-rating {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	line-height: 1;
}

.qac-rating .qac-star svg {
	width: 16px;
	height: 16px;
}

.qac-rating .qac-star--full svg {
	color: var(--bricks-color-primary);
	fill: var(--bricks-color-primary);
}

.qac-rating .qac-star--empty svg {
	color: var(--bricks-color-border);
	fill: none;
}

.qac-rating-count {
	font-size: 13px;
	color: var(--bricks-color-muted);
	margin-left: 6px;
}

/* Chips de termes rendues par [qac_terms] — stylées ici car le HTML
 * du shortcode échappe à l'optimiseur de CSS par page de Bricks. */
.qac-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

.qac-chip {
	display: inline-flex;
	align-items: center;
	background: var(--bricks-color-light);
	color: var(--bricks-color-muted);
	font-size: 13px;
	line-height: 1;
	padding: 6px 12px;
	border-radius: 9999px;
	white-space: nowrap;
}

.qac-chip--on-dark {
	background: rgba(255, 255, 255, 0.16);
	color: #fff;
}

/* Sur carte média (thérapeute), le wrapper du shortcode est plein largeur et
 * les chips restent en ligne (sinon elles s'empilent). */

/* Guillemet décoratif des témoignages */

/* Carrousel scroll-snap — réutilise le pattern grille+query loop+composant
 * (le query loop de slider-nested ne propage pas le contexte post pour les
 *  tags dynamiques dans ce build Bricks ; cf. §12 du plan). Défilement natif
 *  tactile/clavier, accessible, sans JS. La piste = élément Bricks avec
 *  hasLoop sur l'enfant répété. */
/* Carrousel « Nos traitements » : le style de .qac-carousel-track et
 * .qac-carousel-item est désormais dans le Custom CSS de ces classes Bricks
 * (panneau Style → CSS), pas ici. */

/* Bandeau CTA sombre « Prêt à commencer » — dégradé rouge (node 2236:8336). */
.cta-band {
	background: linear-gradient(to bottom, #9e0000 0%, #7a0000 100%);
	overflow: hidden;
}

/* Cercle d'icône translucide du bandeau CTA */
.cta-band-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	background: rgba(255, 255, 255, 0.2);
	border-radius: 9999px;
	color: #fff;
}

/* Bouton « outline blanc » (CTA band / promo) — bordure en CSS plutôt qu'en
 * objet _border Bricks (le chemin shorthand de Bricks émet un notice « Array
 * to string » quand les 4 côtés sont uniformes ; cf. §12). */

/* Rangée de mini-features du bandeau CTA (4 → 2 → 1) */
.cta-feature {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	text-align: center;
}

.cta-feature,
.cta-feature * {
	color: #fff;
}

/* ════════════════════════════════════════════════════════════════════
 * Phase 4 — Affinages fidélité Figma (cartes traitement/témoignage/
 * article/zone, carte numérotée, bouton-flèche).
 * ════════════════════════════════════════════════════════════════════ */

/* ── Carte Traitement : claire par défaut → variante image au survol /
 *    .is-active (node 2236:3462). Le 2ᵉ slide « actif » se marque via
 *    .is-active (JS IntersectionObserver en Phase 5). ─────────────────── */
.qac-tr-card {
	position: relative;
	overflow: hidden;
	border-radius: 20px;
	background: var(--bricks-color-light);
	display: flex;
	flex-direction: column;
	min-height: 272px;
	transition: transform .35s var(--qac-ease, cubic-bezier(.16, 1, .3, 1)), box-shadow .35s ease, min-height .4s ease;
}

.qac-tr-bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	opacity: 0;
	transition: opacity .45s ease;
	z-index: 0;
}

/* Image featured rendue en <img> via [qac_tr_bg] (le background dynamique Bricks
 * ne s'émet pas en query loop nichée dans un composant) ; le ::after reste au-
 * dessus de la photo grâce à l'ordre du DOM (img puis ::after). */
.qac-tr-bg-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.qac-tr-bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(10, 10, 10, .30) 0%, rgba(10, 10, 10, .62) 100%);
}

.qac-tr-card.is-active .qac-tr-bg {
	opacity: 1;
}

/* Carte active/survolée : variante image + ombre. La HAUTEUR ne grandit que
 * dans le carrousel (largeur réservée par .qac-carousel-track) pour éviter de
 * faire « sauter » la mise en page ; en aperçu statique on force via .is-active. */
.qac-tr-card.is-active {
	min-height: 432px;
}

.qac-tr-inner {
	position: relative;
	z-index: 1;
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 16px;
	padding: 24px;
}

.qac-tr-card.is-active .qac-tr-title {
	color: #fff;
}

.qac-tr-card .qac-chip {
	background: rgba(255, 255, 255, .6);
	color: rgba(30, 28, 58, .65);
}

.qac-tr-card.is-active .qac-chip {
	background: rgba(255, 255, 255, .20);
	color: #fff;
	backdrop-filter: blur(6px);
}

.qac-tr-card.is-active .qac-tr-desc {
	max-height: 240px;
	opacity: 1;
}

.qac-tr-card.is-active .qac-tr-link {
	color: #fff;
}

/* ── Carte Témoignage (node 2236:3891) : guillemet haut, citation, pied
 *    avec filet : auteur+méta à gauche, étoiles+date à droite. ─────────── */

.qac-temo-quote svg {
	width: 34px;
	height: 34px;
	color: rgba(158, 0, 0, .28);
}

/* ── Carte Article : média (photo + voile) par défaut ; variantes pleines
 *    (rouge / indigo / rose) pour le bento (node 2236:3691). ───────────── */

/* Variantes pleines : on masque la couche image, on fixe la couleur de fond. */

.qac-art--red .qac-art-bg,
.qac-art--indigo .qac-art-bg,
.qac-art--rose .qac-art-bg {
	display: none;
}

/* ── Carte Zone (node 2236:3462) : média haut + badge « Zone couverte »,
 *    puis tête (nom+note / tél+badge), adresse, communes, CTA pleine
 *    largeur. ──────────────────────────────────────────────────────────── */

.qac-zone-special {
	display: inline-flex;
	align-items: center;
	background: var(--bricks-color-primary);
	color: #fff;
	padding: 7px 16px;
	border-radius: 9999px;
	font-size: 14px;
	font-weight: 500;
}

.qac-communes-more {
	display: inline-flex;
	align-items: center;
	padding: 6px 6px;
	color: var(--bricks-color-primary);
	font-size: 13px;
}

/* ── Carte numérotée (parcours, node 2236:3257) : grand numéro + texte. ── */

/* ── Bouton-flèche (node 2236:3256) : pilule + cercle flèche en fin. ───── */

/* ── Carrousel : glisser-déposer (drag) ─────────────────────────────── */

/* ── Variante Article « blanche » (bento) ───────────────────────────── */

/* Extrait (carte vedette du bento) */

/* Bento d'articles piloté par une query : un seul query loop de la carte
 * Article ; l'agencement (tailles, slot vedette, accent rouge) est donné par
 * la POSITION via :nth-child. Contenu = données du post. */

/* Slot vedette : titre plus grand + extrait visible */

/* Accent rouge sur le 2ᵉ slot (sinon fond indigo par défaut quand sans image) */

@media (max-width: 900px) {
	.qac-bento-loop {
		grid-template-columns: 1fr 1fr;
	}

	.qac-bento-loop>*:nth-child(1) {
		grid-column: 1;
		grid-row: 1;
	}

	.qac-bento-loop>*:nth-child(3) {
		grid-column: 2;
		grid-row: 1 / span 2;
	}

	.qac-bento-loop>*:nth-child(2) {
		grid-column: 1;
		grid-row: 2;
	}

	.qac-bento-loop>*:nth-child(4) {
		grid-column: 1;
		grid-row: 3;
	}

	.qac-bento-loop>*:nth-child(5) {
		grid-column: 2;
		grid-row: 3;
	}
}

@media (max-width: 600px) {
	.qac-bento-loop {
		grid-template-columns: 1fr;
	}

	.qac-bento-loop>* {
		grid-column: 1 !important;
		grid-row: auto !important;
	}
}

/* ── Bento d'articles (node 2236:3691) ──────────────────────────────── */

@media (max-width: 900px) {
	.qac-bento {
		grid-template-columns: 1fr 1fr;
	}

	.qac-bento-1 {
		grid-column: 1;
		grid-row: 1;
	}

	.qac-bento-feature {
		grid-column: 2;
		grid-row: 1 / span 2;
	}

	.qac-bento-2 {
		grid-column: 1;
		grid-row: 2;
	}

	.qac-bento-3 {
		grid-column: 1;
		grid-row: 3;
	}

	.qac-bento-4 {
		grid-column: 2;
		grid-row: 3;
	}
}

@media (max-width: 600px) {
	.qac-bento {
		grid-template-columns: 1fr;
	}

	.qac-bento>* {
		grid-column: 1 !important;
		grid-row: auto !important;
	}
}

/* ── Témoignages : slideshow vertical continu (pause au survol) ─────── */

@keyframes qac-marquee-up {
	from {
		transform: translateY(0);
	}

	to {
		transform: translateY(-50%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.qac-temo-col {
		animation: none;
	}
}

@media (max-width: 700px) {
	.qac-temo-cols {
		grid-template-columns: 1fr;
	}

	.qac-temo-col--b {
		display: none;
	}
}

/* ════════════════════════════════════════════════════════════════════
 * Boutons — transitions & états de survol soignés (node 2236:3122).
 * Solides : lift + ombre + balayage lumineux. Outline/ghost : remplissage
 * qui glisse. Bouton-flèche : lift + lueur + flèche qui file. Press : recul.
 * ════════════════════════════════════════════════════════════════════ */
.btn,
.qac-btn-arrow {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	transition: transform .3s var(--qac-ease, cubic-bezier(.16, 1, .3, 1)), box-shadow .3s ease, background-color .3s ease, color .3s ease, border-color .3s ease;
}

.btn>*,
.qac-btn-arrow>* {
	position: relative;
	z-index: 1;
}

/* Balayage lumineux (solides + bouton-flèche) — btn-primary exclu (hover géré dans Bricks) */
.btn-dark::before,
.qac-btn-arrow::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: linear-gradient(120deg, transparent 0%, rgba(255, 255, 255, 0.28) 50%, transparent 100%);
	transform: translateX(-130%);
	transition: transform .6s ease;
	pointer-events: none;
}

.btn-dark:hover::before,
.qac-btn-arrow:hover::before {
	transform: translateX(130%);
}

/* Outline / ghost : remplissage qui glisse de la gauche, texte en blanc */
.btn-outline::before,
.btn-ghost::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: var(--bricks-color-secondary);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform .35s var(--qac-ease, cubic-bezier(.16, 1, .3, 1));
	pointer-events: none;
}

.btn-outline:hover::before,
.btn-ghost:hover::before {
	transform: scaleX(1);
}

/* Bouton-flèche : lift + lueur + le cercle file vers la droite */

/* ============================================================
 * Header sticky « deux étages » — la barre principale colle,
 * le topbar (bandeau notice) défile hors écran.
 *
 * Astuce : #brx-header est enfant direct de <body>, donc on le
 * rend sticky avec un top négatif = hauteur du topbar. Le topbar
 * remonte hors du viewport, la barre principale se fixe à top:0.
 * Pas de JS, pas de réglage Bricks « sticky header » nécessaire.
 * (La hauteur du topbar est fixée à --qac-topbar-h côté élément.)
 * ============================================================ */
:root {
	--qac-topbar-h: 40px;
}

#brx-header {
	position: sticky;
	top: calc(-1 * var(--qac-topbar-h));
	z-index: 100;
}

/* Sur mobile le topbar est masqué ailleurs ; on annule l'offset
 * pour que la barre principale colle proprement à top:0. */
@media (max-width: 478px) {
	:root {
		--qac-topbar-h: 0px;
	}
}

/* ── Topbar refermable (état persisté en localStorage par le JS) ───────
 * La classe .qac-topbar-closed est posée sur <html> très tôt (wp_head)
 * pour éviter tout flash : le topbar (#brxe-86a0e7) est masqué et l'offset
 * sticky retombe à 0 → la barre principale colle à top:0. */
html.qac-topbar-closed {
	--qac-topbar-h: 0px;
}

html.qac-topbar-closed #brxe-86a0e7 {
	display: none;
}

/* Bouton « fermer » (×), injecté dans le topbar par le JS */
.qac-topbar-close {
	position: absolute;
	top: 50%;
	right: 12px;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	padding: 0;
	border: 0;
	border-radius: 9999px;
	background: rgba(255, 255, 255, 0.15);
	color: var(--bricks-color-white, #fff);
	cursor: pointer;
	line-height: 0;
	transition: background 0.2s ease;
}

.qac-topbar-close:hover {
	background: rgba(255, 255, 255, 0.3);
}

.qac-topbar-close svg {
	width: 14px;
	height: 14px;
}

/* Le topbar doit être le contexte de positionnement de la croix */
#brxe-86a0e7 {
	position: relative;
}

/* Bouton « rouvrir » — onglet discret, visible uniquement quand fermé.
 * Injecté dans #brx-header par le JS, il suit donc le header sticky. */
.qac-topbar-reopen {
	display: none;
	position: absolute;
	top: 0;
	right: 16px;
	align-items: center;
	gap: 6px;
	padding: 4px 12px 6px;
	border: 0;
	border-radius: 0 0 10px 10px;
	background: var(--bricks-color-secondary, #1e1c3a);
	color: var(--bricks-color-white, #fff);
	font-size: 12px;
	font-weight: 500;
	cursor: pointer;
	line-height: 1;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12);
}

.qac-topbar-reopen svg {
	width: 14px;
	height: 14px;
}

html.qac-topbar-closed .qac-topbar-reopen {
	display: inline-flex;
}

/* ============================================================
   PHASE 5 — HERO (page d'accueil)
   Structure : section > container-wide > .qac-hero-panel (image
   arrondie + voile gauche) > contenu gauche + carte RDV bas-droite.
   ============================================================ */
.qac-hero-section {
	padding: 24px 0 8px;
}

/* Voile clair à gauche → lisibilité du texte par-dessus la photo. */

/* Pastille « prochaine disponibilité » (haut droite). */

/* Colonne de contenu (gauche). */

/* Réassurance : avatars empilés + note. */
.qac-hero-proof {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
}

.qac-hero-avatars {
	display: flex;
	align-items: center;
}

.qac-hero-avatar {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	border: 2px solid var(--bricks-color-white, #fff);
	object-fit: cover;
	margin-left: -10px;
	background: var(--bricks-color-light, #f0f1f3);
}

.qac-hero-avatar:first-child {
	margin-left: 0;
}

.qac-hero-avatar--more {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 11px;
	font-weight: 600;
	color: var(--bricks-color-muted, #535862);
}

.qac-hero-proof-meta {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.qac-hero-proof-label {
	font-size: 14px;
	color: var(--bricks-color-muted, #535862);
}

.qac-hero-proof-rating {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.qac-hero-proof-rating .qac-rating {
	display: inline-flex;
	gap: 2px;
}

.qac-hero-proof-rating .qac-star svg {
	width: 13px;
	height: 13px;
}

.qac-hero-proof-rating .qac-star--full svg {
	color: #f5a623;
	fill: #f5a623;
}

.qac-hero-rating-num {
	font-size: 12px;
	color: var(--bricks-color-muted, #535862);
}

/* Titre + sous-titre. */

/* Boutons hero : flèche sur le bouton sombre. */

.qac-hero-arrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
}

.qac-hero-arrow::after {
	content: "→";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--bricks-color-white, #fff);
	color: var(--bricks-color-secondary, #1e1c3a);
	font-size: 15px;
	line-height: 1;
}

/* Stats du bas (24h / 20+ / 15+). */
.qac-hero-stats {
	display: flex;
	gap: 8px;
	padding-top: 24px;
	border-top: 1px solid rgba(30, 28, 58, 0.12);
}

.qac-hero-stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 110px;
}

.qac-hero-stat-num {
	font-size: 24px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--bricks-color-primary, #9e0000);
}

.qac-hero-stat-label {
	font-size: 12px;
	text-align: center;
	color: var(--bricks-color-secondary, #1e1c3a);
	opacity: 0.8;
}

/* Carte sélecteur RDV (flottante bas-droite). */

/* ── Sélecteur de RDV (shortcode [qac_rdv_selector]) ───────── */
.qac-rdv {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 24px 32px 28px;
	background: var(--bricks-color-light, #f0f1f3);
	border: 1px solid rgba(255, 255, 255, 0.6);
	border-radius: 24px;
	box-shadow: 0 24px 48px rgba(30, 28, 58, 0.18);
}

.qac-rdv-eyebrow {
	margin: 0;
	text-align: center;
	font-size: 14px;
	color: var(--bricks-color-primary, #9e0000);
}

.qac-rdv-title {
	margin: 0;
	text-align: center;
	font-size: 23px;
	font-weight: 600;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-rdv-fields {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.qac-rdv-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.qac-rdv-flabel {
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.3px;
	text-transform: uppercase;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-rdv-control {
	position: relative;
	display: block;
}

.qac-rdv-control select {
	appearance: none;
	-webkit-appearance: none;
	width: 100%;
	height: 44px;
	padding: 0 38px 0 12px;
	border: 1px solid var(--bricks-color-border, #ccc);
	border-radius: 14px;
	background: var(--bricks-color-white, #fff);
	color: var(--bricks-color-secondary, #1e1c3a);
	font-size: 14px;
	line-height: 44px;
	cursor: pointer;
}

.qac-rdv-control select:focus-visible {
	outline: 2px solid var(--bricks-color-primary, #9e0000);
	outline-offset: 1px;
}

.qac-rdv-control svg {
	position: absolute;
	right: 12px;
	top: 50%;
	transform: translateY(-50%);
	width: 16px;
	height: 16px;
	pointer-events: none;
	color: var(--bricks-color-muted, #535862);
}

.qac-rdv-submit {
	width: 100%;
	padding: 15px 20px;
	border: 0;
	border-radius: 14px;
	background: var(--bricks-color-primary, #9e0000);
	color: var(--bricks-color-white, #fff);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	cursor: pointer;
	transition: filter 0.2s ease, transform 0.2s ease;
}

.qac-rdv-submit:hover {
	filter: brightness(1.1);
	transform: translateY(-1px);
}

.qac-rdv-foot {
	margin: 0;
	text-align: center;
	font-size: 12px;
	color: rgba(30, 28, 58, 0.5);
}

.qac-rdv-foot a {
	color: rgba(30, 28, 58, 0.85);
	text-decoration: underline;
}

.qac-rdv--invalid .qac-rdv-ville {
	border-color: var(--bricks-color-primary, #9e0000);
}

/* ── Hero responsive ──────────────────────────────────────── */
@media (max-width: 1024px) {

	.qac-hero-panel::before {
		background: linear-gradient(180deg,
				rgba(240, 241, 243, 0.96) 0%,
				rgba(240, 241, 243, 0.9) 55%,
				rgba(240, 241, 243, 0.86) 100%);
	}


}

@media (max-width: 768px) {
	.qac-hero-section {
		padding: 12px 0 4px;
	}

	.qac-hero-stats {
		flex-wrap: wrap;
		gap: 18px;
	}

	.qac-hero-stat {
		min-width: 78px;
		align-items: flex-start;
	}

	.qac-hero-stat-label {
		text-align: left;
	}

	.qac-rdv {
		padding: 20px;
	}

	.qac-rdv-fields {
		grid-template-columns: 1fr;
	}
}

/* ============================================================
   PHASE 5 — Sections d'accueil (réutilisent les composants Phase 4)
   ============================================================ */

/* Spans d'accent réutilisables dans le HTML d'un heading. */
.qac-amp {
	color: #aba5a2;
}

/* « Comment ça marche » : intro à gauche + 2×2 cartes numérotées. */

/* Témoignages : intro à gauche + marquee vertical à droite. */

/* ============================================================
   PHASE 6 — PAGE « À PROPOS » (node 2236:8503)
   Hero (contenu gauche + galerie photo verticale droite),
   mission, valeurs, recrutement. Les carrousels physios et le
   bandeau CTA réutilisent les composants des phases 4-5.
   ============================================================ */

/* ── Hero À propos ─────────────────────────────────────────── */
/* 2 classes pour battre le réglage de thème `.brxe-section{padding-top:120px}` (même spécificité, chargé après). */
.qac-ahero-section.brxe-section {
	padding: 0 0 64px;
}

.qac-ahero-brand {
	font-weight: 700;
}

/* Galerie : 2 colonnes d'images défilant verticalement, sens opposés,
   en boucle continue (pause au survol). Même moteur que le marquee
   témoignages — réutilise le keyframe qac-marquee-up. */
.qac-hero-gallery {
	position: relative;
	height: min(880px, 92vh);
	/* hero quasi plein-écran → la galerie monte jusqu'en haut (sous le header) */
	overflow: hidden;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	align-items: start;
	/* net en haut (les photos montent jusque sous le header), fondu léger en bas */
	-webkit-mask-image: linear-gradient(180deg, #000 0, #000 86%, transparent 100%);
	mask-image: linear-gradient(180deg, #000 0, #000 86%, transparent 100%);
}

.qac-hero-gallery-col {
	display: flex;
	flex-direction: column;
	gap: 24px;
	will-change: transform;
	animation: qac-marquee-up 44s linear infinite;
}

.qac-hero-gallery-col--b {
	animation-name: qac-marquee-down;
	animation-duration: 52s;
	animation-delay: -10s;
}

.qac-hero-gallery-img {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	border-radius: 24px;
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, .10), 0 4px 6px -4px rgba(0, 0, 0, .10);
}

.qac-hero-gallery:hover .qac-hero-gallery-col {
	animation-play-state: paused;
}

@keyframes qac-marquee-down {
	from {
		transform: translateY(-50%);
	}

	to {
		transform: translateY(0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.qac-hero-gallery-col {
		animation: none;
	}
}

@media (max-width: 1024px) {
	.qac-ahero-section.brxe-section {
		padding: 24px 0 56px;
	}

	.qac-ahero-panel .qac-hero-content {
		align-self: auto;
		padding: 0;
	}

	.qac-hero-gallery {
		height: 320px;
	}
}

@media (max-width: 768px) {
	.qac-ahero-section.brxe-section {
		padding: 12px 0 48px;
	}

	.qac-hero-gallery {
		height: 260px;
	}
}

/* ── Notre mission (bloc centré) ───────────────────────────── */

/* ── Les valeurs (titre gauche + grille 2×2 de cartes valeur) ─ */

/* ── Recrutement (texte gauche + photo droite) ─────────────── */

/* ════════════════════════════════════════════════════════════════════
 * PHASE 6 — SINGLE TRAITEMENT (maquette Figma 2236:7920)
 * Blocs rendus par les shortcodes inc/single-traitement.php (le HTML d'un
 * shortcode échappe à l'optimiseur CSS par page → tout le style ici).
 * Le chrome (sections/containers/titres) reste natif Bricks.
 * ════════════════════════════════════════════════════════════════════ */

/* ── Hero single : contenu à gauche, mosaïque d'images à droite ─────── */
.qac-tr-hero .qac-tr-hero-panel {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.04fr);
	gap: 56px;
	align-items: center;
	padding: 56px;
	border-radius: 40px;
	background: var(--bricks-color-light, #f0f1f3);
	overflow: hidden;
	isolation: isolate;
}

.qac-tr-hero-eyebrow {
	color: var(--bricks-color-primary, #9e0000);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 1.4px;
	text-transform: uppercase;
}

/* ── Réassurance : barre de 4 badges ───────────────────────────────── */
.qac-trust-bar {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}

.qac-trust-badge {
	display: flex;
	align-items: center;
	gap: 14px;
}

.qac-trust-ic {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 48px;
	height: 48px;
	border-radius: 12px;
	background: var(--bricks-color-rose-pale, #e9d1d1);
	color: var(--bricks-color-primary, #9e0000);
}

.qac-trust-txt {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.qac-trust-title {
	font-size: 16px;
	font-weight: 600;
	color: var(--bricks-color-secondary, #1e1c3a);
	line-height: 1.25;
}

.qac-trust-sub {
	font-size: 13px;
	color: var(--bricks-color-muted, #535862);
	line-height: 1.3;
}

/* ── « Qu'est-ce que » : 4 colonnes à puces ────────────────────────── */
.qac-def-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}

.qac-def-col {
	background: var(--bricks-color-surface, #fdfdfd);
	border-radius: 16px;
	padding: 28px 24px;
	display: flex;
	flex-direction: column;
	gap: 18px;
	box-shadow: var(--bricks-shadow-sm, 0 2px 8px rgba(0, 0, 0, .06));
}

.qac-def-title {
	margin: 0;
	font-size: 21px;
	line-height: 1.2;
	color: var(--bricks-color-secondary, #1e1c3a);
}

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

.qac-def-list li {
	position: relative;
	padding-left: 18px;
	font-size: 15px;
	line-height: 1.5;
	color: var(--bricks-color-muted, #535862);
}

.qac-def-list li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 9px;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--bricks-color-primary, #9e0000);
}

/* ── « Notre processus » : carte intro + grille de phases + méthodes ── */

.qac-phases {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px 32px;
}

.qac-phase {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.qac-phase-title {
	font-size: 18px;
	font-weight: 600;
	color: var(--bricks-color-primary, #9e0000);
}

.qac-phase-text {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.5;
	color: var(--bricks-color-muted, #535862);
}

.qac-methodes-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.qac-method-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 16px;
	border-radius: 9999px;
	background: var(--bricks-color-surface, #fdfdfd);
	color: var(--bricks-color-secondary, #1e1c3a);
	font-size: 14px;
	box-shadow: var(--bricks-shadow-sm, 0 2px 8px rgba(0, 0, 0, .06));
}

.qac-method-chip svg {
	color: var(--bricks-color-primary, #9e0000);
	flex: 0 0 auto;
}

/* ── Infos pratiques : eyebrow + titre + points (à côté d'une image) ── */
.qac-info-block {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.qac-info-eyebrow {
	color: var(--bricks-color-primary, #9e0000);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 1.4px;
	text-transform: uppercase;
}

.qac-info-title {
	margin: 0;
	font-size: clamp(26px, 2.4vw, 34px);
	line-height: 1.15;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-info-points {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-top: 6px;
}

.qac-info-point {
	margin: 0;
	font-size: 15px;
	line-height: 1.55;
	color: var(--bricks-color-muted, #535862);
	border-left: 3px solid var(--bricks-color-rose-pale, #e9d1d1);
	padding-left: 16px;
}

.qac-info-point strong {
	color: var(--bricks-color-secondary, #1e1c3a);
	font-weight: 600;
}

/* ── Tarifs : tableaux cantonaux ───────────────────────────────────── */
.qac-tarif-tables {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
}

.qac-tarif-table-wrap {
	background: var(--bricks-color-surface, #fdfdfd);
	border-radius: 20px;
	padding: 16px 8px 8px;
	box-shadow: var(--bricks-shadow-card, 0 10px 15px -3px rgba(0, 0, 0, .1));
}

.qac-tarif-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
}

.qac-tarif-table caption {
	caption-side: top;
	text-align: left;
	padding: 8px 16px 14px;
	font-size: 16px;
	font-weight: 700;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-tarif-table th,
.qac-tarif-table td {
	padding: 13px 16px;
	text-align: center;
	border-bottom: 1px solid var(--bricks-color-light, #f0f1f3);
}

.qac-tarif-table .qac-tarif-c1 {
	text-align: left;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-tarif-table thead th {
	font-weight: 700;
	color: var(--bricks-color-secondary, #1e1c3a);
	border-bottom: 2px solid var(--bricks-color-border, #ccc);
}

.qac-tarif-table tbody td {
	color: var(--bricks-color-muted, #535862);
}

.qac-tarif-table tbody tr:last-child td {
	border-bottom: 0;
}

.qac-tarif-comments {
	margin: 12px 16px 8px;
	font-size: 13px;
	color: var(--bricks-color-muted, #535862);
}

/* ── Tarifs : cartes prix (sans prescription) ──────────────────────── */
.qac-price-cards {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
	max-width: 760px;
	margin: 0 auto;
}

.qac-price-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	text-align: center;
	background: var(--bricks-color-surface, #fdfdfd);
	border-radius: 24px;
	padding: 36px 28px;
	box-shadow: var(--bricks-shadow-card, 0 10px 15px -3px rgba(0, 0, 0, .1));
}

.qac-price-ic {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 14px;
	background: var(--bricks-color-rose-pale, #e9d1d1);
	color: var(--bricks-color-primary, #9e0000);
	margin-bottom: 4px;
}

.qac-price-title {
	font-size: 16px;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-price-amount {
	font-size: clamp(30px, 3vw, 40px);
	font-weight: 700;
	line-height: 1;
	color: var(--bricks-color-primary, #9e0000);
}

.qac-price-note {
	font-size: 13px;
	color: var(--bricks-color-muted, #535862);
}

/* ── Single Traitement — responsive ────────────────────────────────── */
@media (max-width: 1024px) {
	.qac-tr-hero .qac-tr-hero-panel {
		grid-template-columns: 1fr;
		gap: 32px;
		padding: 36px;
	}

	.qac-trust-bar {
		grid-template-columns: 1fr 1fr;
		gap: 20px;
	}

	.qac-def-grid {
		grid-template-columns: 1fr 1fr;
	}

}

@media (max-width: 768px) {
	.qac-tr-hero .qac-tr-hero-panel {
		padding: 24px;
		border-radius: 28px;
	}

	.qac-trust-bar {
		grid-template-columns: 1fr;
	}

	.qac-def-grid {
		grid-template-columns: 1fr;
	}

	.qac-phases {
		grid-template-columns: 1fr;
		gap: 22px;
	}

	.qac-tarif-tables {
		grid-template-columns: 1fr;
	}

	.qac-price-cards {
		grid-template-columns: 1fr;
		gap: 20px;
	}
}

/* ── Single Traitement — image « Notre processus » (champ processus_image) ── */

.qac-proc-img {
	display: block;
	width: 100%;
	aspect-ratio: 21 / 8;
	object-fit: cover;
	border-radius: 28px;
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, .10), 0 4px 6px -4px rgba(0, 0, 0, .10);
}

@media (max-width: 768px) {
	.qac-proc-img {
		aspect-ratio: 16 / 10;
	}
}


/* ════════════════════════════════════════════════════════════════════
 * PHASE 6 — SINGLE THÉRAPEUTE (« portrait », maquette Figma 2236:7595)
 * Hero (rôles + nom + accroche + CTA zone | photo) rendu par [qac_th_hero],
 * bloc « Histoire » par [qac_th_histoire]. Tout le style ici (le HTML d'un
 * shortcode échappe à l'optimiseur CSS par page de Bricks).
 * ════════════════════════════════════════════════════════════════════ */

/* ── Hero portrait : contenu à gauche, photo à droite ──────────────── */
.qac-th-hero-panel {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 0.72fr);
	gap: 56px;
	align-items: center;
	padding: 56px;
	border-radius: 40px;
	background: var(--bricks-color-surface, #fdfdfd);
	box-shadow: 0 2px 10px rgba(30, 28, 58, 0.05);
	overflow: hidden;
	isolation: isolate;
}

.qac-th-hero-content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 26px;
	max-width: 600px;
}

/* Rôles : pilules rouge translucide (repeater `roles`). */
.qac-th-roles {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.qac-th-role {
	display: inline-flex;
	align-items: center;
	padding: 8px 14px;
	border-radius: 9999px;
	background: rgba(158, 0, 0, 0.08);
	color: var(--bricks-color-primary, #9e0000);
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
}

.qac-th-name {
	margin: 0;
	font-size: clamp(36px, 4vw, 49px);
	font-weight: 700;
	line-height: 1.05;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-th-tagline {
	margin: 0;
	max-width: 560px;
	font-size: clamp(18px, 1.6vw, 22px);
	line-height: 1.4;
	color: var(--bricks-color-secondary, #1e1c3a);
}

/* CTA « En savoir plus sur [Ville] » : pilule sombre + cercle flèche blanc. */
.qac-th-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 4px;
}

.qac-th-cta {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	padding: 6px 6px 6px 24px;
	border-radius: 9999px;
	background: var(--bricks-color-secondary, #1e1c3a);
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.6px;
	text-transform: uppercase;
	text-decoration: none;
	transition: transform .25s ease, box-shadow .25s ease;
}

.qac-th-cta:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 28px rgba(30, 28, 58, 0.30);
}

.qac-th-cta-circle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 9999px;
	background: #fff;
	color: var(--bricks-color-secondary, #1e1c3a);
	flex: 0 0 auto;
	transition: transform .25s ease;
}

.qac-th-cta:hover .qac-th-cta-circle {
	transform: translateX(4px);
}

.qac-th-cta-circle svg {
	width: 20px;
	height: 20px;
}

/* Photo (image à la une). */
.qac-th-hero-media {
	align-self: stretch;
	display: flex;
}

.qac-th-photo {
	display: block;
	width: 100%;
	aspect-ratio: 463 / 546;
	max-height: 560px;
	object-fit: cover;
	border-radius: 25px;
	background: var(--bricks-color-light, #f0f1f3);
}

.qac-th-photo--empty {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 463 / 546;
	color: var(--bricks-color-muted, #535862);
	background: var(--bricks-color-light, #f0f1f3);
	border-radius: 25px;
}

/* ── Histoire : eyebrow + bio centrée (1re phrase en chapô) ─────────── */
.qac-th-histoire {
	max-width: 1040px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
	text-align: center;
}

.qac-th-eyebrow {
	font-size: 14px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1.4px;
	color: var(--bricks-color-primary, #9e0000);
}

.qac-th-histoire-rt {
	max-width: 800px;
	color: var(--bricks-color-secondary, #1e1c3a);
	font-size: 18px;
	line-height: 1.6;
}

.qac-th-histoire-rt> :first-child {
	margin: 0 0 16px;
	font-size: clamp(20px, 2vw, 24px);
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: -0.3px;
}

.qac-th-histoire-rt p {
	margin: 0 0 14px;
}

.qac-th-histoire-rt p:last-child {
	margin-bottom: 0;
}

/* ── Single Thérapeute — responsive ────────────────────────────────── */
@media (max-width: 1024px) {
	.qac-th-hero-panel {
		grid-template-columns: 1fr;
		gap: 32px;
		padding: 36px;
	}

	.qac-th-hero-content {
		max-width: 100%;
	}

	.qac-th-photo,
	.qac-th-photo--empty {
		aspect-ratio: 16 / 10;
		max-height: 380px;
	}
}

@media (max-width: 768px) {
	.qac-th-hero-panel {
		padding: 24px;
		border-radius: 28px;
	}

	.qac-th-name {
		font-size: clamp(30px, 8vw, 40px);
	}
}

@media (max-width: 478px) {
	.qac-th-hero-actions {
		width: 100%;
	}

	.qac-th-cta {
		width: 100%;
		justify-content: space-between;
	}
}

/* ════════════════════════════════════════════════════════════════════
 * PHASE 7 — SINGLE ZONE D'INTERVENTION (maquette Figma 2236:5262)
 * Blocs rendus par les shortcodes inc/single-zone.php (le HTML d'un
 * shortcode échappe à l'optimiseur CSS par page → tout le style ici).
 * Le chrome (sections/containers/titres) reste natif Bricks.
 * ════════════════════════════════════════════════════════════════════ */

/* ── Hero zone : contenu à gauche, photo + mini-cartes flottantes à droite ── */
.qac-zhero-section {
	padding: 32px 0 8px;
	background: linear-gradient(165deg, #e8f0f3 0%, #f2f6f7 44%, var(--bricks-color-surface, #fdfdfd) 100%);
}

/* La pile de stats du hero reprend .qac-hero-stats (Phase 5). */

/* Média : photo arrondie surmontée des mini-cartes flottantes. */
.qac-zhero-media {
	position: relative;
	align-self: stretch;
	padding-bottom: 48px;
}

.qac-zhero-photo {
	position: relative;
	border-radius: 32px;
	overflow: hidden;
	box-shadow: 0 25px 50px -12px rgba(30, 28, 58, 0.25);
	aspect-ratio: 4 / 3;
	background: var(--bricks-color-light, #f0f1f3);
}

.qac-zhero-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.qac-zhero-cards {
	position: absolute;
	left: 24px;
	right: 24px;
	bottom: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.qac-zhero-card {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 18px 18px 16px;
	background: var(--bricks-color-white, #fff);
	border-radius: 18px;
	box-shadow: 0 18px 32px rgba(30, 28, 58, 0.16);
}

.qac-zhero-card-ic {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: var(--bricks-color-rose-pale, #e9d1d1);
	color: var(--bricks-color-primary, #9e0000);
}

.qac-zhero-card-ic svg {
	width: 18px;
	height: 18px;
}

.qac-zhero-card-txt {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.qac-zhero-card-title {
	font-size: 15px;
	font-weight: 700;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-zhero-card-sub {
	font-size: 13px;
	line-height: 1.35;
	color: var(--bricks-color-muted, #535862);
}

.qac-zhero-card-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: flex-start;
	margin-top: 2px;
	padding: 8px 14px;
	background: var(--bricks-color-primary, #9e0000);
	color: #fff;
	border-radius: 9999px;
	font-size: 13px;
	font-weight: 600;
	transition: filter .2s ease, transform .2s ease;
}

.qac-zhero-card-cta:hover {
	filter: brightness(1.1);
	transform: translateY(-1px);
	color: #fff;
}

/* ── Zone : plan du canton + pastilles de communes ──────────────────── */

.qac-zone-map img,
.qac-zone-map-img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 24px;
}

.qac-zone-communes {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	max-width: 1000px;
	margin: 0 auto;
}

.qac-zone-commune {
	background: var(--bricks-color-surface, #fdfdfd);
	color: var(--bricks-color-secondary, #1e1c3a);
	border: 1px solid var(--bricks-color-border, #ccc);
	font-size: 14px;
	padding: 9px 16px;
	box-shadow: var(--bricks-shadow-sm, 0 2px 8px rgba(0, 0, 0, .06));
	transition: border-color .2s ease, color .2s ease, transform .2s ease;
}

.qac-zone-commune:hover {
	border-color: var(--bricks-color-primary, #9e0000);
	color: var(--bricks-color-primary, #9e0000);
	transform: translateY(-1px);
}

/* ── Cabinet « Nouveau ! » : image à gauche, infos à droite ─────────── */
.qac-cabinet {
	display: grid;
	grid-template-columns: minmax(0, 0.82fr) minmax(0, 1fr);
	gap: 56px;
	align-items: center;
}

.qac-cabinet-media {
	align-self: stretch;
}

.qac-cabinet-img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 360px;
	max-height: 520px;
	object-fit: cover;
	border-radius: 28px;
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, .10), 0 4px 6px -4px rgba(0, 0, 0, .10);
}

.qac-cabinet-body {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.qac-cabinet-eyebrow {
	display: inline-flex;
	align-self: flex-start;
	align-items: center;
	padding: 6px 14px;
	border-radius: 9999px;
	background: var(--bricks-color-rose-pale, #e9d1d1);
	color: var(--bricks-color-primary, #9e0000);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1.2px;
	text-transform: uppercase;
}

.qac-cabinet-title {
	margin: 0;
	font-size: clamp(26px, 2.6vw, 36px);
	line-height: 1.15;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-cabinet-lead {
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
	color: var(--bricks-color-muted, #535862);
}

.qac-cabinet-rows {
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin-top: 8px;
}

.qac-cabinet-row {
	display: flex;
	align-items: flex-start;
	gap: 16px;
}

.qac-cabinet-row-ic {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: var(--bricks-color-rose-pale, #e9d1d1);
	color: var(--bricks-color-primary, #9e0000);
}

.qac-cabinet-row-ic svg {
	width: 20px;
	height: 20px;
}

.qac-cabinet-row-txt {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.qac-cabinet-row-label {
	font-size: 13px;
	font-weight: 600;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-cabinet-row-value {
	font-size: 15px;
	line-height: 1.45;
	color: var(--bricks-color-muted, #535862);
}

.qac-cabinet-row-value a {
	color: var(--bricks-color-primary, #9e0000);
}

/* ── Single Zone — responsive ───────────────────────────────────────── */
@media (max-width: 1024px) {

	.qac-cabinet {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.qac-cabinet-media {
		order: -1;
	}
}

@media (max-width: 768px) {
	.qac-zhero-section {
		padding: 12px 0 4px;
	}

	.qac-zhero-media {
		padding-bottom: 0;
	}

	.qac-zhero-cards {
		position: static;
		margin-top: 16px;
		left: auto;
		right: auto;
	}
}

@media (max-width: 560px) {
	.qac-zhero-cards {
		grid-template-columns: 1fr;
	}
}

/* ============================================================
 * PHASE 8 — ARCHIVE TRAITEMENTS (liste de tous les traitements)
 * Maquette Figma 2236:7044. Template d'archive Bricks
 * (archiveType = traitement). Hero = classes « QAC News » réutilisées ;
 * grille de cartes data-driven (CPT traitement) ; bandeau CTA
 * (composant 021f07) ; section booking ([qac_booking_form]).
 * CSS posé ici (et non en classe globale Bricks) car les pastilles
 * sortent d'un shortcode → hors optimiseur CSS-par-page de Bricks.
 * ============================================================ */

/* « & » rouge dans le titre du hero de cette page */

/* Image « feature » du hero (colonne droite). Cible aussi l'<img> interne
 * car l'élément image Bricks rend une <figure><img>. */

/* Grille des cartes (3 colonnes, gabarit Figma 400px + gap 40px) */

/* Carte traitement (liste) — carte plate cliquable */

/* Pastilles de la carte (surchargent .qac-chip de base) */

/* Titre de section masqué (hiérarchie h1→h2 pour a11y/SEO) */

/* ── Carte Article [qac_article_card] (maquette Figma 2265:344 / 2265:321) ── */
.qac-acard {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: 20px;
	aspect-ratio: 617 / 426;
	background: #032026;
	isolation: isolate;
	text-decoration: none;
	box-shadow: 0 10px 24px rgba(3, 32, 38, 0.10);
}

.qac-acard-bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s cubic-bezier(.16, 1, .3, 1);
}

.qac-acard:hover .qac-acard-bg {
	transform: scale(1.05);
}

.qac-acard-veil {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(to top, #032026 0%, rgba(3, 32, 38, 0.80) 22%, rgba(3, 32, 38, 0.32) 48%, rgba(3, 32, 38, 0) 70%);
}

.qac-acard-inner {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 28px;
}

.qac-acard-head {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.qac-acard-meta {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}

.qac-acard-chip {
	display: inline-flex;
	align-items: center;
	padding: 4px 12px;
	border-radius: 9999px;
	background: rgba(255, 255, 255, 0.20);
	color: #fff;
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	line-height: 1.45;
}

.qac-acard-rt {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	color: rgba(255, 255, 255, 0.65);
	font-size: 12px;
}

.qac-acard-rt svg {
	width: 12px;
	height: 12px;
}

.qac-acard-title {
	margin: 0;
	color: #fff;
	font-size: 18px;
	font-weight: 500;
	line-height: 1.32;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.qac-acard-excerpt {
	margin: 0;
	color: rgba(255, 255, 255, 0.82);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.45;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.qac-acard-more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 2px;
	color: rgba(255, 255, 255, 0.75);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: .6px;
	text-transform: uppercase;
}

.qac-acard-more svg {
	width: 14px;
	height: 14px;
	transition: transform .25s ease;
}

.qac-acard:hover .qac-acard-more {
	color: #fff;
}

.qac-acard:hover .qac-acard-more svg {
	transform: translateX(4px);
}

/* Variante « à la une » (hero) : plus haute, titre/extrait plus grands. */
.qac-acard--feature {
	aspect-ratio: 637 / 603;
}

.qac-acard--feature .qac-acard-inner {
	padding: 32px;
	gap: 18px;
}

.qac-acard--feature .qac-acard-title {
	font-size: 23px;
	line-height: 1.25;
	-webkit-line-clamp: 3;
}

.qac-acard--feature .qac-acard-excerpt {
	font-size: 16px;
	-webkit-line-clamp: 3;
}

@media (max-width: 768px) {

	.qac-acard,
	.qac-acard--feature {
		aspect-ratio: 16 / 11;
	}
}

/* Grille Actualités : robustesse hauteur — la cellule de loop porte le ratio, la carte la remplit. */

@media (max-width: 768px) {
	.qac-news-grid>.brxe-div {
		aspect-ratio: 16 / 11;
	}
}

/* Idem hero : la cellule à la une porte le ratio. */

@media (max-width: 768px) {
	.qac-news-hero-feat>.brxe-div {
		aspect-ratio: 16 / 11;
	}
}

/* === Correctif définitif cartes Actualités : la cellule de loop = largeur de piste, la carte la remplit === */
.qac-news-grid>.brxe-div,
.qac-news-hero-feat>.brxe-div {
	width: 100%;
	min-width: 0;
}

.qac-news-grid>.brxe-div>.brxe-shortcode,
.qac-news-hero-feat>.brxe-div>.brxe-shortcode {
	display: block;
	width: 100%;
	height: 100%;
}

.qac-news-grid .qac-acard,
.qac-news-hero-feat .qac-acard {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: auto;
}

@media (max-width: 768px) {

	.qac-news-grid>.brxe-div,
	.qac-news-hero-feat>.brxe-div {
		aspect-ratio: 16 / 11;
	}
}

/* Fix largeur des grilles Actualités : sans cellule à contenu, une grille 1fr en
   contexte shrink-to-fit s'effondre → on force la largeur pleine. */
.qac-news-grid,
.qac-news-hero-grid {
	width: 100%;
}

/* ── Hero single Traitement : aligné sur le hero « À propos » ──────────
   Panneau transparent (pas de boîte grise), contenu à gauche + carrousel
   vertical 2 colonnes à droite (réutilise .qac-hero-gallery*). */
.qac-tr-hero.qac-hero-section {
	padding: 36px 0 56px;
}

.qac-tr-hero .qac-tr-hero-panel {
	background: none;
	padding: 0;
	border-radius: 0;
	overflow: visible;
	grid-template-columns: minmax(0, 1fr) minmax(0, 0.86fr);
	gap: 56px;
	align-items: center;
}

@media (max-width: 1024px) {
	.qac-tr-hero .qac-tr-hero-panel {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.qac-tr-hero .qac-hero-gallery {
		height: 380px;
	}
}

/* ── Carrousel hero — variantes (élément Bricks « Carrousel hero traitement ») ──
   Dégradé de fondu : .qac-hero-gallery garde « haut+bas » par défaut ; les
   modificateurs surchargent. Pause au survol active par défaut ; --no-pause la
   désactive. */
.qac-hero-gallery--mask-none {
	-webkit-mask-image: none;
	mask-image: none;
}

.qac-hero-gallery--mask-top {
	-webkit-mask-image: linear-gradient(180deg, transparent 0, #000 12%, #000 100%);
	mask-image: linear-gradient(180deg, transparent 0, #000 12%, #000 100%);
}

.qac-hero-gallery--mask-bottom {
	-webkit-mask-image: linear-gradient(180deg, #000 0, #000 88%, transparent 100%);
	mask-image: linear-gradient(180deg, #000 0, #000 88%, transparent 100%);
}

.qac-hero-gallery--no-pause:hover .qac-hero-gallery-col {
	animation-play-state: running;
}

/* ── Infos pratiques : paragraphe simple + encadré mis en évidence (node 2236:8285) ── */
.qac-info-text {
	margin: 0;
	font-size: 15px;
	line-height: 1.55;
	color: var(--bricks-color-muted, #535862);
}

.qac-info-callout {
	margin: 4px 0 0;
	padding: 18px 22px;
	border-radius: 14px;
	background: var(--bricks-color-rose-pale, #e9d1d1);
	border-left: 4px solid var(--bricks-color-primary, #9e0000);
	color: var(--bricks-color-secondary, #1e1c3a);
	font-size: 15px;
	line-height: 1.5;
}

/* ── Tarifs : table unique pleine largeur + en-têtes groupés Canton GE/VD (node 2236:8296) ── */
.qac-tarif-tables {
	grid-template-columns: 1fr;
}

.qac-tarif-table thead tr:not(:last-child) th {
	border-bottom: 1px solid var(--bricks-color-light, #f0f1f3);
	padding-bottom: 8px;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: .4px;
	color: var(--bricks-color-muted, #535862);
}

/* Mobile : la table (5 colonnes) est plus large que l'écran → défilement
   horizontal DANS la carte (au lieu de faire déborder toute la page). */
@media (max-width: 640px) {
	.qac-tarif-tables {
		grid-template-columns: minmax(0, 1fr);
	}

	.qac-tarif-table-wrap {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.qac-tarif-table {
		font-size: 14px;
	}

	.qac-tarif-table th,
	.qac-tarif-table td {
		padding: 10px 10px;
	}
}

/* ═══ Single Article (Actualités) — hero/meta/cover → classes globales Bricks « QAC Article »
   (méthode B ; hero bd552c, back c29b26, back--foot f58ecd, meta 6898fb, cat 2ecb00, rt 082723,
   dot 39d664, title 8514c5, lead 9f93fd, cover 0c0dd5). Réglages visuels du hero (image de fond,
   dégradé, radius, padding) = réglages natifs de l'élément 83541a, éditables au panneau. ═══ */

.qac-article-prose {
	color: #2b2a3a;
	font-size: 18px;
	line-height: 1.8;
}

.qac-article-prose>*:first-child {
	margin-top: 0;
}

.qac-article-prose p {
	margin: 0 0 1.4em;
}

.qac-article-prose h2 {
	margin: 1.9em 0 .6em;
	color: var(--bricks-color-secondary, #1e1c3a);
	font-size: 27px;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -.3px;
}

.qac-article-prose h3 {
	margin: 1.6em 0 .5em;
	color: var(--bricks-color-secondary, #1e1c3a);
	font-size: 21px;
	font-weight: 600;
	line-height: 1.3;
}

.qac-article-prose ul,
.qac-article-prose ol {
	margin: 0 0 1.4em;
	padding-left: 1.3em;
}

.qac-article-prose li {
	margin-bottom: .5em;
	padding-left: .2em;
}

.qac-article-prose li::marker {
	color: var(--bricks-color-primary, #9e0000);
}

.qac-article-prose a {
	color: var(--bricks-color-primary, #9e0000);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.qac-article-prose strong {
	font-weight: 600;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-article-prose blockquote {
	margin: 1.8em 0;
	padding: 22px 26px;
	background: rgba(3, 32, 38, .04);
	border-left: 4px solid var(--bricks-color-primary, #9e0000);
	border-radius: 0 16px 16px 0;
	font-size: 19px;
	font-weight: 500;
	color: var(--bricks-color-secondary, #1e1c3a);
	line-height: 1.6;
}

.qac-article-prose blockquote p {
	margin: 0;
}

.qac-article-prose img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 18px;
	margin: 1.8em 0;
}

.qac-article-prose figure {
	margin: 1.8em 0;
}

.qac-article-prose figcaption {
	margin-top: .6em;
	font-size: 14px;
	color: var(--bricks-color-muted, #535862);
	text-align: center;
}

/* Pied + partage → classes globales Bricks « QAC Article » (foot 8070c3, back--foot f58ecd,
   share 2fafbf, share-label 2c87f7, share-btn a0f7a1). */

.qac-article-related-head {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-bottom: 36px;
}

.qac-article-related-eyebrow {
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 1.4px;
	text-transform: uppercase;
	color: var(--bricks-color-primary, #9e0000);
}

.qac-article-related-title {
	margin: 0;
	font-size: clamp(26px, 2.6vw, 34px);
	color: var(--bricks-color-secondary, #1e1c3a);
	line-height: 1.15;
}

.qac-article-related-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
	width: 100%;
}

.qac-article-related-grid>.brxe-div {
	aspect-ratio: 4 / 3;
	min-width: 0;
}

.qac-article-related-grid>.brxe-div>.brxe-shortcode {
	display: block;
	width: 100%;
	height: 100%;
}

.qac-article-related-grid .qac-acard {
	width: 100%;
	height: 100%;
	aspect-ratio: auto;
}

@media (max-width: 991px) {
	.qac-article-related-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.qac-article-related-grid>.brxe-div {
		aspect-ratio: 16 / 11;
	}
}

@media (max-width: 600px) {
	.qac-article-related-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 768px) {
	.qac-article-prose {
		font-size: 17px;
	}
}

/* ============================================================
 * PHASE 9 — MÉGA-MENUS DU HEADER (maquette Figma 2258:2501)
 *   .qac-mm  → panneau « Traitements » (item de nav, liste auto des traitements)
 *   .qac-zm  → panneau « Zones / contact » (survol des icônes + bouton RDV)
 * Couleurs : navy=secondary, gris=light, rouge=primary, blanc=surface.
 * ============================================================ */

/* ── Fix collision webfont Lucide ↔ classes de position Bricks ──
   lucide.css applique `font-family: lucide` à tout `[class*=" icon-"]`. En activant
   le méga-menu, Bricks enrobe l'item dans `.brx-submenu-toggle.icon-right` → la
   classe `icon-right` était capturée et le libellé « Traitements à domicile »
   s'affichait en police d'icônes (« T à 🎤 », la ligature « mic » de doMICile).
   On rétablit la police héritée sur le toggle (spécificité > [class*=" icon-"]).
   Les vraies icônes webfont `.icon-{nom}` ne sont pas touchées. */
body .brx-submenu-toggle,
body .brx-submenu-toggle>a,
body .brx-submenu-toggle>button {
	font-family: inherit !important;
}

/* ── Panneau Traitements (méga-menu Bricks sur l'item « Traitements à domicile ») ── */
.qac-mm {
	display: flex;
	align-items: stretch;
	gap: 40px;
	width: min(1280px, calc(100vw - 40px));
	margin: 0 auto;
	padding: 32px 36px;
	background: var(--bricks-color-surface, #fdfdfd);
	border-radius: var(--radius-lg, 16px);
	color: var(--bricks-color-secondary, #1e1c3a);
}

/* Bloc de gauche « Nos traitements » — titre + les deux colonnes de traitements. */
.qac-mm-treatments {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-width: 0;
}

.qac-mm-lists {
	display: flex;
	gap: 36px;
	min-width: 0;
}

/* Colonne « Pour qui ? » — profils patients à droite des traitements. */
.qac-mm-personas {
	display: flex;
	flex-direction: column;
	width: 280px;
	flex-shrink: 0;
	padding-left: 36px;
	border-left: 1px solid rgba(30, 28, 58, .10);
}

.qac-mm-treatments-label,
.qac-mm-personas-label {
	margin: 0 0 4px;
	font-size: 18px;
	line-height: 1.3;
	opacity: .5;
}

.qac-mm-plist {
	list-style: none;
	margin: 0;
	padding: 0;
}

.qac-mm-personas-more {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: auto;
	padding-top: 14px;
	font-size: 15px;
	font-weight: 600;
	color: var(--bricks-color-primary, #9e0000);
	text-decoration: none;
}

.qac-mm-personas-more svg {
	transition: transform .18s ease;
}

.qac-mm-personas-more:hover,
.qac-mm-personas-more:focus-visible {
	text-decoration: underline;
}

.qac-mm-personas-more:hover svg,
.qac-mm-personas-more:focus-visible svg {
	transform: translateX(3px);
}

.qac-mm-col {
	list-style: none;
	margin: 0;
	padding: 0;
	flex: 1 1 0;
	min-width: 0;
}

.qac-mm-item {
	margin: 0;
}

.qac-mm-item:not(:last-child) {
	border-bottom: 1px solid rgba(30, 28, 58, .10);
}

.qac-mm-link {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 9px 0;
	text-decoration: none;
	color: var(--bricks-color-secondary, #1e1c3a);
	transition: color .15s ease;
}

.qac-mm-link:hover,
.qac-mm-link:focus-visible {
	color: var(--bricks-color-primary, #9e0000);
}

.qac-mm-ic {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	flex-shrink: 0;
	border-radius: 9px;
	background: #fff;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .07);
	color: var(--bricks-color-primary, #9e0000);
	transition: transform .18s ease, box-shadow .18s ease;
}

.qac-mm-ic svg {
	width: 22px;
	height: 22px;
}

.qac-mm-ic img {
	width: 28px;
	height: 28px;
	object-fit: contain;
	border-radius: 5px;
}

.qac-mm-link:hover .qac-mm-ic {
	transform: translateY(-2px);
	box-shadow: 0 6px 14px rgba(0, 0, 0, .12);
}

.qac-mm-name {
	font-size: 16px;
	font-weight: 600;
	line-height: 1.2;
	min-width: 0;
	overflow-wrap: break-word;
	white-space: normal;
}

.qac-mm-cta {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 24px;
	width: 296px;
	flex-shrink: 0;
	padding: 24px;
	border-radius: var(--radius-lg, 16px);
	background: var(--bricks-color-secondary, #1e1c3a);
	color: #fff;
}

.qac-mm-cta-text {
	margin: 0;
	font-size: 22px;
	line-height: 1.3;
	font-weight: 400;
}

.qac-mm-cta-text strong {
	font-weight: 700;
}

.qac-mm-cta-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 52px;
	padding: 0 24px;
	border-radius: 999px;
	background: #fff;
	color: var(--bricks-color-secondary, #1e1c3a);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .7px;
	text-transform: uppercase;
	text-decoration: none;
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);
	transition: transform .18s ease, box-shadow .18s ease;
}

.qac-mm-cta-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 16px 26px -8px rgba(0, 0, 0, .28);
}

/* ≤1279px = breakpoint du menu mobile Bricks : le panneau ne s'affiche plus
   qu'à l'intérieur du drawer (~300px) → tout passe en pile verticale. */
@media (max-width: 1279px) {
	.qac-mm {
		flex-wrap: wrap;
		gap: 28px;
		width: 100%;
		padding: 24px;
	}

	.qac-mm-lists {
		flex: 1 1 100%;
		flex-direction: column;
		gap: 0;
	}

	.qac-mm-personas {
		width: 100%;
		padding-left: 0;
		border-left: 0;
	}

	.qac-mm-personas-more {
		padding-top: 10px;
	}

	.qac-mm-cta {
		width: 100%;
		flex-direction: column;
		align-items: stretch;
	}
}

/* ── Panneau Zones / contact (survol des icônes carte/téléphone + bouton RDV) ──
   Ancré sous la pilule du header (.brxe-af63a5) ; déclenché au survol/focus du
   cluster d'actions (.brxe-d69820). Le padding-top transparent fait le « pont »
   pour que le curseur puisse descendre des icônes vers le panneau. */
#brxe-d69820 {
	position: relative;
}

.qac-zm {
	position: absolute;
	top: 100%;
	right: 0;
	z-index: 200;
	padding-top: 24px;
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
	pointer-events: none;
}

#brxe-d69820:hover .qac-zm,
#brxe-d69820:focus-within .qac-zm,
.qac-zm:hover {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	transition-delay: 0s;
	pointer-events: auto;
}

.qac-zm-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(210px, 1fr));
	gap: 44px;
	min-width: 600px;
	padding: 30px 38px;
	background: var(--bricks-color-surface, #fdfdfd);
	border-radius: var(--radius-lg, 16px);
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, .25);
}

.qac-zm-col {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
}

.qac-zm-eyebrow {
	margin: 0;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: var(--bricks-color-secondary, #1e1c3a);
	opacity: .45;
}

.qac-zm-title {
	margin: 0 0 8px;
	font-size: clamp(22px, 1.8vw, 28px);
	font-weight: 700;
	line-height: 1.1;
	text-transform: uppercase;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-zm-phone {
	font-size: 22px;
	font-weight: 700;
	color: var(--bricks-color-secondary, #1e1c3a);
	text-decoration: none;
	transition: color .15s ease;
}

.qac-zm-phone:hover {
	color: var(--bricks-color-primary, #9e0000);
}

.qac-zm-link {
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .4px;
	text-transform: uppercase;
	color: var(--bricks-color-secondary, #1e1c3a);
	text-decoration: none;
	opacity: .85;
	transition: color .15s ease, opacity .15s ease;
}

.qac-zm-link:hover {
	color: var(--bricks-color-primary, #9e0000);
	opacity: 1;
}

.qac-zm-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 8px;
	padding: 14px 24px;
	white-space: nowrap;
	border-radius: 999px;
	background: var(--bricks-color-primary, #9e0000);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .6px;
	text-transform: uppercase;
	text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease;
}

.qac-zm-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(158, 0, 0, .30);
}

@media (max-width: 767px) {
	.qac-zm {
		display: none;
	}
}

/* qac-article-prose self-constrain (le wrapper peut ne pas porter la classe) */
.qac-article-prose {
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
}

/* Articles liés : cartes en enfants directs de la grille (rendu par shortcode) */
.qac-article-related-grid>.qac-acard {
	aspect-ratio: 4 / 3;
}

@media (max-width: 991px) {
	.qac-article-related-grid>.qac-acard {
		aspect-ratio: 16 / 11;
	}
}

/* ═══ Single Article — mise en page éditoriale : .qac-art-layout (0fcf0c) → classe globale Bricks
   « QAC Article » (grille minmax + descendant prose 680 + responsive 991 en _cssCustom littéral). ═══ */

/* .qac-art-aside (f51e00) + .qac-art-aside-title (d0e506, _cssCustom sélecteur simple car aussi
   utilisée par le sommaire injecté en JS) → classes globales Bricks « QAC Article ». */

/* Sommaire automatique */
.qac-art-toc {
	padding: 22px;
	background: #fff;
	border: 1px solid rgba(30, 28, 58, .08);
	border-radius: 18px;
}

.qac-art-toc-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.qac-art-toc-list li {
	margin: 0;
}

.qac-art-toc-list a {
	display: block;
	padding: 7px 12px;
	border-left: 2px solid transparent;
	border-radius: 0 10px 10px 0;
	color: var(--bricks-color-secondary, #1e1c3a);
	text-decoration: none;
	font-size: 14.5px;
	line-height: 1.4;
	font-weight: 500;
	transition: background .2s ease, color .2s ease, border-color .2s ease;
}

.qac-art-toc-list a:hover {
	background: rgba(3, 32, 38, .05);
	border-left-color: var(--bricks-color-primary, #9e0000);
	color: var(--bricks-color-primary, #9e0000);
}

/* Téléchargements → classes globales Bricks « QAC Article » (méthode B ; dl 85ed04, -item a093d9,
   -thumb be1690, -txt 9cdc0e, -title eceb47, -desc c4a989, -go ebf055). dl-meta supprimé (inutilisé). */

/* Encart RDV collant — migré en classes globales Bricks « QAC Article »
   (qac-art-cta 01887a, -ic 184360, -title 0e4e85, -lead f03f95, -btn 43d1dd, -tel e0a987),
   éditables dans le builder. Styles portés en CSS custom scopé sur chaque classe. */

/* Pied : max-width 1100 portée par la classe foot 8070c3. */

/* Section « Traitements en lien » → migrée en classes globales Bricks « QAC Article »
   (méthode B : contrôles de panneau ; head 74fa9f, eyebrow 24e554, title 90a1bd, grid 76862f,
   card d56407, ic 1cd739, name e3d9b7, desc 52652d, more cb576e). */

/* Section FAQ → migrée en classes globales Bricks « QAC Article » (méthode B : contrôles de panneau ;
   head dac1fb, eyebrow 444e91, title 7a8e74, list 99ee46, item f212ef, q 5df67c, ic e48143, a 582da2).
   Sélecteurs [open]/::marker/descendants + media 600 → _cssCustom littéral dans chaque classe. */

/* Alignement colonne 1100px : hero/cover max-width portée par les classes Bricks bd552c/0c0dd5.
   Ancien hack `.brxe-div:has(> .brxe-shortcode > .qac-art-layout){display:contents}` supprimé
   (le layout est désormais un élément natif, plus un shortcode). */

/* Responsive */
@media (max-width: 991px) {
	.qac-art-toc {
		display: none;
	}

	/* sommaire inutile une fois la prose passée */
}

/* ============================================================
 * PHASE 10 — ZONES DESSERVIES
 *   .qac-zmm → méga-menu de l'item de nav « Zones desservies » (cartes + CTA)
 *   .qac-zov → page générale /zones/ (archive du CPT zone : hero + grille)
 * Couleurs : navy=secondary, gris=light, rouge=primary, blanc=surface.
 * ============================================================ */

/* ── Méga-menu « Zones desservies » (item de nav) ── */
.qac-zmm {
	display: flex;
	align-items: stretch;
	gap: 32px;
	width: min(1100px, calc(100vw - 40px));
	margin: 0 auto;
	padding: 28px 32px;
	background: var(--bricks-color-surface, #fdfdfd);
	border-radius: var(--radius-lg, 16px);
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-zmm-cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(220px, 1fr));
	gap: 20px;
	flex: 1 1 auto;
	min-width: 0;
}

.qac-zmm-card {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	background: #fff;
	border: 1px solid var(--bricks-color-light, #f0f1f3);
	border-radius: var(--radius-lg, 16px);
	overflow: hidden;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.qac-zmm-card:hover,
.qac-zmm-card:focus-visible {
	transform: translateY(-3px);
	border-color: transparent;
	box-shadow: 0 18px 34px -12px rgba(30, 28, 58, .28);
}

.qac-zmm-card-media {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--bricks-color-light, #f0f1f3);
}

.qac-zmm-card-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .35s ease;
}

.qac-zmm-card:hover .qac-zmm-card-img {
	transform: scale(1.05);
}

.qac-zmm-card-badge {
	position: absolute;
	left: 12px;
	bottom: 12px;
	padding: 5px 12px;
	border-radius: 999px;
	background: var(--bricks-color-primary, #9e0000);
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .4px;
	text-transform: uppercase;
}

.qac-zmm-card-body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 16px 18px 18px;
}

.qac-zmm-card-name {
	font-size: 18px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-zmm-card-meta {
	font-size: 13px;
	color: var(--bricks-color-muted, #535862);
}

.qac-zmm-card-phone {
	font-size: 15px;
	font-weight: 600;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-zmm-card-cta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 6px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .3px;
	text-transform: uppercase;
	color: var(--bricks-color-primary, #9e0000);
}

.qac-zmm-card-cta svg {
	transition: transform .2s ease;
}

.qac-zmm-card:hover .qac-zmm-card-cta svg {
	transform: translateX(3px);
}

.qac-zmm-cta {
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: 280px;
	flex-shrink: 0;
	padding: 26px 24px;
	border-radius: var(--radius-lg, 16px);
	background: var(--bricks-color-secondary, #1e1c3a);
	color: #fff;
}

.qac-zmm-cta-eyebrow {
	margin: 0;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	opacity: .5;
}

.qac-zmm-cta-title {
	margin: 0;
	font-size: 24px;
	font-weight: 700;
	line-height: 1.15;
}

.qac-zmm-cta-text {
	margin: 0 0 auto;
	font-size: 16px;
	line-height: 1.45;
	opacity: .85;
}

.qac-zmm-cta-text strong {
	font-weight: 700;
	opacity: 1;
}

.qac-zmm-cta-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 50px;
	padding: 0 22px;
	margin-top: 12px;
	border-radius: 999px;
	background: #fff;
	color: var(--bricks-color-secondary, #1e1c3a);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .5px;
	text-transform: uppercase;
	text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease;
}

.qac-zmm-cta-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 24px -8px rgba(0, 0, 0, .4);
}

.qac-zmm-cta-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	height: 44px;
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	opacity: .8;
	transition: opacity .15s ease;
}

.qac-zmm-cta-link:hover {
	opacity: 1;
}

.qac-zmm-cta-link svg {
	transition: transform .2s ease;
}

.qac-zmm-cta-link:hover svg {
	transform: translateX(3px);
}

@media (max-width: 1100px) {
	.qac-zmm {
		flex-wrap: wrap;
		gap: 24px;
		width: 100%;
		padding: 24px;
	}

	.qac-zmm-cards {
		flex: 1 1 100%;
	}

	.qac-zmm-cta {
		width: 100%;
	}
}

@media (max-width: 600px) {
	.qac-zmm-cards {
		grid-template-columns: 1fr;
	}
}

/* ── Page générale /zones/ (archive du CPT zone) ── */
.qac-zov-inner {
	width: min(1200px, calc(100vw - 40px));
	margin: 0 auto;
}

/* Hero */
.qac-zov-hero {
	position: relative;
	text-align: center;
	padding: clamp(56px, 7vw, 104px) 0 clamp(32px, 4vw, 56px);
	background:
		radial-gradient(60% 120% at 50% -10%, rgba(158, 0, 0, .06), transparent 60%),
		linear-gradient(180deg, var(--bricks-color-light, #f0f1f3), #fff);
}

.qac-zov-eyebrow {
	margin: 0 0 12px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 1.4px;
	text-transform: uppercase;
	color: var(--bricks-color-primary, #9e0000);
}

.qac-zov-title {
	margin: 0 0 18px;
	font-size: clamp(34px, 4.4vw, 56px);
	line-height: 1.05;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-zov-lead {
	max-width: 720px;
	margin: 0 auto;
	font-size: clamp(17px, 1.4vw, 20px);
	line-height: 1.55;
	color: var(--bricks-color-muted, #535862);
}

.qac-zov-stats {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin: 28px 0 0;
	padding: 0;
	list-style: none;
}

.qac-zov-stat {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 10px 18px;
	background: #fff;
	border: 1px solid var(--bricks-color-light, #f0f1f3);
	border-radius: 999px;
	box-shadow: 0 2px 10px rgba(30, 28, 58, .05);
	font-size: 15px;
	font-weight: 600;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-zov-stat-ic {
	display: inline-flex;
	color: var(--bricks-color-primary, #9e0000);
}

.qac-zov-stat-ic svg {
	width: 18px;
	height: 18px;
}

/* Grille de cartes zones */
.qac-zov-grid-section {
	padding: clamp(40px, 5vw, 72px) 0;
}

.qac-zov-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(20px, 2.4vw, 32px);
}

.qac-zov-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--bricks-color-light, #f0f1f3);
	border-radius: 24px;
	transition: transform .25s ease, box-shadow .25s ease;
}

.qac-zov-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 26px 50px -16px rgba(30, 28, 58, .30);
}

.qac-zov-card-media {
	position: relative;
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--bricks-color-light, #f0f1f3);
}

.qac-zov-card-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .4s ease;
}

.qac-zov-card:hover .qac-zov-card-media img {
	transform: scale(1.04);
}

.qac-zov-card-badge {
	position: absolute;
	left: 16px;
	bottom: 16px;
	padding: 6px 14px;
	border-radius: 999px;
	background: var(--bricks-color-primary, #9e0000);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .4px;
	text-transform: uppercase;
}

.qac-zov-card-body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	padding: clamp(22px, 2.4vw, 32px);
}

.qac-zov-card-title {
	margin: 0;
	font-size: clamp(24px, 2.2vw, 30px);
	line-height: 1.1;
}

.qac-zov-card-title a {
	color: var(--bricks-color-secondary, #1e1c3a);
	text-decoration: none;
}

.qac-zov-card-title a:hover {
	color: var(--bricks-color-primary, #9e0000);
}

.qac-zov-card-meta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 15px;
	color: var(--bricks-color-muted, #535862);
}

.qac-zov-card-meta svg {
	color: var(--bricks-color-primary, #9e0000);
}

.qac-zov-card-phone {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 18px;
	font-weight: 700;
	color: var(--bricks-color-secondary, #1e1c3a);
	text-decoration: none;
}

.qac-zov-card-phone svg {
	color: var(--bricks-color-primary, #9e0000);
}

.qac-zov-card-phone:hover {
	color: var(--bricks-color-primary, #9e0000);
}

.qac-zov-card-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 8px;
	height: 50px;
	padding: 0 26px;
	border-radius: 999px;
	background: var(--bricks-color-primary, #9e0000);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .5px;
	text-transform: uppercase;
	text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease;
}

.qac-zov-card-btn svg {
	transition: transform .2s ease;
}

.qac-zov-card-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 28px rgba(158, 0, 0, .32);
}

.qac-zov-card-btn:hover svg {
	transform: translateX(3px);
}

/* « Comment ça marche » (repris de l'accueil) — section navy */
.qac-zov-steps-section {
	padding: clamp(48px, 6vw, 96px) 0;
	background: var(--bricks-color-secondary, #1e1c3a);
	color: #fff;
}

.qac-zov-steps-section .qac-zov-eyebrow {
	color: rgba(255, 255, 255, .55);
}

.qac-zov-steps-grid {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
	gap: clamp(32px, 4vw, 64px);
	align-items: center;
}

.qac-zov-steps-title {
	margin: 0 0 14px;
	font-size: clamp(28px, 3vw, 42px);
	line-height: 1.1;
	color: #fff;
}

.qac-zov-steps-sub {
	margin: 0 0 28px;
	font-size: clamp(16px, 1.3vw, 19px);
	line-height: 1.5;
	color: rgba(255, 255, 255, .8);
}

.qac-zov-steps-cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 52px;
	padding: 0 28px;
	border-radius: 999px;
	background: var(--bricks-color-primary, #9e0000);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .5px;
	text-transform: uppercase;
	text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease;
}

.qac-zov-steps-cta svg {
	transition: transform .2s ease;
}

.qac-zov-steps-cta:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 28px rgba(158, 0, 0, .4);
}

.qac-zov-steps-cta:hover svg {
	transform: translateX(3px);
}

.qac-zov-steps-cards {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.qac-zov-step {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 24px;
	background: rgba(255, 255, 255, .06);
	border: 1px solid rgba(255, 255, 255, .10);
	border-radius: 18px;
	transition: background .2s ease, transform .2s ease;
}

.qac-zov-step:hover {
	background: rgba(255, 255, 255, .10);
	transform: translateY(-3px);
}

.qac-zov-step-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: #fff;
	color: var(--bricks-color-secondary, #1e1c3a);
	font-size: 20px;
	font-weight: 800;
}

.qac-zov-step-txt {
	font-size: 16px;
	line-height: 1.45;
	color: rgba(255, 255, 255, .92);
}

@media (max-width: 860px) {
	.qac-zov-grid {
		grid-template-columns: 1fr;
	}

	.qac-zov-steps-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 520px) {
	.qac-zov-steps-cards {
		grid-template-columns: 1fr;
	}
}

/* ── Formulaire « Prendre rendez-vous » rendu PAR SHORTCODE [qac_booking_form] ──
   Le HTML d'un shortcode échappe à l'optimiseur CSS par page de Bricks : ces
   règles (réf. visuelle = page Contact, qui utilise un form Bricks NATIF) stylent
   le panneau là où il est posé en shortcode (Actualités, /zones/, …). Tout est
   scopé sous .qac-booking-panel — wrapper présent UNIQUEMENT sur le shortcode —
   donc zéro impact sur le form natif de Contact (classes identiques, sans ce wrapper). */
.qac-booking-panel {
	width: min(1200px, calc(100vw - 40px));
	margin: clamp(40px, 5vw, 72px) auto;
	padding: clamp(28px, 3.5vw, 56px);
	background: var(--bricks-color-light, #f0f1f3);
	border-radius: 32px;
}

.qac-booking-panel .qac-booking-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(28px, 3.5vw, 56px);
	align-items: center;
}

.qac-booking-panel .qac-booking-intro {
	display: flex;
	flex-direction: column;
	row-gap: 32px;
	max-width: 520px;
}

.qac-booking-panel .qac-booking-head {
	display: flex;
	flex-direction: column;
	row-gap: 12px;
}

.qac-booking-panel .qac-booking-eyebrow {
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: var(--bricks-color-primary, #9e0000);
}

.qac-booking-panel .qac-booking-title {
	margin: 0;
	font-size: clamp(34px, 3.6vw, 48px);
	line-height: 1;
	font-weight: 400;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-booking-panel .qac-bk-strong {
	display: block;
	font-weight: 700;
}

.qac-booking-panel .qac-booking-lead {
	margin: 0;
	font-size: clamp(16px, 1.3vw, 18px);
	line-height: 1.5;
	color: var(--bricks-color-muted, #535862);
}

.qac-booking-panel .qac-booking-cards {
	display: flex;
	flex-direction: column;
	row-gap: 14px;
}

.qac-booking-panel .qac-contact-card {
	display: flex;
	align-items: center;
	column-gap: 16px;
	padding: 16px;
	background: var(--bricks-color-surface, #fff);
	border-radius: 16px;
	box-shadow: 0 2px 10px rgba(30, 28, 58, .06);
	text-decoration: none;
	transition: transform .25s ease, box-shadow .25s ease;
}

.qac-booking-panel a.qac-contact-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 24px rgba(30, 28, 58, .12);
}

.qac-booking-panel .qac-contact-card-ic {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	border-radius: 14px;
	background: var(--bricks-color-primary, #9e0000);
	color: #fff;
}

.qac-booking-panel .qac-contact-card-ic svg {
	width: 20px;
	height: 20px;
}

.qac-booking-panel .qac-contact-card-ic--dark {
	background: var(--bricks-color-secondary, #1e1c3a);
}

.qac-booking-panel .qac-contact-card-ic--light {
	background: var(--bricks-color-light, #f0f1f3);
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-booking-panel .qac-contact-card-txt {
	display: flex;
	flex-direction: column;
	row-gap: 2px;
	min-width: 0;
}

.qac-booking-panel .qac-contact-card-label {
	font-size: 12px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: .6px;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-booking-panel .qac-contact-card-value {
	font-size: 18px;
	font-weight: 700;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-booking-panel .qac-contact-card--dispo .qac-contact-card-value {
	font-size: 15px;
	line-height: 1.3;
}

.qac-booking-panel .qac-form-card {
	background: var(--bricks-color-surface, #fff);
	border-radius: 24px;
	padding: clamp(24px, 2.6vw, 36px);
	box-shadow: 0 25px 50px -12px rgba(30, 28, 58, .14);
}

.qac-booking-panel .qac-form-card-head {
	display: flex;
	flex-direction: column;
	align-items: center;
	row-gap: 4px;
	margin-bottom: 22px;
	text-align: center;
}

.qac-booking-panel .qac-form-card-sub {
	font-size: 14px;
	color: var(--bricks-color-muted, #535862);
}

.qac-booking-panel .qac-form-card-title {
	font-size: clamp(22px, 2vw, 28px);
	font-weight: 700;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-booking-panel form {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.qac-booking-panel .qac-bk-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.qac-booking-panel .qac-bk-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.qac-booking-panel .qac-bk-field label {
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .5px;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-booking-panel .qac-bk-field input,
.qac-booking-panel .qac-bk-field select,
.qac-booking-panel .qac-bk-field textarea {
	width: 100%;
	padding: 13px 16px;
	border: 1px solid var(--bricks-color-light, #f0f1f3);
	border-radius: 12px;
	background: var(--bricks-color-light, #f0f1f3);
	color: var(--bricks-color-secondary, #1e1c3a);
	font-size: 15px;
	font-family: inherit;
	transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}

.qac-booking-panel .qac-bk-field textarea {
	resize: vertical;
	min-height: 84px;
}

.qac-booking-panel .qac-bk-field input::placeholder,
.qac-booking-panel .qac-bk-field textarea::placeholder {
	color: rgba(30, 28, 58, .42);
}

.qac-booking-panel .qac-bk-field input:focus,
.qac-booking-panel .qac-bk-field select:focus,
.qac-booking-panel .qac-bk-field textarea:focus {
	outline: none;
	background: #fff;
	border-color: var(--bricks-color-primary, #9e0000);
	box-shadow: 0 0 0 3px rgba(158, 0, 0, .12);
}

.qac-booking-panel .qac-bk-iconwrap {
	position: relative;
	display: block;
}

.qac-booking-panel .qac-bk-iconwrap svg {
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
	width: 16px;
	height: 16px;
	color: rgba(30, 28, 58, .45);
	pointer-events: none;
}

.qac-booking-panel .qac-bk-iconwrap input {
	padding-left: 40px;
}

.qac-booking-panel button[type="submit"] {
	height: 54px;
	border: 0;
	border-radius: 999px;
	cursor: pointer;
	background: var(--bricks-color-primary, #9e0000);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .6px;
	text-transform: uppercase;
	font-family: inherit;
	transition: transform .18s ease, box-shadow .18s ease;
}

.qac-booking-panel button[type="submit"]:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 28px rgba(158, 0, 0, .32);
}

.qac-booking-panel .qac-form-card-note {
	margin: 0;
	text-align: center;
	font-size: 13px;
	color: var(--bricks-color-muted, #535862);
}

/* Honeypot anti-spam : TOUJOURS masqué visuellement, quel que soit le wrapper
   (booking-panel, co-booking, co-booking-form sur les communes…). Rule de base
   agnostique au wrapper — évite la fuite « Ne pas remplir » quand le formulaire
   est rendu hors des wrappers historiquement scopés. Technique off-screen
   (pas display:none, que les bots détectent). */
.qac-book-hp {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

.qac-booking-panel .qac-book-hp {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

.qac-booking-panel .qac-book-notice {
	margin: 0 0 16px;
	padding: 12px 16px;
	border-radius: 14px;
	font-size: 14px;
	font-weight: 500;
}

.qac-booking-panel .qac-book-notice--ok {
	background: rgba(22, 120, 60, .10);
	color: #15803d;
}

.qac-booking-panel .qac-book-notice--err {
	background: rgba(158, 0, 0, .08);
	color: var(--bricks-color-primary, #9e0000);
}

@media (max-width: 860px) {
	.qac-booking-panel .qac-booking-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 560px) {
	.qac-booking-panel .qac-bk-row {
		grid-template-columns: 1fr;
	}
}

/* SINGLE COMMUNE — chrome porté dans les classes globales Bricks éditables
   (catégorie « QAC Commune », _cssCustom) : template 577 natif + inc/commune-tags.php.
   Le bloc « Booking » ci-dessous ne conserve que le style du FORMULAIRE (shortcode [qac_booking_fields]). */

/* ═══════════════════════════════════════════════════════════════════
   SINGLE FAQ  (template 576, inc/single-faq.php) — chrome porté dans les
   classes globales Bricks éditables (catégorie « QAC FAQ » : contrôles de
   panneau + _cssCustom littéral). Anciennes règles .qac-faq-* retirées ici,
   ainsi que l'accordéon <details> mort .qac-faq-acc-* (remplacé par le
   query loop .qac-faq-rcard). inc/single-faq.php ne rend que des données
   (dynamic tags + JSON-LD), aucun markup .qac-faq-* côté serveur.
   ═══════════════════════════════════════════════════════════════════ */

/* Booking — panneau autonome du single Commune (scopé : n'affecte pas Contact/articles) */
.qac-co-booking-form form {
	display: flex;
	flex-direction: column;
	gap: 16px
}

.qac-co-booking .qac-bk-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px
}

.qac-co-booking .qac-bk-field {
	display: flex;
	flex-direction: column;
	gap: 6px
}

.qac-co-booking .qac-bk-field label {
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--bricks-color-muted)
}

.qac-co-booking .qac-bk-field input,
.qac-co-booking .qac-bk-field select,
.qac-co-booking .qac-bk-field textarea {
	width: 100%;
	border: 1px solid var(--bricks-color-border);
	border-radius: 12px;
	padding: 12px 14px;
	font-size: 15px;
	font-family: inherit;
	color: var(--bricks-color-secondary);
	background: #fff;
	transition: border-color .2s ease, box-shadow .2s ease
}

.qac-co-booking .qac-bk-field input:focus,
.qac-co-booking .qac-bk-field select:focus,
.qac-co-booking .qac-bk-field textarea:focus {
	outline: none;
	border-color: var(--bricks-color-primary);
	box-shadow: 0 0 0 3px rgba(158, 0, 0, .12)
}

.qac-co-booking .qac-bk-iconwrap {
	position: relative;
	display: flex;
	align-items: center
}

.qac-co-booking .qac-bk-iconwrap svg {
	position: absolute;
	left: 14px;
	width: 16px;
	height: 16px;
	color: var(--bricks-color-muted);
	pointer-events: none
}

.qac-co-booking .qac-bk-iconwrap input {
	padding-left: 40px
}

.qac-co-booking .qac-book-hp {
	position: absolute;
	left: -9999px;
	height: 0;
	overflow: hidden
}

.qac-co-booking form button[type=submit] {
	margin-top: 4px;
	background: var(--bricks-color-primary);
	color: #fff;
	border: none;
	border-radius: 9999px;
	padding: 15px 28px;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: transform .2s ease, box-shadow .2s ease
}

.qac-co-booking form button[type=submit]:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 24px -12px var(--bricks-color-primary)
}

.qac-co-booking .qac-form-card-note {
	text-align: center;
	font-size: 13px;
	color: var(--bricks-color-muted);
	margin: 6px 0 0
}

.qac-co-booking .qac-book-notice {
	border-radius: 12px;
	padding: 12px 16px;
	font-size: 14px;
	margin: 0 0 14px
}

.qac-co-booking .qac-book-notice--ok {
	background: #e7f6ec;
	color: #16a34a
}

.qac-co-booking .qac-book-notice--err {
	background: #fbe9e9;
	color: #dc2626
}

@media (max-width:560px) {
	.qac-co-booking .qac-bk-row {
		grid-template-columns: 1fr
	}
}

/* ═══════════ Mentions légales — page /mentions-legales/ : chrome porté dans les
   classes globales Bricks éditables (catégorie « QAC Légal » : contrôles de panneau
   + _cssCustom littéral). Éléments Bricks natifs ; anciennes règles .qac-legal-*
   (hero/cartes/prose/blocks) retirées ici. ═══════════ */

/* ════════════════════════════════════════════════════════════════════
 * PHASE 12 — NOUS REJOINDRE (recrutement) + single OFFRE
 * Rendu par inc/careers.php ([qac_join_*], [qac_offres_grid], [qac_apply_form],
 * [qac_offre_*]). Le HTML d'un shortcode échappe à l'optimiseur CSS par page de
 * Bricks → tout le style vit ici. Tokens : --bricks-color-*, Gilroy, pills 9999.
 * Le panneau de candidature réutilise .qac-booking-panel (cf. booking-form).
 * ════════════════════════════════════════════════════════════════════ */

/* ── Boutons (namespace .qac-btn) ───────────────────────────────────── */
.qac-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 14px 26px;
	border-radius: 9999px;
	font-family: inherit;
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	border: 1px solid transparent;
	cursor: pointer;
	transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease;
}

.qac-btn svg {
	width: 1.15em;
	height: 1.15em;
	flex: 0 0 auto;
}

.qac-btn:hover {
	transform: translateY(-2px);
}

.qac-btn--primary {
	background: var(--bricks-color-primary, #9e0000);
	color: #fff;
	box-shadow: 0 10px 22px -10px rgba(158, 0, 0, .55);
}

.qac-btn--primary:hover {
	background: #b50000;
	box-shadow: 0 16px 30px -10px rgba(158, 0, 0, .6);
}

.qac-btn--light {
	background: #fff;
	color: var(--bricks-color-secondary, #1e1c3a);
	box-shadow: 0 10px 24px -12px rgba(0, 0, 0, .45);
}

.qac-btn--ghost-light {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, .55);
}

.qac-btn--ghost-light:hover {
	background: rgba(255, 255, 255, .14);
	border-color: #fff;
}

/* ── Eyebrow partagé ────────────────────────────────────────────────── */
.qac-join-eyebrow {
	display: inline-flex;
	align-items: center;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 1.4px;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .85);
}

.qac-join-eyebrow--accent {
	color: var(--bricks-color-primary, #9e0000);
}

/* ── Hero recrutement (panneau dégradé) ─────────────────────────────── */
.qac-join-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: grid;
	grid-template-columns: 1.05fr .95fr;
	gap: clamp(32px, 4vw, 64px);
	align-items: center;
	padding: clamp(36px, 4.5vw, 72px);
	border-radius: 40px;
	color: #fff;
	background: linear-gradient(135deg, #7a0000 0%, var(--bricks-color-primary, #9e0000) 40%, var(--bricks-color-accent, #d64b34) 100%);
}

.qac-join-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: radial-gradient(120% 120% at 88% 8%, rgba(255, 255, 255, .20), transparent 52%),
		radial-gradient(90% 90% at 6% 102%, rgba(30, 28, 58, .5), transparent 56%);
}

.qac-join-hero-content {
	display: flex;
	flex-direction: column;
	gap: 24px;
	max-width: 600px;
}

.qac-join-title {
	margin: 0;
	font-size: clamp(2.4rem, 1.5rem + 3.2vw, 4rem);
	line-height: 1.05;
	letter-spacing: -.02em;
}

.qac-join-title-em {
	color: #ffd9c9;
}

.qac-join-lead {
	margin: 0;
	font-size: clamp(1.05rem, 1rem + .35vw, 1.2rem);
	line-height: 1.6;
	color: rgba(255, 255, 255, .92);
}

.qac-join-cta {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

.qac-join-chips {
	list-style: none;
	margin: 6px 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.qac-join-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 16px;
	border-radius: 9999px;
	background: rgba(255, 255, 255, .14);
	border: 1px solid rgba(255, 255, 255, .24);
	font-size: 14px;
	font-weight: 500;
}

.qac-join-chip svg {
	width: 16px;
	height: 16px;
	opacity: .92;
}

.qac-join-hero-media {
	position: relative;
	min-height: 380px;
}

.qac-join-hero-photo {
	position: absolute;
	inset: 0;
	border-radius: 28px;
	background-size: cover;
	background-position: center;
	background-image: var(--qac-join-photo, none);
	box-shadow: 0 30px 60px -22px rgba(0, 0, 0, .55);
}

.qac-join-hero-photo[data-empty] {
	background: linear-gradient(160deg, rgba(255, 255, 255, .28), rgba(255, 255, 255, .06));
}

.qac-join-hero-badge {
	position: absolute;
	left: -16px;
	bottom: 26px;
	display: flex;
	align-items: center;
	gap: 12px;
	max-width: 264px;
	padding: 14px 18px;
	border-radius: 18px;
	background: #fff;
	color: var(--bricks-color-secondary, #1e1c3a);
	box-shadow: 0 20px 44px -14px rgba(0, 0, 0, .45);
}

.qac-join-hero-badge-ic {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	border-radius: 13px;
	background: var(--bricks-color-rose-pale, #e9d1d1);
	color: var(--bricks-color-primary, #9e0000);
}

.qac-join-hero-badge-txt {
	font-size: 13px;
	line-height: 1.3;
}

/* Hero recrutement — mobile : une colonne, boutons pleine largeur (audit 2026-07-02) */
@media (max-width: 767px) {
	.qac-join-hero {
		grid-template-columns: 1fr;
		padding: 28px 20px;
		border-radius: 24px;
	}

	.qac-join-title {
		font-size: clamp(1.9rem, 1.4rem + 3vw, 2.4rem);
		overflow-wrap: break-word;
	}

	.qac-join-cta {
		flex-direction: column;
		align-items: stretch;
	}

	.qac-join-cta .qac-btn {
		width: 100%;
		white-space: normal;
		text-align: center;
	}

	.qac-join-hero-media {
		min-height: 260px;
	}

	.qac-join-hero-badge {
		left: 8px;
	}
}

.qac-join-hero-badge-txt strong {
	display: block;
	font-size: 19px;
}

/* ── « Pourquoi nous rejoindre » : bento ────────────────────────────── */
.qac-bento {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}

.qac-bene-card {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 28px 26px;
	background: var(--bricks-color-surface, #fdfdfd);
	border: 1px solid rgba(30, 28, 58, .06);
	border-radius: 22px;
	box-shadow: 0 4px 6px -4px rgba(0, 0, 0, .08), 0 10px 15px -3px rgba(0, 0, 0, .05);
	transition: transform .25s ease, box-shadow .25s ease;
}

.qac-bene-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 32px -12px rgba(30, 28, 58, .18);
}

.qac-bene-ic {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 15px;
	background: var(--bricks-color-rose-pale, #e9d1d1);
	color: var(--bricks-color-primary, #9e0000);
}

.qac-bene-title {
	margin: 0;
	font-size: 18px;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-bene-text {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.55;
	color: var(--bricks-color-muted, #535862);
}

.qac-bene-card--feature {
	grid-column: span 2;
	grid-row: span 2;
	justify-content: center;
	gap: 18px;
	padding: 40px;
	color: #fff;
	background: linear-gradient(150deg, var(--bricks-color-secondary, #1e1c3a), #2b2752);
}

.qac-bene-card--feature:hover {
	transform: none;
}

.qac-bene-feature-title {
	margin: 0;
	font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.4rem);
	line-height: 1.12;
}

.qac-bene-feature-text {
	margin: 0;
	font-size: 1.05rem;
	line-height: 1.6;
	color: rgba(255, 255, 255, .85);
}

.qac-bene-card--feature .qac-join-eyebrow--accent {
	color: var(--bricks-color-rose-light, #dfa1a2);
}

.qac-bene-card--feature .qac-btn {
	align-self: flex-start;
	margin-top: 4px;
}

/* ── Postes ouverts : en-tête + grille de cartes ────────────────────── */
.qac-offres-head {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-bottom: 40px;
	max-width: 720px;
}

.qac-offres-head--center {
	align-items: center;
	text-align: center;
	margin-inline: auto;
}

.qac-offres-title {
	margin: 0;
	font-size: clamp(1.8rem, 1.3rem + 1.8vw, 2.8rem);
	line-height: 1.1;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-offres-count {
	margin: 0;
	font-size: 1.05rem;
	color: var(--bricks-color-muted, #535862);
}

.qac-offre-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
}

.qac-offre-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 30px;
	background: var(--bricks-color-surface, #fdfdfd);
	border: 1px solid rgba(30, 28, 58, .08);
	border-radius: 24px;
	box-shadow: 0 4px 6px -4px rgba(0, 0, 0, .08), 0 10px 15px -3px rgba(0, 0, 0, .05);
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.qac-offre-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 38px -14px rgba(30, 28, 58, .22);
	border-color: rgba(158, 0, 0, .25);
}

.qac-offre-card--feature {
	grid-column: span 2;
	background: linear-gradient(145deg, #fff 30%, var(--bricks-color-rose-pale, #e9d1d1));
	border-color: rgba(158, 0, 0, .16);
}

.qac-offre-card-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	flex-wrap: wrap;
}

.qac-offre-badge {
	display: inline-flex;
	align-items: center;
	padding: 6px 14px;
	border-radius: 9999px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .3px;
	color: #fff;
	background: var(--bricks-color-secondary, #1e1c3a);
}

.qac-offre-badge--cdd {
	background: var(--bricks-color-accent, #d64b34);
}

.qac-offre-badge--stage,
.qac-offre-badge--mandat,
.qac-offre-badge--apprentissage {
	background: var(--bricks-color-muted, #535862);
}

.qac-offre-flag {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	font-weight: 600;
	color: var(--bricks-color-primary, #9e0000);
}

.qac-offre-flag svg {
	fill: currentColor;
	stroke: currentColor;
}

.qac-offre-card-title {
	margin: 0;
	font-size: clamp(1.25rem, 1.1rem + .6vw, 1.6rem);
	line-height: 1.2;
}

.qac-offre-card-title a {
	color: var(--bricks-color-secondary, #1e1c3a);
	text-decoration: none;
}

.qac-offre-card-title a:hover {
	color: var(--bricks-color-primary, #9e0000);
}

.qac-offre-card-text {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: var(--bricks-color-muted, #535862);
}

.qac-offre-meta {
	list-style: none;
	margin: 4px 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 20px;
}

.qac-offre-meta li {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: 14px;
	font-weight: 500;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-offre-meta svg {
	width: 16px;
	height: 16px;
	color: var(--bricks-color-primary, #9e0000);
}

.qac-offre-card-link {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding-top: 6px;
	font-size: 15px;
	font-weight: 600;
	color: var(--bricks-color-primary, #9e0000);
	text-decoration: none;
}

.qac-offre-card-link svg {
	width: 18px;
	height: 18px;
	transition: transform .2s ease;
}

.qac-offre-card:hover .qac-offre-card-link svg {
	transform: translateX(4px);
}

.qac-offres-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	max-width: 520px;
	margin: 0 auto;
	padding: 48px 32px;
	border-radius: 24px;
	text-align: center;
	background: var(--bricks-color-light, #f0f1f3);
}

.qac-offres-empty h3 {
	margin: 0;
	font-size: 1.4rem;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-offres-empty p {
	margin: 0;
	color: var(--bricks-color-muted, #535862);
}

/* ── Process (4 étapes) ─────────────────────────────────────────────── */
.qac-process-wrap {
	display: flex;
	flex-direction: column;
	gap: 44px;
}

.qac-process {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}

.qac-process-step {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 32px 24px 26px;
	background: var(--bricks-color-surface, #fdfdfd);
	border: 1px solid rgba(30, 28, 58, .07);
	border-radius: 22px;
	box-shadow: 0 4px 6px -4px rgba(0, 0, 0, .06);
}

.qac-process-num {
	position: absolute;
	top: -16px;
	left: 24px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	font-weight: 700;
	font-size: 16px;
	color: #fff;
	background: var(--bricks-color-primary, #9e0000);
	box-shadow: 0 8px 16px -5px rgba(158, 0, 0, .5);
}

.qac-process-ic {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 14px;
	margin-top: 6px;
	background: var(--bricks-color-rose-pale, #e9d1d1);
	color: var(--bricks-color-primary, #9e0000);
}

.qac-process-title {
	margin: 0;
	font-size: 18px;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-process-text {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.55;
	color: var(--bricks-color-muted, #535862);
}

/* ── Candidature (réutilise .qac-booking-panel) ─────────────────────── */
.qac-apply-panel .qac-booking-grid {
	align-items: start;
}

.qac-apply-panel .qac-apply-file input[type="file"] {
	width: 100%;
	font-size: 14px;
	color: var(--bricks-color-muted, #535862);
	padding: 10px 12px;
	border: 1.5px dashed var(--bricks-color-border, #ccc);
	border-radius: 12px;
	background: #fff;
	cursor: pointer;
}

.qac-apply-panel .qac-apply-file input[type="file"]::file-selector-button {
	margin-right: 12px;
	padding: 8px 14px;
	border: 0;
	border-radius: 9999px;
	background: var(--bricks-color-secondary, #1e1c3a);
	color: #fff;
	font-family: inherit;
	font-weight: 600;
	cursor: pointer;
}

.qac-apply-panel .qac-apply-file input[type="file"]:hover {
	border-color: var(--bricks-color-primary, #9e0000);
}

.qac-apply-opt {
	text-transform: none;
	font-weight: 400;
	color: var(--bricks-color-muted, #535862);
}

.qac-apply-panel .qac-apply-consent {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-size: 13px;
	line-height: 1.5;
	color: var(--bricks-color-muted, #535862);
}

.qac-apply-panel .qac-apply-consent input {
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
	margin-top: 3px;
	accent-color: var(--bricks-color-primary, #9e0000);
}

.qac-apply-panel .qac-apply-consent a {
	color: var(--bricks-color-primary, #9e0000);
}

.qac-apply-panel .qac-apply-submit {
	justify-content: center;
}

/* ── Single offre ───────────────────────────────────────────────────── */
.qac-ohero {
	display: flex;
	flex-direction: column;
	gap: 16px;
	max-width: 820px;
}

.qac-ohero-back {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 14px;
	font-weight: 600;
	color: var(--bricks-color-muted, #535862);
	text-decoration: none;
}

.qac-ohero-back:hover {
	color: var(--bricks-color-primary, #9e0000);
}

.qac-ohero-title {
	margin: 0;
	font-size: clamp(2rem, 1.4rem + 2.4vw, 3.2rem);
	line-height: 1.08;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-ohero-meta {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 18px;
}

.qac-ohero-meta li:not(.qac-offre-badge) {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: 15px;
	font-weight: 500;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-ohero-meta svg {
	width: 16px;
	height: 16px;
	color: var(--bricks-color-primary, #9e0000);
}

.qac-ohero-lead {
	margin: 0;
	font-size: clamp(1.05rem, 1rem + .3vw, 1.2rem);
	line-height: 1.6;
	color: var(--bricks-color-muted, #535862);
}

.qac-ohero .qac-btn {
	align-self: flex-start;
	margin-top: 8px;
}

.qac-obody {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
	gap: 40px;
	align-items: start;
}

.qac-obody-main {
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.qac-obody-h2 {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 14px;
	font-size: clamp(1.4rem, 1.1rem + 1vw, 1.9rem);
	font-weight: 700;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-obody-h2 svg {
	color: var(--bricks-color-primary, #9e0000);
}

.qac-obody .qac-prose {
	font-size: 16px;
	line-height: 1.7;
	color: var(--bricks-color-muted, #535862);
}

.qac-obody .qac-prose ul {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.qac-obody .qac-prose li {
	position: relative;
	padding-left: 30px;
}

.qac-obody .qac-prose li::before {
	content: "";
	position: absolute;
	left: 6px;
	top: 9px;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--bricks-color-primary, #9e0000);
}

.qac-obody .qac-prose p {
	margin: 0 0 12px;
}

.qac-obody-aside {
	position: sticky;
	top: 100px;
}

.qac-obody-card {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 30px;
	border-radius: 24px;
	background: var(--bricks-color-light, #f0f1f3);
}

.qac-obody-h3 {
	margin: 0 0 4px;
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-obody-benefits {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.qac-obody-benefit {
	display: flex;
	gap: 10px;
	font-size: 14px;
	line-height: 1.45;
	color: var(--bricks-color-muted, #535862);
}

.qac-obody-benefit svg {
	flex: 0 0 auto;
	margin-top: 2px;
	color: var(--bricks-color-primary, #9e0000);
}

.qac-obody-benefit strong {
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-obody-cta {
	margin-top: 6px;
}

/* ── Responsive ─────────────────────────────────────────────────────── */
@media (max-width:1024px) {
	.qac-join-hero {
		grid-template-columns: 1fr;
	}

	.qac-join-hero-media {
		min-height: 300px;
	}

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

	.qac-bene-card--feature {
		grid-column: span 2;
		grid-row: auto;
	}

	.qac-offre-grid {
		grid-template-columns: 1fr;
	}

	.qac-offre-card--feature {
		grid-column: auto;
	}

	.qac-process {
		grid-template-columns: repeat(2, 1fr);
		row-gap: 34px;
	}

	.qac-obody {
		grid-template-columns: 1fr;
	}

	.qac-obody-aside {
		position: static;
	}
}

@media (max-width:600px) {
	.qac-join-hero {
		padding: 28px;
		border-radius: 28px;
	}

	.qac-bento {
		grid-template-columns: 1fr;
	}

	.qac-bene-card--feature {
		grid-column: auto;
	}

	.qac-process {
		grid-template-columns: 1fr;
	}

	.qac-join-hero-badge {
		left: 0;
	}
}

@media (prefers-reduced-motion: reduce) {

	.qac-btn,
	.qac-bene-card,
	.qac-offre-card,
	.qac-offre-card-link svg {
		transition: none;
	}

	.qac-btn:hover,
	.qac-bene-card:hover,
	.qac-offre-card:hover {
		transform: none;
	}
}

/* ── Chrome des sections de la page « Nous rejoindre » (ciblage par #_cssId,
 *    indépendant du CSS généré par Bricks). Le contenu vit dans les shortcodes. */
/* padding-top NON surchargé → on hérite du défaut thème (120px, responsive) comme
   toutes les pages, ce qui dégage le hero sous le header sticky (desktop ET mobile). */
#qac-sec-hero.brxe-section {
	padding-bottom: clamp(48px, 6vw, 72px);
}

/* Titres sur fonds foncés : forcer le blanc — les theme styles Bricks colorent
   tous les h1/h2 en navy (règle bare, 0,0,1), ce qui les rend illisibles sur le
   hero et la carte navy (cf. mémoire « h2 navy-sur-navy → color explicite »).
   Scopé sur les CLASSES wrapper/carte (0,2,0 > 0,0,1) et non sur l'id de section :
   les _cssId #qac-sec-* peuvent être retirés par une sauvegarde du builder, ce qui
   cassait l'override (titre bleu sur fond bleu sur « Nous rejoindre »). */
.qac-join-hero .qac-join-title {
	color: #fff;
}

.qac-join-hero .qac-join-title-em {
	color: #ffd9c9;
}

.qac-bene-card--feature .qac-bene-feature-title {
	color: #fff;
}

#qac-sec-benefits.brxe-section {
	padding: clamp(64px, 8vw, 110px) 0;
	background: var(--bricks-color-light, #f0f1f3);
}

#postes.brxe-section {
	padding: clamp(64px, 8vw, 110px) 0;
}

#qac-sec-process.brxe-section {
	padding: clamp(64px, 8vw, 110px) 0;
	background: var(--bricks-color-light, #f0f1f3);
}

#qac-sec-apply.brxe-section {
	padding: clamp(40px, 6vw, 80px) 0 clamp(64px, 8vw, 110px);
}

#postes,
#candidature {
	scroll-margin-top: 100px;
}

#qac-sec-hero>.brxe-container,
#qac-sec-benefits>.brxe-container,
#postes>.brxe-container,
#qac-sec-process>.brxe-container,
#qac-sec-apply>.brxe-container {
	max-width: 1320px;
}

/* ── Chrome des sections du single « Offre d'emploi » (template #717) */
#qac-osec-hero.brxe-section {
	padding: 56px 0 8px;
}

#qac-osec-body.brxe-section {
	padding: clamp(32px, 4vw, 56px) 0;
}

#qac-osec-apply.brxe-section {
	padding: clamp(32px, 4vw, 56px) 0 clamp(64px, 8vw, 110px);
}

#qac-osec-hero>.brxe-container,
#qac-osec-body>.brxe-container,
#qac-osec-apply>.brxe-container {
	max-width: 1320px;
}

/* Mobile : le défaut thème de padding-top est trop court pour ce panneau hero →
   le titre passait sous le header. On force un dégagement explicite. */
@media (max-width:768px) {
	#qac-sec-hero.brxe-section {
		padding-top: 108px;
	}
}

@media (max-width:480px) {
	#qac-sec-hero.brxe-section {
		padding-top: 96px;
	}
}

/* ═══════════ Subfooter — menu légal du footer (WP menu « Subfooter » #74, élément nav-menu) ═══════════ */
.qac-subfooter-nav {
	display: flex
}

.qac-subfooter-nav ul.bricks-nav-menu {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none
}

.qac-subfooter-nav ul.bricks-nav-menu li {
	margin: 0
}

.qac-subfooter-nav ul.bricks-nav-menu a {
	font-size: 14px;
	line-height: 1.4;
	color: var(--bricks-color-muted);
	text-decoration: none;
	transition: color .15s ease
}

.qac-subfooter-nav ul.bricks-nav-menu a:hover,
.qac-subfooter-nav ul.bricks-nav-menu .current-menu-item>a {
	color: var(--bricks-color-primary)
}

.qac-subfooter-nav .brxe-toggle,
.qac-subfooter-nav .bricks-mobile-menu-toggle,
.qac-subfooter-nav button[aria-label*="menu" i] {
	display: none !important
}

.qac-subfooter-nav .bricks-mobile-menu {
	position: static
}

/* Mobile : subfooter en colonne centrée. NB : impossible via _cssCustom Bricks sur le
   template footer (%root% non substitué par le bridge MCP — bug loggé enh_2) ni via les
   réglages de l'élément nav-menu (le ul interne n'est pas exposé). */
@media (max-width:767px) {
	.qac-subfooter-nav ul.bricks-nav-menu {
		justify-content: center
	}
}

@media (max-width:480px) {
	.qac-subfooter-nav ul.bricks-nav-menu {
		gap: 12px 18px
	}
}

/* ──────────────────────────────────────────────────────────────────
 * TÉLÉCHARGEMENTS — archive /telechargements/ ([qac_telechargements_overview])
 * + single /telechargements/{slug}/ ([qac_telechargement_detail]).
 * Classes .qac-dl-* (hors classes globales Bricks) — cf. inc/telechargements.php.
 * ────────────────────────────────────────────────────────────────── */

/* Chrome : les sections Bricks (#qac-dlsec-*) ne servent que de conteneur — le
   shortcode rend ses propres <section> avec leur fond/padding. On neutralise donc
   le padding/centrage du wrapper Bricks (cf. mémoire « width:100% »). */
#qac-dlsec-single.brxe-section {
	padding: 0;
}

#qac-dlsec-cta.brxe-section {
	padding: clamp(48px, 6vw, 88px) 0 0;
}

#qac-dlsec-single>.brxe-container,
#qac-dlsec-cta>.brxe-container {
	max-width: 100%;
	width: 100%;
	padding: 0;
}

.qac-dl-inner {
	width: min(1200px, calc(100vw - 40px));
	margin-inline: auto;
}

.qac-dl-inner--narrow {
	width: min(880px, calc(100vw - 40px));
}

/* ── Archive /telechargements/ : refonte 100 % Bricks natif — styles = classes
   globales éditables .qac-dlx-* (cat. « QAC Téléchargements »). ── */

/* ── Fiche single ───────────────────────────────────────────────── */
.qac-dl-single {
	padding: clamp(72px, 8vw, 104px) 0 clamp(48px, 6vw, 80px);
}

/* top = dégagement header fixe (cf. responsive) */
.qac-dl-crumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0 0 clamp(22px, 2.4vw, 32px);
	font-size: 14px;
	color: var(--bricks-color-muted, #535862);
}

.qac-dl-crumb a {
	color: var(--bricks-color-primary, #9e0000);
	text-decoration: none;
}

.qac-dl-crumb a:hover {
	text-decoration: underline;
}

.qac-dl-crumb-current {
	color: var(--bricks-color-secondary, #1e1c3a);
	font-weight: 600;
}

.qac-dl-head {
	margin: 0 0 clamp(26px, 3vw, 40px);
}

.qac-dl-badge {
	display: inline-flex;
	align-items: center;
	margin: 0 0 14px;
	padding: 6px 14px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .3px;
	color: var(--bricks-color-primary, #9e0000);
	background: var(--bricks-color-rose-pale, #fbecec);
}

.qac-dl-title {
	margin: 0 0 16px;
	font-size: clamp(30px, 3.6vw, 46px);
	line-height: 1.08;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-dl-lead {
	margin: 0;
	font-size: clamp(17px, 1.5vw, 20px);
	line-height: 1.6;
	color: var(--bricks-color-muted, #535862);
}

.qac-dl-files {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.qac-dl-file {
	display: flex;
	align-items: center;
	gap: 18px;
	padding: clamp(16px, 1.8vw, 22px);
	background: #fff;
	border: 1px solid var(--bricks-color-border, #e6e7ea);
	border-radius: 16px;
	transition: border-color .2s ease, box-shadow .2s ease;
}

.qac-dl-file:hover {
	border-color: rgba(158, 0, 0, .30);
	box-shadow: 0 16px 32px -20px rgba(30, 28, 58, .35);
}

.qac-dl-file-ic {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: 12px;
	background: var(--bricks-color-rose-pale, #fbecec);
	color: var(--bricks-color-primary, #9e0000);
}

.qac-dl-file-main {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
	flex: 1 1 auto;
}

.qac-dl-file-name {
	font-size: 17px;
	font-weight: 700;
	color: var(--bricks-color-secondary, #1e1c3a);
	word-break: break-word;
}

.qac-dl-file-note {
	font-size: 14.5px;
	line-height: 1.45;
	color: var(--bricks-color-muted, #535862);
}

.qac-dl-file-meta {
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: .4px;
	text-transform: uppercase;
	color: var(--bricks-color-muted, #535862);
}

.qac-dl-file-btn {
	flex: none;
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 11px 20px;
	border-radius: 999px;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
	color: #fff;
	background: var(--bricks-color-primary, #9e0000);
	transition: transform .2s ease, box-shadow .2s ease;
}

.qac-dl-file-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 28px rgba(158, 0, 0, .32);
}

.qac-dl-file-btn:focus-visible {
	outline: 2px solid var(--bricks-color-secondary, #1e1c3a);
	outline-offset: 2px;
}

.qac-dl-back {
	margin: clamp(28px, 3vw, 40px) 0 0;
}

.qac-dl-back a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	color: var(--bricks-color-muted, #535862);
}

.qac-dl-back a:hover {
	color: var(--bricks-color-primary, #9e0000);
}

.qac-dl-empty {
	margin: 24px 0;
	font-size: 16px;
	color: var(--bricks-color-muted, #535862);
}

/* ── Responsive ─────────────────────────────────────────────────── */
/* Dégagement du header fixe : il chevauche le haut du contenu au scroll-top, et
   sur mobile la barre d'annonce passe sur 2 lignes (header plus haut). On augmente
   donc le padding-top du 1er bloc pour que le fil d'Ariane / l'eyebrow ne tuck pas
   sous le header (même gotcha que le hero « Nous rejoindre »). */
@media (max-width: 768px) {
	.qac-dl-single {
		padding-top: 142px;
	}
}

@media (max-width: 600px) {
	.qac-dl-file {
		flex-wrap: wrap;
		gap: 14px;
	}

	.qac-dl-file-main {
		flex-basis: calc(100% - 64px);
	}

	.qac-dl-file-btn {
		width: 100%;
		justify-content: center;
	}
}

/* ═══════════════════ Hub FAQ /faq/ + pages catégorie (.qac-faqi-*) ═══════════════════ */
.qac-faqi-wrap {
	max-width: 1040px;
	margin-inline: auto;
}

.qac-faqi-cat {
	max-width: 920px;
	padding-top: clamp(72px, 8vw, 104px);
}

/* dégagement header fixe */

/* Sections du template archive : neutralise le padding-top 120px du thème (le hero
   gère lui-même le dégagement sous le header fixe). Bottom conservé. */
#qac-faqi-sec.brxe-section {
	padding: 0 0 clamp(40px, 5vw, 72px);
}

/* — Hero du hub — rendu en éléments Bricks natifs (classes globales
   qac-faqi-hero / -hero-title / -hero-lead dans bricks_global_classes).
   Voir template « QAC — Archive FAQ (hub) » ; le shortcode [qac_faq_index hero="0"]
   n'émet plus que la partie interactive. .qac-faqi-eyebrow reste ci-dessous car
   partagé avec les pages catégorie ([qac_faq_category]). */

/* — Barre d'outils : recherche + onglets — */
.qac-faqi-toolbar {
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin-bottom: 18px;
}

.qac-faqi-search-wrap {
	position: relative;
	display: flex;
	align-items: center;
}

.qac-faqi-search-ic {
	position: absolute;
	left: 18px;
	width: 20px;
	height: 20px;
	color: var(--bricks-color-muted, #535862);
	pointer-events: none;
}

.qac-faqi-search {
	width: 100%;
	padding: 16px 20px 16px 50px;
	border: 1px solid var(--bricks-color-border, #ccc);
	border-radius: 9999px;
	font: inherit;
	font-size: 16px;
	color: var(--bricks-color-secondary, #1e1c3a);
	background: var(--bricks-color-white, #fff);
	transition: border-color .2s ease, box-shadow .2s ease;
}

.qac-faqi-search::placeholder {
	color: var(--bricks-color-muted, #535862);
	opacity: .8;
}

.qac-faqi-search:focus {
	outline: none;
	border-color: var(--bricks-color-primary, #9e0000);
	box-shadow: 0 0 0 4px rgba(158, 0, 0, .12);
}

.qac-faqi-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.qac-faqi-tab {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 10px 20px;
	border: 1px solid var(--bricks-color-border, #ccc);
	border-radius: 9999px;
	background: var(--bricks-color-white, #fff);
	color: var(--bricks-color-secondary, #1e1c3a);
	font: inherit;
	font-size: 14.5px;
	font-weight: 600;
	cursor: pointer;
	transition: background .2s ease, color .2s ease, border-color .2s ease;
}

.qac-faqi-tab:hover {
	border-color: var(--bricks-color-primary, #9e0000);
	color: var(--bricks-color-primary, #9e0000);
}

.qac-faqi-tab.is-active {
	background: var(--bricks-color-primary, #9e0000);
	border-color: var(--bricks-color-primary, #9e0000);
	color: #fff;
}

.qac-faqi-tab:focus-visible {
	outline: 2px solid var(--bricks-color-primary, #9e0000);
	outline-offset: 2px;
}

.qac-faqi-count {
	font-size: 14px;
	color: var(--bricks-color-muted, #535862);
	margin: 0 0 20px;
}

/* — Sections par catégorie — */
.qac-faqi-list {
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.qac-faqi-section-title {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 18px;
	font-size: clamp(20px, 2.2vw, 26px);
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-faqi-section-title a {
	color: inherit;
	text-decoration: none;
}

.qac-faqi-section-title a:hover {
	color: var(--bricks-color-primary, #9e0000);
}

.qac-faqi-section-n {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 26px;
	height: 24px;
	padding: 0 8px;
	border-radius: 9999px;
	background: var(--bricks-color-rose-pale, #e9d1d1);
	color: var(--bricks-color-primary, #9e0000);
	font-size: 13px;
	font-weight: 700;
}

/* — Item accordéon — */
.qac-faqi-items {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.qac-faqi-item {
	background: var(--bricks-color-white, #fff);
	border: 1px solid var(--bricks-color-border, #e6e6e6);
	border-radius: 16px;
	overflow: hidden;
	transition: box-shadow .2s ease, border-color .2s ease;
}

.qac-faqi-item[open],
.qac-faqi-item:hover {
	box-shadow: var(--bricks-shadow-sm, 0 4px 16px rgba(0, 0, 0, .07));
	border-color: transparent;
}

.qac-faqi-q {
	list-style: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 20px 24px;
	font-size: 16.5px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-faqi-q::-webkit-details-marker {
	display: none;
}

.qac-faqi-q::after {
	content: '';
	flex: 0 0 auto;
	width: 9px;
	height: 9px;
	margin-right: 4px;
	border-right: 2px solid var(--bricks-color-primary, #9e0000);
	border-bottom: 2px solid var(--bricks-color-primary, #9e0000);
	transform: rotate(45deg);
	transition: transform .25s ease;
}

.qac-faqi-item[open] .qac-faqi-q::after {
	transform: rotate(225deg);
}

.qac-faqi-q:focus-visible {
	outline: 2px solid var(--bricks-color-primary, #9e0000);
	outline-offset: -2px;
	border-radius: 16px;
}

.qac-faqi-a {
	padding: 0 24px 22px;
}

.qac-faqi-lead {
	margin: 0 0 10px;
	font-size: 15.5px;
	line-height: 1.6;
	color: var(--bricks-color-muted, #535862);
}

.qac-faqi-link {
	display: inline-flex;
	align-items: center;
	font-size: 14px;
	font-weight: 600;
	color: var(--bricks-color-primary, #9e0000);
	text-decoration: none;
}

.qac-faqi-link:hover {
	text-decoration: underline;
}

/* — État vide — */
.qac-faqi-empty {
	text-align: center;
	padding: 32px;
	font-size: 16px;
	color: var(--bricks-color-muted, #535862);
}

.qac-faqi-reset {
	margin-left: 6px;
	padding: 6px 16px;
	border: 1px solid var(--bricks-color-border, #ccc);
	border-radius: 9999px;
	background: var(--bricks-color-white, #fff);
	color: var(--bricks-color-primary, #9e0000);
	font: inherit;
	font-weight: 600;
	font-size: 14px;
	cursor: pointer;
}

.qac-faqi-reset:hover {
	border-color: var(--bricks-color-primary, #9e0000);
}

/* — Page catégorie — */
.qac-faqi-eyebrow {
	color: var(--bricks-color-primary, #9e0000);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 1.4px;
	text-transform: uppercase;
	margin: 0 0 8px;
}

.qac-faqi-crumb {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 14px;
	color: var(--bricks-color-muted, #535862);
	margin-bottom: 18px;
}

.qac-faqi-crumb a {
	color: var(--bricks-color-muted, #535862);
	text-decoration: none;
}

.qac-faqi-crumb a:hover {
	color: var(--bricks-color-primary, #9e0000);
}

.qac-faqi-crumb-sep {
	opacity: .5;
}

.qac-faqi-cat-hero {
	margin-bottom: 32px;
}

.qac-faqi-cat-title {
	margin: 0 0 14px;
	font-size: clamp(30px, 3.6vw, 46px);
	line-height: 1.1;
	color: var(--bricks-color-secondary, #1e1c3a);
}

.qac-faqi-cat-intro {
	font-size: 17px;
	line-height: 1.7;
	color: var(--bricks-color-muted, #535862);
	max-width: 70ch;
}

.qac-faqi-cat-intro p {
	margin: 0 0 12px;
}

.qac-faqi-cat-intro p:last-child {
	margin-bottom: 0;
}

.qac-faqi-cat-n {
	margin: 16px 0 0;
	font-size: 14px;
	font-weight: 600;
	color: var(--bricks-color-primary, #9e0000);
}

.qac-faqi-back {
	margin-top: 32px;
}

.qac-faqi-back a {
	color: var(--bricks-color-primary, #9e0000);
	font-weight: 600;
	text-decoration: none;
}

.qac-faqi-back a:hover {
	text-decoration: underline;
}

/* — Responsive — */
/* Dégagement généreux sous le header fixe + barre de notification (cf. .qac-dlx-hero / .qac-dl-single). */
@media (max-width: 768px) {
	.qac-faqi-cat {
		padding-top: 142px;
	}
}

@media (max-width: 700px) {
	.qac-faqi-tabs {
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		padding-bottom: 4px;
		margin-inline: -4px;
		padding-inline: 4px;
		scrollbar-width: none;
	}

	.qac-faqi-tabs::-webkit-scrollbar {
		display: none;
	}

	.qac-faqi-tab {
		flex: 0 0 auto;
	}

	.qac-faqi-q {
		padding: 18px;
		font-size: 15.5px;
	}

	.qac-faqi-a {
		padding: 0 18px 18px;
	}
}

@media (prefers-reduced-motion: reduce) {

	.qac-faqi-tab,
	.qac-faqi-item,
	.qac-faqi-q::after,
	.qac-faqi-search {
		transition: none;
	}
}