/* lunaviel.online — feuille de style unique, auto-hébergée.
   Aucune police distante, aucune ressource tierce. */

:root{
  --c-brand:#a4161a;
  --c-brand-dark:#7d1114;
  --c-brand-ink:#ffffff;
  --c-ink:#14161a;
  --c-muted:#5c626d;
  --c-bg:#faf6f0;
  --c-surface:#fffdfa;
  --c-soft:#efece5;
  --c-line:#ddd8cf;
  --c-line-strong:#c9c2b6;
  --c-yes:#1b6b4f;
  --c-no:#a4161a;
  --c-warn:#8a6100;
  --f-head:Georgia,"Iowan Old Style","Times New Roman",Times,serif;
  --f-body:Georgia,"Iowan Old Style","Times New Roman",Times,serif;
  --f-ui:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --maxw:1180px;
  --measure:70ch;
  --radius:4px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--c-bg);
  color:var(--c-ink);
  font-family:var(--f-body);
  font-size:clamp(1rem,.96rem + .3vw,1.12rem);
  line-height:1.65;
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
img,svg{max-width:100%;height:auto;display:block}
a{color:var(--c-brand);text-decoration:underline;text-underline-offset:2px}
a:hover{color:var(--c-brand-dark)}
:focus-visible{outline:3px solid var(--c-brand);outline-offset:2px}

/* ---------- bandeau de transparence (tout en haut) ---------- */
.lv-bandeau{
  background:#2b1416;
  color:#f6ece9;
  font-family:var(--f-ui);
  font-size:.82rem;
  line-height:1.45;
  padding:9px clamp(14px,3vw,40px);
  text-align:center;
}
.lv-bandeau a{color:#ffd9d2}

/* ---------- en-tête ---------- */
.lv-nav{
  display:flex;align-items:center;gap:clamp(10px,2vw,24px);flex-wrap:wrap;
  padding:14px clamp(14px,3vw,40px);
  border-bottom:1px solid var(--c-line);
  background:color-mix(in srgb,var(--c-bg) 92%,transparent);
}
.lv-marque{
  font-family:var(--f-head);font-weight:700;font-size:1.2rem;
  letter-spacing:-.01em;color:var(--c-ink);text-decoration:none;
}
.lv-marque:hover{color:var(--c-brand)}
.lv-surtitre{
  font-family:var(--f-ui);font-size:.72rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--c-muted);
}
.lv-nav-liens{display:flex;gap:clamp(8px,1.6vw,20px);margin-left:auto;flex-wrap:wrap}
.lv-nav-liens a{
  font-family:var(--f-ui);font-size:.85rem;color:var(--c-muted);
  text-decoration:none;white-space:nowrap;
}
.lv-nav-liens a:hover{color:var(--c-brand);text-decoration:underline}

/* ---------- mise en page ---------- */
.lv-wrap{
  width:100%;max-width:var(--maxw);margin:0 auto;
  padding:clamp(20px,3vw,44px) clamp(14px,3vw,40px) 56px;
  display:grid;gap:clamp(24px,3vw,44px);
  grid-template-columns:minmax(0,1fr) 300px;
  align-items:start;flex:1 0 auto;
}
.lv-wrap.lv-solo{grid-template-columns:minmax(0,1fr);max-width:860px}
.lv-main{min-width:0;max-width:var(--measure)}
.lv-wrap.lv-solo .lv-main{max-width:none}
@media (max-width:900px){
  .lv-wrap{grid-template-columns:minmax(0,1fr)}
  .lv-aside{order:2}
}

/* ---------- typographie ---------- */
h1,h2,h3,h4{font-family:var(--f-head);line-height:1.22;letter-spacing:-.01em;margin:0}
h1{font-size:clamp(1.9rem,1.5rem + 1.9vw,2.9rem);margin-bottom:.5em}
h2{font-size:clamp(1.4rem,1.2rem + .9vw,1.9rem);margin:2.1em 0 .5em}
h3{font-size:clamp(1.12rem,1.05rem + .45vw,1.35rem);margin:1.7em 0 .4em}
h4{font-size:1.02rem;margin:1.4em 0 .35em}
p{margin:0 0 1.05em}
ul,ol{margin:0 0 1.2em;padding-left:1.4em}
li{margin-bottom:.45em}
.lv-chapeau{
  font-size:1.14em;color:#33373f;border-left:3px solid var(--c-brand);
  padding-left:1em;margin-bottom:1.6em;
}
.lv-signature{
  font-family:var(--f-ui);font-size:.85rem;color:var(--c-muted);
  border-top:1px solid var(--c-line);border-bottom:1px solid var(--c-line);
  padding:.8em 0;margin:0 0 1.8em;
}
.lv-signature strong{color:var(--c-ink)}
.lv-eff{font-family:var(--f-ui);font-size:.88rem;color:var(--c-muted);margin-bottom:2em}
hr.lv-hr{border:0;height:1px;background:var(--c-line-strong);margin:2.4em 0}

/* ---------- encadré de divulgation ---------- */
.lv-divulgation{
  background:#f4e8e6;border:1px solid #e0c3bf;border-left:4px solid var(--c-brand);
  border-radius:var(--radius);padding:clamp(14px,2.4vw,20px);margin:0 0 2em;
  font-family:var(--f-ui);font-size:.9rem;line-height:1.55;
}
.lv-divulgation h2,.lv-divulgation p:first-child strong{font-family:var(--f-ui)}
.lv-divulgation p{margin:0 0 .6em}
.lv-divulgation p:last-child{margin-bottom:0}
.lv-divulgation .lv-dtitre{
  display:block;font-weight:700;text-transform:uppercase;letter-spacing:.08em;
  font-size:.74rem;color:var(--c-brand-dark);margin-bottom:.5em;
}

