/* TRUMAP — terms and privacy pages. The only motion is the document opening and closing. */

.legal { padding: clamp(40px, 6vw, 88px) 0 clamp(96px, 10vw, 160px); }
.legal-wrap { max-width: 860px; }
.legal h1 {
  font-size: clamp(36px, 5vw, 60px); font-weight: 850; line-height: 1.15; letter-spacing: -.04em;
  margin-bottom: clamp(28px, 4vw, 48px);
}

.acc { display: grid; gap: 12px; }
.acc-item { border-radius: var(--radius); background: var(--surface); scroll-margin-top: calc(var(--header-h) + 16px); }
.acc-head { margin: 0; font-size: inherit; }
.acc-btn {
  width: 100%; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 6px 20px;
  padding: clamp(22px, 2.4vw, 30px) clamp(22px, 2.6vw, 34px);
  border-radius: var(--radius); text-align: left;
}
.acc-btn:hover .acc-title { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; }
.acc-title { font-size: clamp(19px, 2vw, 24px); font-weight: 800; letter-spacing: -.03em; line-height: 1.35; }
.acc-date { grid-column: 1; font-size: var(--fs-small); color: var(--muted); }
.acc-date + .acc-icon { grid-row: 1 / span 2; }
.acc-icon {
  grid-column: 2; grid-row: 1;
  width: 40px; height: 40px; border-radius: 50%; background: #fff;
  display: grid; place-items: center;
}
.acc-icon svg { width: 14px; height: 14px; fill: var(--ink); transition: transform .4s var(--ease-out); }
.is-open .acc-icon svg { transform: rotate(180deg); }

/* Collapsed with script only: the text is in the page from the start and merely hidden. */
.js .acc-panel {
  display: grid; grid-template-rows: 0fr; visibility: hidden;
  transition: grid-template-rows .45s var(--ease-out), visibility 0s linear .45s;
}
.js .acc-item.is-open .acc-panel {
  grid-template-rows: 1fr; visibility: visible;
  transition: grid-template-rows .45s var(--ease-out), visibility 0s linear 0s;
}
.js .acc-item.no-anim .acc-panel, .js .acc-item.no-anim .acc-icon svg { transition: none; }
.acc-inner { min-height: 0; overflow: hidden; }

.doc {
  margin: 0 clamp(8px, 1.2vw, 14px) clamp(8px, 1.2vw, 14px);
  padding: clamp(22px, 3vw, 40px) clamp(18px, 3vw, 40px);
  border-radius: calc(var(--radius) - 8px); background: #fff;
  font-size: 16px; line-height: 1.8; color: var(--ink);
}
.doc > :first-child { margin-top: 0; }
.doc p { margin-block: 4px; }
.clause { margin-top: 28px; }
.clause h3 { font-size: 17px; font-weight: 800; letter-spacing: -.01em; margin-bottom: 6px; }
.li { display: grid; grid-template-columns: auto 1fr; column-gap: .3em; }
.lv1 { margin-left: .4em; }
.lv2 { margin-left: 2em; }
.lv3 { margin-left: 3.6em; }
.doc .consent { margin-top: 28px; font-weight: 700; }
.doc a { color: var(--accent); text-underline-offset: 2px; overflow-wrap: anywhere; }

@media (max-width: 719px) {
  .lv1 { margin-left: 0; }
  .lv2 { margin-left: 1.2em; }
  .lv3 { margin-left: 2.4em; }
}

.to-top {
  position: fixed; right: var(--gutter); bottom: max(20px, env(safe-area-inset-bottom));
  z-index: 40; display: inline-flex; align-items: center; gap: 8px;
  height: 48px; padding: 0 18px 0 14px; border-radius: 999px;
  background: var(--ink); color: #fff; font-size: 15px; font-weight: 700;
}
.to-top[hidden] { display: none; }
.to-top svg { width: 16px; height: 16px; fill: currentColor; }
