/*
Theme Name:   Kaqi
Theme URI:    https://kaqi.fr
Description:  Thème enfant d'Avada pour kaqi.fr. Gabarits accueil, page d'offre et contact, système de design complet, chargement différé des vidéos et bandeau de consentement.
Author:       Refonte kaqi.fr
Version:      1.0.0
Template:     Avada
Text Domain:  kaqi
*/

/* ==========================================================================
   SOMMAIRE
   1.  Jetons de design (couleurs, typographies, espacements)
   2.  Bases et réinitialisation
   3.  Utilitaires de mise en page
   4.  Boutons
   5.  En-tête et navigation
   6.  Premier écran
   7.  Vidéos (façade de lecteur)
   8.  Bande de réassurance
   9.  Bloc thèse
   10. Offres
   11. Cas pratiques
   12. Six principes d'action
   13. Témoignages
   14. Votre interlocuteur
   15. Bandeau de contact
   16. Gabarit de page d'offre
   17. Page de contact et formulaire
   18. Pied de page
   19. Bandeau de consentement
   20. Adaptations mobiles
   21. Impression et mouvement réduit
   ========================================================================== */


/* ==========================================================================
   1. JETONS DE DESIGN
   Toutes les couleurs et toutes les tailles du site sortent d'ici.
   Changer une valeur ici la change partout : c'est le point d'entrée
   pour ajuster l'identité sans toucher au reste de la feuille.
   ========================================================================== */

.kaqi-page {
	/* Couleurs — vert-ardoise profond pour l'ancrage, orange de marque pour l'action */
	--kaqi-deep:        #1B3B37;
	--kaqi-deep-2:      #122B28;
	--kaqi-deep-3:      #2C544F;
	--kaqi-paper:       #FAF8F5;
	--kaqi-paper-2:     #F1ECE3;
	--kaqi-white:       #FFFFFF;
	--kaqi-ink:         #221F19;
	--kaqi-ink-2:       #555046;
	--kaqi-ink-3:       #8A8378;
	--kaqi-rule:        #E2DCD1;
	--kaqi-orange:      #E69322;   /* orange historique de Kaqi, inchangé */
	--kaqi-orange-lt:   #F2A63C;
	--kaqi-orange-dk:   #B8700B;   /* variante lisible sur fond clair */
	--kaqi-on-deep:     #EDE8DF;
	--kaqi-on-deep-2:   #A9BEB9;
	--kaqi-on-orange:   #241503;
	--kaqi-succes:      #2E6B4F;
	--kaqi-succes-bg:   #E8F2EC;
	--kaqi-erreur:      #A93B2B;
	--kaqi-erreur-bg:   #F8ECE9;

	/* Typographies — deux familles, pas plus */
	--kaqi-f-titre: "Familjen Grotesk", "Helvetica Neue", Arial, sans-serif;
	--kaqi-f-texte: "Literata", Georgia, "Times New Roman", serif;

	/* Échelle de tailles */
	--kaqi-t-xs:  0.78rem;
	--kaqi-t-sm:  0.9rem;
	--kaqi-t-md:  1rem;
	--kaqi-t-lg:  1.09rem;
	--kaqi-t-xl:  clamp(1.7rem, 3.4vw, 2.3rem);
	--kaqi-t-2xl: clamp(2.4rem, 5.4vw, 4rem);

	/* Rythme vertical et rayons */
	--kaqi-section: 5rem;
	--kaqi-gap:     1.4rem;
	--kaqi-radius:  8px;
	--kaqi-radius-sm: 4px;

	/* Largeurs */
	--kaqi-max:   74rem;
	--kaqi-prose: 38rem;   /* environ 65 caractères : la largeur de lecture confortable */
}


/* ==========================================================================
   2. BASES ET RÉINITIALISATION
   Portée limitée à .kaqi-page pour ne rien casser sur les pages restées
   sous le constructeur d'Avada.
   ========================================================================== */

.kaqi-page,
.kaqi-page * {
	box-sizing: border-box;
}

.kaqi-page {
	margin: 0;
	background: var(--kaqi-paper);
	color: var(--kaqi-ink);

	/* Corps de texte : 17 px ferré à gauche, contre 13 px justifié auparavant.
	   C'est le réglage qui change le plus la perception du site. */
	font-family: var(--kaqi-f-texte);
	font-size: 17px;
	line-height: 1.65;
	text-align: left;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.kaqi-page h1,
.kaqi-page h2,
.kaqi-page h3,
.kaqi-page h4 {
	font-family: var(--kaqi-f-titre);
	margin: 0;
	line-height: 1.1;
	color: inherit;
	text-wrap: balance;
}

.kaqi-page p,
.kaqi-page ul,
.kaqi-page ol,
.kaqi-page figure,
.kaqi-page blockquote {
	margin: 0;
}

.kaqi-page img,
.kaqi-page svg {
	max-width: 100%;
	height: auto;
	display: block;
}

.kaqi-page a {
	color: inherit;
	text-underline-offset: 3px;
}

.kaqi-page a:focus-visible,
.kaqi-page button:focus-visible,
.kaqi-page input:focus-visible,
.kaqi-page textarea:focus-visible {
	outline: 2px solid var(--kaqi-orange);
	outline-offset: 3px;
	border-radius: var(--kaqi-radius-sm);
}

/* Lien d'évitement, visible seulement au clavier */
.kaqi-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100;
	background: var(--kaqi-deep);
	color: var(--kaqi-on-deep);
	padding: 0.7rem 1.1rem;
	font-family: var(--kaqi-f-titre);
	text-decoration: none;
}
.kaqi-skip:focus {
	left: 0.5rem;
	top: 0.5rem;
}

