/* Kit legal de los sitios APEX: aviso de cookies y páginas legales.
   Usa los colores del sitio si los define (--bg, --text, --accent...), con valores de reserva. */

.cookies-barra {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 9000;
  display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem;
  padding: 1rem clamp(1rem, 4vw, 2.5rem); padding-right: 3.25rem;
  border-top: 1px solid color-mix(in srgb, currentColor 18%, transparent);
  background: var(--surf, var(--bg, #fff)); color: var(--text, #111);
  box-shadow: 0 -8px 30px rgba(0, 0, 0, .18); font-size: .95rem; line-height: 1.5;
}
.cookies-barra p { flex: 1 1 28rem; margin: 0; }
.cookies-barra a, .cookies-panel a { color: inherit; text-decoration: underline; }
.cookies-botones { display: flex; flex-wrap: wrap; gap: .5rem; }
/* Todos los botones del mismo tamaño y estilo: ninguna opción escondida ni en gris. */
.cookies-btn {
  min-width: 9.5rem; padding: .6rem 1rem; border: 1.5px solid currentColor; border-radius: 999px;
  background: transparent; color: inherit; font: inherit; font-weight: 600; cursor: pointer;
}
.cookies-btn:hover { background: color-mix(in srgb, currentColor 10%, transparent); }
.cookies-btn:focus-visible, .cookies-x:focus-visible, .legal-enlace:focus-visible { outline: 3px solid var(--accent, #e11d48); outline-offset: 2px; }
.cookies-x {
  position: absolute; top: .5rem; right: .75rem; width: 2.25rem; height: 2.25rem;
  border: 0; border-radius: 50%; background: transparent; color: inherit; font-size: 1.5rem; line-height: 1; cursor: pointer;
}
@media (max-width: 640px) { .cookies-btn { flex: 1 1 100%; } }

.cookies-panel {
  width: min(32rem, calc(100vw - 2rem)); padding: 1.5rem; border: 0; border-radius: 16px;
  background: var(--surf, var(--bg, #fff)); color: var(--text, #111);
}
.cookies-panel::backdrop { background: rgba(0, 0, 0, .55); }
.cookies-panel h2 { margin: 0 0 1rem; font-size: 1.25rem; }
.cookies-cat { display: flex; gap: .75rem; align-items: flex-start; padding: .75rem 0; border-top: 1px solid color-mix(in srgb, currentColor 15%, transparent); cursor: pointer; }
.cookies-cat input { width: 1.15rem; height: 1.15rem; margin-top: .2rem; accent-color: var(--accent, #e11d48); }
.cookies-cat small { display: block; opacity: .75; }
.cookies-nota { margin: .75rem 0; font-size: .9rem; opacity: .85; }
.cookies-panel .cookies-botones { margin-top: 1rem; }

/* Páginas legales */
.legal-doc { max-width: 52rem; }
.legal-version { font-size: .9rem; opacity: .75; }
.legal-aviso { padding: .75rem 1rem; border-left: 4px solid #d97706; border-radius: 8px; background: color-mix(in srgb, #d97706 14%, transparent); }
.legal-pendiente { padding: 0 .25rem; border-radius: 4px; background: color-mix(in srgb, #d97706 30%, transparent); color: inherit; }
.legal-tabla { overflow-x: auto; margin: 1rem 0 1.5rem; }
.legal-tabla table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.legal-tabla th, .legal-tabla td { padding: .6rem .7rem; border-bottom: 1px solid color-mix(in srgb, currentColor 15%, transparent); text-align: left; vertical-align: top; }
.legal-tabla thead th { font-weight: 700; }
.legal-ficha th { width: 14rem; }
.legal-lista li { margin-bottom: .6rem; }
.legal-enlace { padding: 0; border: 0; background: none; color: inherit; font: inherit; text-decoration: underline; cursor: pointer; }

/* Pie mínimo sin JavaScript (legal_pie_noscript): enlaces legales y datos de la empresa. */
.legal-pie-simple { padding: 1.5rem clamp(1rem, 4vw, 2.5rem); border-top: 1px solid color-mix(in srgb, currentColor 18%, transparent); font-size: .9rem; }
.legal-pie-simple nav { display: flex; flex-wrap: wrap; gap: .4rem 1rem; margin-bottom: .6rem; }
.legal-pie-simple a { color: inherit; }
.legal-pie-simple p { margin: 0; }
