/* LPE 2.34 — garde-fous de scroll + lisibilité du comparateur */

/* Le document doit rester le conteneur de scroll par défaut. Les verrouillages sont explicites. */
html{min-height:100%;overflow-x:clip;-webkit-text-size-adjust:100%}
html.lpe-scroll-locked{overflow:hidden!important;overscroll-behavior:none}
body{min-height:100%;overflow-x:clip}
body:not(.is-locked):not(.lpe-measure-modal-open):not(.lpe-v6-modal-is-open):not(.q219-playing):not(.q218-gate-open):not(.lpe-v233-gate-open):not(.lpe-v8-menu-open){overflow-y:auto!important;overscroll-behavior-y:auto}

/* Filet de sécurité : l'ancienne classe front V8 ne doit plus verrouiller l'accueil narratif. */
body.lpe-is-front-page:not(.is-locked):not(.lpe-measure-modal-open):not(.lpe-v6-modal-is-open):not(.q219-playing):not(.q218-gate-open):not(.lpe-v233-gate-open):not(.lpe-v8-menu-open){overflow-y:auto!important}
body.lpe-is-front-page .lpe-portal-main{height:auto!important;min-height:100%;overflow:visible!important}

/* Les ancres restent visibles sous le header sticky. */
:where(main,section,article,[id]){scroll-margin-top:clamp(72px,10vh,118px)}

/* Les éléments horizontaux interactifs doivent laisser le geste vertical au document. */
:where(.lpe-v8-carousel,.lpe-v84-carousel,.lpe-v8-ministry-stage,.lpe-ministry-rail__track){touch-action:pan-y pinch-zoom}

/* Les rails fixes ministériels ne masquent jamais la fin de page sur tablette/mobile. */
@media(max-width:1180px){
  .lpe-ministry-page{padding-bottom:calc(108px + env(safe-area-inset-bottom))}
  .lpe-ministry-page>.lpe-ministry-rail{max-height:min(150px,28dvh)!important}
}

/* Pas de hauteur figée qui puisse couper le contenu du comparateur. */
.lpe-v233-compare,.lpe-v233-compare__themes,.lpe-v233-theme,.lpe-v233-theme__grid{height:auto;max-height:none}

/* ---------- Passeport de faisabilité 2.34 ---------- */
.lpe-v234-standard{margin:0 0 28px;padding:clamp(22px,4vw,36px);border:1px solid #d9e2ed;border-radius:24px;background:#fff;box-shadow:0 18px 48px rgba(19,45,77,.06)}
.lpe-v234-standard__head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:26px;align-items:end;margin-bottom:24px}
.lpe-v234-standard h3{margin:.25rem 0 .65rem;font-size:clamp(1.65rem,3.4vw,3rem);line-height:1;letter-spacing:-.045em;color:#0d213b}
.lpe-v234-standard p{margin:0;color:#5c6878;line-height:1.6}
.lpe-v234-standard__rule{padding:16px 18px;border-radius:16px;background:#0b2d54;color:#fff!important;font-weight:740}
.lpe-v234-standard__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.lpe-v234-standard__grid article{padding:15px;border:1px solid #e0e6ee;border-radius:15px;background:#f8fafc}
.lpe-v234-standard__grid b{display:block;margin-bottom:5px;font-size:.72rem;color:#143e72}
.lpe-v234-standard__grid span{font-size:.78rem;line-height:1.45;color:#536174}

.lpe-v234-passport{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 4px}
.lpe-v234-badge{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border-radius:999px;border:1px solid #d7e0ea;background:#f8fafc;color:#465468;font-size:.62rem;font-weight:820;line-height:1.1}
.lpe-v234-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:#8a98aa;flex:0 0 auto}
.lpe-v234-badge--documented{border-color:#bfd8c9;background:#f1faf4;color:#285b3a}.lpe-v234-badge--documented:before{background:#398553}
.lpe-v234-badge--partial{border-color:#ead7ae;background:#fff9ec;color:#74551b}.lpe-v234-badge--partial:before{background:#c08a24}
.lpe-v234-badge--missing{border-color:#e4c5c9;background:#fff4f5;color:#7a343c}.lpe-v234-badge--missing:before{background:#bd4e5c}
.lpe-v233-partycard--lpe .lpe-v234-badge{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18);color:#e8eff8}
.lpe-v233-partycard--lpe .lpe-v234-badge--documented:before{background:#79d596}.lpe-v233-partycard--lpe .lpe-v234-badge--partial:before{background:#f0c36a}.lpe-v233-partycard--lpe .lpe-v234-badge--missing:before{background:#ff8995}

.lpe-v234-vigilance{margin-top:10px;padding:11px 12px;border-left:3px solid #b97625;border-radius:0 10px 10px 0;background:#fff8ec;color:#604a27;font-size:.73rem;line-height:1.48}
.lpe-v233-partycard--lpe .lpe-v234-vigilance{border-left-color:#dfb45e;background:rgba(223,180,94,.12);color:#f3e7cb}
.lpe-v234-vigilance strong{display:block;margin-bottom:4px;font-size:.58rem;letter-spacing:.1em;text-transform:uppercase}
.lpe-v234-sourcekind{display:block;margin-top:8px;color:#788596;font-size:.62rem;line-height:1.4}
.lpe-v233-partycard--lpe .lpe-v234-sourcekind{color:#b7c6d8}

@media(max-width:860px){
  .lpe-v234-standard__head{grid-template-columns:1fr}
  .lpe-v234-standard__grid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .lpe-v234-standard{padding:18px}
  .lpe-v234-standard__grid{grid-template-columns:1fr}
  .lpe-v234-passport{gap:5px}
  .lpe-v234-badge{font-size:.59rem}
}


/* Mode audit du comparateur. */
.lpe-v234-audit-control__actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-end}
.lpe-v234-audit-control__actions button{appearance:none;border:1px solid #c8d4e2;background:#fff;color:#143e72;border-radius:999px;padding:10px 14px;font:inherit;font-size:.72rem;font-weight:820;cursor:pointer}
.lpe-v234-audit-control__actions button.is-active{background:#7a343c;border-color:#7a343c;color:#fff}
.lpe-v234-audit-control__actions small{color:#69778a;font-size:.66rem}
.lpe-v234-standard__note{margin-top:16px!important;padding-top:15px;border-top:1px solid #e0e6ee;font-size:.75rem}
.lpe-v233-theme.is-audit-empty{display:none}
@media(max-width:760px){.lpe-v234-audit-control__actions{justify-content:flex-start}.lpe-v234-audit-control__actions button{width:100%;text-align:center}}