.kaqi-sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}


/* ==========================================================================
   3. UTILITAIRES DE MISE EN PAGE
   ========================================================================== */

.kaqi-wrap {
	max-width: var(--kaqi-max);
	margin-inline: auto;
	padding-inline: 1.75rem;
}

.kaqi-page section {
	padding-block: var(--kaqi-section);
}

.kaqi-eyebrow {
	font-family: var(--kaqi-f-titre);
	font-size: var(--kaqi-t-xs);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--kaqi-orange-dk);
}

.kaqi-seclabel {
	display: flex;
	align-items: center;
	gap: 0.8rem;
	margin-bottom: 1.4rem;
}
.kaqi-seclabel__bar {
	flex: 1;
	height: 1px;
	background: var(--kaqi-rule);
}

.kaqi-sectitle {
	font-size: var(--kaqi-t-xl);
	font-weight: 700;
	letter-spacing: -0.02em;
	max-width: 26rem;
}


/* ==========================================================================
   4. BOUTONS
   ========================================================================== */

.kaqi-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	font-family: var(--kaqi-f-titre);
	font-size: 0.93rem;
	font-weight: 600;
	line-height: 1.2;
	padding: 0.58rem 1.05rem;
	border: 1.5px solid transparent;
	border-radius: var(--kaqi-radius-sm);
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color 0.16s ease, color 0.16s ease, border-color 0.16s ease;
}
.kaqi-btn--lg {
	padding: 0.78rem 1.4rem;
	font-size: var(--kaqi-t-md);
}

.kaqi-btn--primary {
	background: var(--kaqi-orange);
	border-color: var(--kaqi-orange);
	color: var(--kaqi-on-orange);
}
.kaqi-btn--primary:hover {
	background: var(--kaqi-orange-lt);
	border-color: var(--kaqi-orange-lt);
}

.kaqi-btn--ghost-light {
	background: transparent;
	color: var(--kaqi-on-deep);
	border-color: rgba(237, 232, 223, 0.4);
}
.kaqi-btn--ghost-light:hover {
	border-color: var(--kaqi-on-deep);
	background: rgba(237, 232, 223, 0.08);
}

.kaqi-btn--ghost-dark {
	background: var(--kaqi-white);
	color: var(--kaqi-ink);
	border-color: var(--kaqi-rule);
}
.kaqi-btn--ghost-dark:hover {
	border-color: var(--kaqi-ink);
}

.kaqi-btn--dark {
	background: #201200;
	border-color: #201200;
	color: #FFF6E8;
}
.kaqi-btn--dark:hover {
	background: #35200A;
	border-color: #35200A;
}

.kaqi-btn--outline-dark {
	background: transparent;
	color: #201200;
	border-color: rgba(32, 18, 0, 0.42);
}
.kaqi-btn--outline-dark:hover {
	border-color: #201200;
	background: rgba(32, 18, 0, 0.06);
}

/* Bouton qui doit ressembler à un lien (« Gérer les cookies ») */
.kaqi-linkbutton {
	background: none;
	border: 0;
	padding: 0;
	font: inherit;
	color: inherit;
	cursor: pointer;
	text-decoration: none;
}
.kaqi-linkbutton:hover {
	color: var(--kaqi-white);
	text-decoration: underline;
}


/* ==========================================================================
   5. EN-TÊTE ET NAVIGATION
   62 px de haut, contre 166 px auparavant sur mobile.
   ========================================================================== */

.kaqi-head {
	position: sticky;
	top: 0;
	z-index: 30;
	background: var(--kaqi-deep);
	color: var(--kaqi-on-deep);
	border-bottom: 1px solid rgba(237, 232, 223, 0.12);
}

.kaqi-head__in {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	min-height: 62px;
}

.kaqi-brand {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	text-decoration: none;
	color: var(--kaqi-orange);
	flex: none;
}
.kaqi-brand__word {
	font-family: var(--kaqi-f-titre);
	font-weight: 700;
	font-size: 1.45rem;
	letter-spacing: -0.03em;
	color: var(--kaqi-on-deep);
}
.kaqi-brand--footer .kaqi-brand__word {
	font-size: 1.6rem;
	color: var(--kaqi-white);
}

