/* Terms and Privacy on the public shell (join.css). Legal text is unchanged;
 * this sheet only sets a readable column and an "On this page" list.
 */
.legal-head { padding: 56px 0 0; }
.legal-head h1 { font-size: clamp(36px, 4.4vw, 60px); animation: legal-rise .7s cubic-bezier(.22,1,.36,1) both; }
.legal-head .legal-meta { margin-top: 12px; color: var(--pub-muted); font-size: 15px; }
.legal-jump { display: none; }
.legal-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 64px; align-items: start; padding: 40px 0 96px; }
.legal-toc { position: sticky; top: 100px; max-height: calc(100vh - 124px); overflow: auto; padding-right: 8px; font-size: 14px; }
.legal-toc > p { margin-bottom: 10px; font-weight: 680; color: var(--pub-ink); }
.legal-toc ol { margin: 0; padding: 0; list-style: none; border-left: 2px solid var(--pub-line); }
.legal-toc li a { display: block; margin-left: -2px; padding: 6px 0 6px 14px; border-left: 2px solid transparent; color: var(--pub-muted); line-height: 1.4; text-decoration: none; transition: color .2s ease, border-color .2s ease; }
.legal-toc li a:hover { color: var(--pub-forest); border-left-color: var(--pub-gold); }
.legal-other { display: inline-flex; align-items: center; min-height: 44px; margin-top: 16px; font-weight: 650; color: var(--pub-forest); text-decoration: underline; text-decoration-color: var(--pub-gold); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.legal-document { max-width: 72ch; padding: 48px 56px; border: 1px solid var(--pub-line); border-radius: var(--pub-radius-lg); background: var(--pub-paper); }
.legal-document > p:first-child { margin-bottom: 8px; padding: 16px 18px; border-left: 3px solid var(--pub-gold); border-radius: 0 var(--pub-radius-sm) var(--pub-radius-sm) 0; background: var(--pub-gold-soft); }
.legal-document section { scroll-margin-top: 96px; }
.legal-document h2 { margin-top: 40px; scroll-margin-top: 96px; font-size: 22px; font-weight: 700; letter-spacing: -.025em; line-height: 1.25; }
.legal-document h2:target { animation: legal-mark 1.6s ease; }
.legal-document section p, .legal-document section li { margin-top: 12px; color: #34483f; font-size: 16px; line-height: 1.75; }
.legal-document ul, .legal-document ol { padding-left: 22px; }
.legal-document a { color: var(--pub-forest); font-weight: 600; text-decoration-color: var(--pub-gold); }
.legal-document > footer { margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--pub-line); color: var(--pub-muted); }
@keyframes legal-mark { 0%, 40% { background: var(--pub-gold-soft); box-shadow: 0 0 0 8px var(--pub-gold-soft); } 100% { background: transparent; box-shadow: 0 0 0 8px transparent; } }
@media (max-width: 1000px) {
  .legal-head { padding-top: 32px; }
  .legal-layout { grid-template-columns: 1fr; padding-top: 16px; }
  .legal-toc { display: none; }
  .legal-jump { display: block; margin-top: 20px; border: 1px solid var(--pub-line); border-radius: var(--pub-radius); background: var(--pub-paper); }
  .legal-jump summary { display: flex; align-items: center; justify-content: space-between; min-height: 52px; padding: 0 18px; font-weight: 650; cursor: pointer; list-style: none; }
  .legal-jump summary::-webkit-details-marker { display: none; }
  .legal-jump summary::after { content: "+"; display: grid; place-items: center; width: 26px; height: 26px; border: 1px solid var(--pub-line); border-radius: 50%; color: var(--pub-forest); transition: transform .3s cubic-bezier(.22,1,.36,1); }
  .legal-jump[open] summary::after { transform: rotate(45deg); }
  .legal-jump ol { margin: 0; padding: 4px 18px 14px; list-style: none; border-top: 1px solid var(--pub-line); animation: legal-rise .3s ease both; }
  .legal-jump li a { display: block; padding: 10px 0; color: var(--pub-muted); text-decoration: none; line-height: 1.4; }
}
@media (max-width: 760px) {
  .legal-layout { padding-bottom: 56px; }
  .legal-document { padding: 28px 20px; border-radius: var(--pub-radius); }
  .legal-document h2 { margin-top: 32px; font-size: 20px; }
  .legal-document section p, .legal-document section li { font-size: 15px; }
}
@media print {
  .join-header, .join-footer, .legal-toc, .legal-jump, .join-skip { display: none !important; }
  .legal-layout { display: block; padding: 0; }
  .legal-document { max-width: none; padding: 0; border: 0; }
}
@keyframes legal-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .legal-document h2:target, .legal-head h1, .legal-jump ol { animation: none; } }
.legal-document > section:first-child h2 { margin-top: 0; }
