/*
Theme Name: Kimera
Description: Thème bloc de Kimera Climatisation Inc.
Author: Simon Gagnon
Version: 0.2.0
Requires at least: 6.6
Requires PHP: 8.0
Text Domain: kimera
*/

/*
 * Signature visuelle : les trois barres du « E » du logo KIMERACLIM.
 * Elles reviennent dans les surtitres, les numéros et les fonds (voir --k-barres).
 */
:root {
	--k-nuit: var(--wp--preset--color--bleu-fonce);
	--k-bleu: var(--wp--preset--color--bleu);
	--k-vif: var(--wp--preset--color--bleu-vif);
	--k-glace: var(--wp--preset--color--glace);
	--k-ligne: var(--wp--preset--color--ligne);
	--k-titre: var(--wp--preset--font-family--titre);
	--k-rayon: 6px;
	--k-ombre: 0 24px 60px -20px rgba(10, 30, 51, .28);
	--k-ease: cubic-bezier(.2, .7, .2, 1);
	--k-barres: linear-gradient(currentColor 0 0) 0 0 / 100% 2px no-repeat,
		linear-gradient(currentColor 0 0) 0 50% / 100% 2px no-repeat,
		linear-gradient(currentColor 0 0) 0 100% / 100% 2px no-repeat;
}

/* ---------- Base ---------- */
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { max-width: 100%; height: auto; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }
::selection { background: var(--k-bleu); color: #fff; }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--k-vif); outline-offset: 3px; border-radius: 2px; }
:where(.has-blanc-color, .k-callbar, .is-menu-open) :focus-visible { outline-color: var(--k-glace); }
h1, h2, h3 { text-wrap: balance; }
[id] { scroll-margin-top: 5.5rem; } /* les ancres ne passent pas sous l'en-tête collant */
p { text-wrap: pretty; }
.wp-block-image { margin: 0; }
.has-blanc-color :where(h1, h2, h3, h4) { color: inherit; }
.wp-element-button, .wp-block-button__link { transition: background-color .2s var(--k-ease), color .2s, border-color .2s, transform .2s var(--k-ease); }
.wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-button.is-style-outline .wp-block-button__link { border: 2px solid currentColor; background: transparent; color: var(--k-bleu); padding: calc(.95rem - 2px) calc(1.6rem - 2px); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--k-bleu); border-color: var(--k-bleu); color: #fff; }
.has-blanc-color .wp-block-button.is-style-outline .wp-block-button__link { color: #fff; border-color: rgba(255, 255, 255, .45); }
.has-blanc-color .wp-block-button.is-style-outline .wp-block-button__link:hover { background: #fff; border-color: #fff; color: var(--k-nuit); }

/* ---------- En-tête ---------- */
/* Tout l'en-tête colle en haut ; la barre du haut glisse hors de l'écran (top négatif). */
header.wp-block-template-part { position: sticky; top: -2.4rem; z-index: 50; }
.k-topbar { font-size: .85rem; height: 2.4rem; display: flex; align-items: center; padding-block: 0; }
.k-topbar > .alignwide { width: 100%; }
.k-topbar p { margin: 0; opacity: .78; }
.k-topbar a { color: inherit; text-decoration: none; }
.k-topbar a:hover { text-decoration: underline; }
.k-header { padding-block: 1.05rem; transition: padding .25s var(--k-ease), box-shadow .25s; }
.is-scrolled .k-header { padding-block: .6rem; box-shadow: 0 10px 30px -18px rgba(10, 30, 51, .35); }
.k-logo img { width: 200px; height: auto; display: block; transition: width .25s var(--k-ease); }
.is-scrolled .k-logo img { width: 172px; }
.k-header-droite { gap: 1.75rem !important; }
.k-header .wp-block-navigation a { text-decoration: none; color: var(--wp--preset--color--texte); position: relative; }
.k-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item > a::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 2px; background: var(--k-bleu);
	transform: scaleX(0); transform-origin: left; transition: transform .25s var(--k-ease);
}
.k-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item:hover > a::after { transform: scaleX(1); }
.k-header .wp-block-navigation .wp-block-navigation__submenu-container {
	border: 0 !important; border-radius: var(--k-rayon); box-shadow: var(--k-ombre); padding: .6rem 0; min-width: 270px !important; margin-top: .4rem;
}
/* Pont invisible au-dessus du sous-menu : la souris traverse l'espace sans que le menu se referme. */
.k-header .wp-block-navigation .wp-block-navigation__submenu-container::before {
	content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: 1.4rem;
}.k-header .wp-block-navigation .wp-block-navigation__submenu-container a { font-weight: 500; padding: .5rem 1.2rem; }
.k-header .wp-block-navigation .wp-block-navigation__submenu-container a:hover { color: var(--k-bleu); background: var(--wp--preset--color--bleu-pale); }
.k-phone { display: flex; flex-direction: column; line-height: 1.1; text-decoration: none; color: var(--k-nuit); padding-left: 1.75rem; border-left: 1px solid var(--k-ligne); }
.k-phone-label { font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; color: var(--wp--preset--color--gris-texte); font-weight: 600; }
.k-phone-num { font-family: var(--k-titre); font-weight: 700; font-size: 1.35rem; letter-spacing: .02em; }
.k-phone:hover .k-phone-num { color: var(--k-bleu); }
.k-header-cta .wp-block-button__link { font-size: 1rem; padding: .75rem 1.2rem; }

/* ---------- Menu mobile (panneau plein écran de WordPress, restylé) ---------- */
/* Bouton : les trois barres du logo au lieu de l'icône par défaut. */
.k-header .wp-block-navigation__responsive-container-open {
	width: 2.75rem; height: 2.75rem; align-items: center; justify-content: center; border-radius: var(--k-rayon); color: var(--k-nuit);
	background: var(--wp--preset--color--bleu-pale);
}
.k-header .wp-block-navigation__responsive-container-open svg { display: none; }
.k-header .wp-block-navigation__responsive-container-open::before { content: ""; width: 1.4rem; height: .95rem; background: var(--k-barres); }
.k-menu-tete, .k-menu-pied { display: none; }

.k-header .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--k-nuit) !important; color: #fff !important; padding: 0 !important; overflow-y: auto;
	background-image: radial-gradient(40rem 26rem at 110% 0%, rgba(29, 111, 184, .5), transparent 60%) !important;
	animation: k-menu-fond .3s var(--k-ease) both;
}
.is-menu-open .wp-block-navigation__responsive-close { max-width: none; min-height: 100%; display: flex; }
.is-menu-open .wp-block-navigation__responsive-dialog {
	flex: 1; display: flex; flex-direction: column; margin: 0 !important; position: relative;
	padding: 1.15rem 1.25rem calc(1.5rem + env(safe-area-inset-bottom));
}
.is-menu-open .k-menu-tete { display: flex; align-items: center; height: 2.75rem; }
.is-menu-open .k-menu-tete img { width: 150px; height: auto; display: block; }
.k-header .is-menu-open .wp-block-navigation__responsive-container-close {
	top: 1.15rem; right: 1.25rem; width: 2.75rem; height: 2.75rem; display: grid; place-items: center;
	border-radius: var(--k-rayon); background: rgba(255, 255, 255, .1); color: #fff;
}
.k-header .is-menu-open .wp-block-navigation__responsive-container-close svg { width: 1.5rem; height: 1.5rem; fill: currentColor; }
.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 2rem !important; align-items: stretch !important; flex: 1; }
.k-header .is-menu-open .wp-block-navigation__container { gap: 0 !important; width: 100%; align-items: stretch !important; }
.k-header .is-menu-open .wp-block-navigation__container > li {
	align-items: stretch !important; border-bottom: 1px solid rgba(255, 255, 255, .12); padding: 0 !important;
	animation: k-menu-lien .5s var(--k-ease) both;
}
.k-header .is-menu-open .wp-block-navigation__container > li:nth-child(2) { animation-delay: .05s; }
.k-header .is-menu-open .wp-block-navigation__container > li:nth-child(3) { animation-delay: .1s; }
.k-header .is-menu-open .wp-block-navigation__container > li:nth-child(4) { animation-delay: .15s; }
.k-header .is-menu-open .wp-block-navigation__container > li > a {
	color: #fff; font-family: var(--k-titre); font-weight: 700; text-transform: uppercase; letter-spacing: .02em;
	font-size: 2.1rem; line-height: 1; padding: 1.05rem 0 !important; width: 100%; display: flex; justify-content: space-between; align-items: center;
}
.k-header .is-menu-open .wp-block-navigation__container > li:not(.has-child) > a::after {
	content: "→"; position: static; transform: none; background: none; height: auto; font-size: 1.5rem; color: var(--k-glace);
}
.k-header .is-menu-open .wp-block-navigation-submenu__toggle, .k-header .is-menu-open .wp-block-navigation__submenu-icon { display: none !important; }
.k-header .is-menu-open .wp-block-navigation__submenu-container {
	box-shadow: none; background: none !important; min-width: 0 !important; margin: -.3rem 0 0 !important;
	padding: 0 0 1.1rem !important; gap: 0 !important;
}
.k-header .is-menu-open .wp-block-navigation__submenu-container a {
	color: rgba(255, 255, 255, .75); font-size: 1.05rem; font-weight: 500; padding: .5rem 0 .5rem 1rem !important;
	border-left: 2px solid rgba(143, 208, 255, .25); width: 100%; box-sizing: border-box;
}
.k-header .is-menu-open .wp-block-navigation__submenu-container li { align-items: stretch !important; width: 100%; }
.k-header .is-menu-open .wp-block-navigation__submenu-container a:hover,
.k-header .is-menu-open .wp-block-navigation__submenu-container a:focus { background: none; color: #fff; border-left-color: var(--k-glace); }
.is-menu-open .k-menu-pied { display: grid; gap: .75rem; margin-top: 2rem; animation: k-menu-lien .5s .2s var(--k-ease) both; }
.k-menu-pied a { text-decoration: none; text-align: center; border-radius: 4px; padding: 1rem; font-family: var(--k-titre); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: 1.2rem; }
.k-header a.k-menu-tel { color: #fff; border: 2px solid rgba(255, 255, 255, .3); display: flex; flex-direction: column; line-height: 1.1; font-size: 1.6rem !important; }
.k-menu-tel span { font-family: var(--wp--preset--font-family--texte); font-size: .72rem; letter-spacing: .14em; color: var(--k-glace); font-weight: 600; margin-bottom: .2rem; }
.k-header a.k-menu-btn { background: #fff; color: var(--k-nuit); }
.k-menu-pied p { margin: .5rem 0 0; text-align: center; font-size: .85rem; color: rgba(255, 255, 255, .55); }
html.has-modal-open .k-callbar { display: none; }
@keyframes k-menu-fond { from { opacity: 0; } }
@keyframes k-menu-lien { from { opacity: 0; translate: 0 14px; } }
@media (prefers-reduced-motion: reduce) {
	.k-header .is-menu-open *, .k-header .wp-block-navigation__responsive-container.is-menu-open { animation: none !important; }
}

/* ---------- Surtitres et ouvertures de section ---------- */
.k-eyebrow {
	font-family: var(--k-titre); font-weight: 600; text-transform: uppercase; letter-spacing: .16em; font-size: .95rem;
	color: var(--k-vif); display: inline-flex; align-items: center; gap: .75rem; margin: 0;
}
.k-eyebrow::before { content: ""; width: 1.4rem; height: .8rem; background: var(--k-barres); flex: none; }
.k-eyebrow--centre { display: flex; justify-content: center; }
.has-blanc-color .k-eyebrow { color: var(--k-glace); }
.k-section-head { max-width: 46rem; margin-bottom: clamp(2rem, 4vw, 3.25rem); }
.k-section-head > * + * { margin-top: 1rem; }
.k-section-head h2 { margin-top: 1.1rem; }
.k-intro { font-size: 1.2rem; color: var(--wp--preset--color--gris-texte); max-width: 40em; }
.has-blanc-color .k-intro { color: rgba(255, 255, 255, .75); }
.k-split-head { align-items: end !important; margin-bottom: clamp(2rem, 4vw, 3rem); }
.k-split-head .k-section-head { margin-bottom: 0; }

/* ---------- Héros (toutes les pages) ---------- */
.k-hero {
	position: relative; overflow: hidden; isolation: isolate;
	background-image:
		radial-gradient(60rem 30rem at 85% -10%, rgba(29, 111, 184, .45), transparent 60%),
		linear-gradient(112deg, transparent 0 58%, rgba(20, 88, 146, .22) 58% 100%);
}
.k-hero::after {
	/* Les trois barres du logo, en très grand, en filigrane. */
	content: ""; position: absolute; z-index: -1; right: -6rem; bottom: -4rem; width: 34rem; height: 20rem;
	color: rgba(143, 208, 255, .06);
	background: linear-gradient(currentColor 0 0) 0 0 / 100% 22% no-repeat, linear-gradient(currentColor 0 0) 0 50% / 100% 22% no-repeat, linear-gradient(currentColor 0 0) 0 100% / 100% 22% no-repeat;
}
.k-hero h1 { font-size: clamp(2.75rem, 5.6vw, 5.25rem); line-height: .95; margin-top: 1.25rem; }
.k-accent { color: var(--k-glace); }
.k-lead { font-size: clamp(1.15rem, 1.6vw, 1.35rem); line-height: 1.55; color: rgba(255, 255, 255, .82); max-width: 34em; }
.k-hero .wp-block-buttons { margin-top: 2rem; }
.k-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: #fff; color: var(--k-nuit); }
.k-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: var(--k-glace); }
.k-hero-note { font-size: .92rem; color: rgba(255, 255, 255, .72); margin-top: 1.25rem; }
.k-hero img { border-radius: var(--k-rayon); }
.k-hero:not(.k-hero--accueil) img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; box-shadow: var(--k-ombre); }

/* Héros de l'accueil : collage de trois photos verticales */
.k-hero--accueil { padding-block: clamp(3.5rem, 7vw, 6.5rem) clamp(7rem, 11vw, 9.5rem); }
.k-hero--accueil > .wp-block-columns { gap: clamp(2rem, 5vw, 5rem); }
.k-collage { position: relative; display: grid; grid-template-columns: 1.1fr 1fr; grid-template-rows: 1fr 1fr; gap: 14px; aspect-ratio: 1 / 1.08; }
.k-collage > figure { margin: 0 !important; overflow: hidden; border-radius: var(--k-rayon); box-shadow: var(--k-ombre); }
.k-collage > figure:first-child { grid-row: 1 / span 2; }
.k-collage > figure:nth-child(2) { transform: translateY(-1.5rem); }
.k-collage > figure:nth-child(3) { transform: translateY(1.5rem); }
.k-collage img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; display: block; }
.k-badge {
	position: absolute; left: -1.5rem; bottom: 2rem; margin: 0 !important; max-width: 15rem;
	background: #fff; color: var(--wp--preset--color--texte); border-radius: var(--k-rayon); box-shadow: var(--k-ombre);
	padding: 1rem 1.2rem 1rem 3.6rem; font-size: .9rem; line-height: 1.35;
}
.k-badge strong { display: block; font-family: var(--k-titre); text-transform: uppercase; font-size: 1.15rem; color: var(--k-nuit); letter-spacing: .02em; }
.k-badge::before {
	content: ""; position: absolute; left: 1.1rem; top: 1.1rem; width: 1.7rem; height: 1.7rem; border-radius: 50%;
	background: var(--k-bleu) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpath d='M5 12l5 5L19 7'/%3E%3C/svg%3E") center / 60% no-repeat;
}

