/* ==========================================================================
   AudiVid Theme — Pages légales (conditions, confidentialité)
   resources/views/pages/legal/*
   ========================================================================== */
.av-legal {
  display: grid; gap: 2rem; align-items: start;
  grid-template-columns: 280px minmax(0, 1fr);
  padding-bottom: var(--av-space-7, 4rem);
}
@media (max-width: 900px) { .av-legal { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; } }

/* Colonne : date, sommaire, autre document */
.av-legal__side { position: sticky; top: 88px; }
@media (max-width: 900px) { .av-legal__side { position: static; } }
.av-legal__card {
  display: grid; gap: .9rem; padding: 1.2rem;
  border: 1px solid var(--av-border); border-radius: 16px; background: var(--av-surface);
}
.av-legal__updated, .av-legal__scope { margin: 0; font-size: .82rem; color: var(--av-text-muted); }
.av-legal__updated i, .av-legal__scope i { color: var(--av-primary); margin-right: .2rem; }
.av-legal__toc strong { display: block; margin-bottom: .45rem; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--av-text-muted); }
.av-legal__toc ol { margin: 0; padding: 0; list-style: none; counter-reset: avtoc; display: grid; gap: .1rem; max-height: 52vh; overflow: auto; }
.av-legal__toc li { counter-increment: avtoc; }
.av-legal__toc a {
  display: flex; gap: .55rem; padding: .38rem .55rem; border-radius: 8px;
  font-size: .86rem; line-height: 1.35; color: var(--av-text-soft); text-decoration: none;
}
.av-legal__toc a::before { content: counter(avtoc); flex: none; min-width: 1.2rem; font-weight: 700; color: var(--av-text-muted); }
.av-legal__toc a:hover { background: var(--av-surface-2); color: var(--av-text); }
.av-legal__toc a.is-active { background: var(--av-primary-soft); color: var(--av-text); }
.av-legal__toc a.is-active::before { color: var(--av-primary); }
@media (max-width: 900px) { .av-legal__toc ol { max-height: none; grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .av-legal__toc ol { grid-template-columns: 1fr; } }
.av-legal__other {
  display: flex; align-items: center; gap: .55rem; padding: .7rem .8rem;
  border: 1px solid var(--av-border); border-radius: 12px; background: var(--av-bg);
  font-size: .88rem; font-weight: 600; color: var(--av-text); text-decoration: none;
}
.av-legal__other i:first-child { color: var(--av-primary); }
.av-legal__other i:last-child { margin-left: auto; font-size: .75rem; color: var(--av-text-muted); }
.av-legal__other:hover { border-color: var(--av-primary); color: var(--av-text); text-decoration: none; }
.av-legal__print { justify-self: start; }

/* Texte : police de lecture, confortable */
.av-legal__body {
  padding: clamp(1.25rem, 3vw, 2.5rem);
  border: 1px solid var(--av-border); border-radius: 18px; background: var(--av-surface);
  font-size: 1rem; line-height: 1.75; color: var(--av-text-soft);
}
.av-legal__body h2 {
  scroll-margin-top: 96px;
  margin: 2.4rem 0 .8rem; padding-top: 1.6rem; border-top: 1px solid var(--av-border-soft);
  font: 700 1.25rem / 1.3 var(--av-font-display); color: var(--av-text); letter-spacing: -.01em;
}
.av-legal__body h2:first-of-type { margin-top: 1.6rem; }
.av-legal__body p { margin: 0 0 .9rem; }
.av-legal__body ul, .av-legal__body ol { margin: 0 0 1rem; padding-left: 1.3rem; }
.av-legal__body li { margin-bottom: .45rem; }
.av-legal__body li::marker { color: var(--av-primary); }
.av-legal__body strong { color: var(--av-text); }
.av-legal__body a { color: var(--av-primary-hover, var(--av-primary)); text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.av-legal__intro {
  margin: 0 0 .5rem !important; padding: 1rem 1.2rem; border-left: 3px solid var(--av-primary);
  border-radius: 0 12px 12px 0; background: var(--av-surface-2); font-size: 1.04rem; color: var(--av-text);
}
.av-legal__box {
  margin: 1rem 0; padding: 1.1rem 1.25rem; border: 1px solid rgba(238, 28, 37, .35); border-radius: 14px;
  background: linear-gradient(135deg, rgba(238, 28, 37, .07), transparent 70%), var(--av-bg);
}
.av-legal__box p:last-child { margin-bottom: 0; }

/* Tableau défilant sur mobile */
.av-legal__table { margin: 0 0 1rem; overflow-x: auto; border: 1px solid var(--av-border); border-radius: 12px; }
.av-legal__table table { width: 100%; min-width: 620px; border-collapse: collapse; font-size: .88rem; line-height: 1.5; }
.av-legal__table th { padding: .7rem .85rem; text-align: left; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--av-text-muted); background: var(--av-surface-2); }
.av-legal__table td { padding: .75rem .85rem; vertical-align: top; border-top: 1px solid var(--av-border-soft); }
.av-legal__table td:first-child { white-space: nowrap; }

.av-legal__contact {
  display: flex; gap: .9rem; align-items: flex-start; margin-top: 2.4rem; padding: 1.1rem 1.2rem;
  border-radius: 14px; background: var(--av-surface-2);
}
.av-legal__contact > i { margin-top: .3rem; font-size: 1.2rem; color: var(--av-primary); }
.av-legal__contact div { display: grid; gap: .15rem; }
.av-legal__contact strong { color: var(--av-text); }

/* Version app (?app=1) */
.av-page--plain #av-content { padding-top: 1.25rem; }
.av-legal__apphead { display: grid; gap: .35rem; margin-bottom: 1.25rem; }
.av-legal__apphead h1 { margin: 0; font: 700 clamp(1.5rem, 6vw, 2rem) / 1.15 var(--av-font-display); color: var(--av-text); }
.av-legal__langs { display: flex; gap: .4rem; margin-top: .4rem; }
.av-legal__langs a {
  padding: .35rem .8rem; border: 1px solid var(--av-border); border-radius: 999px;
  font-size: .82rem; font-weight: 600; color: var(--av-text-muted); text-decoration: none;
}
.av-legal__langs a.is-active { border-color: var(--av-primary); background: var(--av-primary-soft); color: var(--av-text); }
.av-page--plain .av-legal { grid-template-columns: minmax(0, 1fr); }
.av-page--plain .av-legal__side { position: static; }

/* Mention sous le formulaire d'inscription */
.av-legal-note { margin: .9rem 0 0; font-size: .8rem; line-height: 1.5; text-align: center; color: var(--av-text-muted); }
.av-legal-note a { color: var(--av-text-soft); text-decoration: underline; text-underline-offset: 2px; }

/* Impression : seulement le texte */
@media print {
  .av-nav, .av-footer, .av-legal__side, .av-page-head .av-breadcrumb, .av-legal__contact { display: none !important; }
  .av-legal { display: block; }
  .av-legal__body { border: 0; padding: 0; background: none; color: #000; }
  .av-legal__body h2, .av-legal__body strong { color: #000; }
}
