/*
 * Legal pages (Aviso Legal, Política de Privacidad, Política de Cookies) and the 404 page.
 * The chrome (header, footer, cookie banner) comes from site.css.
 */

/* ---- Legal pages ---- */

.legal-hero {
  padding: 8rem 0 3rem;
  border-bottom: 1px solid var(--border);
  background: hsl(var(--secondary-hsl) / 40%);
}

.legal-hero__title {
  color: var(--fg);
  font-size: 1.875rem;
  font-weight: 800;
  line-height: 2.25rem;
}

.legal-hero__updated {
  margin-top: 1.5rem;
  color: var(--legal-updated);
  font-size: 0.75rem;
  line-height: 1rem;
}

.legal {
  padding-block: 3.5rem;
}

.legal h2 {
  margin: 2.5rem 0 0.75rem;
  color: var(--fg);
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.75rem;
}

.legal p {
  margin-bottom: 0.75rem;
  color: hsl(var(--fg-hsl) / 70%);
  line-height: 1.625;
}

.legal ul {
  margin-bottom: 1rem;
  padding-left: 1.5rem;
  color: hsl(var(--fg-hsl) / 70%);
  list-style: disc;
}

.legal li {
  padding-left: 0.25rem;
  line-height: 1.625;
}

.legal li + li {
  margin-top: 0.5rem;
}

.legal li::marker {
  color: hsl(var(--primary-hsl) / 50%);
}

/* Cookie table: scrolls sideways on narrow screens (keyboard reachable: tabindex on the wrapper). */
.table-wrap {
  margin: 0 -0.5rem 1rem;
  padding-inline: 0.5rem;
  overflow-x: auto;
}

.cookie-table {
  width: 100%;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.cookie-table thead {
  background: var(--secondary);
  text-align: left;
}

.cookie-table th {
  padding: 0.75rem 1rem;
  color: var(--fg);
  font-weight: 600;
}

.cookie-table tbody tr {
  color: hsl(var(--fg-hsl) / 70%);
}

.cookie-table tbody tr + tr {
  border-top: 1px solid var(--border);
}

.cookie-table td {
  padding: 0.75rem 1rem;
}

.cookie-table td:first-child {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  line-height: 1rem;
  white-space: nowrap;
}

.cookie-table td:last-child {
  white-space: nowrap;
}

@media (width >= 640px) {
  .legal-hero__title {
    font-size: 2.25rem;
    line-height: 2.5rem;
  }
}

@media (width >= 1024px) {
  .legal-hero {
    padding: 10rem 0 4rem;
  }

  .legal-hero__title {
    font-size: 3rem;
    line-height: 1;
  }

  .legal {
    padding-block: 5rem;
  }

  .legal h2 {
    font-size: 1.25rem;
  }
}

/* ---- 404 (slate palette of the original's PageNotFound) ---- */

.nf {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: 1.5rem;
  background: #f8fafc;
}

.nf__card {
  width: 100%;
  max-width: 28rem;
  text-align: center;
}

.nf__card > * + * {
  margin-top: 1.5rem;
}

.nf__top > * + * {
  margin-top: 0.5rem;
}

.nf__code {
  color: #64748b; /* the original's slate-300 (1.4:1) fails contrast, D-pdd-P8 */
  font-family: var(--font-heading);
  font-size: 4.5rem;
  font-weight: 300;
  line-height: 1;
}

.nf__rule {
  width: 4rem;
  height: 0.125rem;
  margin-inline: auto;
  background: #e2e8f0;
}

.nf__message > * + * {
  margin-top: 0.75rem;
}

.nf__title {
  color: #1e293b;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 2rem;
}

.nf__text {
  color: #475569;
  line-height: 1.625;
}

.nf__action {
  padding-top: 1.5rem;
}

.nf__btn {
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 1rem;
  border: 1px solid #e2e8f0;
  border-radius: var(--radius-lg);
  background: #fff;
  color: #334155;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.25rem;
  transition: color 200ms var(--ease), background-color 200ms var(--ease), border-color 200ms var(--ease);
}

.nf__btn:hover {
  border-color: #cbd5e1;
  background: #f8fafc;
}

.nf__icon {
  width: 1rem;
  height: 1rem;
  margin-right: 0.5rem;
}