.kaqi-nav__list {
	display: flex;
	align-items: center;
	gap: 1.6rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.kaqi-nav__list a {
	display: inline-block;
	font-family: var(--kaqi-f-titre);
	font-size: 0.93rem;
	font-weight: 500;
	color: var(--kaqi-on-deep-2);
	text-decoration: none;
	padding-block: 0.2rem;
	border-bottom: 2px solid transparent;
	transition: color 0.16s ease, border-color 0.16s ease;
}
.kaqi-nav__list a:hover,
.kaqi-nav__list .current-menu-item > a {
	color: var(--kaqi-white);
	border-bottom-color: var(--kaqi-orange);
}

.kaqi-head__right {
	display: flex;
	align-items: center;
	gap: 1.1rem;
	flex: none;
}
.kaqi-lang {
	font-family: var(--kaqi-f-titre);
	font-size: 0.8rem;
	letter-spacing: 0.04em;
	color: var(--kaqi-on-deep-2);
	text-decoration: none;
}
.kaqi-lang:hover {
	color: var(--kaqi-white);
}

.kaqi-burger {
	display: none;
	background: none;
	border: 0;
	padding: 0.5rem;
	cursor: pointer;
	color: var(--kaqi-on-deep);
}
.kaqi-burger__bars,
.kaqi-burger__bars::before,
.kaqi-burger__bars::after {
	display: block;
	width: 22px;
	height: 2px;
	background: currentColor;
	transition: transform 0.2s ease, opacity 0.2s ease;
}
.kaqi-burger__bars::before,
.kaqi-burger__bars::after {
	content: "";
	position: relative;
}
.kaqi-burger__bars::before { top: -7px; }
.kaqi-burger__bars::after  { top: 5px; }

.kaqi-burger[aria-expanded="true"] .kaqi-burger__bars {
	background: transparent;
}
.kaqi-burger[aria-expanded="true"] .kaqi-burger__bars::before {
	transform: translateY(7px) rotate(45deg);
}
.kaqi-burger[aria-expanded="true"] .kaqi-burger__bars::after {
	transform: translateY(-5px) rotate(-45deg);
}

/* Barre d'appel : mobile seulement */
.kaqi-callbar {
	display: none;
	background: var(--kaqi-orange);
	color: var(--kaqi-on-orange);
	font-family: var(--kaqi-f-titre);
	font-weight: 600;
	font-size: 0.92rem;
	text-align: center;
	text-decoration: none;
	padding: 0.6rem 1rem;
}


/* ==========================================================================
   6. PREMIER ÉCRAN
   Une accroche fixe remplace le carrousel « Mobiliser / Transformer /
   Animer », dont les mots isolés n'informaient pas et n'étaient pas
   lisibles sur mobile.
   ========================================================================== */

.kaqi-hero {
	position: relative;
	overflow: hidden;
	background: var(--kaqi-deep);
	color: var(--kaqi-on-deep);
	padding-block: 4.5rem 5rem;
}

.kaqi-hero__arc {
	position: absolute;
	right: -8rem;
	top: -6rem;
	width: 34rem;
	height: 34rem;
	color: var(--kaqi-orange);
	opacity: 0.5;
	pointer-events: none;
}

.kaqi-hero__in {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
	gap: 3.5rem;
	align-items: center;
}

.kaqi-hero__eyebrow {
	display: block;
	margin-bottom: 1.1rem;
	color: var(--kaqi-orange);
}

.kaqi-hero__title {
	font-size: var(--kaqi-t-2xl);
	font-weight: 700;
	letter-spacing: -0.028em;
	color: var(--kaqi-white);
}

/* Trait tracé sous « mieux travailler ensemble » : le seul geste
   graphique du premier écran, dans la couleur de marque. */
.kaqi-underline {
	position: relative;
	display: inline-block;
	color: var(--kaqi-orange);
}
.kaqi-underline > svg {
	position: absolute;
	left: 0;
	bottom: -0.42em;
	width: 100%;
	height: 0.38em;
	overflow: visible;
}

.kaqi-hero__lede {
	margin-top: 1.35rem;
	max-width: 34rem;
	font-size: var(--kaqi-t-lg);
	line-height: 1.6;
	color: var(--kaqi-on-deep-2);
}

.kaqi-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 2rem;
}


/* ==========================================================================
   7. VIDÉOS — FAÇADE DE LECTEUR
   L'iframe Vimeo n'est injectée qu'au clic : le site chargeait quatre
   lecteurs dès l'ouverture, dont aucun n'était visible au premier écran.
   ========================================================================== */

.kaqi-video {
	border-radius: var(--kaqi-radius);
	overflow: hidden;
}
.kaqi-video--lg {
	background: var(--kaqi-deep-3);
	border: 1px solid rgba(237, 232, 223, 0.18);
}

.kaqi-video__still {
	position: relative;
	display: grid;
	place-items: center;
	aspect-ratio: 16 / 9;
	background-size: cover;
	background-position: center;
}
.kaqi-video--lg .kaqi-video__still {
	aspect-ratio: 16 / 10;
}

