/* kv-navigation 1.0.0 (feuille j) — la navigation neuve de kimva.com (en-tête, panneau « Nos métiers », tiroir, pied, 404) et toute la
   largeur des trois pages élargies. Servie SEULEMENT quand la navigation neuve sert la requête (aperçu à clé, ou mise en
   ligne) : un visiteur d'aujourd'hui ne reçoit pas ce fichier. Couleurs et polices : celles de l'accueil (kv-accueil). */

.kvnav {
	--kvnav-encre: #111111;
	--kvnav-blanc: #FFFFFF;
	--kvnav-filet: #E2E2E2;
	--kvnav-teal: #349BAA;
	--kvnav-teal-fonce: #2E8C9A;
	--kvnav-lien: #0A7180;
	--kvnav-cyan-clair: #5ED4E8;
	--kvnav-texte2: #333333;
	--kvnav-texte3: #4A4A4A;
	--kvnav-titre: Montserrat, "Helvetica Neue", Arial, sans-serif;
	--kvnav-corps: Cabin, Helvetica, Arial, sans-serif;
	--kvnav-large: 1600px;
	--kvnav-marge: 48px;
}

/* ——— l'en-tête : barre noire et ligne blanche, d'un bord à l'autre */
.kvnav-entete { position: relative; z-index: 1000; font-family: var(--kvnav-corps); }
.kvnav-entete *, .kvnav-tiroir *, .kvnav-pied * { box-sizing: border-box; }
.kvnav-cadre { max-width: var(--kvnav-large); margin: 0 auto; padding: 0 var(--kvnav-marge); }
.kvnav-barre { background: var(--kvnav-encre); color: var(--kvnav-blanc); }
.kvnav-barre .kvnav-cadre { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 38px; }
.kvnav-barre-txt { margin: 0; padding: 0; font-size: 13.5px; line-height: 1.3; color: var(--kvnav-blanc); }
.kvnav-entete .kvnav-barre-tel { color: var(--kvnav-blanc); font-family: var(--kvnav-titre); font-weight: 700; font-size: 14px; letter-spacing: .02em; text-decoration: none; white-space: nowrap; }
.kvnav-entete .kvnav-barre-tel:hover { color: var(--kvnav-cyan-clair); }
.kvnav-ligne { background: var(--kvnav-blanc); border-bottom: 1px solid var(--kvnav-filet); }
.kvnav-ligne > .kvnav-cadre { display: flex; align-items: center; gap: 20px; min-height: 84px; }
.kvnav-logo { flex: 0 0 auto; }
.kvnav-logo a { display: block; line-height: 0; }
.kvnav-logo img { display: block; width: auto; height: 46px; max-width: none; }
.kvnav-nav { margin-left: auto; }
.kvnav-menu { display: flex; align-items: center; gap: 4px; margin: 0; padding: 0; list-style: none; }
.kvnav-menu li { margin: 0; padding: 0; }
.kvnav-entete .kvnav-menu > li > a { display: inline-flex; align-items: center; gap: 9px; min-height: 84px; padding: 3px 14px 0; border-bottom: 3px solid transparent; font-family: var(--kvnav-titre); font-weight: 600; font-size: 15.5px; color: var(--kvnav-encre); text-decoration: none; }
.kvnav-entete .kvnav-menu > li > a:hover, .kvnav-entete .kvnav-metiers[aria-expanded="true"] { color: var(--kvnav-lien); border-bottom-color: var(--kvnav-teal); }
.kvnav-chevron { display: inline-block; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .15s ease; }
[aria-expanded="true"] > .kvnav-chevron { transform: translateY(2px) rotate(-135deg); }
.kvnav-entete .kvnav-devis { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; margin-left: 12px; padding: 0 22px; border-radius: 10px; background: var(--kvnav-teal); color: var(--kvnav-encre); font-family: var(--kvnav-titre); font-weight: 700; font-size: 15px; text-decoration: none; white-space: nowrap; }
.kvnav-entete .kvnav-devis:hover { background: var(--kvnav-teal-fonce); color: var(--kvnav-encre); }
.kvnav-entete .kvnav-client { margin-left: 6px; font-size: 14px; color: var(--kvnav-texte3); text-decoration: none; white-space: nowrap; }
.kvnav-entete .kvnav-client:hover { color: var(--kvnav-lien); text-decoration: underline; }
.kvnav-tiroir-ouvrir { display: none; }

