/* ============================================================
   reservaime — Estilos para páginas legales
   (se carga DESPUÉS de styles.css para reutilizar los tokens)
   ============================================================ */

body.legal { background: var(--white); }

/* Barra superior simple */
.legal-nav {
  position: sticky; top: 0; z-index: 50;
  background: rgba(13,26,54,.96); backdrop-filter: saturate(1.3) blur(12px);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.legal-nav__inner { display: flex; align-items: center; justify-content: space-between; height: 70px; }
.legal-nav__logo img { height: 28px; width: auto; }
.legal-nav__back {
  display: inline-flex; align-items: center; gap: 8px;
  color: rgba(255,255,255,.82); font-weight: 600; font-size: 15px; transition: color .2s, gap .25s var(--ease);
}
.legal-nav__back:hover { color: #fff; gap: 12px; }
.legal-nav__back svg { width: 18px; height: 18px; }

/* Cabecera de página */
.legal-hero {
  background: linear-gradient(165deg, var(--dark-start), var(--dark-end));
  color: #fff; padding: clamp(50px, 8vw, 84px) 0 clamp(40px, 6vw, 64px);
}
.legal-hero .eyebrow { color: var(--gold); }
.legal-hero h1 { font-size: clamp(30px, 5vw, 48px); margin: 14px 0 0; }
.legal-hero .updated { margin-top: 16px; color: rgba(255,255,255,.7); font-size: 14.5px; }

/* Cuerpo + índice */
.legal-body { padding: clamp(48px, 7vw, 80px) 0 clamp(64px, 9vw, 110px); }
.legal-layout { display: grid; grid-template-columns: 240px 1fr; gap: clamp(32px, 5vw, 72px); align-items: start; }

.legal-toc {
  position: sticky; top: 96px;
  border-left: 2px solid var(--line); padding-left: 20px;
}
.legal-toc h4 { font-size: 12px; text-transform: uppercase; letter-spacing: .12em; color: var(--gray-400); margin-bottom: 14px; }
.legal-toc a { display: block; padding: 7px 0; font-size: 14px; color: var(--gray); font-weight: 500; transition: color .2s; line-height: 1.4; }
.legal-toc a:hover { color: var(--navy); }

/* Prosa */
.prose { max-width: 720px; min-width: 0; color: var(--ink); }
.prose h2 {
  font-size: clamp(20px, 2.4vw, 26px); margin: 48px 0 16px; scroll-margin-top: 96px;
  padding-bottom: 12px; border-bottom: 1px solid var(--line-soft);
}
.prose h2:first-child { margin-top: 0; }
.prose h3 { font-size: 18px; margin: 28px 0 10px; color: var(--navy); }
.prose p { color: var(--gray); margin-bottom: 16px; font-size: 16px; line-height: 1.75; }
.prose ul, .prose ol { margin: 0 0 18px; padding-left: 4px; display: grid; gap: 10px; }
.prose li { display: flex; gap: 12px; color: var(--gray); font-size: 16px; line-height: 1.7; }
.prose li::before { content: ""; flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--gold); margin-top: 11px; }
.prose ol { counter-reset: li; }
.prose ol li::before { content: counter(li); counter-increment: li; background: var(--navy); color: #fff; width: 22px; height: 22px; border-radius: 6px; display: grid; place-items: center; font-size: 12px; font-weight: 700; margin-top: 2px; }
.prose a { color: var(--navy); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--gold); }
.prose strong { color: var(--ink); }

/* Marcador de dato pendiente */
.fill {
  background: rgba(201,147,42,.16); color: var(--gold-600); font-weight: 700;
  padding: 1px 7px; border-radius: 5px; font-size: .94em; white-space: nowrap;
}
/* Dentro de tablas el placeholder puede ser largo: permite que rompa línea */
.legal-table .fill { white-space: normal; }

/* Tabla (cookies) */
.legal-table { width: 100%; border-collapse: collapse; margin: 8px 0 24px; font-size: 14.5px; }
.legal-table th, .legal-table td { text-align: left; padding: 12px 14px; border-bottom: 1px solid var(--line-soft); vertical-align: top; overflow-wrap: anywhere; }
.legal-table thead th { background: var(--cream); font-weight: 700; color: var(--ink); font-size: 13px; text-transform: uppercase; letter-spacing: .04em; }
.legal-table td { color: var(--gray); }
.legal-table tr:last-child td { border-bottom: none; }
.legal-table .wrap { border: 1px solid var(--line); border-radius: var(--radius-sm); overflow: hidden; }

/* Caja destacada */
.callout {
  background: var(--cream); border: 1px solid var(--line-soft); border-radius: var(--radius);
  padding: 22px 24px; margin: 24px 0;
}
.callout p:last-child { margin-bottom: 0; }
.callout strong { color: var(--navy); }

/* Cross-links a las otras páginas */
.legal-more { margin-top: 56px; padding-top: 32px; border-top: 1px solid var(--line); }
.legal-more h4 { font-size: 13px; text-transform: uppercase; letter-spacing: .1em; color: var(--gray-400); margin-bottom: 16px; }
.legal-more__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.legal-more__grid a {
  display: flex; align-items: center; gap: 11px; padding: 16px 18px; border: 1px solid var(--line);
  border-radius: var(--radius-sm); font-weight: 700; color: var(--navy); font-size: 14.5px;
  transition: border-color .2s, transform .2s var(--ease), box-shadow .2s;
}
.legal-more__grid a:hover { border-color: var(--gold); transform: translateY(-2px); box-shadow: var(--shadow-sm); }
.legal-more__grid svg { width: 18px; height: 18px; color: var(--gold-600); flex: none; }

/* Footer mini */
.legal-foot { background: var(--dark-start); color: rgba(255,255,255,.7); padding: 36px 0; }
.legal-foot__inner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px; font-size: 14px; }
.legal-foot__links { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.legal-foot__links a { transition: color .2s; }
.legal-foot__links a:hover { color: var(--gold); }

@media (max-width: 860px) {
  .legal-layout { grid-template-columns: 1fr; }
  .legal-toc { display: none; }
  .legal-more__grid { grid-template-columns: 1fr; }
}