/* Dégradés de repli tant que les vignettes ne sont pas déposées */
.kaqi-video__still--a { background-color: #1B3B37; background-image: linear-gradient(150deg, #2E5B55, #1B3B37); }
.kaqi-video__still--b { background-color: #4A2F08; background-image: linear-gradient(150deg, #8A5C1A, #4A2F08); }
.kaqi-video__still--c { background-color: #202935; background-image: linear-gradient(150deg, #3E4F66, #202935); }

.kaqi-play {
	width: 3.2rem;
	height: 3.2rem;
	border: 0;
	border-radius: 50%;
	background: var(--kaqi-orange);
	display: grid;
	place-items: center;
	cursor: pointer;
	transition: transform 0.16s ease;
}
.kaqi-play:hover {
	transform: scale(1.07);
}
.kaqi-play::after {
	content: "";
	width: 0;
	height: 0;
	margin-left: 0.2rem;
	border-left: 0.75rem solid var(--kaqi-on-orange);
	border-top: 0.46rem solid transparent;
	border-bottom: 0.46rem solid transparent;
}
.kaqi-video--lg .kaqi-play {
	width: 3.6rem;
	height: 3.6rem;
}

.kaqi-video__dur {
	position: absolute;
	right: 0.6rem;
	bottom: 0.6rem;
	font-family: var(--kaqi-f-titre);
	font-size: 0.72rem;
	font-weight: 600;
	color: #fff;
	background: rgba(18, 43, 40, 0.75);
	padding: 0.12rem 0.4rem;
	border-radius: 3px;
}

.kaqi-video__meta {
	padding: 0.85rem 1.05rem;
}
.kaqi-video__title {
	font-family: var(--kaqi-f-titre);
	font-weight: 600;
	font-size: 0.95rem;
	color: var(--kaqi-white);
}

/* État après clic : l'iframe remplit le cadre */
.kaqi-video__still iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}


/* ==========================================================================
   8. BANDE DE RÉASSURANCE
   ========================================================================== */

.kaqi-trust {
	background: var(--kaqi-deep-2);
	color: var(--kaqi-on-deep-2);
	border-top: 1px solid rgba(237, 232, 223, 0.1);
}
.kaqi-trust__in {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
	gap: 1.5rem 2.5rem;
	padding-block: 1.6rem;
}
.kaqi-trust__item {
	display: flex;
	flex-direction: column;
	gap: 0.12rem;
}
.kaqi-trust__item b {
	font-family: var(--kaqi-f-titre);
	font-size: 1.35rem;
	font-weight: 700;
	letter-spacing: -0.01em;
	color: var(--kaqi-white);
}
.kaqi-trust__item span {
	font-size: 0.87rem;
	line-height: 1.45;
}


/* ==========================================================================
   9. BLOC THÈSE
   ========================================================================== */

.kaqi-these__in {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	gap: 3.5rem;
	align-items: start;
}

.kaqi-bigstat {
	font-family: var(--kaqi-f-titre);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 0.92;
}
.kaqi-bigstat__n {
	display: block;
	font-size: clamp(4.5rem, 11vw, 7.5rem);
	color: var(--kaqi-orange);
	font-variant-numeric: tabular-nums;
}
.kaqi-bigstat__c {
	display: block;
	max-width: 15rem;
	margin-top: 0.9rem;
	font-size: 1.15rem;
	font-weight: 500;
	line-height: 1.35;
	color: var(--kaqi-ink-2);
}

.kaqi-these__text {
	display: flex;
	flex-direction: column;
	gap: 1.05rem;
	max-width: var(--kaqi-prose);
}
.kaqi-these__text h2 {
	font-size: var(--kaqi-t-xl);
	font-weight: 700;
	letter-spacing: -0.02em;
	margin-bottom: 0.3rem;
}
.kaqi-these__text p {
	color: var(--kaqi-ink-2);
}
.kaqi-these__text strong {
	color: var(--kaqi-ink);
	font-weight: 600;
}


/* ==========================================================================
   10. OFFRES
   ========================================================================== */

.kaqi-offres {
	background: var(--kaqi-white);
	border-block: 1px solid var(--kaqi-rule);
}

.kaqi-offres__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
	gap: 1px;
	background: var(--kaqi-rule);
	border: 1px solid var(--kaqi-rule);
	border-radius: var(--kaqi-radius);
	overflow: hidden;
}

.kaqi-offre {
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
	padding: 1.75rem 1.6rem 1.6rem;
	background: var(--kaqi-white);
	text-decoration: none;
	transition: background-color 0.18s ease;
}
.kaqi-offre:hover {
	background: var(--kaqi-paper-2);
}
.kaqi-offre__num {
	font-family: var(--kaqi-f-titre);
	font-size: var(--kaqi-t-xs);
	font-weight: 600;
	letter-spacing: 0.1em;
	color: var(--kaqi-ink-3);
	font-variant-numeric: tabular-nums;
}
.kaqi-offre__title {
	font-size: 1.22rem;
	font-weight: 700;
	letter-spacing: -0.012em;
}
.kaqi-offre__q {
	font-family: var(--kaqi-f-titre);
	font-size: var(--kaqi-t-sm);
	font-weight: 500;
	line-height: 1.35;
	color: var(--kaqi-orange-dk);
}
.kaqi-offre__resume {
	font-size: 0.93rem;
	line-height: 1.55;
	color: var(--kaqi-ink-2);
}
.kaqi-offre__more {
	margin-top: auto;
	padding-top: 0.8rem;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-family: var(--kaqi-f-titre);
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--kaqi-ink);
}
.kaqi-offre__more::after {
	content: "\2192";
	transition: transform 0.16s ease;
}
.kaqi-offre:hover .kaqi-offre__more,
.kaqi-autre:hover .kaqi-offre__more {
	color: var(--kaqi-orange-dk);
}
.kaqi-offre:hover .kaqi-offre__more::after,
.kaqi-autre:hover .kaqi-offre__more::after {
	transform: translateX(3px);
}