/* ——— le panneau « Nos métiers » */
.kvnav-panneau { position: absolute; top: 100%; left: 0; right: 0; padding: 34px 0 44px; background: var(--kvnav-blanc); border-bottom: 1px solid var(--kvnav-filet); box-shadow: 0 24px 48px rgba(17, 17, 17, .14); }
.kvnav-panneau[hidden] { display: none; }
.kvnav-panneau-tete { margin: 0 0 18px; padding: 0; }
.kvnav-panneau-tete a { font-family: var(--kvnav-titre); font-weight: 700; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--kvnav-lien); text-decoration: none; }
.kvnav-panneau-tete a:hover { text-decoration: underline; }
.kvnav-panneau-blocs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px 56px; }
.kvnav-p-bloc { padding-top: 18px; border-top: 1px solid var(--kvnav-filet); }
.kvnav-p-bloc-titre { margin: 0 0 8px; padding: 0; }
.kvnav-p-bloc-titre a { font-family: var(--kvnav-titre); font-weight: 700; font-size: 18px; line-height: 1.3; color: var(--kvnav-encre); text-decoration: none; }
.kvnav-p-bloc-titre a:hover { color: var(--kvnav-lien); }
.kvnav-p-bloc-pages { margin: 0; padding: 0; list-style: none; }
.kvnav-p-bloc-pages li { margin: 0; padding: 0; }
.kvnav-p-bloc-pages a { display: inline-block; padding: 5px 0; font-size: 16px; line-height: 1.4; color: var(--kvnav-texte2); text-decoration: none; }
.kvnav-p-bloc-pages a:hover { color: var(--kvnav-lien); text-decoration: underline; }

/* ——— le focus, toujours visible au clavier (Kadence le cache à la souris) */
.kvnav-entete a:focus-visible, .kvnav-entete button:focus-visible, .kvnav-tiroir a:focus-visible, .kvnav-tiroir button:focus-visible, .kvnav-404-liens a:focus-visible { outline: 3px solid var(--kvnav-lien) !important; outline-offset: 2px; border-radius: 4px; }
.kvnav-pied a:focus-visible { outline: 3px solid var(--kvnav-cyan-clair) !important; outline-offset: 2px; border-radius: 4px; }

