/* Booking V2 legal pages — token-only reading layout shared by privacy and booking policy. */

.legal-main {
  width: min(100%, 1180px);
  margin-inline: auto;
  padding: clamp(44px, 7vw, 96px) clamp(18px, 4vw, 56px) clamp(72px, 9vw, 120px);
}

.legal-document {
  min-width: 0;
}

.legal-title {
  max-width: 820px;
  margin-block-end: clamp(40px, 6vw, 72px);
}

.legal-title h1 {
  max-width: 14ch;
  margin-block: var(--lann-space-tight) var(--lann-space-normal);
  font-family: var(--lann-font-display);
  font-size: clamp(2.5rem, 7vw, 5.6rem);
  font-weight: 500;
  letter-spacing: -.035em;
  line-height: .98;
}

.legal-summary {
  max-width: 68ch;
  color: var(--lann-ink-2);
  font-size: clamp(1.02rem, 1.8vw, 1.22rem);
  line-height: 1.75;
}

.legal-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lann-space-normal) clamp(28px, 5vw, 64px);
  margin-block-start: var(--lann-space-spacious);
}

.legal-meta div {
  display: grid;
  gap: 2px;
}

.legal-meta dt,
.legal-toc > p {
  color: var(--lann-ink-2);
  font-size: .72rem;
  font-weight: 750;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.legal-meta dd {
  margin: 0;
  font-variant-numeric: tabular-nums;
}

.legal-layout {
  display: grid;
  grid-template-columns: minmax(180px, 240px) minmax(0, 720px);
  align-items: start;
  gap: clamp(40px, 8vw, 112px);
}

.legal-toc {
  position: sticky;
  inset-block-start: 104px;
  padding-block-start: var(--lann-space-tight);
  border-top: 1px solid var(--lann-line);
}

.legal-toc ol {
  display: grid;
  gap: var(--lann-space-tight);
  margin: var(--lann-space-normal) 0 0;
  padding-inline-start: 1.2rem;
}

.legal-toc a {
  color: var(--lann-ink-2);
  font-size: .86rem;
  line-height: 1.45;
}

.legal-copy {
  min-width: 0;
}

.legal-copy section {
  scroll-margin-top: 104px;
  padding-block: clamp(30px, 5vw, 52px);
  border-top: 1px solid var(--lann-line);
}

.legal-copy section:first-child {
  padding-block-start: var(--lann-space-tight);
}

.legal-copy h2 {
  max-width: 24ch;
  margin: 0 0 var(--lann-space-normal);
  font-family: var(--lann-font-display);
  font-size: clamp(1.55rem, 3vw, 2.3rem);
  font-weight: 500;
  line-height: 1.15;
}

.legal-copy p,
.legal-copy li {
  max-width: 70ch;
  line-height: 1.78;
}

.legal-copy p {
  margin-block: 0 var(--lann-space-normal);
}

.legal-copy ul {
  display: grid;
  gap: var(--lann-space-tight);
  margin-block: var(--lann-space-normal) 0;
  padding-inline-start: 1.3rem;
}

@media (max-width: 760px) {
  .legal-layout {
    grid-template-columns: 1fr;
    gap: var(--lann-space-spacious);
  }

  .legal-toc {
    position: static;
    columns: 2;
  }

  .legal-toc > p {
    column-span: all;
  }
}

@media (max-width: 480px) {
  .legal-toc {
    columns: 1;
  }
}