/* ==========================================================================
   11. CAS PRATIQUES
   ========================================================================== */

.kaqi-cas {
	background: var(--kaqi-paper);
}
.kaqi-cas__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
	gap: var(--kaqi-gap);
	margin-top: 2.2rem;
}
.kaqi-cascard {
	display: flex;
	flex-direction: column;
	background: var(--kaqi-white);
	border: 1px solid var(--kaqi-rule);
	border-radius: var(--kaqi-radius);
	overflow: hidden;
}
.kaqi-cascard .kaqi-video {
	border-radius: 0;
}
.kaqi-cascard__body {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	padding: 1.1rem 1.2rem 1.3rem;
}
.kaqi-cascard__tag {
	font-family: var(--kaqi-f-titre);
	font-size: 0.74rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--kaqi-ink-3);
}
.kaqi-cascard__body h3 {
	font-size: 1.05rem;
	font-weight: 700;
}
.kaqi-cascard__body p {
	font-size: 0.9rem;
	line-height: 1.5;
	color: var(--kaqi-ink-2);
}
.kaqi-cas__more {
	margin-top: 1.8rem;
}


/* ==========================================================================
   12. SIX PRINCIPES D'ACTION
   La roue illustrée devient une liste : lisible sur mobile, lisible par
   Google, et modifiable sans repasser par un logiciel de dessin.
   ========================================================================== */

.kaqi-principes {
	background: var(--kaqi-deep);
	color: var(--kaqi-on-deep);
}
.kaqi-principes .kaqi-eyebrow {
	color: var(--kaqi-orange);
}
.kaqi-principes .kaqi-seclabel__bar {
	background: rgba(237, 232, 223, 0.2);
}
.kaqi-principes .kaqi-sectitle {
	color: var(--kaqi-white);
}
.kaqi-principes__lede {
	max-width: 40rem;
	margin-top: 0.9rem;
	color: var(--kaqi-on-deep-2);
}

.kaqi-principes__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
	margin-top: 2.6rem;
}
.kaqi-principe {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	padding: 1.4rem 1.4rem 1.4rem 0;
	border-top: 1px solid rgba(237, 232, 223, 0.18);
}
.kaqi-principe__n {
	flex: none;
	width: 1.75rem;
	height: 1.75rem;
	margin-top: 0.1rem;
	display: grid;
	place-items: center;
	border: 1.5px solid var(--kaqi-orange);
	border-radius: 50%;
	font-family: var(--kaqi-f-titre);
	font-size: 0.8rem;
	font-weight: 700;
	color: var(--kaqi-orange);
}
.kaqi-principe h3 {
	font-size: 1.02rem;
	font-weight: 600;
	color: var(--kaqi-white);
}
.kaqi-principe p {
	margin-top: 0.3rem;
	font-size: 0.88rem;
	line-height: 1.5;
	color: var(--kaqi-on-deep-2);
}


/* ==========================================================================
   13. TÉMOIGNAGES
   ========================================================================== */

.kaqi-temoins {
	background: var(--kaqi-paper-2);
}
.kaqi-temoins__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
	gap: var(--kaqi-gap);
}
.kaqi-quote {
	display: flex;
	flex-direction: column;
	gap: 0.9rem;
	padding: 1.4rem 1.5rem 1.5rem;
	background: var(--kaqi-white);
	border: 1px solid var(--kaqi-rule);
	border-left: 3px solid var(--kaqi-orange);
	border-radius: 6px;
}
.kaqi-quote blockquote {
	font-size: 1.02rem;
	line-height: 1.55;
	color: var(--kaqi-ink);
}
.kaqi-quote__who {
	font-family: var(--kaqi-f-titre);
	font-size: 0.84rem;
	line-height: 1.4;
	color: var(--kaqi-ink-3);
}
.kaqi-quote__who b {
	display: block;
	font-weight: 600;
	color: var(--kaqi-ink-2);
}


/* ==========================================================================
   14. VOTRE INTERLOCUTEUR
   ========================================================================== */

