/**
 * Kelborne : fiches installateurs /installateurs/<nom>/ (préfixe .kbf), chargée après installateurs.css.
 * Maquettes validées le 23 octobre 2026 : design-source/installateurs/kelborne-fiche-installateur-2026.html
 * (un projet) et kelborne-fiche-installateur-2026-trois-classements.html (trois projets).
 */

.kbf{display:block;margin:0;padding:0;background:#fff;color:#40556B;font:400 17px/28px 'Kelborne Noto',system-ui,-apple-system,'Segoe UI',sans-serif}
.kbf,.kbf *,.kbf *::before,.kbf *::after{box-sizing:border-box}
.kbf a{color:#2D4057;text-decoration:underline;text-decoration-color:#BEE4E1;text-decoration-thickness:3px;text-underline-offset:5px}
.kbf a:hover{color:#1C6870}
.kbf :focus-visible{outline:3px solid #1C6870;outline-offset:3px}
.kbf h1,.kbf h2,.kbf h3{margin:0;font-family:'Kelborne Rubik',sans-serif;font-weight:700;color:#2D4057;letter-spacing:0}
.kbf p{margin:0 0 16px}
.kbf img{display:block}
.kbf strong,.kbf b{color:#2D4057}
.kbf .kbf-fleche{flex:none}
.kbf .kbf-gris{color:#53667A}
.kbf .kbi-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.kbf .kbi-lp{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:6px;background:#FFF0DE;color:#2D4057;font:700 12px/1 'Kelborne Noto',sans-serif}

/* Haut de fiche */
.kbf .kbf-hero{background:#FCF8EE}
.kbf .kbf-hero__in{max-width:1200px;margin:0 auto;padding:28px 40px 48px}
.kbf .kbf-ariane{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 32px;padding:0;list-style:none;font-size:14px;line-height:20px}
.kbf .kbf-ariane li+li::before{content:"/";margin-right:10px;color:#53667A}
.kbf .kbf-ariane a{text-decoration-thickness:2px;text-underline-offset:3px}
.kbf .kbf-hero__grille{display:grid;grid-template-columns:minmax(0,1fr) 352px;gap:70px;align-items:center}
.kbf .kbf-id{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;margin-bottom:22px}
.kbf .kbf-logo{width:auto;max-width:150px;height:40px;object-fit:contain;object-position:left center}
.kbf .kbf-tags{display:flex;flex-wrap:wrap;gap:8px}
.kbf a.kbf-tag{padding:4px 12px;border-radius:999px;background:#EDF6F5;color:#2D4057;font-size:12px;line-height:16px;font-weight:700;letter-spacing:.12em;text-decoration:none}
.kbf a.kbf-tag:hover{background:#BEE4E1;color:#2D4057}
.kbf .kbf-h1{margin:0 0 20px;font-size:44px;line-height:1.2;color:#203244}
.kbf .kbf-surligne{background:linear-gradient(transparent 72%,#FFC073 72%)}
.kbf .kbf-intro{max-width:630px;margin:0;font-size:18px;line-height:28px;color:#53667A}
.kbf .kbf-score{display:flex;align-items:center;gap:24px;margin:24px 0 0;color:#2D4057}
.kbf .kbf-jauge{flex:none;width:100px;height:34px}
.kbf .kbf-note{font:700 36px/1.2 'Kelborne Rubik',sans-serif;white-space:nowrap}
.kbf .kbf-note>span:last-child{font-size:22px}
.kbf .kbf-verdict{padding-left:20px;border-left:1px solid #BEE4E1;font-size:17px;line-height:1.4;font-weight:700}
.kbf .kbf-verdict small{display:block;font-size:14px;font-weight:400;color:#53667A}
.kbf .kbf-decision{padding:28px;border:1px solid #D5DEE4;border-radius:16px;background:#fff}
.kbf .kbf-decision__titre{margin-bottom:18px;font-size:22px;line-height:28px}
.kbf .kbf-benefices{margin:0 0 22px;padding:0;list-style:none;font-size:16px;line-height:24px;color:#2D4057}
.kbf .kbf-benefices li{display:flex;gap:10px;margin:12px 0}
.kbf .kbf-benefices img{flex:none;width:20px;height:20px;margin-top:2px}
.kbf .kbf-client{display:flex;align-items:center;gap:10px;margin:20px 0;font-size:15px;line-height:20px;color:#2D4057;white-space:nowrap}
.kbf .kbf-client img{flex:none;width:22px;height:22px}
.kbf .kbf-client a.kbf-client__lien{color:#53667A;text-decoration-thickness:2px;text-underline-offset:3px}
.kbf .kbf-etoiles{display:inline-flex;gap:2px;margin-left:auto}
.kbf .kbf-etoiles svg{width:17px;height:17px;fill:#FFC073}
.kbf .kbf-etoiles svg.is-vide{fill:#D5DEE4}
.kbf a.kbf-cta{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:52px;padding:10px 24px;border-radius:999px;background:#2D4057;color:#fff;font:700 16px/1.25 'Kelborne Noto',sans-serif;text-align:center;text-decoration:none}
.kbf a.kbf-cta:hover{background:#203244;color:#fff}
.kbf a.kbf-discret{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:18px;font-size:15px;font-weight:700}
.kbf .kbf-mention{margin:16px 0 0;padding-top:14px;border-top:1px solid #D5DEE4;font-size:13px;line-height:20px;color:#53667A}
.kbf .kbf-mention .kbi-lp{margin-right:4px}

/* Sommaire collant */
.kbf .kbf-sommaire{position:sticky;top:0;z-index:5;background:#fff;border-bottom:1px solid #D5DEE4}
.kbf .kbf-sommaire__in{display:flex;justify-content:space-between;gap:20px;max-width:800px;margin:0 auto;padding:0 16px}
.kbf .kbf-sommaire a{padding:21px 0 17px;border-bottom:3px solid transparent;color:#53667A;font-size:15px;line-height:20px;text-decoration:none;white-space:nowrap}
.kbf .kbf-sommaire a.is-actif{border-color:#BEE4E1;color:#2D4057;font-weight:700}

/* Article */
.kbf .kbf-article{max-width:800px;margin:56px auto 64px;padding:0 20px}
.kbf .kbf-article>section{margin-bottom:56px;scroll-margin-top:90px}
.kbf .kbf-article>section:last-child{margin-bottom:0}
.kbf .kbf-h2{margin:0 0 20px;font-size:32px;line-height:40px;letter-spacing:-.01em}
.kbf .kbf-h3{margin:28px 0 10px;font-size:20px;line-height:28px}
.kbf .kbf-fits{display:grid;gap:12px;margin-bottom:26px}
.kbf .kbf-fit{display:flex;align-items:center;gap:24px;padding:20px 24px;border-radius:16px;background:#EDF6F5}
.kbf .kbf-fit img{flex:none;width:64px;height:64px}
.kbf .kbf-fit h3{margin:0 0 4px;font-size:18px;line-height:26px}
.kbf .kbf-fit p{margin:0;font-size:16px;line-height:24px}
.kbf .kbf-fit a{font-weight:700;white-space:nowrap}
.kbf .kbf-opinion{padding:32px;border-radius:16px;background:#EDF6F5}
.kbf .kbf-opinion .kbf-h2{margin-bottom:18px}
.kbf .kbf-opinion .kbf-score{margin:0 0 22px}
.kbf .kbf-opinion p{color:#2D4057}
.kbf .kbf-auteur{display:flex;align-items:center;gap:14px;margin-top:24px}
.kbf .kbf-auteur img{width:48px;height:48px;border-radius:50%}
.kbf .kbf-auteur p{margin:0;color:#2D4057;font-weight:700;font-size:16px;line-height:22px}
.kbf .kbf-auteur small{display:block;font-size:14px;line-height:20px;font-weight:400;color:#53667A}
.kbf a.kbf-guide{display:table;margin-top:18px;font-size:16px;line-height:24px;font-weight:700}
.kbf a.kbf-guide svg{display:inline;margin-left:6px;vertical-align:-3px}
.kbf .kbf-finance{margin:0 -16px 28px;padding:24px;border-radius:16px;background:#FCF8EE}
.kbf .kbf-finance .kbf-h3{margin-top:0}
.kbf .kbf-finance p:last-child{margin-bottom:0}

/* En pratique : mêmes colonnes que les classements, filet au milieu de l'écart */
.kbf .kbf-faits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 12px;margin:0 0 28px}
.kbf .kbf-fait{position:relative}
.kbf .kbf-fait:not(:nth-child(3n+1))::before{content:"";position:absolute;top:0;bottom:0;left:-7px;width:1px;background:#D5DEE4}
.kbf .kbf-fait dt{margin-bottom:8px;font-size:16px;line-height:22px;color:#53667A}
.kbf .kbf-fait dt a{color:#53667A;text-decoration-thickness:2px;text-underline-offset:3px}
.kbf .kbf-fait dd{margin:0;font:700 20px/28px 'Kelborne Noto',sans-serif;color:#2D4057}
.kbf .kbf-fait dd small{display:block;margin-top:2px;font-size:16px;line-height:22px;font-weight:400;color:#53667A}
.kbf .kbf-petit{margin:-12px 0 24px;font-size:14px;line-height:21px;color:#53667A}
.kbf .kbf-deps{margin:0 0 28px;font-size:15px;line-height:26px}
.kbf .kbf-deps a{text-decoration-thickness:2px;text-underline-offset:3px}
.kbf .kbf-rangs{display:grid;gap:12px}
.kbf .kbf-rang{display:flex;align-items:center;gap:22px;padding:22px 32px 22px 24px;border-radius:16px;background:#EDF6F5}
.kbf .kbf-rang__num{flex:none;display:flex;align-items:center;justify-content:center;width:80px;height:66px;border-radius:10px;background:#fff;font:700 22px/1 'Kelborne Rubik',sans-serif;color:#2D4057}
.kbf .kbf-rang__txt{display:flex;flex-direction:column;margin:0}
.kbf .kbf-rang__txt b{font:700 22px/28px 'Kelborne Rubik',sans-serif;color:#2D4057}
.kbf .kbf-rang__txt span{font-size:16px;line-height:22px;color:#53667A}
.kbf a.kbf-rang__lien{display:inline-flex;align-items:center;gap:8px;margin-left:auto;font-size:17px;font-weight:700;white-space:nowrap}
/* Deux ou trois classements : côte à côte, au format compact (lien sous le texte) */
.kbf .kbf-rangs--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.kbf .kbf-rangs--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.kbf .kbf-rangs--2 .kbf-rang,.kbf .kbf-rangs--3 .kbf-rang{flex-wrap:wrap;gap:14px 16px;padding:20px}
.kbf .kbf-rangs--2 .kbf-rang__num,.kbf .kbf-rangs--3 .kbf-rang__num{width:64px;height:54px;font-size:20px}
.kbf .kbf-rangs--2 .kbf-rang__txt b,.kbf .kbf-rangs--3 .kbf-rang__txt b{font-size:19px;line-height:24px}
.kbf .kbf-rangs--2 .kbf-rang__txt span,.kbf .kbf-rangs--3 .kbf-rang__txt span{font-size:14px;line-height:20px}
.kbf .kbf-rangs--2 a.kbf-rang__lien,.kbf .kbf-rangs--3 a.kbf-rang__lien{margin-left:0;font-size:15px}

/* Questions */
.kbf .kbf-faq{border:1px solid #D5DEE4;border-radius:16px;overflow:hidden}
.kbf .kbf-faq details+details{border-top:1px solid #D5DEE4}
.kbf .kbf-faq summary{display:flex;justify-content:space-between;gap:20px;padding:20px 24px;color:#203244;font-weight:700;font-size:17px;line-height:26px;cursor:pointer;list-style:none}
.kbf .kbf-faq summary::-webkit-details-marker{display:none}
.kbf .kbf-faq summary svg{flex:none;margin-top:3px;transition:transform .15s}
.kbf .kbf-faq details[open] summary svg{transform:rotate(180deg)}
.kbf .kbf-faq details p{margin:0;padding:0 24px 20px;font-size:16px;line-height:26px}

/* Autres installateurs */
.kbf .kbf-autres{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 20px;padding:0;list-style:none}
.kbf .kbf-autres li{position:relative;padding:18px;border:1px solid #D5DEE4;border-radius:16px;transition:border-color .15s,box-shadow .15s}
.kbf .kbf-autres li:hover{border-color:#2D4057;box-shadow:0 0 0 1px #2D4057,0 6px 18px rgba(45,64,87,.08)}
.kbf .kbf-autres__logo{width:auto;max-width:120px;height:32px;margin-bottom:10px;object-fit:contain;object-position:left center}
.kbf .kbf-autres a{font:700 17px/24px 'Kelborne Rubik',sans-serif;text-decoration:none}
.kbf .kbf-autres a::before{content:"";position:absolute;inset:0;border-radius:16px}
.kbf .kbf-autres p{margin:2px 0 8px;font-size:14px;line-height:20px;color:#53667A}
.kbf .kbf-client--s{gap:6px;margin:0;font-size:14px}
.kbf .kbf-client--s img{width:18px;height:18px}
.kbf .kbf-tous{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.kbf .kbf-tous a{font-size:16px;font-weight:700}
.kbf .kbf-regions-titre{margin:0 0 10px;font-weight:700;color:#2D4057}
.kbf .kbf-regions{display:flex;flex-wrap:wrap;gap:8px 24px;margin:0;padding:0;list-style:none;font-size:16px}

/* Bouton collant : carte en bas à droite, barre pleine largeur sur mobile */
.kbf .kbf-collant{position:fixed;right:24px;bottom:24px;z-index:10;width:340px;padding:14px;border:1px solid #D5DEE4;border-radius:16px;background:#fff;box-shadow:0 4px 22px rgba(45,64,87,.08);opacity:0;visibility:hidden;transition:opacity .15s,visibility .15s}
.kbf .kbf-collant.is-visible{opacity:1;visibility:visible}
.kbf .kbf-collant__preuve{display:flex;align-items:center;gap:6px;margin:0 0 10px;padding:0 4px;font-size:14px;line-height:20px;color:#53667A}
.kbf .kbf-collant__preuve svg{flex:none;width:16px;height:16px;fill:#FFC073}

@media (max-width:860px){
	.kbf .kbf-hero__grille{grid-template-columns:minmax(0,1fr) 320px;gap:40px}
	.kbf .kbf-h1{font-size:36px}
	.kbf .kbf-rangs--3{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:700px){
	.kbf{font-size:16px;line-height:26px}
	.kbf .kbf-h1{margin-bottom:22px;font-size:28px;line-height:1.2}
	.kbf .kbf-h2{margin-bottom:16px;font-size:24px;line-height:31px}
	.kbf .kbf-h3{font-size:18px;line-height:25px}
	.kbf .kbf-hero__in{padding:20px 20px 28px}
	.kbf .kbf-ariane{margin-bottom:24px;font-size:13px}
	.kbf .kbf-hero__grille{display:block}
	.kbf .kbf-hero__texte{display:flex;flex-direction:column}
	.kbf .kbf-id{gap:16px;margin-bottom:20px}
	.kbf .kbf-h1{order:1}
	.kbf .kbf-hero__texte .kbf-score{order:2;margin-top:0}
	.kbf .kbf-intro{order:3;margin:24px 0}
	.kbf .kbf-logo{max-width:120px;height:32px}
	.kbf a.kbf-tag{font-size:11px}
	.kbf .kbf-score{gap:16px}
	.kbf .kbf-jauge{width:90px;height:auto}
	.kbf .kbf-note{font-size:32px}
	.kbf .kbf-note>span:last-child{font-size:20px}
	.kbf .kbf-verdict{padding-left:14px;font-size:15px}
	.kbf .kbf-verdict small{font-size:12px}
	.kbf .kbf-decision{padding:0;border:0;background:none}
	.kbf .kbf-decision__titre{margin-bottom:14px;font-size:20px;line-height:26px}
	.kbf .kbf-client{margin:22px 0 16px;font-size:14px}
	.kbf a.kbf-cta{min-height:48px;font-size:15px}
	.kbf a.kbf-discret{font-size:14px}
	.kbf .kbf-sommaire__in{justify-content:flex-start;gap:24px;padding:0 20px;overflow-x:auto;scrollbar-width:none}
	.kbf .kbf-sommaire a{padding:17px 0 13px;font-size:14px}
	.kbf .kbf-sommaire a.is-mobile-masque{display:none}
	.kbf .kbf-article{margin:32px auto 40px}
	.kbf .kbf-article>section{margin-bottom:40px}
	.kbf .kbf-fit{gap:14px;padding:16px}
	.kbf .kbf-fit img{width:56px;height:56px}
	.kbf .kbf-fit h3{font-size:16px;line-height:22px}
	.kbf .kbf-fit p{font-size:14px;line-height:21px}
	.kbf .kbf-fit a{white-space:normal}
	.kbf .kbf-opinion{padding:22px 18px}
	.kbf .kbf-opinion .kbf-score{gap:13px}
	.kbf .kbf-opinion .kbf-jauge{width:84px}
	.kbf .kbf-opinion .kbf-note{font-size:30px}
	.kbf .kbf-auteur{gap:12px}
	.kbf .kbf-auteur p{font-size:15px}
	.kbf .kbf-auteur small{font-size:13px}
	.kbf a.kbf-guide{font-size:15px}
	.kbf .kbf-finance{margin:0 -6px 26px;padding:20px 16px}
	.kbf .kbf-faits{grid-template-columns:minmax(0,1fr);gap:0;margin-bottom:20px}
	.kbf .kbf-fait{padding:14px 0;border-bottom:1px solid #D5DEE4}
	.kbf .kbf-fait:first-child{padding-top:0}
	.kbf .kbf-fait:last-child{padding-bottom:0;border-bottom:0}
	.kbf .kbf-fait:not(:nth-child(3n+1))::before{display:none}
	.kbf .kbf-fait dt{margin-bottom:4px;font-size:15px;line-height:20px}
	.kbf .kbf-fait dd{font-size:18px;line-height:24px}
	.kbf .kbf-fait dd small{font-size:15px;line-height:20px}
	.kbf .kbf-petit{margin:0 0 20px}
	.kbf .kbf-rangs,.kbf .kbf-rangs--2,.kbf .kbf-rangs--3{grid-template-columns:minmax(0,1fr)}
	.kbf .kbf-rang{flex-wrap:wrap;gap:16px;padding:20px}
	.kbf .kbf-rang__num,.kbf .kbf-rangs--2 .kbf-rang__num,.kbf .kbf-rangs--3 .kbf-rang__num{width:72px;height:58px;font-size:20px}
	.kbf .kbf-rang__txt b{font-size:19px;line-height:24px}
	.kbf .kbf-rang__txt span{font-size:15px}
	.kbf a.kbf-rang__lien{margin-left:0;font-size:15px}
	.kbf .kbf-faq summary{padding:18px;font-size:16px;line-height:24px}
	.kbf .kbf-faq details p{padding:0 18px 18px;font-size:15px;line-height:24px}
	.kbf .kbf-autres{display:flex;gap:12px;margin:0 -20px 16px;padding:0 20px 4px;overflow-x:auto;scroll-snap-type:x mandatory}
	.kbf .kbf-autres li{flex:0 0 72%;scroll-snap-align:start}
	.kbf .kbf-collant{right:0;bottom:0;left:0;width:100%;padding:8px 16px max(8px,env(safe-area-inset-bottom));border:0;border-top:1px solid #D5DEE4;border-radius:0;box-shadow:0 -3px 16px rgba(45,64,87,.05)}
	.kbf .kbf-collant__preuve{display:none}
}
