/* Cyberfoyer · palette « Veilleuse » */
:root{
	--chaux:#EEF1F4; --papier:#FFFFFF; --nuit:#1C2140; --ardoise:#555B76; --filet:#D5DAE4; --filet-fort:#B9C0D0;
	--voyant:#0A8F96; --voyant-texte:#076A70; --voyant-pale:#DDF1F1;
	--entree:#F5DCCB; --entree-fort:#9A4A22;
	--bureau:#D6E5F4; --bureau-fort:#22558C;
	--chambre:#E6DCF3; --chambre-fort:#5E3F96;
	--boite:#DDEED8; --boite-fort:#3D6B2E;
	--titre:"Zilla Slab", Rockwell, "Roboto Slab", Georgia, serif;
	--texte:"Commissioner", "Segoe UI", system-ui, sans-serif;
	--r:6px; --largeur:1180px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:84px}
body{margin:0;background:var(--chaux);color:var(--nuit);font:400 1.0625rem/1.65 var(--texte);font-feature-settings:"kern","liga"}
img{max-width:100%;height:auto;display:block}
a{color:var(--voyant-texte);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--nuit)}
:focus-visible{outline:3px solid var(--voyant);outline-offset:2px}
h1,h2,h3,h4{font-family:var(--titre);font-weight:700;line-height:1.15;letter-spacing:-.005em;margin:0}
.cf-saut{position:absolute;left:-999px;top:0;background:var(--nuit);color:#fff;padding:.6rem 1rem;z-index:99}
.cf-saut:focus{left:8px}

/* Teintes par pièce */
.cf-t-entree{--piece:var(--entree);--piece-fort:var(--entree-fort)}
.cf-t-bureau{--piece:var(--bureau);--piece-fort:var(--bureau-fort)}
.cf-t-chambre{--piece:var(--chambre);--piece-fort:var(--chambre-fort)}
.cf-t-boite{--piece:var(--boite);--piece-fort:var(--boite-fort)}

/* En-tête */
.cf-tete{background:var(--papier);border-bottom:2px solid var(--nuit);position:sticky;top:0;z-index:50}
.cf-tete__in{max-width:var(--largeur);margin:0 auto;padding:.7rem 1rem;display:flex;align-items:center;gap:1.5rem}
.cf-marque{display:flex;align-items:center;gap:.55rem;color:var(--nuit);text-decoration:none;flex-shrink:0}
.cf-marque__pic{width:34px;height:34px;color:var(--nuit)}
.cf-marque__nom{font:700 1.45rem/1 var(--titre);letter-spacing:.01em}
.cf-nav{display:flex;gap:.25rem;margin-left:auto;overflow-x:auto;scrollbar-width:none}
.cf-nav::-webkit-scrollbar{display:none}
.cf-nav__lien{display:flex;align-items:center;gap:.45rem;white-space:nowrap;padding:.45rem .7rem;border-radius:var(--r);color:var(--nuit);text-decoration:none;font-weight:600;font-size:.95rem}
.cf-nav__lien:hover,.cf-nav__lien.is-ici{background:var(--piece)}
.cf-pastille{width:10px;height:10px;border-radius:50%;background:var(--piece);border:2px solid var(--piece-fort)}
@media (max-width:860px){
	.cf-tete__in{flex-wrap:wrap;gap:.4rem;padding:.6rem 1rem .4rem}
	.cf-nav{margin:0 -1rem;padding:0 1rem .3rem;width:calc(100% + 2rem)}
	.cf-nav__lien{font-size:.9rem;padding:.4rem .6rem;background:var(--chaux)}
}

.cf-main{min-height:60vh}

/* Accueil : la maison en coupe */
.cf-coupe{background:var(--papier);border-bottom:1px solid var(--filet)}
.cf-coupe__in{max-width:var(--largeur);margin:0 auto;padding:3rem 1rem 2.5rem;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:2.5rem;align-items:center}
.cf-coupe__sur{margin:0 0 .6rem;font-weight:600;color:var(--voyant-texte);font-size:.95rem}
.cf-coupe__titre{font-size:clamp(2.2rem,4.6vw,3.6rem);margin-bottom:1rem}
.cf-coupe__chapo{font-size:1.15rem;color:var(--ardoise);margin:0 0 1.6rem;max-width:34em}
.cf-portes{list-style:none;margin:0;padding:0;border-top:2px solid var(--nuit)}
.cf-porte a{display:grid;grid-template-columns:2.6rem 1fr auto;align-items:baseline;gap:.6rem;padding:.85rem .4rem;border-bottom:1px solid var(--filet-fort);text-decoration:none;color:var(--nuit);transition:background .15s}
.cf-porte a:hover,.cf-porte.is-allume a{background:var(--piece)}
.cf-porte__num{font:700 1rem/1 var(--titre);color:var(--piece-fort)}
.cf-porte__nom{font:700 1.3rem/1.2 var(--titre)}
.cf-porte__sujet{font-size:.92rem;color:var(--ardoise);text-align:right}
.cf-maison{margin:0}
.cf-maison svg{width:100%;height:auto;overflow:visible}
.cf-maison figcaption{font-size:.85rem;color:var(--ardoise);text-align:center;margin-top:.3rem}
.m-sol,.m-trait,.m-mur{fill:none;stroke:var(--nuit);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.m-mur{stroke-width:5}
.m-trait-fin{fill:none;stroke:var(--nuit);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.m-trait-fin-r{fill:var(--papier);stroke:var(--nuit);stroke-width:2.2}
.m-herbe{fill:none;stroke:var(--boite-fort);stroke-width:2.4;stroke-linecap:round}
.m-toit{fill:#2A3058}
.m-cheminee{fill:#2A3058;stroke:var(--nuit);stroke-width:3}
.m-lucarne{fill:var(--chaux);stroke:var(--nuit);stroke-width:3}
.m-fond{stroke:none;transition:filter .15s}
.m-entree{fill:var(--entree)} .m-bureau{fill:var(--bureau)} .m-chambre{fill:var(--chambre)} .m-boite{fill:var(--boite)} .m-palier{fill:#E4E7EE}
.m-porte{fill:var(--papier);stroke:var(--nuit);stroke-width:3}
.m-meuble{fill:var(--papier);stroke:var(--nuit);stroke-width:2.4}
.m-ecran{fill:var(--nuit);stroke:var(--nuit);stroke-width:2}
.m-bouclier{fill:var(--voyant);stroke:var(--papier);stroke-width:1.5}
.m-bureau ~ .m-trait-fin{stroke:var(--nuit)}
.m-accent{fill:var(--voyant)}
.m-cadenas{fill:none;stroke:var(--voyant);stroke-width:2.6}
.m-cle{fill:none;stroke:var(--entree-fort);stroke-width:2.6;stroke-linecap:round}
.m-fenetre{fill:var(--papier);stroke:var(--nuit);stroke-width:2.4}
.m-lettre{fill:var(--papier);stroke:var(--nuit);stroke-width:2}
.m-drapeau{fill:var(--voyant);stroke:var(--nuit);stroke-width:2}
.m-etiquette{font:700 15px/1 var(--titre);fill:var(--nuit)}
.m-piece{cursor:pointer;outline:none}
.m-piece:hover .m-fond,.m-piece:focus-visible .m-fond,.m-piece.is-allume .m-fond{filter:brightness(.9) saturate(1.5)}
.m-piece:focus-visible .m-fond{stroke:var(--voyant);stroke-width:5}
@media (max-width:900px){
	.cf-coupe__in{grid-template-columns:1fr;padding:1.6rem 1rem 1.8rem;gap:1.2rem}
	.cf-maison{order:-1;max-width:520px;margin:0 auto;width:100%}
	.cf-coupe__titre{font-size:2.15rem}
	.cf-coupe__chapo{font-size:1.05rem}
	.cf-porte__sujet{display:none}
	.cf-porte a{grid-template-columns:2.2rem 1fr}
}

/* Cartes et grilles */
.cf-recents,.cf-grille-wrap,.cf-voisins{max-width:var(--largeur);margin:0 auto;padding:2.6rem 1rem}
.cf-recents__tete{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 2rem;margin-bottom:1.4rem;border-bottom:2px solid var(--nuit);padding-bottom:.7rem}
.cf-recents__tete h2,.cf-voisins__titre{font-size:1.75rem}
.cf-recents__tete p{margin:0;color:var(--ardoise)}
.cf-voisins__titre{margin-bottom:1.2rem;border-bottom:2px solid var(--nuit);padding-bottom:.6rem}
.cf-grille{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem}
.cf-carte{background:var(--papier);border:1px solid var(--filet);border-top:6px solid var(--piece);border-radius:0 0 var(--r) var(--r);transition:transform .15s,box-shadow .15s}
.cf-carte:hover{transform:translateY(-2px);box-shadow:0 6px 0 -2px var(--filet-fort)}
.cf-carte__lien{display:flex;flex-direction:column;height:100%;text-decoration:none;color:var(--nuit)}
.cf-carte__img{aspect-ratio:16/10;object-fit:cover;width:100%}
.cf-carte__piece{margin:1rem 1.1rem .3rem;font-size:.82rem;font-weight:700;color:var(--piece-fort);text-transform:uppercase;letter-spacing:.06em}
.cf-carte__titre{margin:0 1.1rem;font:700 1.25rem/1.25 var(--titre)}
.cf-carte__meta{margin:auto 1.1rem 1rem;padding-top:.8rem;font-size:.85rem;color:var(--ardoise)}
@media (max-width:900px){.cf-grille{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.cf-grille{grid-template-columns:1fr}.cf-recents,.cf-grille-wrap,.cf-voisins{padding:1.8rem 1rem}}
.cf-vide{color:var(--ardoise)}
.cf-pagination{margin-top:2rem}
.cf-pagination .nav-links{display:flex;gap:.4rem;flex-wrap:wrap}
.cf-pagination .page-numbers{padding:.4rem .75rem;border:1px solid var(--filet-fort);border-radius:var(--r);text-decoration:none;color:var(--nuit);background:var(--papier)}
.cf-pagination .current{background:var(--nuit);color:#fff;border-color:var(--nuit)}

/* Réflexes */
.cf-reflexes{max-width:var(--largeur);margin:0 auto 3rem;padding:2rem 1rem}
.cf-reflexes__titre{font-size:1.75rem;margin-bottom:1.2rem}
.cf-reflexes__liste{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;counter-reset:r}
.cf-reflexes__liste li{counter-increment:r;background:var(--papier);border-left:4px solid var(--voyant);padding:1.1rem 1.2rem;border-radius:0 var(--r) var(--r) 0}
.cf-reflexes__liste li::before{content:counter(r,decimal-leading-zero);display:block;font:700 1.1rem/1 var(--titre);color:var(--voyant-texte);margin-bottom:.5rem}
.cf-reflexes__source{font-size:.88rem;color:var(--ardoise);margin-top:1rem}
@media (max-width:800px){.cf-reflexes__liste{grid-template-columns:1fr}}

/* Seuil d'archive */
.cf-seuil{background:var(--papier);border-bottom:6px solid var(--piece,var(--voyant))}
.cf-seuil__in{max-width:var(--largeur);margin:0 auto;padding:2.6rem 1rem 2.2rem}
.cf-seuil__piece{margin:0 0 .5rem;font-weight:700;color:var(--piece-fort,var(--voyant-texte));text-transform:uppercase;letter-spacing:.06em;font-size:.85rem}
.cf-seuil__titre{font-size:clamp(2rem,4vw,3rem)}
.cf-seuil__texte{font-size:1.12rem;color:var(--ardoise);max-width:40em;margin:.8rem 0 0}

/* Article */
.cf-article__tete{background:var(--papier);border-bottom:1px solid var(--filet)}
.cf-article__tete-in{max-width:var(--largeur);margin:0 auto;padding:2.2rem 1rem 1.6rem}
.cf-fil{margin:0 0 .9rem;font-size:.9rem;display:flex;gap:.5rem;flex-wrap:wrap;color:var(--ardoise)}
.cf-fil a{color:var(--piece-fort);font-weight:600;text-decoration:none}
.cf-article__titre{font-size:clamp(2rem,4.2vw,3.2rem);max-width:22em}
.cf-article__meta{display:flex;flex-wrap:wrap;gap:.35rem 1.2rem;margin:1rem 0 0;font-size:.92rem;color:var(--ardoise)}
.cf-article__meta span:first-child{font-weight:600;color:var(--nuit)}
.cf-article__une{max-width:var(--largeur);margin:0 auto;padding:0 1rem 1.6rem}
.cf-article__une img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r)}
.cf-article__une figcaption{font-size:.8rem;color:var(--ardoise);margin-top:.4rem;text-align:right}
.cf-article__plan{max-width:var(--largeur);margin:0 auto;padding:2.2rem 1rem 1rem;display:grid;grid-template-columns:240px minmax(0,1fr);gap:3rem}
.cf-rail__in{position:sticky;top:96px;max-height:calc(100vh - 120px);overflow:auto;padding-right:.4rem}
.cf-rail__titre{margin:0 0 .6rem;font:700 1rem/1.2 var(--titre);padding-bottom:.5rem;border-bottom:2px solid var(--nuit)}
.cf-rail__liste{list-style:none;margin:0;padding:0;counter-reset:s}
.cf-rail__liste li{counter-increment:s}
.cf-rail__liste a{display:grid;grid-template-columns:1.9rem 1fr;gap:.2rem;padding:.42rem .3rem .42rem 0;font-size:.88rem;line-height:1.35;color:var(--ardoise);text-decoration:none;border-left:3px solid transparent;padding-left:.5rem}
.cf-rail__liste a::before{content:counter(s,decimal-leading-zero);font:700 .8rem/1.6 var(--titre);color:var(--filet-fort)}
.cf-rail__liste a:hover{color:var(--nuit)}
.cf-rail__liste a.is-lu{color:var(--nuit);font-weight:600;border-left-color:var(--voyant);background:var(--voyant-pale)}
.cf-rail__liste a.is-lu::before{color:var(--voyant-texte)}
.cf-sommaire-mobile{display:none}
@media (max-width:1079px){
	.cf-article__plan{grid-template-columns:1fr;gap:0;padding-top:1.2rem}
	.cf-rail{display:none}
	.cf-sommaire-mobile{display:block;margin-bottom:1.4rem;background:var(--papier);border:1px solid var(--filet);border-left:4px solid var(--voyant);border-radius:0 var(--r) var(--r) 0}
	.cf-sommaire-mobile summary{cursor:pointer;padding:.8rem 1rem;font:700 1.05rem/1.2 var(--titre)}
	.cf-sommaire-mobile ol{margin:0;padding:0 1rem 1rem 2.2rem;font-size:.95rem}
	.cf-sommaire-mobile li{margin:.35rem 0}
}

/* Corps de texte */
.cf-corps{min-width:0;max-width:760px}
.cf-corps--page{margin:0 auto;padding:1rem 1rem 3rem}
.cf-corps > *{margin-top:0;margin-bottom:1.15rem}
.cf-corps h2{font-size:1.75rem;margin:2.6rem 0 1rem;padding-top:.2rem}
.cf-corps h3{font-size:1.3rem;margin:1.9rem 0 .7rem}
.cf-corps ul,.cf-corps ol{padding-left:1.3rem}
.cf-corps li{margin:.35rem 0}
.cf-corps strong{font-weight:650}
.cf-chapo{font-size:1.22rem;line-height:1.55;color:var(--nuit)}
.cf-bref{background:var(--papier);border:2px solid var(--nuit);border-radius:var(--r);padding:1.1rem 1.3rem;position:relative}
.cf-bref__titre{margin:0 0 .5rem!important;font:700 .85rem/1 var(--texte);text-transform:uppercase;letter-spacing:.08em;color:var(--voyant-texte)}
.cf-bref p:last-of-type{margin-bottom:.6rem}
.cf-bref ul{margin:0;padding-left:1.2rem}
.cf-note{background:var(--voyant-pale);border-left:4px solid var(--voyant);padding:.9rem 1.1rem;border-radius:0 var(--r) var(--r) 0}
.cf-note p{margin:0}
.cf-note--alerte{background:#FBE9E3;border-left-color:#B3412A}
.cf-tableau{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--filet-fort);border-radius:var(--r);background:var(--papier)}
.cf-tableau table{border-collapse:collapse;width:100%;min-width:560px;font-size:.95rem}
.cf-tableau th,.cf-tableau td{padding:.65rem .8rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--filet)}
.cf-tableau thead th{background:var(--nuit);color:#fff;font-weight:600;position:sticky;top:0}
.cf-tableau tbody tr:nth-child(even){background:#F7F8FB}
.cf-etapes{list-style:none;padding:0!important;counter-reset:e}
.cf-etapes li{counter-increment:e;position:relative;padding:.2rem 0 .8rem 2.9rem;margin:0!important;border-left:2px dashed var(--filet-fort);margin-left:1rem!important;padding-left:1.9rem}
.cf-etapes li::before{content:counter(e);position:absolute;left:-1rem;top:0;width:2rem;height:2rem;border-radius:50%;background:var(--nuit);color:#fff;font:700 .95rem/2rem var(--titre);text-align:center}
.cf-etapes li:last-child{border-left-color:transparent}
.cf-figure{margin:1.6rem 0}
.cf-figure img{border:1px solid var(--filet-fort);border-radius:var(--r);width:100%}
.cf-figure figcaption{font-size:.85rem;color:var(--ardoise);margin-top:.45rem}
.cf-produit{background:var(--papier);border:1px solid var(--filet-fort);border-top:5px solid var(--voyant);border-radius:0 0 var(--r) var(--r);padding:1.1rem 1.3rem 1.3rem;display:grid;grid-template-columns:1fr 1fr;gap:.2rem 1.4rem}
.cf-produit > *{margin:0}
.cf-produit__nom{grid-column:1/-1;font:700 1.35rem/1.2 var(--titre)}
.cf-produit__pour{grid-column:1/-1;color:var(--ardoise);margin-bottom:.6rem!important}
.cf-produit ul{list-style:none;padding:0;margin:0}
.cf-produit li{padding-left:1.4rem;position:relative;font-size:.95rem}
.cf-produit__plus li::before{content:"+";position:absolute;left:0;font-weight:700;color:var(--boite-fort)}
.cf-produit__moins li::before{content:"−";position:absolute;left:0;font-weight:700;color:#B3412A}
.cf-produit__prix{grid-column:1/-1;font-size:.9rem;color:var(--ardoise);margin-top:.7rem!important}
.cf-produit .cf-btn{grid-column:1/-1;justify-self:start;margin-top:.8rem}
@media (max-width:600px){.cf-produit{grid-template-columns:1fr}}
.cf-btn{display:inline-flex;align-items:center;gap:.5rem;background:var(--voyant-texte);color:#fff!important;text-decoration:none;font-weight:600;padding:.7rem 1.1rem;border-radius:var(--r);border-bottom:3px solid var(--nuit)}
.cf-btn::after{content:"→"}
.cf-btn:hover{background:var(--nuit)}
.cf-faq details{border-top:1px solid var(--filet-fort);padding:.2rem 0}
.cf-faq details:last-child{border-bottom:1px solid var(--filet-fort)}
.cf-faq summary{cursor:pointer;list-style:none;padding:.8rem 2rem .8rem 0;font:700 1.12rem/1.35 var(--titre);position:relative}
.cf-faq summary::-webkit-details-marker{display:none}
.cf-faq summary::after{content:"+";position:absolute;right:.2rem;top:.65rem;font:700 1.4rem/1 var(--texte);color:var(--voyant-texte)}
.cf-faq details[open] summary::after{content:"−"}
.cf-faq details p{margin:0 0 1rem}
.cf-sources{font-size:.92rem;color:var(--ardoise)}
.cf-sources h2{font-size:1.3rem}
.cf-sources li{margin:.3rem 0}
.cf-bientot{text-decoration:none}
.cf-signature{font-size:.9rem;color:var(--ardoise);border-top:2px solid var(--nuit);padding-top:.9rem;margin-top:2.4rem!important}

/* Pages */
.cf-page__tete{max-width:760px;margin:0 auto;padding:2.4rem 1rem .6rem}
.cf-page__tete h1{font-size:clamp(2rem,4vw,2.8rem)}

/* Pied de page : les fondations */
.cf-fondations{background:var(--nuit);color:#D9DCEA;margin-top:2rem;border-top:10px solid #2A3058}
.cf-fondations__in{max-width:var(--largeur);margin:0 auto;padding:2.6rem 1rem 1.4rem;display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem}
.cf-fondations a{color:#fff;text-decoration:none}
.cf-fondations a:hover{text-decoration:underline}
.cf-fondations__marque{font:700 1.5rem/1 var(--titre);color:#fff;margin:0 0 .7rem}
.cf-fondations__titre{font:700 1rem/1 var(--titre);color:#fff;margin:0 0 .7rem}
.cf-fondations ul{list-style:none;margin:0;padding:0}
.cf-fondations li{margin:.4rem 0;font-size:.95rem}
.cf-fondations__bloc p{margin:0;font-size:.95rem;max-width:34em}
.cf-fondations__bas{max-width:var(--largeur);margin:0 auto;padding:1rem 1rem 1.6rem;border-top:1px solid #3A4170;font-size:.85rem}
@media (max-width:800px){.cf-fondations__in{grid-template-columns:1fr;gap:1.4rem}}