.kaqi-apropos {
	background: var(--kaqi-white);
	border-top: 1px solid var(--kaqi-rule);
}
.kaqi-apropos__in {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
	gap: 3rem;
	align-items: center;
}
.kaqi-portrait {
	max-width: 20rem;
	aspect-ratio: 4 / 5;
	display: grid;
	place-items: center;
	overflow: hidden;
	border: 1px solid var(--kaqi-rule);
	border-radius: var(--kaqi-radius);
	background: linear-gradient(165deg, #E9E2D6, #CFC4B2);
}
.kaqi-portrait img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.kaqi-portrait__todo {
	font-family: var(--kaqi-f-titre);
	font-size: var(--kaqi-t-xs);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-align: center;
	color: #8C8271;
	padding: 1rem;
}

.kaqi-apropos__text {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	max-width: var(--kaqi-prose);
}
.kaqi-apropos__text p {
	color: var(--kaqi-ink-2);
}
.kaqi-apropos__liens a {
	color: var(--kaqi-orange-dk);
}

.kaqi-creds {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	list-style: none;
	padding: 0;
	margin-top: 0.3rem;
}
.kaqi-creds li {
	font-family: var(--kaqi-f-titre);
	font-size: 0.82rem;
	font-weight: 500;
	color: var(--kaqi-ink-2);
	background: var(--kaqi-paper-2);
	border: 1px solid var(--kaqi-rule);
	border-radius: 999px;
	padding: 0.28rem 0.75rem;
}


/* ==========================================================================
   15. BANDEAU DE CONTACT
   Présent en bas de l'accueil et de chaque page d'offre : c'est ce qui
   manquait le plus au site actuel.
   ========================================================================== */

.kaqi-cta {
	background: var(--kaqi-orange);
	color: var(--kaqi-on-orange);
}
.kaqi-cta__in {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, auto);
	gap: 2.5rem;
	align-items: center;
}
.kaqi-cta__title {
	font-size: clamp(1.9rem, 4vw, 2.8rem);
	font-weight: 700;
	letter-spacing: -0.025em;
	color: #201200;
}
.kaqi-cta__text {
	margin-top: 0.8rem;
	max-width: 34rem;
	font-size: 1.05rem;
	color: #4A2E06;
}
.kaqi-cta__actions {
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
	align-items: stretch;
}


/* ==========================================================================
   16. GABARIT DE PAGE D'OFFRE
   ========================================================================== */

.kaqi-pagehead {
	background: var(--kaqi-deep);
	color: var(--kaqi-on-deep);
	padding-block: 3.5rem 3.75rem;
}
.kaqi-pagehead--court {
	padding-block: 3rem;
}
.kaqi-pagehead__in {
	max-width: 46rem;
}
.kaqi-breadcrumb {
	display: flex;
	gap: 0.5rem;
	font-family: var(--kaqi-f-titre);
	font-size: var(--kaqi-t-xs);
	color: var(--kaqi-on-deep-2);
	margin-bottom: 1.1rem;
}
.kaqi-breadcrumb a {
	text-decoration: none;
}
.kaqi-breadcrumb a:hover {
	color: var(--kaqi-white);
	text-decoration: underline;
}
.kaqi-pagehead__title {
	font-size: clamp(2rem, 4.4vw, 3.1rem);
	font-weight: 700;
	letter-spacing: -0.026em;
	color: var(--kaqi-white);
}
.kaqi-pagehead__lede {
	margin-top: 1.1rem;
	font-size: var(--kaqi-t-lg);
	line-height: 1.6;
	color: var(--kaqi-on-deep-2);
}
.kaqi-pagehead__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1.8rem;
}

.kaqi-article__in {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}
.kaqi-article__figure {
	border-radius: var(--kaqi-radius);
	overflow: hidden;
}

/* Colonne de lecture du contenu saisi dans WordPress */
.kaqi-prose {
	max-width: var(--kaqi-prose);
}
.kaqi-prose > * + * {
	margin-top: 1.05rem;
}
.kaqi-prose p {
	color: var(--kaqi-ink-2);
}
.kaqi-prose h2 {
	font-size: 1.55rem;
	font-weight: 700;
	letter-spacing: -0.018em;
	margin-top: 2.4rem;
	color: var(--kaqi-ink);
}
.kaqi-prose h3 {
	font-size: 1.18rem;
	font-weight: 700;
	margin-top: 1.9rem;
	color: var(--kaqi-ink);
}
.kaqi-prose ul,
.kaqi-prose ol {
	padding-left: 1.3rem;
	color: var(--kaqi-ink-2);
}
.kaqi-prose li + li {
	margin-top: 0.35rem;
}
.kaqi-prose a {
	color: var(--kaqi-orange-dk);
}
.kaqi-prose blockquote {
	padding-left: 1.1rem;
	border-left: 3px solid var(--kaqi-orange);
	font-size: 1.08rem;
	color: var(--kaqi-ink);
}
.kaqi-prose img {
	border-radius: 6px;
}

