
/* Section « Données confidentielles » (finance, droit, médical, aérospatial) */
.confid { background: #101211; color: #f4f4f0; border-radius: 0; }
.confid p, .confid li, .confid h2, .confid h3 { color: inherit; }
.confid .t-titre { color: #f4f4f0; max-width: 26ch; }
.confid__sur { display: inline-block; margin: 0 0 var(--e-3, 16px); padding: 0.3em 0.8em; border-radius: 999px; background: var(--accent); color: #101211; font-weight: 600; font-size: 0.9rem; }
.confid__intro { color: color-mix(in srgb, #f4f4f0 82%, transparent); }
.confid__grille { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--e-4, 20px); margin-top: var(--e-5, 32px); }
.confid__col { padding: var(--e-4, 24px); border-radius: 18px; background: color-mix(in srgb, #f4f4f0 6%, transparent); border: 1px solid color-mix(in srgb, #f4f4f0 16%, transparent); }
.confid__col--fort { background: color-mix(in srgb, var(--accent) 12%, transparent); border-color: color-mix(in srgb, var(--accent) 55%, transparent); }
.confid__col h3 { display: flex; align-items: center; gap: 0.5em; margin: 0 0 var(--e-3, 14px); font-size: 1.2rem; color: #f4f4f0; }
.confid__ic { width: 1.5em; height: 1.5em; flex: none; fill: none; stroke: var(--accent); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.confid__liste { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.7em; }
.confid__liste li { position: relative; padding-left: 1.2em; color: color-mix(in srgb, #f4f4f0 88%, transparent); line-height: 1.5; }
.confid__liste li::before { content: ""; position: absolute; left: 0; top: 0.6em; width: 0.45em; height: 0.45em; border-radius: 50%; background: var(--accent); }
.confid__comment { margin: 0; padding: 0; list-style: none; display: grid; gap: 1em; }
.confid__comment li { display: flex; gap: 0.7em; align-items: flex-start; }
.confid__comment strong { display: block; color: #f4f4f0; }
.confid__comment span { color: color-mix(in srgb, #f4f4f0 85%, transparent); line-height: 1.5; }
.confid .a-valider { color: var(--accent); white-space: nowrap; }
.confid__note { margin-top: var(--e-5, 28px); max-width: 80ch; font-size: 0.95rem; color: color-mix(in srgb, #f4f4f0 78%, transparent); }
.confid__sources ul { display: flex; flex-wrap: wrap; gap: 0.5em 1.2em; padding: 0; margin: var(--e-3, 14px) 0 0; list-style: none; }
.confid__sources a, .confid .lien-fleche { color: #f4f4f0; text-decoration: underline; text-underline-offset: 3px; }
.confid a:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.confid .appel-ligne { display: flex; flex-wrap: wrap; gap: var(--e-3, 16px) var(--e-4, 24px); align-items: center; margin-top: var(--e-5, 32px); }
@media (max-width: 899px) { .confid__grille { grid-template-columns: 1fr; } }
/* Pages secteurs */
/* v5 : tracteur routier */
.departements__plan .pneu-flanc { fill: color-mix(in srgb, var(--accent-2) 92%, var(--texte)); stroke: var(--texte); stroke-width: 1.1; }
.departements__plan .pneu-face { fill: var(--accent-2); stroke: var(--texte); stroke-width: 1.1; }
.departements__plan .jante { fill: color-mix(in srgb, var(--texte) 12%, var(--surface)); stroke: var(--texte); stroke-width: 0.9; }
.departements__plan .moyeu-camion { fill: color-mix(in srgb, var(--texte) 35%, var(--surface)); stroke: var(--texte); stroke-width: 0.8; }
.departements__plan .ecrou { fill: var(--texte); }
.departements__plan .sellette-fente { fill: none; stroke: var(--surface); stroke-width: 2; }
.departements__plan .cheminee-bout { fill: none; stroke: var(--texte); stroke-width: 3; }
.departements__plan .calandre-fond { fill: var(--accent-2); stroke: var(--texte); stroke-width: 1.1; }
.departements__plan .calandre { fill: none; stroke: color-mix(in srgb, var(--surface) 70%, transparent); stroke-width: 1.2; }
.departements__plan .phare { fill: var(--accent); stroke: var(--texte); stroke-width: 0.9; }
.departements__plan .fosse { fill: color-mix(in srgb, var(--accent-2) 80%, var(--surface)); stroke: var(--texte); stroke-width: 1.1; }
.departements__plan .iso.chassis .h, .departements__plan .iso.chassis .g, .departements__plan .iso.chassis .d, .departements__plan .iso.sellette .g, .departements__plan .iso.sellette .d, .departements__plan .iso.bavette .g, .departements__plan .iso.bavette .d, .departements__plan .iso.bavette .h { fill: var(--accent-2); }
.departements__plan .iso.sellette .h { fill: color-mix(in srgb, var(--accent-2) 70%, var(--surface)); }
.departements__plan .iso.capot .h { fill: var(--surface); } .departements__plan .iso.capot .g { fill: color-mix(in srgb, var(--texte) 6%, var(--surface)); } .departements__plan .iso.capot .d { fill: color-mix(in srgb, var(--texte) 14%, var(--surface)); }
.departements__plan .iso.aile .g { fill: color-mix(in srgb, var(--accent) 80%, var(--surface)); } .departements__plan .iso.aile .h, .departements__plan .iso.aile .d { fill: var(--accent); }
.departements__plan .iso.pare-chocs .h, .departements__plan .iso.pare-chocs .g, .departements__plan .iso.pare-chocs .d, .departements__plan .iso.reservoir .h, .departements__plan .iso.reservoir .g { fill: color-mix(in srgb, var(--texte) 16%, var(--surface)); }
.departements__plan .iso.retro .h, .departements__plan .iso.retro .g, .departements__plan .iso.retro .d { fill: var(--accent-2); }
.departements__plan .iso.chandelle .h, .departements__plan .iso.chandelle .g, .departements__plan .iso.chandelle .d { fill: var(--accent); }
.departements__plan .iso.cheminee .h, .departements__plan .iso.cheminee .d { fill: color-mix(in srgb, var(--texte) 22%, var(--surface)); }

/* v4 : détails des postes 3D (passe de réalisme) */
.departements__plan .iso.dos-ecran .h, .departements__plan .iso.dos-ecran .g, .departements__plan .iso.dos-ecran .d { fill: color-mix(in srgb, var(--accent-2) 70%, var(--surface)); }
.departements__plan .hublot { fill: var(--accent-2); stroke: var(--texte); stroke-width: 0.8; }
.departements__plan .poignee, .departements__plan .levier { fill: none; stroke: var(--texte); stroke-width: 2.2; stroke-linecap: round; }
.departements__plan .etiquette { fill: var(--surface); stroke: color-mix(in srgb, var(--texte) 55%, transparent); stroke-width: 0.8; }
.departements__plan .tablette { fill: color-mix(in srgb, var(--texte) 18%, var(--surface)); stroke: var(--texte); stroke-width: 0.8; }
.departements__plan .fond-meuble { fill: color-mix(in srgb, var(--accent-2) 72%, var(--surface)); stroke: var(--texte); stroke-width: 1.1; }
.departements__plan .livre { fill: var(--surface); stroke: var(--texte); stroke-width: 0.7; }
.departements__plan .livre-sombre { fill: color-mix(in srgb, var(--texte) 30%, var(--surface)); stroke: var(--texte); stroke-width: 0.7; }
.departements__plan .livre-signal { fill: var(--accent); stroke: var(--texte); stroke-width: 0.7; }
.departements__plan .perfo { fill: none; stroke: var(--surface); stroke-width: 1.4; }
.departements__plan .perfo-pt { fill: color-mix(in srgb, var(--texte) 45%, transparent); }
.departements__plan .bac-front { fill: color-mix(in srgb, var(--texte) 10%, var(--surface)); stroke: var(--texte); stroke-width: 0.8; }
.departements__plan .carte { fill: var(--surface); stroke: color-mix(in srgb, var(--texte) 50%, transparent); stroke-width: 0.8; }
.departements__plan .route-carte { fill: none; stroke: var(--accent); stroke-width: 2.4; stroke-linejoin: round; }
.departements__plan .horloge { fill: var(--surface); stroke: var(--texte); stroke-width: 1.4; }
.departements__plan .porte-machine, .departements__plan .objet-trait { fill: none; stroke: var(--texte); stroke-width: 1.4; }
.departements__plan .bouton { fill: color-mix(in srgb, var(--texte) 55%, var(--surface)); }
.departements__plan .palpeur { fill: var(--accent); stroke: var(--texte); stroke-width: 1; }
.departements__plan .anse { fill: none; stroke: var(--texte); stroke-width: 1.4; }
.departements__plan .cadenas { fill: color-mix(in srgb, var(--texte) 22%, var(--surface)); stroke: var(--texte); stroke-width: 0.8; }
.departements__plan .cadenas-signal { fill: var(--accent); stroke: var(--texte); stroke-width: 0.8; }
.departements__plan .croix { fill: var(--surface); stroke: none; }
.departements__plan .ruban-cone { fill: none; stroke: var(--surface); stroke-width: 3; }
.departements__plan .ruban-colis { fill: none; stroke: color-mix(in srgb, var(--texte) 45%, transparent); stroke-width: 2; }
.departements__plan .molette { fill: color-mix(in srgb, var(--texte) 18%, var(--surface)); stroke: var(--texte); stroke-width: 1.4; }
.departements__plan .ecran-mini { fill: var(--accent-2); stroke: none; }
.departements__plan .vitre-sash { fill: color-mix(in srgb, var(--accent-2) 55%, var(--surface)); stroke: var(--texte); stroke-width: 1.1; }
.departements__plan .bassin { fill: color-mix(in srgb, var(--texte) 16%, var(--surface)); stroke: var(--texte); stroke-width: 1; }
.departements__plan .outil { fill: none; stroke: var(--accent-2); stroke-width: 2.6; stroke-linecap: round; }
.departements__plan .outil-tete { fill: var(--accent-2); stroke: none; }
.departements__plan .bout-bois { fill: color-mix(in srgb, #c8a46a 55%, var(--surface)); stroke: var(--texte); stroke-width: 0.8; }
.departements__plan .barre { fill: none; stroke: color-mix(in srgb, var(--texte) 70%, var(--surface)); stroke-width: 2.4; stroke-linecap: round; }
.departements__plan .grille { fill: none; stroke: color-mix(in srgb, var(--texte) 26%, transparent); stroke-width: 0.8; }
.departements__plan .vanne { fill: var(--accent); stroke: var(--texte); stroke-width: 1.2; }
.departements__plan .tuyau { fill: none; stroke: var(--texte); stroke-width: 7; stroke-linecap: round; stroke-linejoin: round; }
.departements__plan .tuyau-c { fill: none; stroke: color-mix(in srgb, var(--texte) 10%, var(--surface)); stroke-width: 4.6; stroke-linecap: round; stroke-linejoin: round; }
.departements__plan .tuyau.tuyau-gros { stroke-width: 11; } .departements__plan .tuyau-c.tuyau-gros { stroke-width: 8.4; }
.departements__plan .iso.granit .h { fill: color-mix(in srgb, var(--texte) 22%, var(--surface)); }
.departements__plan .iso.granit .g, .departements__plan .iso.granit .d { fill: color-mix(in srgb, var(--texte) 34%, var(--surface)); }
.departements__plan .iso.pont .h, .departements__plan .iso.rail .h { fill: var(--surface); }
.departements__plan .iso.bois .h { fill: color-mix(in srgb, #c8a46a 38%, var(--surface)); }
.departements__plan .iso.bois .g { fill: color-mix(in srgb, #c8a46a 50%, var(--surface)); } .departements__plan .iso.bois .d { fill: color-mix(in srgb, #a7824a 58%, var(--surface)); }
.departements__plan .iso.bois-sombre .h, .departements__plan .iso.bois-sombre .g, .departements__plan .iso.bois-sombre .d { fill: color-mix(in srgb, #8a6a3c 60%, var(--surface)); }
.departements__plan .iso.beton .h, .departements__plan .iso.gravier .h { fill: color-mix(in srgb, var(--texte) 6%, var(--surface)); }
.departements__plan .iso.machine .h { fill: var(--surface); }
.departements__plan .iso.machine .d { fill: color-mix(in srgb, var(--texte) 11%, var(--surface)); }
.departements__plan .iso.tour-vert .h, .departements__plan .iso.tour-vert .d, .departements__plan .iso.tour-vert .g { fill: var(--accent); }
.departements__plan .iso.tour-ambre .h, .departements__plan .iso.tour-ambre .d { fill: color-mix(in srgb, var(--texte) 30%, var(--surface)); }
.departements__plan .iso.tour-rouge .h, .departements__plan .iso.tour-rouge .d { fill: var(--accent-2); }
.departements__plan .iso.cuve .h, .departements__plan .iso.cuve .d, .departements__plan .iso.fuselage .h { fill: var(--surface); }
.departements__plan .iso.fuselage .g { fill: color-mix(in srgb, var(--texte) 5%, var(--surface)); }
.departements__plan .iso.pneu .h, .departements__plan .iso.pneu .d { fill: var(--accent-2); stroke: var(--texte); }
.departements__plan .iso.coffre .g, .departements__plan .iso.coffre .d { fill: color-mix(in srgb, var(--texte) 26%, var(--surface)); }
.departements__plan .iso.coffre .h { fill: color-mix(in srgb, var(--texte) 14%, var(--surface)); }
.departements__plan .iso.matelas .h { fill: color-mix(in srgb, var(--accent-2) 14%, var(--surface)); } .departements__plan .iso.matelas .g { fill: color-mix(in srgb, var(--accent-2) 22%, var(--surface)); } .departements__plan .iso.matelas .d { fill: color-mix(in srgb, var(--accent-2) 30%, var(--surface)); }
.departements__plan .iso.resine .h { fill: color-mix(in srgb, var(--texte) 28%, var(--surface)); }
.departements__plan .iso.flacon .h, .departements__plan .iso.flacon .d, .departements__plan .iso.tube .h, .departements__plan .iso.tube .d { fill: var(--surface); }
.departements__plan .iso.flacon-signal .h, .departements__plan .iso.flacon-signal .d, .departements__plan .iso.tube-signal .h, .departements__plan .iso.tube-signal .d, .departements__plan .iso.casque .h, .departements__plan .iso.casque .d { fill: var(--accent); }
.departements__plan .iso.trousse .g, .departements__plan .iso.trousse .d, .departements__plan .iso.trousse .h { fill: var(--accent); }
.departements__plan .iso.echafaudage .g, .departements__plan .iso.echafaudage .d, .departements__plan .iso.treillis .g, .departements__plan .iso.treillis .d { fill: color-mix(in srgb, var(--accent) 60%, var(--surface)); }
.departements__plan .iso.barricade .g, .departements__plan .iso.barricade .h, .departements__plan .iso.barricade .d { fill: var(--surface); }
.departements__plan .iso.film .g, .departements__plan .iso.film .d { fill: color-mix(in srgb, var(--texte) 4%, var(--surface)); }
.departements__plan .iso.cloison .g, .departements__plan .iso.cloison .d { fill: color-mix(in srgb, var(--accent-2) 22%, var(--surface)); }
.departements__plan .iso.cote .g, .departements__plan .iso.cote .d { fill: color-mix(in srgb, var(--texte) 10%, var(--surface)); }
.departements__plan .iso.sas .g { fill: color-mix(in srgb, var(--accent-2) 75%, var(--surface)); }
.departements__plan .iso.moteur .g, .departements__plan .iso.moteur-suspendu .g, .departements__plan .iso.moteur-suspendu .d { fill: color-mix(in srgb, var(--accent-2) 55%, var(--surface)); }

.departements__titre .dep-nom { white-space: normal; max-width: min(30ch, calc(100vw - 2 * var(--gouttiere, 20px))); }
.departements__titre .dep-nom .pastille { box-decoration-break: clone; -webkit-box-decoration-break: clone; line-height: 1.12; }
.dep-nom__texte { display: inline; }
@media (max-width: 759px) { .departements__titre .dep-nom { font-size: clamp(1.25rem, 6vw, 1.6rem); } }
.sect-perimetre { margin: var(--e-4) 0 0; max-width: 80ch; }
.sect-fn { position: relative; }
.sect-fn__etat { margin: 0; justify-self: start; font-size: 0.75rem; font-weight: 600; letter-spacing: .03em; padding: 2px 10px; border-radius: 999px; border: var(--trame) solid var(--bordure); color: var(--texte); background: var(--fond); }
.sect-fn--st .sect-fn__etat { background: var(--accent); border-color: var(--accent); color: #0b0c0c; }
.sect-fn--aj .sect-fn__etat { background: var(--texte); border-color: var(--texte); color: var(--fond); }
.sect-fn__voir { margin: var(--e-2) 0 0 !important; }
.sect-fn__voir a { color: var(--texte); text-decoration: underline; text-underline-offset: 3px; }
.sect-fn__voir a:focus-visible, .sect-sources a:focus-visible, .sect-communes summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.sect-scenario { margin: var(--e-8) 0 0; padding: var(--e-5, 24px); border-radius: 18px; border: 1px dashed var(--bordure); max-width: 78ch; }
.sect-scenario h3 { margin: 0 0 var(--e-3); font-size: var(--t-m); }
.sect-scenario__etiquette { display: inline-block; margin-right: 8px; padding: 2px 10px; border-radius: 999px; background: var(--accent); color: #0b0c0c; font-size: 0.75rem; text-transform: uppercase; letter-spacing: .04em; vertical-align: 2px; }
.sect-scenario__etapes { margin: 0 0 var(--e-4); padding-left: 1.4em; display: grid; gap: 8px; }
.sect-scenario__etapes b { display: inline-block; min-width: 9.5em; }
.sect-communes { margin: var(--e-6) 0 0; border: var(--trame) solid var(--bordure); border-radius: 14px; padding: var(--e-3) var(--e-4); }
.sect-communes summary { cursor: pointer; font-weight: 600; min-height: 44px; display: flex; align-items: center; }
.sect-communes ul { list-style: none; margin: var(--e-3) 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: var(--e-3); }
.sect-communes h4 { margin: 0 0 4px; font-size: 1rem; } .sect-communes p { margin: 0; color: var(--texte-doux); }
.sect-sources { margin-top: var(--e-6); } .sect-sources ul { margin: var(--e-2) 0 0; padding-left: 1.2em; display: grid; gap: 4px; }
.sect-sources a { color: var(--texte); text-underline-offset: 3px; }
.visuellement-cache { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sect-cas__grille { list-style: none; margin: var(--e-6) 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: var(--e-4); }
.sect-cas__carte { display: grid; align-content: start; gap: var(--e-2); padding: var(--e-5, 24px); border-radius: 18px; border: var(--trame) solid var(--bordure); background: var(--surface); }
.sect-cas__carte h3 { margin: 0; font-size: var(--t-m); line-height: 1.2; }
.sect-cas__carte p { margin: 0; color: var(--texte-doux); }
.sect-cas__modules { list-style: none; margin: var(--e-2) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.sect-cas__modules a { display: inline-flex; align-items: center; min-height: 32px; padding: 0 12px; border-radius: 999px; border: var(--trame) solid var(--bordure); color: var(--texte); text-decoration: none; font-size: 0.8125rem; }
.sect-cas__modules a:hover { border-color: var(--texte-doux); }
.sect-cas__modules a:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.sect-exemple { margin: var(--e-6) 0 0; padding: var(--e-4); border-radius: 14px; border: 1px dashed var(--bordure); max-width: 62ch; }
.sect-exemple b { display: inline-block; margin-right: 8px; padding: 2px 10px; border-radius: 999px; background: var(--accent); color: #0b0c0c; font-size: 0.75rem; text-transform: uppercase; letter-spacing: .04em; }
.sect-sensible { margin: var(--e-6) 0 0; padding: var(--e-4); border-left: 4px solid var(--accent); background: var(--surface); border-radius: 0 14px 14px 0; max-width: 72ch; }
.sect-autres { margin-top: var(--e-8); }
.sect-autres ul { list-style: none; margin: var(--e-3) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.sect-autres a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 999px; border: var(--trame) solid var(--bordure); color: var(--texte); text-decoration: none; }
.sect-autres a[aria-current="page"] { background: var(--accent); border-color: var(--accent); color: #0b0c0c; }
