/* ===== BLACK INTELLIGENCE — visionneuse de documents légaux (PDF tel quel sur page noire) ===== */
:root{
  --black:#000000; --white:#f0f0f0; --grey-dim:rgba(240,240,240,.42);
  --violet:#8A14FF; --violet-2:#6B00CC; --line:rgba(255,255,255,.07);
  --font-title:'Inter',system-ui,sans-serif; --font-mono:'JetBrains Mono',ui-monospace,monospace;
  --ease:cubic-bezier(.22,1,.36,1);
}
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{ margin:0; background:var(--black); color:var(--white); min-height:100vh; overflow-x:hidden; -webkit-font-smoothing:antialiased; }
::selection{ background:rgba(138,20,255,.32); color:#fff; }

/* barre de progression de lecture — fin liseré blanc, tête lumineuse (discret & net, zéro violet) */
.lv-progress{ position:fixed; top:0; left:0; height:2px; width:0; z-index:40;
  background:linear-gradient(90deg, rgba(240,240,240,0), rgba(240,240,240,.5) 55%, var(--white));
  box-shadow:0 0 10px rgba(240,240,240,.45), 0 0 2px rgba(240,240,240,.55);
  border-radius:0 3px 3px 0; }

/* bouton RETOUR — liquid glass premium (même langage que le CTA du site) */
.lv-back{ position:fixed; top:clamp(1rem,2.4vw,1.6rem); left:clamp(1rem,2.4vw,1.8rem); z-index:30;
  display:inline-flex; align-items:center; gap:.7rem; line-height:1;
  font-family:var(--font-title); font-weight:600; font-size:.68rem; letter-spacing:.05em; text-transform:uppercase; color:var(--white);
  text-decoration:none; cursor:pointer; padding:.5rem 1.2rem .5rem .5rem; border-radius:999px;
  border:1px solid rgba(255,255,255,.1); background:rgba(20,20,27,.55);
  -webkit-backdrop-filter:blur(30px) saturate(1.3); backdrop-filter:blur(30px) saturate(1.3);
  box-shadow:inset 0 1px 1px rgba(255,255,255,.18), 0 12px 40px rgba(0,0,0,.5);
  transition:background .28s var(--ease), box-shadow .28s var(--ease), transform .28s var(--ease); }
.lv-back .ic{ width:26px; height:26px; border-radius:50%; background:rgba(255,255,255,.14);
  display:flex; align-items:center; justify-content:center; font-style:normal; font-size:.85rem; line-height:1;
  transition:transform .28s var(--ease), background .28s var(--ease); }
.lv-back:hover{ background:rgba(107,0,204,.30); box-shadow:inset 0 1px 1px rgba(255,255,255,.30), 0 6px 26px rgba(138,20,255,.45); }
.lv-back:hover .ic{ transform:translateX(-3px); background:rgba(138,20,255,.6); }
.lv-back:active{ transform:scale(.97); }

/* le document = pile de pages centrée sur le noir */
.lv-doc{ max-width:880px; margin:0 auto; padding:clamp(4.6rem,10vh,7rem) clamp(.7rem,3vw,1.5rem) clamp(3rem,7vh,5rem);
  display:flex; flex-direction:column; gap:clamp(14px,2.2vw,26px); }

/* chaque page : le PDF tel quel + fin liseré liquid-glass animé sur le contour */
/* Cadre liquid-glass premium : dégradé conique argent / blanc / violet qui TOURNE lentement.
   Rotation via transform:rotate (fiable partout, Safari inclus, jamais figé). Seul un fin rim de 1.2px dépasse autour de l'image. */
.lv-page{ position:relative; border-radius:9px; padding:1.2px; overflow:hidden; isolation:isolate; box-shadow:0 26px 64px -34px rgba(0,0,0,.92); }
.lv-page img{ position:relative; z-index:1; display:block; width:100%; height:auto; aspect-ratio:1191/1684; border-radius:8px; background:#000000; }
.lv-page::before{ content:''; position:absolute; z-index:0; left:50%; top:50%; width:200%; height:200%; pointer-events:none;
  transform:translate(-50%,-50%) rotate(0deg); transform-origin:center;
  background:conic-gradient(
    rgba(255,255,255,.035) 0deg,
    rgba(201,205,215,.34) 42deg,   /* argent */
    rgba(255,255,255,.60) 72deg,   /* éclat blanc */
    rgba(176,126,255,.44) 104deg,  /* violet */
    rgba(255,255,255,.035) 150deg,
    rgba(255,255,255,.035) 224deg,
    rgba(166,75,255,.40) 268deg,   /* violet */
    rgba(232,234,242,.40) 300deg,  /* argent-blanc */
    rgba(255,255,255,.035) 342deg,
    rgba(255,255,255,.035) 360deg);
  animation:lvSpin 16s linear infinite; }
@keyframes lvSpin{ from{ transform:translate(-50%,-50%) rotate(0deg); } to{ transform:translate(-50%,-50%) rotate(360deg); } }
@media (prefers-reduced-motion:reduce){ .lv-page::before{ display:none; } }

/* compteur de page */
.lv-counter{ position:fixed; bottom:clamp(1rem,2.4vw,1.6rem); right:clamp(1rem,2.4vw,1.8rem); z-index:30;
  font-family:var(--font-mono); font-size:.6rem; letter-spacing:.2em; color:var(--grey-dim);
  background:rgba(0,0,0,.55); padding:.5rem .8rem; border:1px solid var(--line); border-radius:999px;
  -webkit-backdrop-filter:blur(9px); backdrop-filter:blur(9px); pointer-events:none; }
@media (max-width:520px){ .lv-counter{ display:none; } }

/* ===== pied de page IDENTIQUE aux autres pages (repris de programmes.css, variables isolées) ===== */
.bp-foot { --silver-line:rgba(201,203,209,.14); --gutter:clamp(1.75rem,4.5vw,5rem); --grey:rgba(240,240,240,.55); --grey-dim:rgba(240,240,240,.24); --violet:#6B00CC; --dur-1:.3s; --font-display:'Inter','Helvetica Neue',system-ui,sans-serif; position: relative; z-index: 1; border-top: 1px solid var(--silver-line); padding: clamp(3rem,6vw,5rem) var(--gutter) clamp(1.8rem,3vw,2.6rem); }
.ft-top { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: clamp(2rem,4vw,3.6rem) clamp(1.5rem,3vw,3rem); max-width: 1280px; margin: 0 auto; }
.ft-brand { display: flex; flex-direction: column; align-items: flex-start; gap: 1.15rem; }
.ft-logo { text-decoration: none; display: inline-block; font-family: var(--font-title); font-weight: 300; font-size: 1.35rem; letter-spacing: -.01em; color: var(--white); }
.ft-logo b { font-weight: 700; }
.ft-tag { font-family: var(--font-display); font-weight: 300; font-size: .9rem; line-height: 1.6; color: var(--grey); max-width: 36ch; }
.ft-social { display: flex; gap: .9rem; margin-top: .2rem; }
.ft-social a { color: var(--grey); display: flex; transition: color var(--dur-1) ease, transform var(--dur-1) ease; }
.ft-social a:hover { color: var(--violet); transform: translateY(-2px); }
.ft-social svg { width: 18px; height: 18px; }
.ft-col { display: flex; flex-direction: column; gap: .8rem; }
.ft-h { font-family: var(--font-mono); font-weight: 500; font-size: .56rem; letter-spacing: .24em; text-transform: uppercase; color: var(--grey-dim); margin-bottom: .35rem; }
.ft-col a { font-family: var(--font-display); font-weight: 300; font-size: .92rem; color: var(--grey); text-decoration: none; width: -moz-fit-content; width: fit-content; transition: color var(--dur-1) ease; }
.ft-col a:hover { color: var(--violet); }
.ft-bottom { display: flex; justify-content: space-between; align-items: center; gap: 1.2rem; flex-wrap: wrap; max-width: 1280px; margin: clamp(2.4rem,5vw,3.6rem) auto 0; padding-top: 1.5rem; border-top: 1px solid var(--silver-line); font-family: var(--font-mono); font-size: .54rem; letter-spacing: .18em; text-transform: uppercase; color: var(--grey-dim); }
.ft-bottom a { color: var(--grey); text-decoration: none; transition: color var(--dur-1) ease; }
.ft-bottom a:hover { color: var(--violet); }
.ft-disclaimer { max-width: 1280px; margin: 1.5rem auto 0; font-family: var(--font-display); font-weight: 300; font-size: .72rem; line-height: 1.7; color: var(--grey-dim); }
@media (max-width: 860px){ .ft-top { grid-template-columns: 1fr 1fr; } .ft-brand { grid-column: 1 / -1; } }
@media (max-width: 520px){ .ft-top { grid-template-columns: 1fr; } .ft-bottom { flex-direction: column; align-items: flex-start; } }