.kaqi-autres {
	background: var(--kaqi-paper-2);
}
.kaqi-autres__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
	gap: var(--kaqi-gap);
}
.kaqi-autre {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	padding: 1.4rem 1.4rem 1.3rem;
	background: var(--kaqi-white);
	border: 1px solid var(--kaqi-rule);
	border-radius: var(--kaqi-radius);
	text-decoration: none;
	transition: border-color 0.16s ease;
}
.kaqi-autre:hover {
	border-color: var(--kaqi-ink-3);
}
.kaqi-autre h3 {
	font-size: 1.08rem;
	font-weight: 700;
}
.kaqi-autre p {
	font-size: 0.9rem;
	line-height: 1.5;
	color: var(--kaqi-ink-2);
}


/* ==========================================================================
   17. PAGE DE CONTACT ET FORMULAIRE
   ========================================================================== */

.kaqi-contactpage__in {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
	gap: 3rem;
	align-items: start;
}

.kaqi-coord__title,
.kaqi-formwrap__title {
	font-size: 1.25rem;
	font-weight: 700;
	margin-bottom: 1.1rem;
}

.kaqi-coord__item {
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
	padding: 0.9rem 0;
	border-bottom: 1px solid var(--kaqi-rule);
	text-decoration: none;
}
.kaqi-coord__item:first-of-type {
	border-top: 1px solid var(--kaqi-rule);
}
.kaqi-coord__label {
	font-family: var(--kaqi-f-titre);
	font-size: var(--kaqi-t-xs);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--kaqi-ink-3);
}
.kaqi-coord__value {
	font-family: var(--kaqi-f-titre);
	font-size: 1.22rem;
	font-weight: 600;
	color: var(--kaqi-ink);
}
.kaqi-coord__item:hover .kaqi-coord__value {
	color: var(--kaqi-orange-dk);
}
.kaqi-coord__note {
	margin-top: 1.3rem;
	font-size: 0.92rem;
	color: var(--kaqi-ink-2);
}

.kaqi-form {
	display: flex;
	flex-direction: column;
	gap: 1.1rem;
	padding: 1.6rem;
	background: var(--kaqi-white);
	border: 1px solid var(--kaqi-rule);
	border-radius: var(--kaqi-radius);
}
.kaqi-form__row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
	gap: 1.1rem;
}

.kaqi-field {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}
.kaqi-field label {
	font-family: var(--kaqi-f-titre);
	font-size: 0.87rem;
	font-weight: 600;
	color: var(--kaqi-ink);
}
.kaqi-field input,
.kaqi-field textarea {
	font-family: var(--kaqi-f-texte);
	font-size: var(--kaqi-t-md);
	line-height: 1.5;
	color: var(--kaqi-ink);
	background: var(--kaqi-paper);
	border: 1px solid var(--kaqi-rule);
	border-radius: var(--kaqi-radius-sm);
	padding: 0.6rem 0.7rem;
	width: 100%;
}
.kaqi-field input:focus,
.kaqi-field textarea:focus {
	border-color: var(--kaqi-orange);
	background: var(--kaqi-white);
}
.kaqi-field textarea {
	resize: vertical;
	min-height: 7rem;
}

.kaqi-field--check {
	flex-direction: row;
	align-items: flex-start;
	gap: 0.6rem;
}
.kaqi-field--check input {
	width: auto;
	margin-top: 0.35rem;
	accent-color: var(--kaqi-orange);
}
.kaqi-field--check label {
	font-family: var(--kaqi-f-texte);
	font-size: 0.88rem;
	font-weight: 400;
	line-height: 1.5;
	color: var(--kaqi-ink-2);
}
.kaqi-field--check a {
	color: var(--kaqi-orange-dk);
}

.kaqi-form__notice {
	padding: 0.75rem 0.9rem;
	border-radius: var(--kaqi-radius-sm);
	font-size: 0.92rem;
	border: 1px solid transparent;
}
.kaqi-form__notice--succes {
	color: var(--kaqi-succes);
	background: var(--kaqi-succes-bg);
	border-color: var(--kaqi-succes);
}
.kaqi-form__notice--erreur {
	color: var(--kaqi-erreur);
	background: var(--kaqi-erreur-bg);
	border-color: var(--kaqi-erreur);
}

.kaqi-form__hint {
	font-size: 0.82rem;
	color: var(--kaqi-ink-3);
}

.kaqi-form button[type="submit"] {
	align-self: flex-start;
}

/* Champ piège : hors écran, invisible aux lecteurs d'écran */
.kaqi-honeypot {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}


/* ==========================================================================
   18. PIED DE PAGE
   Absent du site actuel : la page d'accueil s'arrêtait sans coordonnées
   ni liens.
   ========================================================================== */

