/* Full-width legal pages. Scoped so standard pages and games keep their layouts. */
.portal-legal-page {
  min-height: 60vh;
  padding: 34px 24px 72px;
  background: var(--site-bg, #09080c);
}

.portal-legal-page__article {
  max-width: 1020px;
  margin: 0 auto;
  overflow: hidden;
  border: 1px solid var(--border, rgba(255, 255, 255, .09));
  border-radius: 18px;
  background: var(--surface-1, #141219);
  box-shadow: 0 20px 55px rgba(0, 0, 0, .2);
}

.portal-legal-page__inner {
  max-width: 820px;
  margin: 0 auto;
}

.portal-legal-page__hero {
  position: relative;
  overflow: hidden;
  padding: 48px 38px 44px;
  border-bottom: 1px solid var(--border, rgba(255, 255, 255, .09));
  background:
    radial-gradient(circle at 85% 8%, rgba(255, 138, 0, .22), transparent 34%),
    linear-gradient(130deg, #15121a 0%, #1d1820 58%, #18141c 100%);
}

.portal-legal-page__hero:after {
  position: absolute;
  right: -90px;
  bottom: -130px;
  width: 290px;
  height: 290px;
  border: 1px solid rgba(255, 174, 66, .22);
  border-radius: 50%;
  content: '';
  pointer-events: none;
}

.portal-legal-page__hero .portal-legal-page__inner { position: relative; z-index: 1; }

.portal-legal-page__eyebrow {
  margin: 0 0 10px;
  color: #ff9b19;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.portal-legal-page h1,
.portal-legal-page h2 {
  font-family: inherit;
  color: var(--text-primary, #f7f5fa);
}

.portal-legal-page h1 {
  margin: 0;
  font-size: clamp(31px, 5vw, 48px);
  font-weight: 800;
  letter-spacing: -.035em;
  line-height: 1.05;
}

.portal-legal-page__intro {
  max-width: 660px;
  margin: 16px 0 0;
  color: #d0c9d6;
  font-size: 17px;
  line-height: 1.65;
}

.portal-legal-page__updated {
  margin: 22px 0 0;
  color: #a9a2af;
  font-size: 13px;
  font-weight: 700;
}

.portal-legal-page__content { padding: 34px 38px 44px; }

.portal-legal-page__notice {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 12px;
  align-items: center;
  padding: 14px 17px;
  margin-bottom: 30px;
  border: 1px solid rgba(255, 138, 0, .32);
  border-radius: 11px;
  background: rgba(255, 138, 0, .07);
  color: #d8d0dc;
  font-size: 14px;
}

.portal-legal-page__notice strong { color: #ffad42; }
.portal-legal-page__notice a,
.portal-legal-page__section a { color: #ff9b19; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.portal-legal-page__notice a:hover,
.portal-legal-page__section a:hover { color: #ffc06a; }

.portal-legal-page__sections { display: grid; gap: 27px; }

.portal-legal-page__section {
  padding-bottom: 27px;
  border-bottom: 1px solid var(--border, rgba(255, 255, 255, .09));
}

.portal-legal-page__section:last-child { padding-bottom: 0; border-bottom: 0; }

.portal-legal-page__section h2 {
  margin: 0 0 9px;
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -.01em;
  line-height: 1.25;
}

.portal-legal-page__section p {
  margin: 0;
  color: var(--text-secondary, #aaa5b2);
  font-size: 15px;
  line-height: 1.72;
}

body.portal-light-theme .portal-legal-page,
body.light-theme .portal-legal-page { background: #f5f3f6; }

body.portal-light-theme .portal-legal-page__article,
body.light-theme .portal-legal-page__article { border-color: #ded9e1; background: #fff; box-shadow: 0 18px 40px rgba(43, 34, 49, .08); }

body.portal-light-theme .portal-legal-page__hero,
body.light-theme .portal-legal-page__hero { border-color: #ded9e1; background: radial-gradient(circle at 85% 8%, rgba(255, 138, 0, .2), transparent 34%), linear-gradient(130deg, #fffaf5, #f8f4f1); }

body.portal-light-theme .portal-legal-page h1,
body.portal-light-theme .portal-legal-page h2,
body.light-theme .portal-legal-page h1,
body.light-theme .portal-legal-page h2 { color: #28232c; }

body.portal-light-theme .portal-legal-page__intro,
body.portal-light-theme .portal-legal-page__notice,
body.light-theme .portal-legal-page__intro,
body.light-theme .portal-legal-page__notice { color: #625b68; }

body.portal-light-theme .portal-legal-page__section p,
body.light-theme .portal-legal-page__section p { color: #5d5662; }

body.portal-light-theme .portal-legal-page__section,
body.light-theme .portal-legal-page__section { border-color: #e4e0e6; }

@media (max-width: 620px) {
  .portal-legal-page { padding: 22px 14px 48px; }
  .portal-legal-page__hero { padding: 35px 22px 31px; }
  .portal-legal-page__content { padding: 25px 22px 31px; }
  .portal-legal-page__intro { font-size: 15px; }
  .portal-legal-page__section p { font-size: 14px; }
}
