/* =============================================================================
   Astra SMP — legal.css
   Feuille de style commune aux pages légales (mentions, CGV, confidentialité,
   EULA). Reprend la charte violet néon du site (mêmes variables qu'index.html)
   sans dépendre d'un CDN : 100 % autonome.
   ========================================================================== */

:root{
  --bg:#090A0F; --bg-2:#0b0d18;
  --violet:#9D4EDD; --violet-2:#8A2BE2; --indigo:#3A0CA3;
  --accent:#C77DFF; --accent-rgb:199,125,255;
  --grad-a:#d9bbff; --grad-b:#C77DFF;
  --green:#39FF14; --red:#FF0055; --amber:#FFB020;
  --text:#E9EAF4; --muted:#9298b3; --muted-2:#6b7192;
  --glass:rgba(255,255,255,0.045);
  --glass-border:rgba(255,255,255,0.09);
  --radius:18px; --maxw:900px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  line-height:1.7; letter-spacing:.1px; -webkit-font-smoothing:antialiased;
}

/* Halo d'arrière-plan discret */
body::before{
  content:""; position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(60vw 60vw at 15% -10%, rgba(138,43,226,.18), transparent 60%),
    radial-gradient(50vw 50vw at 100% 0%, rgba(58,12,163,.16), transparent 55%);
}

.wrap{max-width:var(--maxw); margin:0 auto; padding:0 20px}

/* En-tête */
.legal-top{
  position:sticky; top:0; z-index:10;
  backdrop-filter:blur(12px);
  background:linear-gradient(180deg, rgba(9,10,15,.9), rgba(9,10,15,.55));
  border-bottom:1px solid var(--glass-border);
}
.legal-top .wrap{display:flex; align-items:center; justify-content:space-between; padding:14px 20px}
.legal-top a.home{color:var(--text); text-decoration:none; font-weight:700; font-size:18px}
.legal-top a.home .crown{color:var(--accent)}
.legal-top nav a{
  color:var(--muted); text-decoration:none; font-size:14px; margin-left:16px;
}
.legal-top nav a:hover{color:var(--accent)}

/* Titre de page */
header.legal-hero{padding:56px 0 24px; text-align:center}
header.legal-hero .eyebrow{
  display:inline-block; font-size:12px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--accent); border:1px solid var(--glass-border); border-radius:999px;
  padding:6px 14px; margin-bottom:16px;
}
header.legal-hero h1{
  font-family:'Sora',sans-serif; font-size:clamp(28px,5vw,44px); margin:0 0 8px;
  letter-spacing:-.02em;
}
header.legal-hero .grad{
  background:linear-gradient(90deg,var(--grad-a),var(--grad-b));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
header.legal-hero p.updated{color:var(--muted-2); font-size:14px; margin:6px 0 0}

/* Carte de contenu */
main.legal{padding:8px 0 80px}
.card{
  background:var(--glass); border:1px solid var(--glass-border);
  border-radius:var(--radius); padding:28px clamp(20px,4vw,40px); margin:18px 0;
}
.card h2{
  font-family:'Sora',sans-serif; font-size:22px; margin:2px 0 14px;
  display:flex; align-items:center; gap:10px;
}
.card h2 .n{
  color:var(--accent); font-size:15px; font-variant-numeric:tabular-nums;
  border:1px solid var(--glass-border); border-radius:8px; padding:2px 8px;
}
.card h3{font-family:'Sora',sans-serif; font-size:17px; margin:20px 0 8px}
.card p, .card li{color:#d5d8ea}
.card a{color:var(--accent)}
.muted{color:var(--muted)}
ul.clean{list-style:none; padding:0; margin:10px 0}
ul.clean li{padding-left:22px; position:relative; margin:7px 0}
ul.clean li::before{content:"◈"; position:absolute; left:0; color:var(--accent); font-size:12px; top:3px}

/* Tableau simple (données personnelles, durées de conservation) */
table.legal{width:100%; border-collapse:collapse; margin:14px 0; font-size:14.5px}
table.legal th, table.legal td{
  text-align:left; padding:10px 12px; border-bottom:1px solid var(--glass-border); vertical-align:top;
}
table.legal th{color:var(--accent); font-weight:600}
.table-scroll{overflow-x:auto}

/* Champ à compléter par l'exploitant */
.fill{
  display:inline-block; background:rgba(255,176,32,.12); color:var(--amber);
  border:1px dashed rgba(255,176,32,.5); border-radius:6px; padding:1px 8px;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:13px; white-space:nowrap;
}
.callout{
  border-left:3px solid var(--accent); background:rgba(var(--accent-rgb),.08);
  border-radius:0 12px 12px 0; padding:14px 18px; margin:16px 0;
}
.callout.warn{border-left-color:var(--amber); background:rgba(255,176,32,.08)}
.callout.warn strong{color:var(--amber)}
.callout.danger{border-left-color:var(--red); background:rgba(255,0,85,.08)}
.callout.danger strong{color:var(--red)}

/* Note « à retirer avant mise en ligne » : visible seulement pour l'exploitant */
.editor-note{
  border:1px dashed rgba(255,176,32,.6); background:rgba(255,176,32,.06);
  border-radius:12px; padding:14px 18px; margin:16px 0; font-size:14px; color:#ffe3b0;
}
.editor-note b{color:var(--amber)}

footer.legal-foot{
  border-top:1px solid var(--glass-border); padding:26px 0; text-align:center;
  color:var(--muted-2); font-size:13.5px;
}
footer.legal-foot a{color:var(--muted); text-decoration:none; margin:0 10px}
footer.legal-foot a:hover{color:var(--accent)}
