/* ALFAMU PLAY · Sección legal — modales, banner de cookies y consentimiento.
   Todo se apoya en los tokens de tokens.css: sin colores propios. */

/* ------------------------------------------------------------------ modal */
.lg-fondo{
  position:fixed; inset:0; z-index:400;              /* sobre el globo (150) y la topbar (60) */
  background:rgba(0,70,56,.55);
  display:flex; align-items:center; justify-content:center;
  padding:var(--am-s-4);
  animation:lg-aparece .18s var(--am-ease);
}
@keyframes lg-aparece{ from{ opacity:0; } to{ opacity:1; } }

.lg-caja{
  background:var(--am-blanco);
  border-radius:var(--am-r-lg);
  width:min(100%, 640px); max-height:min(88vh, 900px);
  display:flex; flex-direction:column;
  box-shadow:0 24px 70px rgba(0,48,38,.34);
  outline:none;
}
.lg-caja--ancho{ width:min(100%, 860px); }

.lg-cab{
  display:flex; align-items:flex-start; gap:var(--am-s-4);
  padding:var(--am-s-5) var(--am-s-6);
  border-bottom:1px solid var(--am-n-200);
}
.lg-titulo{
  margin:0; flex:1;
  font-family:var(--am-f-display); font-weight:400;
  font-size:var(--am-t-d4); line-height:1.2; color:var(--am-tinta);
}
.lg-cerrar{
  flex:none; width:36px; height:36px;
  border:1px solid var(--am-n-300); border-radius:var(--am-r-sm);
  background:var(--am-blanco); color:var(--am-texto-2);
  font-size:15px; line-height:1; cursor:pointer;
  transition:background var(--am-dur-fast) var(--am-ease), color var(--am-dur-fast) var(--am-ease);
}
.lg-cerrar:hover{ background:var(--am-violeta-50); color:var(--am-violeta-800); }
.lg-cerrar:focus-visible{ outline:2px solid var(--am-tinta); outline-offset:2px; }

.lg-cuerpo{
  padding:var(--am-s-5) var(--am-s-6);
  overflow-y:auto; overscroll-behavior:contain;
  font-size:var(--am-t-sm); line-height:var(--am-lh-txt); color:var(--am-texto-1);
}
.lg-cuerpo h3{
  margin:var(--am-s-6) 0 var(--am-s-3);
  font-size:var(--am-t-cuerpo); font-weight:var(--am-w-bold); color:var(--am-tinta);
}
.lg-cuerpo section:first-of-type h3{ margin-top:var(--am-s-2); }
.lg-cuerpo p{ margin:0 0 var(--am-s-3); max-width:none; }
.lg-cuerpo ul{ margin:0 0 var(--am-s-3); padding-left:1.15em; }
.lg-cuerpo li{ margin-bottom:.35em; }
.lg-cuerpo code{
  font-family:var(--am-f-mono); font-size:.9em;
  background:var(--am-n-100); padding:.1em .35em; border-radius:var(--am-r-xs);
}
.lg-cuerpo blockquote{
  margin:0 0 var(--am-s-3); padding:var(--am-s-3) var(--am-s-4);
  border-left:3px solid var(--am-violeta); background:var(--am-violeta-50);
  border-radius:0 var(--am-r-md) var(--am-r-md) 0;
}
.lg-tabla{ overflow-x:auto; margin:0 0 var(--am-s-4); }
.lg-tabla table{ border-collapse:collapse; width:100%; font-size:var(--am-t-xs); }
.lg-tabla th,.lg-tabla td{
  border:1px solid var(--am-n-200); padding:.5em .65em; text-align:left; vertical-align:top;
}
.lg-tabla th{ background:var(--am-n-50); font-weight:var(--am-w-bold); color:var(--am-tinta); }

.lg-meta{ font-size:var(--am-t-xs); color:var(--am-texto-3); }
.lg-paso{
  font-family:var(--am-f-mono); font-size:var(--am-t-lb);
  letter-spacing:var(--am-tr-lb); text-transform:uppercase;
  color:var(--am-violeta-800); margin:0 0 var(--am-s-3);
}
.lg-lista{ margin:0 0 var(--am-s-4); padding-left:1.15em; }
.lg-error{ color:var(--am-error); font-weight:var(--am-w-semi); margin:var(--am-s-3) 0 0; }

.lg-indice{
  background:var(--am-n-50); border-radius:var(--am-r-md);
  padding:var(--am-s-4); margin:0 0 var(--am-s-5);
}
.lg-indice__t{
  font-family:var(--am-f-mono); font-size:var(--am-t-lb);
  letter-spacing:var(--am-tr-lb); text-transform:uppercase;
  color:var(--am-texto-3); margin:0 0 var(--am-s-2);
}
/* Sin marcadores: los títulos ya llegan numerados del documento fuente. */
.lg-indice ul{
  margin:0; padding:0; list-style:none; font-size:var(--am-t-xs);
  columns:2; column-gap:var(--am-s-5);
}
@media (max-width:620px){ .lg-indice ul{ columns:1; } }
.lg-indice li{ margin-bottom:.35em; break-inside:avoid; }
.lg-indice a{ color:var(--am-violeta-800); text-decoration:none; }
.lg-indice a:hover,.lg-indice a:focus-visible{ text-decoration:underline; }