/* ——— le tiroir du téléphone */
.kvnav-tiroir { position: fixed; inset: 0; z-index: 100001; font-family: var(--kvnav-corps); }
.kvnav-tiroir[hidden] { display: none; }
.kvnav-tiroir-voile { position: absolute; inset: 0; background: rgba(17, 17, 17, .55); }
.kvnav-tiroir-corps { position: absolute; top: 0; right: 0; bottom: 0; width: min(88vw, 400px); padding: 12px 20px 40px; overflow-y: auto; background: var(--kvnav-blanc); box-shadow: -12px 0 32px rgba(0, 0, 0, .2); }
.kvnav-tiroir-fermer { position: relative; display: block; width: 44px; height: 44px; margin: 0 -8px 0 auto; padding: 0; border: 0; background: transparent; cursor: pointer; }
.kvnav-tiroir-fermer span::before, .kvnav-tiroir-fermer span::after { content: ""; position: absolute; top: 21px; left: 11px; right: 11px; height: 2px; border-radius: 2px; background: var(--kvnav-encre); }
.kvnav-tiroir-fermer span::before { transform: rotate(45deg); }
.kvnav-tiroir-fermer span::after { transform: rotate(-45deg); }
.kvnav-tiroir-menu { margin: 6px 0 0; padding: 0; list-style: none; }
.kvnav-tiroir-menu > li { margin: 0; padding: 0; border-bottom: 1px solid var(--kvnav-filet); }
.kvnav-tiroir .kvnav-tiroir-menu > li > a, .kvnav-tiroir .kvnav-tiroir-rangee > a { display: flex; align-items: center; flex: 1 1 auto; min-height: 52px; font-family: var(--kvnav-titre); font-weight: 600; font-size: 17px; color: var(--kvnav-encre); text-decoration: none; }
.kvnav-tiroir-rangee { display: flex; align-items: center; }
.kvnav-tiroir-deplier { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 48px; width: 48px; height: 48px; padding: 0; border: 0; background: transparent; color: var(--kvnav-encre); cursor: pointer; }
.kvnav-tiroir-blocs { padding: 0 0 14px; }
.kvnav-tiroir-blocs[hidden] { display: none; }
.kvnav-t-bloc { padding: 10px 0 4px; }
.kvnav-t-bloc-titre { margin: 0 0 2px; padding: 0; }
.kvnav-tiroir .kvnav-t-bloc-titre a { display: inline-block; padding: 6px 0; font-family: var(--kvnav-titre); font-weight: 700; font-size: 15.5px; color: var(--kvnav-lien); text-decoration: none; }
.kvnav-t-bloc-pages { margin: 0 0 0 2px; padding: 0; list-style: none; }
.kvnav-t-bloc-pages li { margin: 0; padding: 0; }
.kvnav-tiroir .kvnav-t-bloc-pages a { display: block; padding: 8px 0; font-size: 15.5px; color: var(--kvnav-texte2); text-decoration: none; }
body.kvnav-tiroir-ouvert { overflow: hidden; }
/* Les boutons de Kadence prennent un fond au survol et au focus : pas ceux de la navigation. */
.kvnav-entete .kvnav-tiroir-ouvrir, .kvnav-entete .kvnav-tiroir-ouvrir:hover, .kvnav-entete .kvnav-tiroir-ouvrir:focus,
.kvnav-tiroir .kvnav-tiroir-fermer, .kvnav-tiroir .kvnav-tiroir-fermer:hover, .kvnav-tiroir .kvnav-tiroir-fermer:focus,
.kvnav-tiroir .kvnav-tiroir-deplier, .kvnav-tiroir .kvnav-tiroir-deplier:hover, .kvnav-tiroir .kvnav-tiroir-deplier:focus { background: transparent; color: var(--kvnav-encre); box-shadow: none; }

/* ——— le pied : quatre colonnes d'un bord à l'autre, empilées au téléphone */
.kvnav-pied { padding: 64px 0 52px; background: var(--kvnav-encre); color: var(--kvnav-blanc); font-family: var(--kvnav-corps); }
.kvnav-pied-grille { display: grid; grid-template-columns: minmax(200px, 1.1fr) minmax(0, 2.4fr) minmax(170px, 1fr); gap: 48px; }
.kvnav-pied-logo { display: block; width: 190px; max-width: 100%; height: auto; margin: 0 0 18px; }
.kvnav-pied-ligne { margin: 0 0 14px; padding: 0; font-size: 14px; color: rgba(255, 255, 255, .8); }
.kvnav-pied .kvnav-pied-fb { display: inline-flex; align-items: center; gap: 10px; font-size: 14px; color: var(--kvnav-blanc); text-decoration: none; }
.kvnav-pied .kvnav-pied-fb:hover { color: var(--kvnav-cyan-clair); }
.kvnav-pied-fb svg { width: 22px; height: 22px; fill: currentColor; }
.kvnav-pied-titre { margin: 0 0 18px; padding: 0; }
.kvnav-pied .kvnav-pied-titre a { font-family: var(--kvnav-titre); font-weight: 700; font-size: 16px; color: var(--kvnav-blanc); text-decoration: none; }
.kvnav-pied-deux { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; }
.kvnav-f-bloc { margin: 0 0 22px; }
.kvnav-f-bloc-titre { margin: 0 0 4px; padding: 0; }
.kvnav-pied .kvnav-f-bloc-titre a { font-family: var(--kvnav-titre); font-weight: 600; font-size: 14.5px; color: var(--kvnav-blanc); text-decoration: none; }
.kvnav-f-bloc-pages, .kvnav-pied-liens ul { margin: 0; padding: 0; list-style: none; }
.kvnav-f-bloc-pages li, .kvnav-pied-liens li { margin: 0; padding: 0; }
.kvnav-pied .kvnav-f-bloc-pages a { display: inline-block; padding: 3px 0; font-size: 14px; color: rgba(255, 255, 255, .78); text-decoration: none; }
.kvnav-pied .kvnav-pied-liens a { display: inline-block; padding: 5px 0; font-size: 15px; color: rgba(255, 255, 255, .85); text-decoration: none; }
.kvnav-pied .kvnav-f-bloc-pages a:hover, .kvnav-pied .kvnav-pied-liens a:hover, .kvnav-pied .kvnav-f-bloc-titre a:hover, .kvnav-pied .kvnav-pied-titre a:hover { color: var(--kvnav-cyan-clair); text-decoration: underline; }

