/* Long-form policy pages. Readable on a phone, navigable on a desktop. */
.legal-page { background: #f8fbfb; color: #101414; }
.legal-layout {
  max-width: 1120px; margin: 0 auto; padding: 56px 32px 96px;
  display: grid; gap: 48px; align-items: start;
}
@media (min-width: 980px) {
  .legal-layout { grid-template-columns: 236px minmax(0, 1fr); gap: 64px; padding-top: 72px; }
}

/* ---- heading block ---- */
.legal-head { grid-column: 1 / -1; border-bottom: 1px solid #d9e5e5; padding-bottom: 32px; }
.legal-head .journey-kicker {
  display: block; font-size: 11px; font-weight: 600; letter-spacing: .12em;
  text-transform: uppercase; color: #177b7b; margin: 0 0 16px;
}
.legal-head h1 {
  font-family: var(--font-display); font-size: clamp(34px, 5vw, 56px);
  font-weight: 700; line-height: 1.08; letter-spacing: -.035em; margin: 0;
}
.legal-updated { margin: 16px 0 0; font-size: 14px; color: #607070; }
.legal-intro { margin: 20px 0 0; max-width: 68ch; font-size: 17px; line-height: 1.7; color: #3c4f50; }

/* ---- contents rail ---- */
.legal-toc { font-size: 14px; }
@media (min-width: 980px) { .legal-toc { position: sticky; top: 28px; max-height: calc(100vh - 56px); overflow-y: auto; } }
.legal-toc h2 {
  font-family: var(--font-text); font-size: 11px; font-weight: 600; letter-spacing: .12em;
  text-transform: uppercase; color: #607070; margin: 0 0 14px;
}
.legal-toc ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 1px; counter-reset: toc; }
.legal-toc li { counter-increment: toc; }
.legal-toc a {
  display: grid; grid-template-columns: 26px 1fr; gap: 6px;
  padding: 6px 8px 6px 0; color: #42585a; text-decoration: none; border-radius: 4px; line-height: 1.4;
}
.legal-toc a::before { content: counter(toc); color: #8aa0a0; font-variant-numeric: tabular-nums; }
.legal-toc a:hover { color: #11706d; }
.legal-toc a:focus-visible { outline: 2px solid #177b7b; outline-offset: 2px; }

/* ---- body ---- */
.legal-body { max-width: 72ch; }
.legal-body section { padding: 32px 0; border-bottom: 1px solid #e3eceb; scroll-margin-top: 24px; }
.legal-body section:last-child { border-bottom: 0; }
.legal-body h2 {
  font-family: var(--font-display); font-size: clamp(21px, 2.3vw, 26px);
  font-weight: 700; letter-spacing: -.02em; line-height: 1.25; margin: 0 0 14px;
}
.legal-body h3 {
  font-family: var(--font-text); font-size: 16px; font-weight: 600;
  letter-spacing: 0; margin: 24px 0 8px; color: #182828;
}
.legal-body p { margin: 0 0 14px; font-size: 16px; line-height: 1.75; color: #35494a; }
.legal-body p:last-child { margin-bottom: 0; }
.legal-body ul { margin: 0 0 14px; padding-left: 20px; display: grid; gap: 7px; }
.legal-body li { font-size: 16px; line-height: 1.6; color: #35494a; }
.legal-body a { color: #11706d; text-underline-offset: 3px; }
.legal-body strong { color: #101414; font-weight: 600; }

.legal-contact {
  background: #eef6f5; border: 1px solid #d3e5e3; border-radius: 10px;
  padding: 24px 26px; margin-top: 8px;
}
.legal-contact p { margin: 0 0 6px; }
.legal-contact p:last-child { margin-bottom: 0; }

.legal-foot {
  grid-column: 1 / -1; border-top: 1px solid #d9e5e5; padding-top: 24px;
  display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: center;
  font-size: 13.5px; color: #607070;
}
.legal-foot a { color: #11706d; text-underline-offset: 3px; }

@media (max-width: 700px) {
  .legal-layout { padding: 36px 20px 64px; gap: 32px; }
  .legal-head { padding-bottom: 24px; }
  .legal-body section { padding: 26px 0; }
  .legal-body p, .legal-body li { font-size: 15.5px; }
  .legal-contact { padding: 20px; }
  /* On a phone the contents list is a long detour before the text itself. */
  .legal-toc { border: 1px solid #d9e5e5; border-radius: 10px; background: white; }
  .legal-toc > details > summary {
    padding: 14px 16px; cursor: pointer; font-size: 14px; font-weight: 600; color: #182828;
  }
  .legal-toc > details[open] > summary { border-bottom: 1px solid #e3eceb; }
  .legal-toc ol { padding: 8px 16px 14px; }
}
@media (min-width: 701px) {
  .legal-toc > details > summary { display: none; }
}