/* ---------- encadrés d'information ---------- */
.lv-note{
  background:var(--c-soft);border:1px solid var(--c-line);border-radius:var(--radius);
  padding:clamp(14px,2.4vw,20px);margin:1.8em 0;font-size:.96em;
}
.lv-note h3,.lv-note h4{margin-top:0}
.lv-note.lv-rectif{background:#fbf3e3;border-color:#e6d3ab;border-left:4px solid var(--c-warn)}
.lv-note.lv-marque-dis{background:#f2f1ee;font-family:var(--f-ui);font-size:.85rem;color:var(--c-muted)}

/* ---------- boutons partenaires ---------- */
.lv-cta-bloc{margin:2em 0}
.lv-cta{
  display:block;width:100%;text-align:center;
  background:var(--c-brand);color:var(--c-brand-ink);
  font-family:var(--f-ui);font-weight:600;font-size:1.02rem;
  padding:15px 22px;border-radius:var(--radius);
  text-decoration:none;border:1px solid var(--c-brand-dark);
}
.lv-cta:hover{background:var(--c-brand-dark);color:var(--c-brand-ink);text-decoration:none}
.lv-cta .lv-cta-sous{
  display:block;font-weight:400;font-size:.76rem;letter-spacing:.06em;
  text-transform:uppercase;opacity:.92;margin-top:5px;
}
.lv-cta-mention{
  font-family:var(--f-ui);font-size:.79rem;line-height:1.5;color:var(--c-muted);
  margin:.6em 0 0;text-align:center;
}

/* ---------- colonne latérale ---------- */
.lv-aside{min-width:0;font-family:var(--f-ui)}
.lv-carte{
  background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);
  padding:18px;margin-bottom:22px;
}
.lv-carte h2,.lv-carte h3{font-family:var(--f-head);font-size:1.08rem;margin:0 0 .6em}
.lv-carte p,.lv-carte li{font-size:.88rem;line-height:1.55}
.lv-carte ol,.lv-carte ul{padding-left:1.15em;margin-bottom:0}
.lv-carte a{text-decoration:none}
.lv-carte a:hover{text-decoration:underline}
.lv-sommaire li{margin-bottom:.4em}

/* ---------- figures ---------- */
figure.lv-fig{margin:2.2em 0;padding:0}
figure.lv-fig .lv-fig-cadre{
  background:var(--c-surface);border:1px solid var(--c-line);
  border-radius:var(--radius);padding:clamp(10px,2vw,18px);
}
figure.lv-fig img{width:100%;height:auto}
figure.lv-fig figcaption{
  font-family:var(--f-ui);font-size:.83rem;line-height:1.5;color:var(--c-muted);
  margin-top:.7em;
}
figure.lv-fig figcaption b{color:var(--c-ink)}

/* ---------- tableaux ---------- */
.lv-tab-enveloppe{overflow-x:auto;margin:1.8em 0;border:1px solid var(--c-line);border-radius:var(--radius)}
table.lv-tab{border-collapse:collapse;width:100%;font-family:var(--f-ui);font-size:.88rem;background:var(--c-surface)}
table.lv-tab caption{
  caption-side:top;text-align:left;font-size:.83rem;color:var(--c-muted);
  padding:10px 12px;border-bottom:1px solid var(--c-line);
}
table.lv-tab th,table.lv-tab td{
  border-bottom:1px solid var(--c-line);padding:9px 12px;text-align:left;vertical-align:top;
}
table.lv-tab thead th{background:var(--c-soft);font-weight:700;white-space:nowrap}
table.lv-tab tbody tr:last-child th,table.lv-tab tbody tr:last-child td{border-bottom:0}
table.lv-tab td[data-v="oui"]{color:var(--c-yes);font-weight:600}
table.lv-tab td[data-v="non"]{color:var(--c-no);font-weight:600}

/* ---------- pied de page ---------- */
.lv-foot{
  background:var(--c-soft);border-top:1px solid var(--c-line);
  padding:clamp(24px,3vw,38px) clamp(14px,3vw,40px);
  font-family:var(--f-ui);font-size:.85rem;color:var(--c-muted);
  margin-top:auto;
}
.lv-foot-in{max-width:var(--maxw);margin:0 auto}
.lv-foot-liens{display:flex;flex-wrap:wrap;gap:8px 20px;margin-bottom:16px}
.lv-foot-liens a{color:var(--c-ink);text-decoration:none}
.lv-foot-liens a:hover{color:var(--c-brand);text-decoration:underline}
.lv-foot-id{margin:0 0 12px;line-height:1.6}
.lv-foot-id strong{color:var(--c-ink)}
.lv-foot p{margin:0 0 10px}
.lv-foot p:last-child{margin-bottom:0}

/* ---------- page 404 ---------- */
.lv-404{text-align:center;padding:clamp(40px,8vw,90px) 0}
.lv-404 h1{font-size:clamp(2.2rem,1.6rem + 3vw,3.4rem)}
.lv-404 .lv-404-code{
  font-family:var(--f-ui);font-size:.8rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--c-brand);margin-bottom:.8em;
}
.lv-404 ul{display:inline-block;text-align:left;margin-top:1em}

/* ---------- divers ---------- */
.lv-sources{font-size:.92em}
.lv-sources li{margin-bottom:.6em;word-break:break-word}
.lv-evite{
  position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;
}
.lv-evite:focus{
  position:static;width:auto;height:auto;display:block;
  padding:10px clamp(14px,3vw,40px);background:var(--c-brand);color:#fff;
  font-family:var(--f-ui);font-size:.9rem;
}
