/* ============================================================
   FLTL — Pages légales / Legal pages
   Charte alignée sur fltl.lu (navy + or, Cormorant Garamond / Jost)
   Bascule FR/EN via l'attribut lang de <html> (voir legal.js).
   ============================================================ */

:root{
  --navy:#0b1628;
  --navy-mid:#1a2e4a;
  --gold:#be8c3c;
  --gold-light:#d4a855;
  --gold-hover:#e8c87e;
  --cream:#f0e9d8;
  --mist:#ccc4b4;
  --white:#fdfaf5;
  --text:#1a1f2a;
  --text-light:#565a65;
  --rule:#e4ddcd;
  --maxw:44rem;
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Jost',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}

body{
  margin:0;background:var(--white);color:var(--text);
  font-family:var(--sans);font-weight:300;font-size:16px;line-height:1.75;
  -webkit-font-smoothing:antialiased;
}

/* ---- language visibility ---- */
html[lang="en"] .fr{display:none!important;}
html[lang="fr"] .en{display:none!important;}

/* ---------- top bar ---------- */
.legal-top{background:var(--navy);border-bottom:2px solid var(--gold);}
.legal-top__inner{
  max-width:var(--maxw);margin:0 auto;padding:16px 24px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
}
.legal-brand{display:block;text-decoration:none;line-height:1;}
.legal-brand .eyebrow{
  display:block;font-family:var(--serif);font-size:9px;letter-spacing:4px;
  text-transform:uppercase;color:var(--gold);font-weight:300;margin-bottom:3px;
}
.legal-brand .name{
  font-family:var(--serif);font-size:20px;font-weight:400;letter-spacing:2px;color:var(--gold);
}
.legal-brand .name small{font-size:14px;font-weight:300;letter-spacing:1px;}
.legal-top__actions{display:flex;align-items:center;gap:18px;}
.legal-back{font-size:13px;letter-spacing:.5px;color:var(--mist);text-decoration:none;}
.legal-back:hover{color:var(--gold);}
.lang-btn{
  font-family:var(--sans);font-size:12px;letter-spacing:1.5px;font-weight:400;
  background:transparent;color:var(--gold);border:1px solid var(--gold);
  border-radius:2px;padding:5px 12px;cursor:pointer;transition:all .2s;
}
.lang-btn:hover{background:var(--gold);color:var(--navy);}
.lang-btn:focus-visible{outline:2px solid var(--gold-hover);outline-offset:2px;}

/* ---------- body ---------- */
main.legal{max-width:var(--maxw);margin:0 auto;padding:48px 24px 72px;}

.legal h1{
  font-family:var(--serif);font-weight:500;letter-spacing:.5px;
  font-size:clamp(2rem,6vw,2.9rem);line-height:1.1;margin:0 0 6px;color:var(--navy);
}
.legal .updated{color:var(--text-light);font-size:13px;letter-spacing:.5px;margin:0 0 34px;}
.legal .lede{font-size:1.05rem;color:var(--text-light);margin:0 0 36px;}

.legal h2{
  font-family:var(--serif);font-weight:500;font-size:1.55rem;letter-spacing:.3px;
  color:var(--navy);margin:44px 0 10px;padding-bottom:8px;
  border-bottom:1px solid var(--rule);scroll-margin-top:20px;
}
.legal h3{font-weight:500;font-size:1.05rem;color:var(--navy);margin:26px 0 6px;}

.legal p{margin:0 0 14px;}
.legal ul,.legal ol{margin:0 0 16px;padding-left:22px;}
.legal li{margin:6px 0;}
.legal li::marker{color:var(--gold);}
.legal a{color:var(--gold);text-decoration:none;border-bottom:1px solid rgba(190,140,60,.35);}
.legal a:hover{color:var(--gold-light);border-bottom-color:var(--gold-light);}
.legal strong{color:var(--navy);font-weight:500;}

/* ---------- table of contents ---------- */
.toc{background:#fff;border:1px solid var(--rule);border-left:3px solid var(--gold);
  border-radius:2px;padding:18px 22px;margin:0 0 38px;}
.toc p{font-family:var(--serif);font-size:1.05rem;color:var(--navy);margin:0 0 8px;font-weight:500;letter-spacing:.5px;}
.toc ol{margin:0;padding-left:20px;columns:2;column-gap:26px;}
.toc li{margin:3px 0;}
.toc a{border-bottom:none;}
.toc a:hover{border-bottom:1px solid var(--gold-light);}
@media (max-width:560px){.toc ol{columns:1;}}

/* ---------- identity card ---------- */
.idcard{background:#fff;border:1px solid var(--rule);border-radius:2px;padding:18px 22px;margin:0 0 18px;}
.idcard dl{margin:0;display:grid;grid-template-columns:max-content 1fr;gap:6px 22px;}
.idcard dt{color:var(--text-light);font-size:13px;letter-spacing:.5px;}
.idcard dd{margin:0;}
@media (max-width:520px){.idcard dl{grid-template-columns:1fr;gap:0;}.idcard dt{margin-top:10px;}}

/* ---------- cookie table ---------- */
.legal .table-wrap{overflow-x:auto;margin:0 0 18px;border:1px solid var(--rule);border-radius:2px;}
.legal table{width:100%;border-collapse:collapse;font-size:14px;min-width:32rem;}
.legal th,.legal td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--rule);vertical-align:top;}
.legal thead th{background:var(--navy);color:var(--cream);font-weight:400;letter-spacing:.5px;}
.legal tbody tr:last-child td{border-bottom:none;}

/* ---------- fill-in + note ---------- */
.fillin{display:inline-block;background:#fff4d6;border:1px dashed var(--gold);border-radius:3px;
  padding:0 .35em;font-size:.95em;color:#7a5a00;}
.note{background:#fff;border:1px solid var(--rule);border-left:3px solid var(--gold);border-radius:2px;
  padding:14px 18px;margin:18px 0;font-size:14px;color:var(--text-light);}

/* ---------- footer ---------- */
.legal-foot{background:var(--navy);color:var(--mist);margin-top:20px;}
.legal-foot__inner{max-width:var(--maxw);margin:0 auto;padding:26px 24px 34px;font-size:13px;letter-spacing:.3px;}
.legal-foot nav{display:flex;flex-wrap:wrap;gap:8px 20px;margin-bottom:12px;}
.legal-foot nav a{color:var(--gold);text-decoration:none;}
.legal-foot nav a:hover{color:var(--gold-hover);}
.legal-foot p{margin:2px 0;color:var(--mist);}