.kaqi-foot {
	background: var(--kaqi-deep-2);
	color: var(--kaqi-on-deep-2);
	padding-block: 3.5rem 2rem;
}
.kaqi-foot__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
	gap: 2.5rem;
}
.kaqi-foot__signature {
	margin-top: 1rem;
	font-size: 0.92rem;
	line-height: 1.7;
}
.kaqi-foot__signature b {
	font-weight: 600;
	color: var(--kaqi-orange);
}
.kaqi-foot__title {
	font-family: var(--kaqi-f-titre);
	font-size: 0.76rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--kaqi-on-deep);
	margin-bottom: 0.8rem;
}
.kaqi-foot__list {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.kaqi-foot__list a {
	font-size: 0.92rem;
	color: var(--kaqi-on-deep-2);
	text-decoration: none;
}
.kaqi-foot__list a:hover {
	color: var(--kaqi-white);
	text-decoration: underline;
}
.kaqi-foot__bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.5rem 1.5rem;
	margin-top: 2.75rem;
	padding-top: 1.25rem;
	border-top: 1px solid rgba(237, 232, 223, 0.14);
	font-family: var(--kaqi-f-titre);
	font-size: 0.82rem;
}
.kaqi-foot__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem;
}
.kaqi-foot__legal a {
	text-decoration: none;
}
.kaqi-foot__legal a:hover {
	color: var(--kaqi-white);
	text-decoration: underline;
}


/* ==========================================================================
   19. BANDEAU DE CONSENTEMENT
   ========================================================================== */

.kaqi-consent {
	position: fixed;
	inset-inline: 0;
	bottom: 0;
	z-index: 60;
	background: var(--kaqi-deep);
	color: var(--kaqi-on-deep);
	border-top: 2px solid var(--kaqi-orange);
	box-shadow: 0 -8px 32px -16px rgba(0, 0, 0, 0.5);
}
.kaqi-consent__in {
	max-width: var(--kaqi-max);
	margin-inline: auto;
	padding: 1.1rem 1.75rem;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 2rem;
}
.kaqi-consent__text {
	max-width: 44rem;
	font-size: 0.92rem;
	line-height: 1.55;
	color: var(--kaqi-on-deep-2);
}
.kaqi-consent__text a {
	color: var(--kaqi-orange);
}
.kaqi-consent__actions {
	display: flex;
	gap: 0.6rem;
	flex: none;
}


/* ==========================================================================
   20. ADAPTATIONS MOBILES
   ========================================================================== */

@media (max-width: 60rem) {
	.kaqi-hero__in,
	.kaqi-these__in,
	.kaqi-apropos__in,
	.kaqi-cta__in,
	.kaqi-contactpage__in {
		grid-template-columns: 1fr;
		gap: 2.5rem;
	}
	.kaqi-foot__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2rem;
	}
	.kaqi-cta__actions {
		flex-direction: row;
		flex-wrap: wrap;
	}
	.kaqi-portrait {
		max-width: 15rem;
	}
}

@media (max-width: 46rem) {
	.kaqi-page {
		font-size: 16px;
	}
	.kaqi-page section {
		padding-block: 3.5rem;
	}
	.kaqi-hero {
		padding-block: 3rem 3.5rem;
	}
	.kaqi-hero__arc {
		width: 22rem;
		height: 22rem;
		right: -7rem;
		top: -4rem;
	}

	/* Menu : le bouton remplace la barre, le panneau se déplie sous l'en-tête */
	.kaqi-burger {
		display: block;
	}
	.kaqi-head__cta,
	.kaqi-lang {
		display: none;
	}
	.kaqi-callbar {
		display: block;
	}
	.kaqi-nav {
		position: absolute;
		inset-inline: 0;
		top: 100%;
		background: var(--kaqi-deep);
		border-bottom: 1px solid rgba(237, 232, 223, 0.14);
		padding: 0.5rem 1.75rem 1.25rem;
		display: none;
	}
	.kaqi-nav.is-open {
		display: block;
	}
	.kaqi-nav__list {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
	}
	.kaqi-nav__list li {
		border-top: 1px solid rgba(237, 232, 223, 0.14);
	}
	.kaqi-nav__list a {
		padding-block: 0.85rem;
		border-bottom: 0;
		font-size: 1rem;
	}

	.kaqi-foot__grid {
		grid-template-columns: 1fr;
	}
	.kaqi-principe {
		padding-right: 0;
	}
	.kaqi-form {
		padding: 1.2rem;
	}
	.kaqi-consent__in {
		padding: 1rem 1.25rem;
	}
	.kaqi-consent__actions {
		width: 100%;
	}
	.kaqi-consent__actions .kaqi-btn {
		flex: 1;
	}
}


/* ==========================================================================
   21. IMPRESSION ET MOUVEMENT RÉDUIT
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	.kaqi-page *,
	.kaqi-page *::before,
	.kaqi-page *::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
	}
}

@media print {
	.kaqi-head,
	.kaqi-callbar,
	.kaqi-consent,
	.kaqi-hero__arc,
	.kaqi-cta__actions {
		display: none !important;
	}
	.kaqi-page {
		background: #fff;
		color: #000;
		font-size: 11pt;
	}
	.kaqi-hero,
	.kaqi-principes,
	.kaqi-pagehead,
	.kaqi-foot {
		background: #fff !important;
		color: #000 !important;
	}
}
