/* Pages légales : mentions légales et CGV (complète site.css) */

.legal-glow {
  position: absolute; left: 50%; top: -12vh; z-index: 0; width: min(120vw, 1300px); aspect-ratio: 2 / 1; transform: translateX(-50%);
  background: radial-gradient(closest-side, rgba(216, 162, 74, .14), rgba(216, 162, 74, .04) 50%, transparent 76%);
  filter: blur(30px); pointer-events: none;
}
.legal-main { position: relative; z-index: 2; max-width: 1320px; margin: 0 auto; padding: clamp(7.5rem, 15vw, 11rem) var(--pad) clamp(3rem, 7vw, 5rem); }

.legal-hero { display: grid; gap: clamp(1rem, 2vw, 1.6rem); animation: legal-in 1s var(--ease) both; }
.legal-title { font-size: clamp(2.8rem, 8.4vw, 7.6rem); line-height: .96; max-width: 14ch; }
.legal-tagline { font-family: var(--serif); font-style: italic; font-size: clamp(1.2rem, 2.2vw, 1.8rem); line-height: 1.25; color: var(--mute); max-width: 40ch; }
.legal-updated { font: 600 .68rem/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--faint); }
@keyframes legal-in { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }

.legal-grid {
  display: grid; grid-template-columns: minmax(0, 15.5rem) minmax(0, 46rem); gap: clamp(2rem, 7vw, 7rem);
  margin-top: clamp(3rem, 7vw, 6rem); align-items: start;
}

/* Sommaire */
.toc { position: sticky; top: 6.5rem; }
.toc .label { margin-bottom: 1.1rem; }
.toc ol { display: grid; gap: .15rem; }
.toc a { display: flex; gap: .7rem; align-items: baseline; padding: .42rem 0; font: 600 .8rem/1.35 var(--sans); color: var(--mute); transition: color .3s; }
.toc a::before { content: ""; flex: none; width: 6px; height: 6px; margin-top: .4em; background: transparent; transform: rotate(45deg); transition: background .3s; }
.toc a:hover { color: var(--paper); }
.toc a.on { color: var(--paper); }
.toc a.on::before { background: var(--gold); }

/* Texte */
.legal-body { min-width: 0; }
.legal-body h2 { font-family: var(--serif); font-weight: 400; font-size: clamp(1.7rem, 2.8vw, 2.4rem); line-height: 1.08; letter-spacing: -.015em; margin: clamp(2.6rem, 5vw, 3.6rem) 0 1rem; scroll-margin-top: 6.5rem; text-wrap: balance; }
.legal-body > .callout + p, .legal-body > p:first-child { margin-top: 0; }
.legal-body h2:first-child { margin-top: 0; }
.legal-body p, .legal-body li { color: #cbc6bd; font-size: 1.02rem; line-height: 1.78; }
.legal-body p { margin: 0 0 1.1rem; }
.legal-body strong { color: var(--paper); font-weight: 700; }
.legal-body a { color: var(--gold-hi); transition: color .3s; }
.legal-body a:hover { color: #fff; }
.legal-body ul { display: grid; gap: .75rem; margin: 0 0 1.3rem; }
.legal-body li { position: relative; padding-left: 1.5rem; }
.legal-body li::before { content: ""; position: absolute; left: 0; top: .72em; width: 6px; height: 6px; background: var(--gold); transform: rotate(45deg); }

.callout { margin: 0 0 clamp(2rem, 4vw, 3rem); padding: clamp(1.1rem, 2.4vw, 1.6rem) clamp(1.2rem, 2.6vw, 1.8rem); border-radius: 18px; background: rgba(255, 255, 255, .05); color: #d9d4ca; font-size: 1.02rem; line-height: 1.7; }
.callout strong { color: var(--gold-hi); }

.legal-switch { display: flex; flex-wrap: wrap; gap: 1.2rem 2.4rem; margin-top: clamp(3rem, 6vw, 4.5rem); }
.legal-switch .cta { margin-top: 0; }

@media (max-width: 900px) {
  .legal-grid { grid-template-columns: 1fr; }
  .toc { position: static; padding-bottom: 1.4rem; }
  .toc ol { grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); column-gap: 1.2rem; }
}
@media print {
  .head, .toc, .legal-glow, .legal-switch, .foot, .skip { display: none !important; }
  body { background: #fff; color: #000; }
  .legal-body p, .legal-body li, .legal-body strong, .legal-body h2, .legal-title, .legal-tagline { color: #000 !important; -webkit-text-fill-color: #000 !important; }
}