/* ---------- Bandeau de preuves (chevauche le héros) ---------- */
.k-proofs-wrap { position: relative; z-index: 2; margin-top: calc(-1 * clamp(4rem, 7vw, 5.5rem)) !important; }
.k-proofs {
	display: grid; grid-template-columns: repeat(4, 1fr); background: #fff; border-radius: var(--k-rayon); box-shadow: var(--k-ombre);
}
.k-proofs > * { padding: clamp(1.4rem, 2.5vw, 2rem) clamp(1.2rem, 2.5vw, 2rem); margin: 0 !important; }
.k-proofs > * + * { border-left: 1px solid var(--k-ligne); }
.k-proof-num { font-family: var(--k-titre); font-weight: 700; font-size: clamp(2.2rem, 3.6vw, 3rem); line-height: 1; color: var(--k-bleu); margin: 0; text-transform: uppercase; }
.k-proof-label { margin: .5rem 0 0; font-size: .98rem; line-height: 1.4; color: var(--wp--preset--color--gris-texte); }

/* ---------- Sections ---------- */
.k-section { padding-block: clamp(3.75rem, 7vw, 6.5rem); }
.k-section--cta { padding-block: clamp(3rem, 6vw, 5rem) 0; }
.k-section--mince { padding-block: clamp(2.5rem, 5vw, 4rem); border-block: 1px solid var(--k-ligne); }
.k-section--sombre { background-image: radial-gradient(50rem 26rem at 0% 100%, rgba(29, 111, 184, .35), transparent 60%); }
.k-section--sombre p { color: rgba(255, 255, 255, .78); }
.k-section--sombre .wp-block-buttons { margin-top: 2rem; }
.k-section--sombre .wp-block-button__link { background: #fff; color: var(--k-nuit); }
.k-section--sombre .wp-block-button__link:hover { background: var(--k-glace); }

/* Cartes de service avec photo */
.k-svcs { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.25rem, 2.5vw, 2rem); }
.k-svcs > * { margin: 0 !important; }
.k-svc { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--k-ligne); border-radius: var(--k-rayon); overflow: hidden; transition: transform .35s var(--k-ease), box-shadow .35s var(--k-ease), border-color .35s; }
.k-svc > * { margin: 0; padding-inline: clamp(1.4rem, 2.2vw, 1.9rem); }
.k-svc > figure { padding: 0; overflow: hidden; }
.k-svc img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; transition: transform .6s var(--k-ease); }
.k-svc .k-num { font-family: var(--k-titre); font-weight: 700; font-size: .95rem; letter-spacing: .14em; color: var(--k-vif); padding-top: 1.6rem; }
.k-svc h3 { margin-top: .35rem; font-size: clamp(1.8rem, 2.4vw, 2.2rem); }
.k-svc h3 a { color: inherit; text-decoration: none; }
.k-svc h3 a::after { content: ""; position: absolute; inset: 0; } /* toute la carte est cliquable */
.k-svc > p:not(.k-num):not(.k-more) { margin-top: .75rem; color: var(--wp--preset--color--gris-texte); flex: 1; }
.k-more { padding-block: 1.25rem 1.6rem; font-family: var(--k-titre); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.k-more a { text-decoration: none; color: var(--k-bleu); }
.k-more a::after { content: "→"; margin-left: .45em; display: inline-block; transition: transform .3s var(--k-ease); }
.k-svc:hover { transform: translateY(-4px); box-shadow: var(--k-ombre); border-color: transparent; }
.k-svc:hover img { transform: scale(1.05); }
.k-svc:hover .k-more a::after { transform: translateX(4px); }

/* Étapes : numéros en barres */
.k-steps { counter-reset: step; list-style: none; padding-left: 0; }
.k-steps li { counter-increment: step; position: relative; padding-left: 3.4rem; margin-bottom: 1.4rem; min-height: 2.4rem; }
.k-steps li::before {
	content: counter(step, decimal-leading-zero); position: absolute; left: 0; top: -.15rem;
	font-family: var(--k-titre); font-weight: 700; font-size: 1.5rem; color: var(--k-bleu); line-height: 1.2;
}
.k-steps--ligne { margin: 0; }
.k-steps--ligne li { padding: 1.5rem 0 1.5rem 4.5rem; margin: 0; border-top: 1px solid rgba(255, 255, 255, .14); color: rgba(255, 255, 255, .72); }
.k-steps--ligne li:last-child { border-bottom: 1px solid rgba(255, 255, 255, .14); }
.k-steps--ligne li strong { display: block; font-family: var(--k-titre); text-transform: uppercase; font-size: 1.45rem; letter-spacing: .02em; color: #fff; margin-bottom: .2rem; }
.k-steps--ligne li::before { top: 1.35rem; font-size: 2.1rem; color: var(--k-glace); }

/* Mosaïque de réalisations */
.k-mosaic { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(.9rem, 2vw, 1.5rem); }
.k-mosaic > figure { position: relative; margin: 0 !important; border-radius: var(--k-rayon); overflow: hidden; }
.k-mosaic > figure:nth-child(3n + 2) { transform: translateY(2.5rem); }
.k-mosaic img { width: 100%; aspect-ratio: 5 / 6; object-fit: cover; display: block; transition: transform .7s var(--k-ease); }
.k-mosaic figcaption {
	position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 3rem 1.2rem 1rem; text-align: left;
	background: linear-gradient(transparent, rgba(10, 30, 51, .85)); color: #fff;
	font-family: var(--k-titre); font-weight: 600; text-transform: uppercase; letter-spacing: .08em; font-size: .95rem;
}
.k-mosaic > figure:hover img { transform: scale(1.04); }
.k-mosaic + * { margin-top: 4rem; }

/* Marques */
/* Mur de marques : des cases séparées par un filet, en attendant les vrais logos. */
.k-brands {
	display: flex; flex-wrap: wrap; gap: 1px; margin-top: 1.75rem !important; background: var(--k-ligne);
	border: 1px solid var(--k-ligne); border-radius: var(--k-rayon); overflow: hidden;
}
.k-brands span {
	flex: 1 1 0; min-width: 8.5rem; display: grid; place-items: center; padding: 1.6rem .5rem; background: #fff;
	font-family: var(--k-titre); font-weight: 700; font-size: clamp(1.2rem, 1.9vw, 1.55rem); text-transform: uppercase; letter-spacing: .06em;
	color: #8592a1; transition: color .2s, background .2s;
}
.k-brands span:hover { color: var(--k-bleu); background: var(--wp--preset--color--bleu-pale); }
p.k-brands:not(:has(span)) { justify-content: flex-start; font-family: var(--k-titre); font-size: 1.4rem; color: #9aa6b4; text-transform: uppercase; }

/* Mur de logos : les vraies marques, en couleur. */
.k-logos {
	list-style: none; padding: 0; margin: 1.75rem 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); gap: 1px;
	background: var(--k-ligne); border: 1px solid var(--k-ligne); border-radius: var(--k-rayon); overflow: hidden;
}
.k-logos li { margin: 0; background: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .6rem; padding: 1.5rem 1rem 1.1rem; min-height: 8rem; box-sizing: border-box; }
.k-logos img { display: block; max-width: 100%; max-height: 3.1rem; width: auto; height: auto; object-fit: contain; transition: transform .25s var(--k-ease); }
.k-logos li:hover img { transform: scale(1.06); }
.k-logos .k-logo-texte { font-family: var(--k-titre); font-weight: 800; font-size: 1.9rem; letter-spacing: .02em; color: #1d3f8f; line-height: 3.1rem; }
.k-logos small { font-size: .78rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--gris-texte); }
.k-logos-pied { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .5rem 1.5rem; margin-top: 1rem !important; font-size: .95rem; color: var(--wp--preset--color--gris-texte); }
.k-logos-pied a { font-weight: 700; color: var(--k-bleu); text-decoration: none; }
.k-logos-pied a:hover { text-decoration: underline; }

/* Modèles : fiches produits avec la fiche technique PDF. */
.k-modeles { display: grid; grid-template-columns: repeat(auto-fill, minmax(18.5rem, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); margin-top: 2.25rem; }
.k-modele {
	display: flex; flex-direction: column; background: #fff; border-radius: var(--k-rayon); box-shadow: var(--k-ombre); overflow: hidden;
	transition: transform .25s var(--k-ease), box-shadow .25s;
}
.k-modele:hover { transform: translateY(-3px); }
.k-modele-img { position: relative; background: linear-gradient(180deg, var(--wp--preset--color--bleu-pale), #fff); padding: 1.5rem 1.5rem .5rem; }
.k-modele-img img { display: block; width: 100%; aspect-ratio: 6 / 5; object-fit: contain; }
.k-modele-type { position: absolute; top: 1rem; left: 1rem; font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; background: var(--k-nuit); color: #fff; padding: .3rem .65rem; border-radius: 999px; }
.k-modele-corps { display: flex; flex-direction: column; gap: .8rem; padding: 1.25rem 1.5rem 1.5rem; flex: 1; }
.k-modele-marque { margin: 0; font-size: .8rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--k-vif); }
.k-modele h3 { margin: 0; font-size: 1.6rem; line-height: 1.05; }
.k-modele p { margin: 0; font-size: .95rem; }
.k-modele-btu { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.k-modele-btu li { margin: 0; font-size: .8rem; font-weight: 600; padding: .25rem .6rem; border-radius: 999px; background: var(--wp--preset--color--bleu-pale); color: var(--k-nuit); }
.k-modele-points { list-style: none; padding: 0; margin: 0; display: grid; gap: .3rem; font-size: .9rem; }
.k-modele-points li { margin: 0; padding-left: 1.4rem; position: relative; }
.k-modele-points li::before { content: "✓"; position: absolute; left: 0; font-weight: 700; color: var(--k-bleu); }
.k-modele-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: auto; padding-top: .5rem; }
.k-modele-actions a { flex: 1 1 auto; text-align: center; text-decoration: none; font-weight: 700; font-size: .92rem; padding: .75rem 1rem; border-radius: 4px; transition: background .2s, color .2s, border-color .2s; }
.k-modele-pdf { border: 2px solid var(--k-ligne); color: var(--k-nuit); }
.k-modele-pdf::before { content: "PDF"; font-size: .68rem; letter-spacing: .08em; background: #c8102e; color: #fff; padding: .15rem .35rem; border-radius: 3px; margin-right: .5rem; vertical-align: 1px; }
.k-modele-pdf:hover { border-color: var(--k-bleu); color: var(--k-bleu); }
.k-modele-prix { background: var(--k-bleu); color: #fff; }
.k-modele-prix:hover { background: var(--k-vif); color: #fff; }

/* Avis */
.k-avis { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1rem, 2vw, 1.5rem); }
.k-avis > * { margin: 0 !important; }
.k-quote { background: #fff; border-radius: var(--k-rayon); padding: clamp(1.5rem, 2.5vw, 2rem); border: 1px solid var(--k-ligne); height: 100%; box-sizing: border-box; }
.k-quote p { margin: 0; }
.k-quote p + p { margin-top: 1.1rem; font-size: .95rem; }
.k-quote p:first-child::before { content: "★★★★★"; display: block; color: #f5b301; letter-spacing: .18em; margin-bottom: .8rem; font-size: 1rem; }
.k-quote--vedette {
	grid-column: 1 / -1; background: var(--k-nuit); color: #fff; border-color: transparent; position: relative; overflow: hidden;
	padding: clamp(2rem, 5vw, 3.5rem) clamp(1.5rem, 6vw, 5rem);
}
.k-quote--vedette p:first-child { font-size: clamp(1.4rem, 2.6vw, 2.1rem); line-height: 1.3; max-width: 46rem; font-weight: 500; }
.k-quote--vedette p + p { color: rgba(255, 255, 255, .7); margin-top: 1.5rem; }
.k-quote--vedette::after { content: "”"; position: absolute; right: 3rem; top: -1rem; font-family: var(--k-titre); font-size: 20rem; line-height: 1; color: rgba(143, 208, 255, .1); }

/* Bandeau CTA */
.k-cta {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2rem;
	border-radius: var(--k-rayon); padding: clamp(2.5rem, 5vw, 4rem) clamp(1.5rem, 5vw, 4rem) !important; position: relative; overflow: hidden; isolation: isolate;
	background-image: linear-gradient(112deg, transparent 0 62%, rgba(255, 255, 255, .08) 62% 100%);
}
.k-cta > .wp-block-group { max-width: 40rem; }
.k-cta > .wp-block-group > * + * { margin-top: .9rem; }
.k-cta h2 { margin-top: 1rem; }
.k-cta p { color: rgba(255, 255, 255, .85); }
.k-cta .k-eyebrow { color: var(--k-glace); }
.k-cta .wp-block-buttons { margin: 0; }
.k-cta .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: #fff; color: var(--k-bleu); }
.k-cta .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: var(--k-nuit); color: #fff; }

/* Villes */
.k-villes { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; }
.k-villes li { margin: 0; }
.k-villes a { display: flex; flex-direction: column; gap: .2rem; height: 100%; box-sizing: border-box; padding: 1.1rem 1.2rem; border: 1px solid var(--k-ligne); border-radius: var(--k-rayon); text-decoration: none; transition: border-color .2s, background .2s, transform .25s var(--k-ease); }
.k-ville { font-family: var(--k-titre); font-weight: 700; text-transform: uppercase; font-size: 1.3rem; color: var(--k-nuit); line-height: 1.1; }
.k-duree { font-size: .88rem; color: var(--wp--preset--color--gris-texte); }
.k-villes a:hover { border-color: var(--k-bleu); background: var(--wp--preset--color--bleu-pale); transform: translateY(-2px); }

/* Anciennes classes utilisées par les autres pages */
.k-cards > .wp-block-column, .k-card { background: #fff; border: 1px solid var(--k-ligne); border-radius: var(--k-rayon); padding: 1.9rem; transition: transform .3s var(--k-ease), box-shadow .3s; }
.k-cards > .wp-block-column:hover { transform: translateY(-3px); box-shadow: var(--k-ombre); }
.k-cards h3 a { text-decoration: none; color: inherit; }
.k-cards h3 a::after { content: " →"; color: var(--k-bleu); }
.k-photo img { border-radius: var(--k-rayon); width: 100%; object-fit: cover; aspect-ratio: 4 / 3; }
.k-photo--tall img { aspect-ratio: 3 / 4; }
.k-check { list-style: none; padding-left: 0; }
.k-check li { position: relative; padding-left: 2rem; margin-bottom: .7rem; }
.k-check li::before {
	content: ""; position: absolute; left: 0; top: .3em; width: 1.2rem; height: 1.2rem; border-radius: 50%;
	background: var(--k-bleu) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5'%3E%3Cpath d='M5 12l5 5L19 7'/%3E%3C/svg%3E") center / 65% no-repeat;
}
.k-cities a { text-decoration: none; }
.k-cities ul { columns: 2; column-gap: 2rem; padding-left: 1.1rem; }
@media (min-width: 782px) { .k-cities ul { columns: 3; } }

/* ---------- FAQ ---------- */
.wp-block-details { border-bottom: 1px solid var(--k-ligne); padding: 1.25rem 0; }
.wp-block-details summary { font-weight: 600; font-size: 1.15rem; cursor: pointer; list-style: none; position: relative; padding-right: 2.5rem; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	content: "+"; position: absolute; right: 0; top: 50%; translate: 0 -50%; width: 1.8rem; height: 1.8rem; border-radius: 50%;
	display: grid; place-items: center; background: var(--wp--preset--color--bleu-pale); color: var(--k-bleu); font-size: 1.2rem; transition: rotate .25s var(--k-ease);
}
.wp-block-details[open] summary::after { rotate: 45deg; }
.wp-block-details > :not(summary) { margin-top: .75rem; color: var(--wp--preset--color--gris-texte); }

/* ---------- Formulaire de soumission ---------- */
#soumission .wp-block-columns { gap: clamp(2rem, 5vw, 5rem); }
.k-form { display: grid; gap: 1.1rem; }
.k-form .k-row { display: grid; gap: 1.1rem; }
@media (min-width: 600px) { .k-form .k-row { grid-template-columns: 1fr 1fr; } }
.k-form label { display: block; font-weight: 600; font-size: .92rem; margin-bottom: .35rem; }
.k-form input, .k-form select, .k-form textarea {
	width: 100%; box-sizing: border-box; font: inherit; padding: .85rem 1rem; border-radius: 4px;
	border: 1px solid #cfd7e0; background: #fbfcfd; color: var(--wp--preset--color--texte); transition: border-color .2s, box-shadow .2s, background .2s;
}
.k-form input:focus, .k-form select:focus, .k-form textarea:focus { outline: 0; border-color: var(--k-bleu); background: #fff; box-shadow: 0 0 0 4px rgba(20, 88, 146, .14); }
.k-form button {
	font-family: var(--k-titre); font-weight: 700; font-size: 1.15rem; text-transform: uppercase; letter-spacing: .04em;
	border: 0; border-radius: 4px; padding: 1.05rem 1.6rem; cursor: pointer; background: var(--k-bleu); color: #fff; transition: background .2s;
}
.k-form button:hover { background: var(--k-vif); }
.k-form .k-hp { position: absolute; left: -9999px; }
.k-form-box { background: #fff; color: var(--wp--preset--color--texte); border-radius: var(--k-rayon); padding: clamp(1.5rem, 3.5vw, 2.75rem); box-shadow: var(--k-ombre); border-top: 4px solid var(--k-bleu); }
.k-notice { padding: .9rem 1.1rem; border-radius: 4px; font-weight: 600; }
.k-notice--ok { background: #e7f6ec; color: #17633a; }
.k-notice--err { background: #fdecec; color: #8a1f1f; }
.k-small { font-size: .85rem; color: var(--wp--preset--color--gris-texte); }

/* ---------- Galerie ---------- */
.k-gallery .wp-block-image img { border-radius: var(--k-rayon); aspect-ratio: 3 / 4; object-fit: cover; }

/* ---------- Pied de page ---------- */
.k-footer { padding-block: clamp(3.5rem, 7vw, 6rem) 2rem; position: relative; overflow: hidden; isolation: isolate; }
.k-footer a { color: inherit; text-decoration: none; }
.k-footer a:hover { color: var(--k-glace); }
.k-footer-appel { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 2rem; padding-bottom: clamp(2.5rem, 5vw, 4rem); border-bottom: 1px solid rgba(255, 255, 255, .12); }
.k-footer-titre { font-family: var(--k-titre); font-weight: 700; text-transform: uppercase; font-size: clamp(2.6rem, 6vw, 5rem); line-height: .95; margin: 0; }
.k-footer-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem 2rem; }
.k-footer-tel { font-family: var(--k-titre); font-weight: 700; font-size: clamp(1.8rem, 3vw, 2.4rem); letter-spacing: .02em; }
.k-footer-btn { font-family: var(--k-titre); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: 1.15rem; background: #fff; color: var(--k-nuit) !important; padding: .95rem 1.6rem; border-radius: 4px; transition: background .2s; }
.k-footer-btn:hover { background: var(--k-glace); }
.k-footer-grille { display: grid; gap: 2.5rem; grid-template-columns: 1.4fr 1fr 1fr 1fr; padding-block: clamp(2.5rem, 5vw, 4rem); }
.k-footer-grille p { color: rgba(255, 255, 255, .7); max-width: 22rem; }
.k-footer-logo { width: 200px; height: auto; margin-bottom: .5rem; }
.k-footer-rbq { font-size: .9rem; }
.k-footer ul { list-style: none; padding-left: 0; margin: 0; }
.k-footer li { margin-bottom: .5rem; color: rgba(255, 255, 255, .78); }
.k-footer h2 { font-size: .95rem; letter-spacing: .16em; color: var(--k-glace); margin-bottom: 1.2rem; }
.k-footer-bas { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; padding-top: 1.5rem; border-top: 1px solid rgba(255, 255, 255, .12); font-size: .85rem; }
.k-footer-bas p { margin: 0; opacity: .6; }

/* ---------- Pages internes ---------- */
.k-hero--interne, .k-hero--texte { padding-block: clamp(3.5rem, 7vw, 6rem); }
.k-hero--interne > .wp-block-columns { gap: clamp(2rem, 6vw, 6rem); }
.k-hero--interne h1, .k-hero--texte h1 { font-size: clamp(2.5rem, 4.6vw, 4.25rem); }
.k-hero--texte > .alignwide > * { max-width: 52rem; }
.k-hero--texte .k-lead { margin-top: 1.25rem; }
.k-hero-trust { list-style: none; padding: 0; margin: 1.75rem 0 0; display: flex; flex-wrap: wrap; gap: .6rem 1.6rem; font-size: .95rem; color: rgba(255, 255, 255, .75); }
.k-hero-trust li { position: relative; padding-left: 1.6rem; margin: 0; }
.k-hero-trust li::before {
	content: ""; position: absolute; left: 0; top: .2em; width: 1.05rem; height: 1.05rem; border-radius: 50%;
	background: rgba(143, 208, 255, .18) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238fd0ff' stroke-width='3.5'%3E%3Cpath d='M5 12l5 5L19 7'/%3E%3C/svg%3E") center / 62% no-repeat;
}
/* Photo du héros : cadre décalé aux couleurs de la marque */
.k-hero-photo { position: relative; margin: 0 !important; }
.k-hero-photo::before { content: ""; position: absolute; inset: 1.4rem -1.4rem -1.4rem 1.4rem; border: 2px solid rgba(143, 208, 255, .35); border-radius: var(--k-rayon); }
.k-hero-photo img { position: relative; display: block; width: 100%; aspect-ratio: 4 / 5; max-height: 34rem; object-fit: cover; border-radius: var(--k-rayon); box-shadow: var(--k-ombre); }

/* Contact : le formulaire dans le héros */
.k-hero--contact { padding-block: clamp(3.5rem, 7vw, 6rem); }
.k-hero--contact h1 { font-size: clamp(2.75rem, 5vw, 4.5rem); }
.k-hero--contact .k-form-box h2 { color: var(--k-nuit); font-size: 2rem; margin-bottom: 1.5rem; }
.k-coordonnees { margin-top: 2.25rem !important; border-top: 1px solid rgba(255, 255, 255, .14); }
.k-coordonnees p { display: flex; justify-content: space-between; gap: 1rem; margin: 0; padding: 1rem 0; border-bottom: 1px solid rgba(255, 255, 255, .14); }
.k-coordonnees span { font-family: var(--k-titre); font-weight: 600; text-transform: uppercase; letter-spacing: .12em; font-size: .9rem; color: var(--k-glace); }
.k-coordonnees a { color: #fff; text-decoration: none; font-weight: 600; }
.k-coordonnees a:hover { color: var(--k-glace); }
.k-hero--contact .k-more a { color: var(--k-glace); }

/* Grille de cartes numérotées */
.k-cards-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); counter-reset: carte; }
.k-cards-grille > * { margin: 0 !important; }
.k-cards-grille .k-card { counter-increment: carte; position: relative; }
.k-cards-grille .k-card::before { content: counter(carte, decimal-leading-zero); display: block; font-family: var(--k-titre); font-weight: 700; letter-spacing: .14em; font-size: .95rem; color: var(--k-vif); margin-bottom: .6rem; }
.k-cards-grille .k-card:hover { transform: translateY(-3px); box-shadow: var(--k-ombre); border-color: transparent; }
.k-card h3 { font-size: clamp(1.4rem, 2vw, 1.7rem); }
.k-card h3 + * { margin-top: .6rem; }
.k-card p { color: var(--wp--preset--color--gris-texte); margin-bottom: 0; }
.k-card .k-pastilles { margin-top: 1rem; }

/* Encadré (conseil, bon à savoir) */
.k-encadre {
	position: relative; background: var(--wp--preset--color--bleu-pale); border-radius: var(--k-rayon);
	padding: clamp(1.75rem, 3.5vw, 2.75rem); border-left: 4px solid var(--k-bleu);
}
.k-encadre > * + * { margin-top: 1rem; }
.k-encadre .k-eyebrow { font-size: 1.05rem; color: var(--k-bleu); }
.k-encadre p:not(.k-eyebrow) { color: var(--wp--preset--color--texte); }
.k-encadre .wp-block-buttons { margin-top: 1.5rem; }
.k-note { font-size: .95rem; color: var(--wp--preset--color--gris-texte); padding-left: 1rem; border-left: 2px solid var(--k-ligne); }
.k-centre { text-align: center; color: var(--wp--preset--color--gris-texte); margin-top: 1.5rem !important; }

/* Pastilles de liens internes */
.k-pastilles { list-style: none; padding: 0; margin: .75rem 0 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.k-pastilles li { margin: 0; }
.k-pastilles a {
	display: inline-block; padding: .5rem .95rem; border: 1px solid var(--k-ligne); border-radius: 999px; background: #fff;
	font-size: .95rem; font-weight: 500; color: var(--k-nuit); text-decoration: none; transition: border-color .2s, color .2s, background .2s;
}
.k-pastilles a:hover { border-color: var(--k-bleu); color: var(--k-bleu); background: var(--wp--preset--color--bleu-pale); }
.k-section--liens h3 { font-size: 1.3rem; margin-top: 2rem; }
.k-section--liens .k-more { margin-top: 1.5rem; padding: 0; }
.k-villes-services { display: grid; grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); gap: 1rem; }
.k-villes-services > * { margin: 0 !important; }
.k-villes-services .k-pastilles a { font-size: .88rem; padding: .4rem .8rem; }

/* FAQ en deux colonnes : titre collant à gauche */
@media (min-width: 782px) {
	.k-faq > .wp-block-column:first-child > * { position: sticky; top: 7rem; }
}
.k-faq .wp-block-details:first-child { padding-top: 0; }

/* Produits */
.k-produit h2 { margin-top: 1.1rem; }
.k-produit .k-intro { margin-top: 1rem; }

/* ---------- Apparition au défilement (classes ajoutées par assets/js/kimera.js) ---------- */
.k-reveal { opacity: 0; translate: 0 28px; transition: opacity .8s var(--k-ease), translate .8s var(--k-ease); }
.k-reveal.is-in { opacity: 1; translate: 0 0; }

/* ---------- Tablette ---------- */
@media (max-width: 1100px) {
	.k-phone { display: none; }
	.k-footer-grille { grid-template-columns: 1fr 1fr; }
}

/* ---------- Mobile ---------- */
.k-callbar { display: none; }
@media (max-width: 781px) {
	header.wp-block-template-part { top: 0; }
	.k-topbar { display: none; }
	.k-logo img, .is-scrolled .k-logo img { width: 150px; }
	.k-header .k-header-cta { display: none !important; }
	.k-hero--accueil { padding-top: 1.35rem; padding-bottom: 2.25rem; }
	.k-hero--accueil h1 { font-size: clamp(2.05rem, 7.2vw, 2.35rem); line-height: 1.08; margin-top: .6rem; text-wrap: balance; }
	.k-hero .k-eyebrow { font-size: .78rem; letter-spacing: .09em; gap: .55rem; }
	.k-lead { font-size: .95rem; line-height: 1.42; margin-top: .75rem; }
	.k-hero--accueil .wp-block-buttons { margin-top: 1rem; }
	.k-hero-note { font-size: .82rem; margin-top: .8rem; }
	/* Mobile : une seule photo portrait (au lieu du collage de 3) qui garde la tête du sujet dans le cadre */
	.k-collage { position: static; display: flex; flex-direction: column; gap: .85rem; margin-top: 1.1rem; aspect-ratio: auto; }
	.k-collage > figure:first-child { grid-row: auto; aspect-ratio: 4 / 5; }
	.k-collage > figure:first-child img { object-position: center 18%; }
	.k-collage > figure:nth-child(2), .k-collage > figure:nth-child(3) { display: none; }
	/* Le badge sort de la photo : carte pleine largeur sous l'image, ne recouvre jamais un visage */
	.k-badge {
		position: relative; left: auto; bottom: auto; grid-column: auto;
		box-sizing: border-box; width: 100%; max-width: none;
		padding: .7rem .9rem .7rem 3rem; font-size: .82rem;
	}
	.k-badge::before { left: .85rem; top: 50%; transform: translateY(-50%); width: 1.5rem; height: 1.5rem; }
	.k-badge strong { font-size: .98rem; }
	.k-proofs-wrap { margin-top: -2rem !important; }
	.k-proofs { grid-template-columns: 1fr 1fr; }
	.k-proofs > :nth-child(3) { border-left: 0; }
	.k-proofs > :nth-child(n + 3) { border-top: 1px solid var(--k-ligne); }
	.k-svcs { grid-template-columns: 1fr; }
	.k-mosaic { grid-template-columns: 1fr 1fr; }
	.k-mosaic > figure:nth-child(3n + 2) { transform: none; }
	.k-mosaic > figure:nth-child(even) { transform: translateY(1.5rem); }
	.k-avis { grid-template-columns: 1fr; }
	.k-avis .k-quote:not(.k-quote--vedette) { grid-column: auto; }
	.k-quote--vedette { grid-row: auto; }
	.k-villes { grid-template-columns: 1fr 1fr; }
	.k-footer-grille { grid-template-columns: 1fr; }
	.k-callbar {
		display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
		background: var(--k-nuit); box-shadow: 0 -6px 20px rgba(0, 0, 0, .15);
	}
	.k-callbar a { flex: 1; text-align: center; color: #fff; font-family: var(--k-titre); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: 1.1rem; padding: 1rem; text-decoration: none; }
	.k-callbar a + a { background: var(--k-bleu); }
	body { padding-bottom: 3.4rem; }
}

/* ---------- Mobile, écrans courts (360x640, 375x667…) ----------
   La barre d'appel fixe mange 60 px en bas : on resserre le héros pour que
   photo + badge + boutons restent entièrement au-dessus d'elle. */
@media (max-width: 781px) and (max-height: 720px) {
	.k-hero--accueil { padding-top: .7rem; padding-bottom: 1.1rem; }
	.k-hero--accueil h1 { font-size: clamp(1.9rem, 6.2vw, 2.1rem); margin-top: .5rem; }
	.k-lead { font-size: .94rem; line-height: 1.4; margin-top: .65rem; }
	.k-hero--accueil .wp-block-buttons { margin-top: .9rem; }
	.k-hero-note { display: none; }
	.k-collage { margin-top: .75rem; gap: 0; }
	.k-collage > figure:first-child { aspect-ratio: 2 / 1; }
	.k-badge { display: none; }
	.k-proofs-wrap { margin-top: -1.75rem !important; }
}

/* Texte long sous un héros sans photo (politique de confidentialité) : largeur de lecture */
.k-hero--texte + .k-section:not(.k-section--galerie) > .alignwide { max-width: 48rem; }
.k-hero--texte + .k-section:not(.k-section--galerie) h2 { font-size: clamp(1.6rem, 2.6vw, 2.1rem); margin-top: 2.75rem; }

/* ==========================================================================
   Outils interactifs ([kimera_outil], voir inc/outils.php et assets/js/outils.js)
   ========================================================================== */
.k-est, .k-quiz {
	background: #fff; border-radius: var(--k-rayon); box-shadow: var(--k-ombre); border-top: 4px solid var(--k-bleu);
	padding: clamp(1.5rem, 3.5vw, 2.5rem); min-height: 25rem; box-sizing: border-box;
}
.k-quiz { max-width: 50rem; }
.k-pas-tete { display: flex; align-items: center; gap: 1rem; font-size: .8rem; font-weight: 600; text-transform: uppercase; letter-spacing: .12em; color: var(--wp--preset--color--gris-texte); }
.k-pas-barre { flex: 1; height: 4px; border-radius: 4px; background: var(--k-ligne); overflow: hidden; }
.k-pas-barre i { display: block; height: 100%; background: var(--k-bleu); transition: width .4s var(--k-ease); }
.k-pas { border: 0; padding: 0; margin: 0; min-width: 0; animation: k-pas .35s var(--k-ease) both; }
.k-pas legend { padding: 0; margin: 1.6rem 0 1.25rem; font-family: var(--k-titre); font-weight: 700; text-transform: uppercase; font-size: clamp(1.6rem, 2.6vw, 2rem); line-height: 1.05; color: var(--k-nuit); }
.k-pas-options { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.k-opt {
	position: relative; display: flex; flex-direction: column; gap: .15rem; cursor: pointer; padding: 1.05rem 1.1rem 1.05rem 2.9rem;
	border: 1.5px solid var(--k-ligne); border-radius: var(--k-rayon); transition: border-color .2s, background .2s, transform .2s var(--k-ease);
}
.k-opt input { position: absolute; left: 1.1rem; top: 1.2rem; width: 1.05rem; height: 1.05rem; margin: 0; accent-color: var(--k-bleu); }
.k-opt:hover { border-color: var(--k-bleu); transform: translateY(-1px); }
.k-opt:has(input:checked) { border-color: var(--k-bleu); background: var(--wp--preset--color--bleu-pale); }
.k-opt-l { font-weight: 600; color: var(--k-nuit); line-height: 1.3; }
.k-opt-d { font-size: .88rem; color: var(--wp--preset--color--gris-texte); line-height: 1.35; }
.k-pas-nav { min-height: 2.5rem; margin-top: 1rem; }
.k-pas-retour, .k-pas-recommencer {
	font: inherit; font-weight: 600; background: none; border: 0; padding: .5rem 0; cursor: pointer; color: var(--wp--preset--color--gris-texte);
}
.k-pas-retour:hover, .k-pas-recommencer:hover { color: var(--k-bleu); }
@keyframes k-pas { from { opacity: 0; translate: 12px 0; } }

.k-est-res, .k-quiz-res { animation: k-pas .4s var(--k-ease) both; }
.k-est-label { font-family: var(--k-titre); font-weight: 600; text-transform: uppercase; letter-spacing: .16em; font-size: .95rem; color: var(--k-vif); margin: 0; }
.k-est-prix { display: flex; flex-wrap: wrap; align-items: baseline; gap: .1rem .7rem; margin: .6rem 0 0; font-family: var(--k-titre); font-weight: 700; font-size: clamp(2.3rem, 5vw, 3.6rem); line-height: 1; color: var(--k-nuit); }
.k-est-prix span { font-size: .45em; color: var(--wp--preset--color--gris-texte); text-transform: uppercase; }
.k-est-note { margin: .75rem 0 0; font-size: .92rem; color: var(--wp--preset--color--gris-texte); }
.k-est-subv { margin: 1.4rem 0 0; padding: 1rem 1.2rem; border-radius: var(--k-rayon); background: var(--wp--preset--color--bleu-pale); border-left: 4px solid var(--k-bleu); font-size: .95rem; }
.k-est-subv strong { display: block; color: var(--k-nuit); font-size: 1.05rem; }
.k-est-recap { list-style: none; padding: 0; margin: 1.25rem 0 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.k-est-recap li { margin: 0; font-size: .85rem; padding: .3rem .7rem; border-radius: 999px; border: 1px solid var(--k-ligne); color: var(--wp--preset--color--gris-texte); }
.k-est-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; margin-top: 1.75rem; }
.k-est-cta, .k-forfait-btn {
	display: inline-block; text-decoration: none; font-family: var(--k-titre); font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
	font-size: 1.1rem; padding: .95rem 1.5rem; border-radius: 4px; background: var(--k-bleu); color: #fff; transition: background .2s, transform .2s var(--k-ease);
}
.k-est-cta:hover, .k-forfait-btn:hover { background: var(--k-vif); color: #fff; transform: translateY(-1px); }
.k-est-section > .wp-block-column:first-child .k-check { margin-top: 1.75rem; }
/* Dernière étape de l'outil de prix : les coordonnées, dans le même formulaire que les réponses. */
.k-est-form { animation: k-pas .4s var(--k-ease) both; }
.k-est-form .k-est-label { margin-top: 1.6rem; }
.k-est-form .k-hp { position: absolute; left: -9999px; }
.k-est-champs { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem 1rem; margin-top: 1.4rem; }
.k-est-champs label { display: block; font-weight: 600; font-size: .9rem; margin-bottom: .3rem; }
.k-est-champs input {
	width: 100%; box-sizing: border-box; font: inherit; padding: .8rem .95rem; border-radius: 4px;
	border: 1px solid #cfd7e0; background: #fbfcfd; color: var(--wp--preset--color--texte); transition: border-color .2s, box-shadow .2s;
}
.k-est-champs input:focus { outline: 0; border-color: var(--k-bleu); background: #fff; box-shadow: 0 0 0 4px rgba(20, 88, 146, .14); }
button.k-est-cta { border: 0; cursor: pointer; }
.k-est-merci { animation: k-pas .4s var(--k-ease) both; }
.k-est-merci-titre { margin: .6rem 0 0; font-family: var(--k-titre); font-weight: 700; text-transform: uppercase; font-size: clamp(1.8rem, 3.4vw, 2.5rem); line-height: 1.05; color: var(--k-nuit); }
@media (max-width: 599px) { .k-est-champs { grid-template-columns: 1fr; } }
.k-quiz-titre { margin: .5rem 0 0; font-family: var(--k-titre); font-weight: 700; text-transform: uppercase; font-size: clamp(2.2rem, 4.5vw, 3.2rem); line-height: 1; color: var(--k-nuit); }
.k-quiz-prix { margin: .5rem 0 1.25rem; font-weight: 600; color: var(--k-bleu); }
.k-quiz-lien { font-weight: 600; color: var(--k-bleu); }

/* Calculateur d'économies */
.k-eco { display: grid; grid-template-columns: 1fr 1fr; border-radius: var(--k-rayon); overflow: hidden; box-shadow: var(--k-ombre); }
.k-eco-champs { background: #fff; padding: clamp(1.5rem, 3.5vw, 2.5rem); display: grid; gap: 1.75rem; align-content: start; }
.k-eco-champs label[for], .k-eco-champs legend { display: block; font-weight: 600; font-size: .95rem; color: var(--k-nuit); padding: 0; margin-bottom: .6rem; }
.k-eco-champs fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.k-eco-facture-val { display: block; font-family: var(--k-titre); font-weight: 700; font-size: 2.6rem; line-height: 1; color: var(--k-bleu); margin-bottom: .6rem; }
.k-eco input[type="range"] { width: 100%; accent-color: var(--k-bleu); }
.k-choix { display: flex; flex-wrap: wrap; gap: .5rem; }
.k-choix label { position: relative; margin: 0; }
.k-choix input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.k-choix span { display: inline-block; padding: .6rem 1rem; border: 1.5px solid var(--k-ligne); border-radius: 999px; font-weight: 500; font-size: .95rem; transition: all .2s; }
.k-choix input:checked + span { background: var(--k-bleu); border-color: var(--k-bleu); color: #fff; }
.k-choix input:focus-visible + span { outline: 3px solid var(--k-vif); outline-offset: 2px; }
.k-eco-res { background: var(--k-nuit); color: #fff; padding: clamp(1.5rem, 3.5vw, 2.5rem); background-image: radial-gradient(30rem 20rem at 100% 0%, rgba(29, 111, 184, .45), transparent 60%); }
.k-eco-label { margin: 0; font-family: var(--k-titre); text-transform: uppercase; letter-spacing: .16em; font-weight: 600; color: var(--k-glace); }
.k-eco-gros { margin: .4rem 0 1.5rem; font-family: var(--k-titre); font-weight: 700; font-size: clamp(3rem, 6vw, 4.5rem); line-height: 1; }
.k-eco-barres { display: grid; gap: .6rem; }
.k-eco-barres > div { display: grid; grid-template-columns: 6.5rem 1fr 5.5rem; align-items: center; gap: .75rem; font-size: .9rem; }
.k-eco-barres span { color: rgba(255, 255, 255, .7); }
.k-eco-barres i { height: .8rem; border-radius: 3px; background: rgba(255, 255, 255, .3); transition: width .4s var(--k-ease); }
.k-eco-barres > div + div i { background: var(--k-glace); }
.k-eco-barres b { text-align: right; font-weight: 600; }
.k-eco-chiffres { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin: 1.75rem 0 1rem; padding-top: 1.5rem; border-top: 1px solid rgba(255, 255, 255, .14); }
.k-eco-chiffres dt { font-size: .82rem; color: rgba(255, 255, 255, .65); }
.k-eco-chiffres dd { margin: .2rem 0 0; font-family: var(--k-titre); font-weight: 700; font-size: 1.6rem; }
.k-eco-res .k-small { color: rgba(255, 255, 255, .55); margin: 0; }

/* Subventions */
.k-subv-filtre { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: 1.5rem; }
.k-subv-filtre span { font-weight: 600; margin-right: .5rem; }
.k-subv-filtre button { font: inherit; font-size: .95rem; font-weight: 500; padding: .55rem 1rem; border-radius: 999px; border: 1.5px solid var(--k-ligne); background: #fff; cursor: pointer; color: var(--k-nuit); }
.k-subv-filtre button[aria-pressed="true"] { background: var(--k-nuit); border-color: var(--k-nuit); color: #fff; }
.k-subv-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: 1rem; }
.k-subv-carte { background: #fff; border: 1px solid var(--k-ligne); border-radius: var(--k-rayon); padding: 1.6rem; animation: k-pas .3s var(--k-ease) both; }
.k-subv-carte[hidden] { display: none; }
.k-subv-carte p { margin: 0; color: var(--wp--preset--color--gris-texte); font-size: .95rem; }
.k-subv-carte .k-subv-montant { font-family: var(--k-titre); font-weight: 700; font-size: 1.9rem; line-height: 1.05; color: var(--k-bleu); }
.k-subv-carte h3 { font-size: 1.3rem; margin: .8rem 0 .2rem; }
.k-subv-carte .k-subv-org { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; margin-bottom: .8rem; }
.k-subv-etapes { list-style: none; counter-reset: subv; padding: 0; margin: 2.5rem 0 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.k-subv-etapes li { counter-increment: subv; margin: 0; padding-top: 1rem; border-top: 2px solid var(--k-bleu); color: var(--wp--preset--color--gris-texte); }
.k-subv-etapes li::before { content: counter(subv, decimal-leading-zero); display: block; font-family: var(--k-titre); font-weight: 700; color: var(--k-vif); letter-spacing: .14em; margin-bottom: .3rem; }
.k-subv-etapes strong { color: var(--k-nuit); }

/* Avant / après */
.k-aa { position: relative; margin: 0; max-width: 62rem; aspect-ratio: 16 / 10; border-radius: var(--k-rayon); overflow: hidden; box-shadow: var(--k-ombre); user-select: none; }
.k-aa img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.k-aa-avant { position: absolute; inset: 0; clip-path: inset(0 calc(100% - var(--pos)) 0 0); }
.k-aa-avant img { filter: grayscale(1) sepia(.3) brightness(.8) contrast(.9) blur(.5px); }
.k-aa-poignee { position: absolute; top: 0; bottom: 0; left: var(--pos); width: 3px; margin-left: -1.5px; background: #fff; pointer-events: none; }
.k-aa-poignee::after {
	content: "\2039\00a0\203A"; position: absolute; top: 50%; left: 50%; translate: -50% -50%; width: 3.2rem; height: 3.2rem; border-radius: 50%;
	display: grid; place-items: center; background: #fff; color: var(--k-nuit); font-weight: 700; font-size: 1.3rem; box-shadow: 0 6px 20px rgba(0, 0, 0, .25);
}
.k-aa input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; }
.k-aa-tag { position: absolute; top: 1rem; padding: .35rem .8rem; border-radius: 4px; background: rgba(10, 30, 51, .8); color: #fff; font-family: var(--k-titre); font-weight: 700; text-transform: uppercase; letter-spacing: .1em; font-size: .85rem; pointer-events: none; }
.k-aa-tag--avant { left: 1rem; }
.k-aa-tag--apres { right: 1rem; background: var(--k-bleu); }
.k-aa figcaption { position: absolute; bottom: 1rem; left: 50%; translate: -50% 0; margin: 0; padding: .35rem .8rem; border-radius: 999px; background: rgba(255, 255, 255, .9); font-size: .82rem; white-space: nowrap; pointer-events: none; }

/* Carte des installations */
.k-carte { display: grid; grid-template-columns: 2.2fr 1fr; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.k-carte svg { width: 100%; height: auto; display: block; border-radius: var(--k-rayon); background: rgba(255, 255, 255, .03); border: 1px solid rgba(255, 255, 255, .08); }
.k-carte-fleuve { fill: none; stroke: rgba(143, 208, 255, .14); stroke-width: 40; stroke-linecap: round; stroke-linejoin: round; }
.k-carte-riviere { fill: none; stroke: rgba(143, 208, 255, .14); stroke-width: 7; stroke-linecap: round; stroke-linejoin: round; }
.k-carte-repere { fill: rgba(255, 255, 255, .3); font-family: var(--k-titre); font-size: 22px; text-transform: uppercase; letter-spacing: .2em; }
.k-carte-points circle { fill: var(--k-glace); opacity: .5; }
.k-carte-ville { cursor: default; outline: none; }
.k-carte-ville circle { fill: #fff; stroke: var(--k-vif); stroke-width: 3; transition: r .2s; }
.k-carte-ville.is-base circle { fill: var(--k-glace); stroke: #fff; animation: k-pouls 2.4s ease-out infinite; }
.k-carte-ville text { fill: #fff; font-family: var(--k-titre); font-weight: 700; font-size: 19px; text-transform: uppercase; letter-spacing: .04em; paint-order: stroke; stroke: var(--k-nuit); stroke-width: 5px; }
.k-carte-ville tspan { fill: var(--k-glace); font-weight: 600; }
.k-carte-ville:hover circle, .k-carte-ville:focus circle { r: 11; }
@keyframes k-pouls { 0% { stroke-width: 3; stroke-opacity: 1; } 100% { stroke-width: 26; stroke-opacity: 0; } }
.k-carte-total { margin: 0; font-family: var(--k-titre); font-weight: 700; font-size: clamp(4rem, 8vw, 6rem); line-height: .9; color: var(--k-glace); }
.k-carte-legende > p:nth-child(2) { margin-top: .4rem; color: rgba(255, 255, 255, .8); }
.k-carte-legende ul { list-style: none; padding: 0; margin: 1.5rem 0; }
.k-carte-legende li { display: flex; justify-content: space-between; padding: .45rem 0; margin: 0; border-bottom: 1px solid rgba(255, 255, 255, .1); font-size: .95rem; }
.k-carte-legende li b { font-family: var(--k-titre); color: var(--k-glace); }
.k-carte-legende .k-small { color: rgba(255, 255, 255, .55); }

/* Avis Google */
.k-google { display: grid; grid-template-columns: 1fr 2.4fr; gap: 1.25rem; }
.k-google-note { background: #fff; border-radius: var(--k-rayon); border: 1px solid var(--k-ligne); padding: 1.75rem; }
.k-google-note p { margin: 0; }
.k-google-chiffre { font-family: var(--k-titre); font-weight: 700; font-size: 5rem; line-height: .9; color: var(--k-nuit); }
.k-google-etoiles { color: #f5b301; letter-spacing: .15em; margin: .4rem 0 .2rem !important; }
.k-google-note > p:nth-of-type(3) { color: var(--wp--preset--color--gris-texte); font-size: .95rem; }
.k-google-repart { list-style: none; padding: 0; margin: 1.25rem 0; display: grid; gap: .35rem; }
.k-google-repart li { display: grid; grid-template-columns: .8rem 1fr 2.6rem; align-items: center; gap: .6rem; margin: 0; font-size: .82rem; color: var(--wp--preset--color--gris-texte); }
.k-google-repart i { height: .45rem; border-radius: 4px; background: linear-gradient(#f5b301 0 0) 0 0 / var(--p) 100% no-repeat, var(--k-ligne); }
.k-google-repart b { font-weight: 500; text-align: right; }
.k-google-lien { display: block; text-align: center; padding: .75rem; border: 2px solid var(--k-nuit); border-radius: 4px; text-decoration: none; color: var(--k-nuit); font-family: var(--k-titre); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.k-google-lien:hover { background: var(--k-nuit); color: #fff; }
.k-google-liste { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.k-google-avis { background: #fff; border-radius: var(--k-rayon); border: 1px solid var(--k-ligne); padding: 1.5rem; }
.k-google-avis header { display: flex; align-items: center; gap: .75rem; }
.k-google-avis header div { display: flex; flex-direction: column; line-height: 1.25; }
.k-google-avis small { color: var(--wp--preset--color--gris-texte); }
.k-google-init { width: 2.5rem; height: 2.5rem; flex: none; border-radius: 50%; display: grid; place-items: center; background: var(--k-bleu); color: #fff; font-weight: 700; }
.k-google-avis p { margin: .4rem 0 0; font-size: .95rem; }

/* Équipe */
.k-equipe { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1rem, 2vw, 1.5rem); }
.k-membre-photo {
	position: relative; aspect-ratio: 4 / 5; border-radius: var(--k-rayon); overflow: hidden; display: grid; place-items: center; color: var(--k-glace);
	background: var(--k-nuit); background-image: radial-gradient(20rem 14rem at 100% 0%, rgba(29, 111, 184, .55), transparent 65%);
}
.k-membre-photo span { font-family: var(--k-titre); font-weight: 700; font-size: 7rem; line-height: 1; }
.k-membre-photo small { position: absolute; bottom: .9rem; font-size: .75rem; text-transform: uppercase; letter-spacing: .14em; color: rgba(255, 255, 255, .45); }
.k-membre h3 { margin-top: 1.1rem; font-size: 1.7rem; }
.k-membre-role { margin: .2rem 0 .6rem; font-family: var(--k-titre); font-weight: 600; text-transform: uppercase; letter-spacing: .12em; font-size: .88rem; color: var(--k-vif); }
.k-membre > p:not(.k-membre-role) { color: var(--wp--preset--color--gris-texte); font-size: .95rem; margin: 0; }
.k-membre ul { list-style: none; padding: 0; margin: .9rem 0 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.k-membre li { margin: 0; font-size: .8rem; font-weight: 600; padding: .25rem .6rem; border-radius: 4px; background: var(--wp--preset--color--bleu-pale); color: var(--k-bleu); }

/* Forfaits d'entretien */
.k-forfaits { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1rem, 2vw, 1.5rem); align-items: center; }
.k-forfait { position: relative; background: #fff; border: 1px solid var(--k-ligne); border-radius: var(--k-rayon); padding: clamp(1.75rem, 3vw, 2.5rem); }
.k-forfait h3 { font-size: 2rem; }
.k-forfait-pour { margin: .3rem 0 0; color: var(--wp--preset--color--gris-texte); font-size: .95rem; }
.k-forfait-prix { margin: 1.25rem 0; font-family: var(--k-titre); font-weight: 700; font-size: 3.6rem; line-height: 1; color: var(--k-nuit); }
.k-forfait-prix small { font-size: 1.1rem; color: var(--wp--preset--color--gris-texte); margin-left: .2rem; }
.k-forfait .k-check { margin: 0 0 1.75rem; font-size: .95rem; }
.k-forfait-btn { display: block; text-align: center; }
.k-forfait.is-vedette { background: var(--k-nuit); color: #fff; border-color: transparent; box-shadow: var(--k-ombre); padding-block: clamp(2.25rem, 4vw, 3.25rem); }
.k-forfait.is-vedette :is(h3, .k-forfait-prix) { color: #fff; }
.k-forfait.is-vedette :is(.k-forfait-pour, .k-forfait-prix small) { color: rgba(255, 255, 255, .65); }
.k-forfait.is-vedette .k-forfait-btn { background: #fff; color: var(--k-nuit); }
.k-forfait.is-vedette .k-forfait-btn:hover { background: var(--k-glace); }
.k-forfait-badge { position: absolute; top: 0; left: 50%; translate: -50% -50%; margin: 0; padding: .35rem .9rem; border-radius: 999px; background: var(--k-glace); color: var(--k-nuit); font-family: var(--k-titre); font-weight: 700; text-transform: uppercase; letter-spacing: .1em; font-size: .85rem; white-space: nowrap; }

/* Bandeau saisonnier */
.k-saisons { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.k-saison {
	--accent: var(--k-glace); position: relative; overflow: hidden; border-radius: var(--k-rayon); padding: 1.5rem; color: #fff;
	background: var(--k-nuit) linear-gradient(112deg, transparent 0 60%, rgba(255, 255, 255, .05) 60% 100%);
}
.k-saison--printemps { --accent: #7cd4a5; }
.k-saison--ete { --accent: #ffc861; }
.k-saison--automne { --accent: #ff9d5c; }
.k-saison p { margin: 0; }
.k-saison-tag { display: flex; align-items: center; gap: .75rem; font-family: var(--k-titre); font-weight: 700; text-transform: uppercase; letter-spacing: .16em; font-size: .85rem; color: var(--accent); }
.k-saison-tag span { display: none; padding: .2rem .55rem; border-radius: 999px; background: var(--accent); color: var(--k-nuit); letter-spacing: .08em; font-size: .75rem; }
.k-saison-titre { margin-top: .6rem !important; font-family: var(--k-titre); font-weight: 700; text-transform: uppercase; font-size: 1.6rem; line-height: 1.05; }
.k-saison-texte { margin-top: .4rem !important; color: rgba(255, 255, 255, .75); font-size: .95rem; }
.k-saison a { display: inline-block; margin-top: 1rem; color: var(--accent); font-weight: 700; text-decoration: none; }
.k-saison.is-actif { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 2rem; padding: clamp(1.75rem, 3.5vw, 2.5rem); border-left: 6px solid var(--accent); }
.k-saison.is-actif .k-saison-tag { flex-basis: 100%; }
.k-saison.is-actif .k-saison-tag span { display: inline-block; }
.k-saison.is-actif .k-saison-titre { font-size: clamp(1.9rem, 3.4vw, 2.6rem); margin-top: 0 !important; }
.k-saison.is-actif .k-saison-texte { flex: 1; margin-top: 0 !important; font-size: 1.05rem; }
.k-saison.is-actif a { margin: 0; background: var(--accent); color: var(--k-nuit); padding: .85rem 1.3rem; border-radius: 4px; font-family: var(--k-titre); text-transform: uppercase; letter-spacing: .04em; }

/* Page démo : en-tête de chaque idée */
.k-idee { max-width: 50rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.k-idee > * + * { margin-top: 1rem; }
.k-idee-num { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; margin: 0; font-family: var(--k-titre); font-weight: 700; text-transform: uppercase; letter-spacing: .16em; color: var(--k-vif); }
.k-idee-num::before { content: ""; width: 1.4rem; height: .8rem; background: var(--k-barres); }
.k-idee-num::after { content: "Démo · données fictives"; padding: .2rem .6rem; border-radius: 999px; background: #fff3d6; color: #8a5a00; font-size: .72rem; letter-spacing: .08em; }
.k-idee-fournir { font-size: .92rem; color: var(--wp--preset--color--gris-texte); padding: .8rem 1rem; border: 1px dashed #c5cfda; border-radius: var(--k-rayon); }
.has-blanc-color .k-idee-num { color: var(--k-glace); }
.has-blanc-color .k-idee-fournir { color: rgba(255, 255, 255, .7); border-color: rgba(255, 255, 255, .25); }
.has-blanc-color .k-idee .k-intro { color: rgba(255, 255, 255, .78); }
.k-demo-sommaire { margin-top: 1.5rem !important; }

@media (max-width: 1100px) {
	.k-equipe { grid-template-columns: 1fr 1fr; }
	.k-google { grid-template-columns: 1fr; }
	.k-carte { grid-template-columns: 1fr; }
}
@media (max-width: 781px) {
	.k-pas-options { grid-template-columns: 1fr; }
	.k-est, .k-quiz { min-height: 0; }
	.k-eco { grid-template-columns: 1fr; }
	.k-eco-chiffres { grid-template-columns: 1fr 1fr; }
	.k-subv-etapes { grid-template-columns: 1fr; }
	.k-google-liste { grid-template-columns: 1fr; }
	.k-forfaits { grid-template-columns: 1fr; }
	.k-saisons { grid-template-columns: 1fr; }
	.k-aa { aspect-ratio: 4 / 5; }
	.k-carte-ville text { font-size: 26px; }
}

/* ---------- Nouveautés (démo / staging seulement, voir inc/nouveautes.php) ----------
   Jaune « annotation » : volontairement hors de la charte, pour qu'on ne le confonde pas avec le design. */
:root { --k-nv: #f2b705; --k-nv-fonce: #8a5a00; }
.k-nv { outline: 2px dashed var(--k-nv); outline-offset: 6px; border-radius: 2px; }
.k-nv--large { outline-offset: -10px; }
.k-nv-tag {
	position: absolute; z-index: 40; top: -4px; left: 6px; transform: translateY(-50%);
	display: inline-flex; align-items: center; gap: .35rem; margin: 0; padding: .2rem .55rem .2rem .25rem;
	background: var(--k-nv); color: #241a00; border: 0; border-radius: 999px; cursor: pointer;
	font: 700 .68rem/1.2 var(--k-titre); letter-spacing: .08em; text-transform: uppercase; white-space: nowrap;
	box-shadow: 0 4px 12px -4px rgba(36, 26, 0, .45);
}
.k-nv--large > .k-nv-tag { top: 1rem; left: 1rem; transform: none; }
.k-header .k-nv > .k-nv-tag { top: auto; bottom: -6px; left: 50%; transform: translate(-50%, 100%); font-size: .58rem; }
.k-nv-num {
	display: inline-grid; place-items: center; width: 1.25rem; height: 1.25rem; border-radius: 50%;
	background: #241a00; color: var(--k-nv); font: 700 .7rem/1 var(--k-titre); letter-spacing: 0;
}
.k-nv-cache .k-nv { outline: 0; }
.k-nv-cache .k-nv-tag { display: none; }
.k-nv--pulse { animation: k-nv-pulse 1.4s var(--k-ease) 2; }
@keyframes k-nv-pulse { 50% { outline-color: transparent; outline-offset: 14px; } }
.k-nv--large.k-nv--pulse { animation-name: k-nv-pulse-large; }
@keyframes k-nv-pulse-large { 50% { outline-color: transparent; outline-offset: -2px; } }

.k-nv-boite { position: fixed; z-index: 70; left: 1rem; bottom: 1rem; display: flex; flex-direction: column; align-items: flex-start; gap: .6rem; max-width: calc(100vw - 2rem); }
.k-nv-bouton {
	display: inline-flex; align-items: center; gap: .5rem; padding: .6rem .7rem .6rem .9rem; border: 0; border-radius: 999px; cursor: pointer;
	background: #241a00; color: #fff; font: 700 .82rem/1 var(--k-titre); letter-spacing: .06em; text-transform: uppercase;
	box-shadow: 0 10px 24px -8px rgba(0, 0, 0, .45);
}
.k-nv-etoile { color: var(--k-nv); }
.k-nv-compte { display: inline-grid; place-items: center; min-width: 1.4rem; height: 1.4rem; padding: 0 .3rem; border-radius: 999px; background: var(--k-nv); color: #241a00; font-size: .75rem; }
.k-nv-bouton--neuf:not(.k-nv-bouton--vu) { animation: k-nv-appel 1.6s ease-in-out infinite; }
@keyframes k-nv-appel { 50% { box-shadow: 0 0 0 8px rgba(242, 183, 5, .35), 0 10px 24px -8px rgba(0, 0, 0, .45); } }
.k-nv-bouton:focus-visible, .k-nv-tag:focus-visible, .k-nv-panneau :focus-visible { outline: 3px solid var(--k-vif); outline-offset: 2px; }

.k-nv-panneau {
	width: 24rem; max-width: 100%; max-height: min(34rem, calc(100vh - 6rem)); overflow: auto;
	background: #fff; color: var(--k-nuit); border-radius: 10px; border-top: 5px solid var(--k-nv);
	box-shadow: 0 24px 60px -16px rgba(10, 30, 51, .45); font-size: .92rem; line-height: 1.45;
}
.k-nv-panneau[hidden] { display: none; }
.k-nv-tete { position: relative; padding: 1rem 2.8rem .5rem 1.1rem; }
.k-nv-sur { margin: 0; color: var(--k-nv-fonce); font: 700 .7rem/1.3 var(--k-titre); letter-spacing: .1em; text-transform: uppercase; }
.k-nv-titre { margin: .2rem 0 0; font: 700 1.25rem/1.2 var(--k-titre); }
.k-nv-fermer { position: absolute; top: .6rem; right: .6rem; width: 2rem; height: 2rem; border: 0; border-radius: 50%; background: transparent; color: inherit; font-size: 1.5rem; line-height: 1; cursor: pointer; }
.k-nv-fermer:hover { background: var(--k-glace); }
.k-nv-liste { list-style: none; margin: 0; padding: 0 1.1rem; }
.k-nv-liste li { display: flex; gap: .7rem; padding: .8rem 0; border-top: 1px solid var(--k-ligne); }
.k-nv-liste li > .k-nv-num { flex: none; margin-top: .1rem; }
.k-nv-liste strong { display: block; font-family: var(--k-titre); font-size: 1.02rem; }
.k-nv-liste p { margin: .2rem 0 .35rem; color: #3d4b5c; }
.k-nv-voir { color: var(--k-bleu); font-weight: 600; font-size: .85rem; }
.k-nv-avant { margin: .3rem 1.1rem 0; padding: .6rem 0; border-top: 1px solid var(--k-ligne); }
.k-nv-avant summary { cursor: pointer; font-weight: 600; }
.k-nv-avant .k-nv-sur { margin-top: .8rem; }
.k-nv-avant .k-nv-liste { padding: 0; }
.k-nv-pied { display: flex; justify-content: space-between; align-items: center; gap: .8rem; flex-wrap: wrap; padding: .7rem 1.1rem .9rem; border-top: 1px solid var(--k-ligne); background: var(--k-glace); font-size: .78rem; color: #5a6878; }
.k-nv-bascule { padding: 0; border: 0; background: none; color: var(--k-bleu); font: 600 .8rem/1.3 inherit; text-decoration: underline; cursor: pointer; }

@media (max-width: 781px) {
	.k-nv-boite { left: .75rem; bottom: calc(3.4rem + .75rem); max-width: calc(100vw - 1.5rem); }
	.k-nv-bouton { font-size: .74rem; padding: .5rem .6rem .5rem .75rem; }
	.k-nv-panneau { width: calc(100vw - 1.5rem); max-height: calc(100vh - 9rem); }
}
@media (prefers-reduced-motion: reduce) {
	.k-nv--pulse, .k-nv-bouton--neuf:not(.k-nv-bouton--vu) { animation: none; }
}
