/**
 * Cookie consent — site overrides.
 * Must load AFTER vendor/cookieconsent/cookieconsent.css.
 */

#cc-main {
  --cc-font-family: inherit;
  --cc-z-index: 2147483000;
}

/* GDPR requires accept and reject to carry equal prominence.
   Deliberately no override here: the library gives data-role="all" and data-role="necessary"
   the same primary button class, and equalWeightButtons matches their widths. Styling the
   reject button as secondary would be exactly the imbalance the law prohibits. */

/* Compact first-run banner. The detail lives in the preferences modal and the policies, so this
   card carries only the purposes, the choice, and the way into both. Below ~640px the library's
   own media query takes over and the card goes full width. */
#cc-main .cm--box.cm--wide { max-width: 30em; }
#cc-main .cm__texts { padding-top: 0.85rem; }
#cc-main .cm__title { font-size: 1em; }
#cc-main .cm__desc { font-size: 0.85em; margin-top: 0.6em; padding-bottom: 0.85em; }
#cc-main .cm__btn { min-height: 38px; font-size: 0.8em; }
#cc-main .cm__link-group { font-size: 0.75em; }

/* Footer legal row. The withdrawal control is a <button> for accessibility, styled as a link so
   the row reads as one set. Withdrawal must be as easy as granting was. */
.legal-links {
  margin-top: 1rem;
  font-size: 0.85rem;
  opacity: 0.75;
  text-align: center;
}
.legal-links a,
.legal-links .cookie-prefs-btn {
  color: inherit;
  text-decoration: none;
}
.legal-links .cookie-prefs-btn {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  cursor: pointer;
}
.legal-links a:hover,
.legal-links a:focus-visible,
.legal-links .cookie-prefs-btn:hover,
.legal-links .cookie-prefs-btn:focus-visible {
  text-decoration: underline;
}
.legal-links .sep { opacity: 0.5; margin: 0 0.45em; }

/* ============================================
   LEGAL PAGES
   ============================================ */

.legal { padding: 3rem 1.5rem; max-width: 100%; }
.legal__inner { max-width: 820px; margin: 0 auto; }
.legal__back { margin-bottom: 2rem; font-size: 0.9375rem; }
.legal h1 { margin-bottom: 0.5rem; }
.legal__updated { font-size: 0.875rem; opacity: 0.7; margin-bottom: 2.5rem; }
.legal h2 { margin-top: 3rem; margin-bottom: 1rem; font-size: 1.375rem; }
.legal p, .legal li { line-height: 1.7; }
.legal ul { padding-left: 1.5rem; margin-bottom: 1rem; }
.legal li { margin-bottom: 0.5rem; }
.legal code {
  font-family: 'Fira Code', monospace;
  font-size: 0.875em;
  padding: 0.1em 0.35em;
  border-radius: 4px;
  background: rgba(127, 127, 127, 0.15);
}

.legal__tag {
  display: inline-block;
  vertical-align: middle;
  margin-left: 0.5rem;
  padding: 0.15em 0.6em;
  border-radius: 999px;
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border: 1px solid currentColor;
  opacity: 0.75;
}

/* Tables scroll inside their own container so the page never scrolls sideways on mobile. */
.legal__table-wrap { overflow-x: auto; margin-bottom: 1.5rem; }
.legal__table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 0.9375rem; }
.legal__table th, .legal__table td {
  padding: 0.75rem;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid rgba(127, 127, 127, 0.25);
}
.legal__table th { font-weight: 600; white-space: nowrap; }

@media (max-width: 768px) {
  .legal { padding: 2rem 1rem; }
}