/* ——— la 404 : les quatre liens, entre la phrase et la recherche */
.kvnav-404-liens { display: flex; flex-wrap: wrap; gap: 12px; margin: 10px 0 28px; padding: 0; list-style: none; }
.kvnav-404-liens li { margin: 0; padding: 0; }
.kvnav .kvnav-404-liens a { display: inline-flex; align-items: center; min-height: 46px; padding: 0 18px; border: 1.5px solid var(--kvnav-encre); border-radius: 10px; font-family: var(--kvnav-titre); font-weight: 600; font-size: 15px; color: var(--kvnav-encre); text-decoration: none; }
.kvnav .kvnav-404-liens a:hover { background: var(--kvnav-encre); color: var(--kvnav-blanc); }

/* ——— au-dessous de 1 025 px : l'en-tête du téléphone (la même bascule que Kadence) */
@media (max-width: 1024px) {
	.kvnav { --kvnav-marge: 16px; }
	.kvnav-barre .kvnav-cadre { justify-content: center; min-height: 34px; }
	.kvnav-barre-txt { display: none; }
	.kvnav-ligne > .kvnav-cadre { gap: 10px; min-height: 64px; }
	.kvnav-logo img { height: 34px; }
	.kvnav-nav, .kvnav-entete .kvnav-client, .kvnav-panneau { display: none !important; }
	.kvnav-entete .kvnav-devis { min-height: 42px; margin-left: auto; padding: 0 14px; font-size: 14px; }
	.kvnav-tiroir-ouvrir { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 44px; width: 44px; height: 44px; margin-right: -8px; padding: 0; border: 0; background: transparent; color: var(--kvnav-encre); cursor: pointer; }
	.kvnav-burger { display: inline-flex; flex-direction: column; justify-content: space-between; width: 22px; height: 16px; }
	.kvnav-burger span { display: block; height: 2px; border-radius: 2px; background: currentColor; }
	.kvnav-pied { padding: 48px 0 110px; }
	.kvnav-pied-grille { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 36px 32px; }
	.kvnav-pied-metiers { grid-column: 1 / -1; grid-row: 2; }
}
@media (max-width: 600px) {
	.kvnav-pied-grille { grid-template-columns: minmax(0, 1fr); }
	.kvnav-pied-metiers { grid-row: auto; }
	.kvnav-pied-deux { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 360px) {
	.kvnav { --kvnav-marge: 12px; }
	.kvnav-ligne > .kvnav-cadre { gap: 6px; }
	.kvnav-logo img { height: 28px; }
	.kvnav-entete .kvnav-devis { padding: 0 10px; font-size: 13px; }
}

/* ——— C : la place de l’ancien en-tête transparent, rendue PAGE PAR PAGE (mesuré le 28/09, reserve-nav.js). Ces pages réservaient
   sous l’ancien en-tête, qui les recouvrait, la place de sa hauteur (106 px au bureau, 80 px au-dessous de 1 025 px) : leur contenu
   remonte d’autant sous l’en-tête neuf. Le haut du bandeau passe sous l’en-tête comme il passait sous l’ancien ; le cadrage ne
   change pas, et le contenu reste à la même distance sous l’en-tête. Ne sont PAS compensées : l’accueil et /identite-graphique/
   (kv-accueil le fait), /demander-un-devis/ (kv-devis le fait), /boutique/ (redirigée), et au bureau /signaletiques/ et
   /imprimerie/ : l’ancien en-tête y recouvrait le fil d’Ariane, l’en-tête neuf le laisse voir. */
@media (min-width: 1025px) {
	body.kvnav.page-id-1957 #inner-wrap, body.kvnav.page-id-1882 #inner-wrap, body.kvnav.page-id-1838 #inner-wrap, body.kvnav.page-id-1935 #inner-wrap,
	body.kvnav.page-id-1787 #inner-wrap, body.kvnav.page-id-2007 #inner-wrap, body.kvnav.page-id-595 #inner-wrap, body.kvnav.page-id-1819 #inner-wrap,
	body.kvnav.page-id-1733 #inner-wrap, body.kvnav.page-id-596 #inner-wrap, body.kvnav.page-id-592 #inner-wrap, body.kvnav.page-id-1992 #inner-wrap,
	body.kvnav.page-id-1947 #inner-wrap, body.kvnav.page-id-1925 #inner-wrap, body.kvnav.page-id-2058 #inner-wrap, body.kvnav.page-id-2050 #inner-wrap,
	body.kvnav.page-id-1974 #inner-wrap, body.kvnav.page-id-1905 #inner-wrap, body.kvnav.page-id-2022 #inner-wrap, body.kvnav.page-id-2001 #inner-wrap,
	body.kvnav.page-id-593 #inner-wrap { margin-top: -106px; }
}
@media (max-width: 1024px) {
	body.kvnav.page-id-1957 #inner-wrap, body.kvnav.page-id-1882 #inner-wrap, body.kvnav.page-id-1838 #inner-wrap, body.kvnav.page-id-1935 #inner-wrap,
	body.kvnav.page-id-1787 #inner-wrap, body.kvnav.page-id-2007 #inner-wrap, body.kvnav.page-id-595 #inner-wrap, body.kvnav.page-id-1819 #inner-wrap,
	body.kvnav.page-id-1733 #inner-wrap, body.kvnav.page-id-596 #inner-wrap, body.kvnav.page-id-592 #inner-wrap, body.kvnav.page-id-1992 #inner-wrap,
	body.kvnav.page-id-1947 #inner-wrap, body.kvnav.page-id-1925 #inner-wrap, body.kvnav.page-id-2058 #inner-wrap, body.kvnav.page-id-2050 #inner-wrap,
	body.kvnav.page-id-1974 #inner-wrap, body.kvnav.page-id-1905 #inner-wrap, body.kvnav.page-id-2022 #inner-wrap, body.kvnav.page-id-2001 #inner-wrap,
	body.kvnav.page-id-593 #inner-wrap, body.kvnav.page-id-1864 #inner-wrap, body.kvnav.page-id-1681 #inner-wrap { margin-top: -80px; }
}

/* ——— P : la ligne d’identité du pied (texte validé le 28/09, § 8 du document) */
.kvnav-pied-identite { margin: 0 0 10px; padding: 0; font-size: 14px; line-height: 1.6; color: rgba(255, 255, 255, .85); }
.kvnav-pied .kvnav-pied-identite a { color: var(--kvnav-blanc); text-decoration: none; white-space: nowrap; }
.kvnav-pied .kvnav-pied-identite a:hover { color: var(--kvnav-cyan-clair); text-decoration: underline; }

/* ——— H : au bureau, la ligne blanche reste collée en haut quand on descend ; la barre noire (38 px) s’en va. Le panneau s’ouvre
   sous la ligne collée. Une ancre ne se cache pas sous elle (retrait de défilement). Au téléphone : comme aujourd’hui (rien de collé,
   la barre du bas « Demander un devis · Appeler » reste). */
@media (min-width: 1025px) {
	.kvnav-entete { position: sticky; top: -38px; }
	html { scroll-padding-top: 104px; }
}

/* ——— W : toute la largeur, sur toutes les pages (28/09) et au bureau seulement (au téléphone, rien ne change) */
@media (min-width: 1025px) {
	body.kvnav-large { --global-content-width: 1600px; --global-content-edge-padding: 48px; }
	body.kvnav-large .kv-acc-cadre { max-width: 1600px; padding-left: 48px; padding-right: 48px; }
	body.kvnav-large .kv-container { max-width: 1600px; padding-left: 48px; padding-right: 48px; }
	body.kvnav-large .entry-content p, body.kvnav-large .kv-acc-page p { max-width: 720px; }
	body.kvnav-large .entry-content .has-text-align-center, body.kvnav-large .entry-content [style*="text-align:center"] p, body.kvnav-large .entry-content p[style*="text-align:center"] { margin-left: auto; margin-right: auto; }
	/* /galerie-photo/ : le seul paragraphe centré par une classe du bloc (mesuré le 27/09) reste centré sous sa limite. */
	body.kvnav-large .entry-content p.kt-adv-heading593_4a649b-25 { margin-left: auto; margin-right: auto; }
	/* Les autres paragraphes centrés par une classe de leur bloc, mesurés le 28/09 sur les 27 pages à 1 440 et 1 920 px (paragraphes-nav.js). */
	body.kvnav-large .entry-content p.kt-adv-heading595_d0fca1-6c,
	body.kvnav-large .entry-content p.kt-adv-heading1819_986864-94,
	body.kvnav-large .entry-content p.kt-adv-heading1733_5e8350-ba,
	body.kvnav-large .entry-content p.kt-adv-heading596_9e8312-61,
	body.kvnav-large .entry-content p.kt-adv-heading592_818268-f2,
	body.kvnav-large .entry-content p.kt-adv-heading592_3611ca-35,
	body.kvnav-large .entry-content p.kt-adv-heading1992_1079ee-7e,
	body.kvnav-large .entry-content p.kt-adv-heading1947_7ece3e-e0,
	body.kvnav-large .entry-content p.kt-adv-heading1925_bedf26-90,
	body.kvnav-large .entry-content p.kt-adv-heading2058_4e0921-ba,
	body.kvnav-large .entry-content p.kt-adv-heading2050_dcf7f1-07,
	body.kvnav-large .entry-content p.kt-adv-heading1974_3f0bd7-27,
	body.kvnav-large .entry-content p.kt-adv-heading1905_b8eda8-61,
	body.kvnav-large .entry-content p.kt-adv-heading2022_20cabe-74,
	body.kvnav-large .entry-content p.kt-adv-heading2001_186b13-88 { margin-left: auto; margin-right: auto; }
	/* La façade du devis : son chapeau aussi, sous la limite des 720 px (§ 7). */
	body.kvnav-large .kv-f-page p { max-width: 720px; }
	/* Marges latérales d’au moins 48 px (§ 7), mesurées le 27/09 : la rangée des témoignages de /galerie-photo/ avait 20 px (95 px
	   tant que le contenu était centré sur 1 290 px), et les blocs de kv-affinage (« Demander un devis gratuit », « Voir aussi »)
	   touchaient le bord, avant comme en aperçu. */
	body.kvnav-large .kb-row-layout-id593_9e7ff1-e5 > .kt-row-column-wrap { padding-left: 48px; padding-right: 48px; }
	/* 28/09 : les rangées Kadence de premier niveau à rembourrage fixe (souvent nul) amenaient titres et textes à moins de 48 px du
	   bord une fois élargies (mesuré à 1 440 px sur 15 pages). Leur largeur intérieure est bornée à la fenêtre moins 96 px : le fond du
	   bandeau reste d'un bord à l'autre, le contenu garde ses 48 px de chaque côté. */
	body.kvnav-large .entry-content > .kb-row-layout-wrap > .kt-row-column-wrap { max-width: min(var(--global-content-width), calc(100% - 96px)); }
	body.kvnav-large .entry-content > .kvaf-appel, body.kvnav-large .entry-content > .kvaf-voiraussi { box-sizing: border-box; max-width: 1600px; margin-left: auto; margin-right: auto; padding-left: 48px; padding-right: 48px; }
}