.lg-pie{
  padding:var(--am-s-4) var(--am-s-6);
  border-top:1px solid var(--am-n-200); background:var(--am-n-50);
  border-radius:0 0 var(--am-r-lg) var(--am-r-lg);
}
.lg-acciones{ display:flex; flex-wrap:wrap; gap:var(--am-s-3); justify-content:flex-end; align-items:center; }
.lg-acciones--doc{ justify-content:space-between; }
.lg-pista{ font-size:var(--am-t-xs); color:var(--am-texto-3); }
.lg-pista kbd{
  font-family:var(--am-f-mono); font-size:.92em;
  background:var(--am-blanco); border:1px solid var(--am-n-300);
  border-radius:var(--am-r-xs); padding:.1em .4em;
}
@media (max-width:520px){ .lg-pista{ display:none; } }

/* --------------------------------------------------------------- controles */
/* Rechazar y aceptar comparten estilo a propósito: LEGAL-06 §7.1.1 exige la
   misma jerarquía visual, tamaño y contraste para ambas opciones. */
.lg-btn{
  font-family:inherit; font-size:var(--am-t-sm); font-weight:var(--am-w-semi);
  padding:.6em 1.1em; border-radius:var(--am-r-sm);
  border:1px solid var(--am-tinta); background:var(--am-blanco); color:var(--am-tinta);
  cursor:pointer; white-space:nowrap;
  transition:background var(--am-dur-fast) var(--am-ease), color var(--am-dur-fast) var(--am-ease);
}
.lg-btn:hover{ background:var(--am-azul-50); }
.lg-btn:focus-visible{ outline:2px solid var(--am-tinta); outline-offset:2px; }
.lg-btn--fuerte{ background:var(--am-tinta); color:var(--am-blanco); }
.lg-btn--fuerte:hover{ background:var(--am-tinta-700); color:var(--am-blanco); }

.lg-enlace{
  font:inherit; color:var(--am-violeta-800); background:none; border:0; padding:0;
  text-decoration:underline; cursor:pointer;
}
.lg-enlace:focus-visible{ outline:2px solid var(--am-tinta); outline-offset:2px; }

.lg-cats{ display:flex; flex-direction:column; gap:var(--am-s-3); margin:var(--am-s-4) 0 0; }
.lg-cat{
  border:1px solid var(--am-n-200); border-radius:var(--am-r-md);
  padding:var(--am-s-3) var(--am-s-4); background:var(--am-blanco);
}
.lg-cat__cab{ display:flex; align-items:center; gap:var(--am-s-3); cursor:pointer; }
.lg-cat__cab input{ flex:none; width:18px; height:18px; accent-color:var(--am-tinta); cursor:pointer; }
.lg-cat__cab input:disabled{ cursor:default; }
.lg-cat__n{ font-weight:var(--am-w-bold); color:var(--am-tinta); }
.lg-cat__req{
  margin-left:auto; font-family:var(--am-f-mono); font-size:var(--am-t-lb);
  letter-spacing:var(--am-tr-lb); text-transform:uppercase; color:var(--am-texto-3);
  white-space:nowrap;
}
.lg-cat__d{ margin:.5em 0 0 calc(18px + var(--am-s-3)); font-size:var(--am-t-xs); color:var(--am-texto-2); }

/* ---------------------------------------------------------------- banner */
.lg-banner{
  position:fixed; left:var(--am-s-4); right:var(--am-s-4); bottom:var(--am-s-4);
  z-index:380;                                        /* bajo el modal, sobre el globo */
  margin-inline:auto; max-width:960px;
  background:var(--am-blanco); border:1px solid var(--am-n-300);
  border-radius:var(--am-r-lg); box-shadow:0 16px 48px rgba(0,48,38,.26);
  padding:var(--am-s-5);
  display:flex; flex-wrap:wrap; align-items:center; gap:var(--am-s-4);
  animation:lg-sube .4s var(--am-ease);
}
@keyframes lg-sube{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
.lg-banner__txt{ flex:1 1 320px; }
.lg-banner__t{
  font-family:var(--am-f-mono); font-size:var(--am-t-lb);
  letter-spacing:var(--am-tr-lb); text-transform:uppercase;
  color:var(--am-violeta-800); margin:0 0 var(--am-s-2);
}
.lg-banner p{ margin:0; font-size:var(--am-t-sm); line-height:var(--am-lh-txt); color:var(--am-texto-1); max-width:none; }
.lg-banner__btns{ display:flex; flex-wrap:wrap; gap:var(--am-s-2); }

@media (max-width:640px){
  .lg-banner{ left:var(--am-s-3); right:var(--am-s-3); bottom:var(--am-s-3); padding:var(--am-s-4); }
  .lg-banner__btns{ width:100%; }
  .lg-banner__btns .lg-btn{ flex:1 1 auto; text-align:center; }
  .lg-cab,.lg-cuerpo,.lg-pie{ padding-inline:var(--am-s-4); }
}
@media (prefers-reduced-motion: reduce){
  .lg-fondo,.lg-banner{ animation:none; }
  .lg-btn,.lg-cerrar{ transition:none; }
}
