/* =====================================================================
   Legal pages — Terms of Use & Privacy Policies
   ===================================================================== */

.legal .nav { mix-blend-mode: normal; background: rgba(10,10,10,0.72); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid var(--line); }
.nav__links--always { display: flex !important; }

.lpage { padding-top: calc(var(--nav-h) + clamp(56px, 10vh, 120px)); padding-bottom: clamp(80px, 12vh, 140px); }

.lhead { border-bottom: 1px solid var(--line); padding-bottom: clamp(28px, 5vh, 48px); margin-bottom: clamp(40px, 7vh, 80px); }
.lhead__crumb { font-size: 12px; color: var(--mute); text-transform: uppercase; letter-spacing: 0.08em; }
.lhead__crumb a { color: var(--fg-2); transition: color 0.3s; }
.lhead__crumb a:hover { color: var(--fg); }
.lhead__app { margin-top: clamp(28px, 5vh, 56px); font-size: 13px; color: var(--fg-2); display: flex; gap: 14px; align-items: center; }
.lhead__app span { border: 1px solid var(--line-strong); border-radius: 999px; padding: 3px 10px; font-size: 11px; color: var(--fg); }
.lhead__title { margin-top: 18px; font-weight: 600; font-size: clamp(48px, 9vw, 150px); line-height: 0.95; letter-spacing: -0.055em; }
.lhead__meta { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; margin-top: clamp(24px, 4vh, 40px); font-size: 12px; color: var(--mute); text-transform: uppercase; letter-spacing: 0.06em; }
.lswitch { display: flex; gap: 8px; }
.lswitch span, .lswitch a { padding: 9px 14px; border: 1px solid var(--line-strong); border-radius: 999px; font-size: 12px; }
.lswitch span { background: var(--fg); color: var(--bg); border-color: var(--fg); }
.lswitch a { color: var(--fg); transition: background-color 0.3s, color 0.3s; }
.lswitch a:hover { background: var(--fg); color: var(--bg); }

.lgrid { display: grid; grid-template-columns: minmax(220px, 300px) minmax(0, 760px); gap: clamp(40px, 7vw, 140px); }
.laside__sticky { position: sticky; top: calc(var(--nav-h) + 32px); }
.laside__label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--mute); margin-bottom: 14px; }
.laside__label + .ltoc + .laside__label { margin-top: 40px; }
.ltoc, .lapps { display: grid; gap: 2px; }
.ltoc a, .lapps a {
  display: flex; gap: 12px; align-items: baseline; padding: 6px 0;
  font-size: 14px; color: var(--fg-2); line-height: 1.4;
  transition: color 0.3s, transform 0.4s var(--ease-out);
}
.ltoc a span, .lapps a span { font-size: 11px; color: var(--mute); }
.ltoc a:hover, .lapps a:hover { color: var(--fg); transform: translateX(4px); }
.ltoc a.is-active { color: var(--fg); }
.lapps a[aria-current="page"] { color: var(--fg); }
.lapps a[aria-current="page"]::after { content: "●"; font-size: 8px; margin-left: auto; align-self: center; }

.lprose { font-size: 16px; line-height: 1.8; color: var(--fg-2); font-weight: 300; }
.lprose .lead { font-size: clamp(19px, 1.7vw, 23px); line-height: 1.55; color: var(--fg); font-weight: 400; margin-bottom: 1.6em; }
.lprose h2 {
  display: flex; gap: 16px; align-items: baseline;
  font-size: clamp(22px, 2.2vw, 30px); font-weight: 600; letter-spacing: -0.03em; line-height: 1.2; color: var(--fg);
  margin: 2.4em 0 0.8em; padding-top: 1.2em; border-top: 1px solid var(--line);
  scroll-margin-top: calc(var(--nav-h) + 24px);
}
.lprose h2 .num { font-size: 12px; font-weight: 400; color: var(--mute); letter-spacing: 0; }
.lprose h3 { font-size: 16px; font-weight: 600; color: var(--fg); margin: 1.6em 0 0.4em; }
.lprose p { margin: 0 0 1em; }
.lprose strong { color: var(--fg); font-weight: 500; }
.lprose a { color: var(--fg); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.lprose a:hover { text-decoration-thickness: 2px; }
.lprose ul { margin: 0 0 1.2em; display: grid; gap: 8px; }
.lprose li { position: relative; padding-left: 26px; }
.lprose li::before { content: "—"; position: absolute; left: 0; color: var(--mute); font-family: var(--mono); }

.lfoot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; border-top: 1px solid var(--line); padding-block: 26px max(26px, env(safe-area-inset-bottom)); font-size: 12px; color: var(--mute); }
.lfoot__back { font-weight: 500; font-size: 15px; color: var(--fg); }
.lfoot__back:hover { text-decoration: underline; text-underline-offset: 4px; }
.lfoot a[href^="mailto"] { color: var(--fg-2); }

/* legal hub */
.lindex { border-top: 1px solid var(--line); }
.lindex__row {
  display: grid; grid-template-columns: 48px 1fr auto auto auto; gap: 20px; align-items: center;
  padding: 22px 0; border-bottom: 1px solid var(--line);
}
.lindex__idx { font-size: 12px; color: var(--mute); }
.lindex__name { font-weight: 600; font-size: clamp(24px, 3vw, 40px); letter-spacing: -0.04em; line-height: 1; }
.lindex__kind { font-size: 11px; color: var(--mute); text-transform: uppercase; letter-spacing: 0.08em; margin-right: 20px; }
.lindex__row a { font-size: 12px; text-transform: uppercase; letter-spacing: 0.04em; padding: 9px 14px; border: 1px solid var(--line-strong); border-radius: 999px; transition: background-color 0.3s, color 0.3s; }
.lindex__row a:hover { background: var(--fg); color: var(--bg); }

@media (max-width: 900px) {
  .lgrid { grid-template-columns: 1fr; }
  .laside__sticky { position: static; }
  .ltoc { display: none; }
  .laside .laside__label:first-child { display: none; }
  .laside__label + .ltoc + .laside__label { margin-top: 0; }
  .lapps { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 4px 16px; margin-bottom: 8px; }
  .lindex__row { grid-template-columns: 36px 1fr auto auto; }
  .lindex__kind { display: none; }
}
@media (max-width: 600px) {
  .nav__links--always { gap: 18px; font-size: 13px; }
  .lindex__row { grid-template-columns: 1fr auto auto; gap: 8px; }
  .lindex__idx { display: none; }
}
