/* the crumble — Datenschutz / Privacy */

html { scroll-padding-top: 152px; }

.legal-head--wide .tc-section__inner { max-width: 1120px; }
.legal-head__lead--privacy { max-width: 44ch; }

/* language bar */
.page .pp-bar__inner { max-width: 1120px; }
.pp-bar__label { font: 800 13px/16px var(--font-sans); letter-spacing: .12em; color: var(--ink-muted); }

/* document */
.pp-wrap { display: grid; grid-template-columns: minmax(0, 280px) minmax(0, 1fr); gap: 72px; align-items: start; max-width: 1120px; margin: 0 auto; padding: 64px var(--gutter) 112px; }
.pp-toc { position: sticky; top: 160px; max-height: calc(100vh - 190px); overflow-y: auto; padding-right: 8px; }
.pp-toc__title { margin: 0 0 14px; font: 800 13px/16px var(--font-sans); letter-spacing: .12em; color: var(--ink-muted); }
.pp-toc ol { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.pp-toc a { display: block; padding: 6px 0; color: var(--ink-muted); font: 600 14px/20px var(--font-sans); text-decoration: none; transition: color .2s ease-out; }
.pp-toc a:hover { color: var(--brand); }
.pp-toc a:focus-visible { outline: var(--border-outline) solid var(--focus); outline-offset: 2px; border-radius: 4px; }

.pp-doc { max-width: 720px; font: 400 16px/27px var(--font-sans); color: var(--ink); overflow-wrap: break-word; }
.pp-doc p { margin: 0 0 16px; }
.pp-doc strong { font-weight: 800; }
.pp-doc a { color: var(--brand); font-weight: 700; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; overflow-wrap: anywhere; }
.pp-doc a:hover { text-decoration-thickness: 3px; }
.pp-doc a:focus-visible { outline: var(--border-outline) solid var(--focus); outline-offset: 2px; border-radius: 2px; }
.pp-h2 { margin: 72px 0 20px; font: 700 28px/34px var(--font-sans); letter-spacing: -.01em; scroll-margin-top: 152px; }
.pp-h2::before { content: ""; display: block; width: 48px; height: var(--border-frame); margin-bottom: 20px; border-radius: var(--radius-pill); background: var(--brand); }
.pp-doc > .pp-h2:first-child { margin-top: 0; }
.pp-h3 { margin: 36px 0 10px; font: 800 19px/26px var(--font-sans); }
.pp-term { margin-top: 32px; font-size: 18px; }
.pp-doc ul, .pp-doc ol { margin: 0 0 20px; padding-left: 22px; }
.pp-doc li { margin: 6px 0; }
.pp-doc li::marker { color: var(--brand); font-weight: 800; }
.pp-doc li ul { margin: 8px 0 4px; }
.pp-box { margin: 4px 0 32px; padding: 24px 28px; border-radius: var(--radius-lg); background: var(--surface-sand); }
.pp-doc .pp-box__title { margin: 0 0 12px; font: 800 13px/16px var(--font-sans); letter-spacing: .12em; color: var(--ink-muted); }
.pp-doc .pp-box ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.pp-doc .pp-box li { margin: 0; font-size: 15px; line-height: 24px; }
.pp-quote { margin: 0 0 20px; padding: 20px 24px; border-radius: var(--radius-md); background: var(--surface-sand); font-style: italic; }
.pp-quote p:last-child { margin-bottom: 0; }

@media (max-width: 900px) {
  .pp-wrap { grid-template-columns: minmax(0, 1fr); gap: 0; padding-top: 40px; }
  .pp-toc { display: none; }
}
@media (max-width: 640px) {
  .pp-bar__label { display: none; }
  .page .pp-bar__inner { justify-content: center; }
  .pp-h2 { margin-top: 56px; font-size: 24px; line-height: 30px; }
  .pp-box { padding: 20px; }
}

@keyframes fadeUp { from { opacity: 0; transform: translate3d(0, 20px, 0); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: no-preference) {
  html:has(.motion-on) { scroll-behavior: smooth; }
  .motion-on .pp-doc { animation: fadeUp .6s var(--ease) both; }
}
