.terms-page { padding-top: 58px; padding-bottom: 80px; }
.terms-kicker { color: var(--accent); font-size: 11px; letter-spacing: .16em; font-weight: 600; }
.terms-heading { padding-bottom: 34px; border-bottom: 1px solid var(--line); }
.terms-heading h1 { margin: 20px 0 24px; font-size: clamp(42px, 5vw, 64px); line-height: 1.08; letter-spacing: -.04em; animation: terms-enter .55s both; }
.terms-heading em { color: var(--accent); font-style: normal; }
.terms-heading > p:last-of-type { color: var(--muted); font-size: 16px; line-height: 1.8; }
.terms-meta { display: flex; gap: 14px 35px; flex-wrap: wrap; margin-top: 26px; color: var(--muted); font-size: 12px; }
.terms-meta time { color: #dce5ee; }
.terms-layout { display: grid; grid-template-columns: minmax(190px, .7fr) minmax(0, 2fr); gap: clamp(30px, 7vw, 110px); align-items: start; padding-top: 44px; }
.terms-aside { position: sticky; top: 24px; min-width: 0; }
.terms-aside h2 { font-size: 12px; font-weight: 500; color: var(--muted); margin: 0 0 16px; }
.terms-aside ol { padding: 0; margin: 0; list-style: none; max-height: 60vh; overflow-y: auto; scrollbar-width: thin; }
.terms-aside li + li { margin-top: 2px; }
.terms-aside nav a { display: flex; align-items: center; min-height: 44px; padding: 8px 10px; border-left: 1px solid var(--line); font-size: 13px; line-height: 1.5; transition: color .2s, background .2s, border-color .2s; }
.terms-aside nav a:hover, .terms-aside nav a:focus-visible { color: var(--accent); border-color: var(--accent); background: #63ddf508; }
.terms-aside nav a:focus-visible { outline-offset: -3px; }
.terms-aside > a { margin-top: 24px; font-size: 12px; min-height: 44px; }
.terms-copy { min-width: 0; max-width: 790px; }
.terms-copy section { padding-bottom: 32px; margin-bottom: 32px; border-bottom: 1px solid var(--line); scroll-margin-top: 24px; }
.terms-copy h2 { display: flex; align-items: baseline; gap: 18px; font-size: clamp(21px, 2vw, 26px); font-weight: 500; line-height: 1.4; letter-spacing: -.02em; margin: 0 0 20px; }
.terms-copy h2 span { color: var(--accent); font-size: 12px; letter-spacing: .04em; flex-shrink: 0; }
.terms-copy p { color: #c2cdda; font-size: 15px; line-height: 1.95; margin: 0 0 18px; overflow-wrap: anywhere; }
.terms-copy section:target { outline: 1px solid #63ddf54d; outline-offset: 12px; }
.terms-copy section:focus-visible { outline: 2px solid var(--accent); outline-offset: 8px; }
.terms-end { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 20px; }
.terms-end a { min-height: 44px; font-size: 13px; }
@keyframes terms-enter { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@media (max-width: 800px) {
  .terms-page { padding-top: 35px; padding-bottom: 45px; }
  .terms-layout { grid-template-columns: 1fr; gap: 34px; padding-top: 28px; }
  .terms-aside { position: static; }
  .terms-aside ol { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; max-height: none; overflow: visible; }
  .terms-aside nav a { height: 100%; font-size: 12px; }
  .terms-copy p { font-size: 14px; }
  .terms-copy section:target { outline-offset: 7px; }
}
@media (prefers-reduced-motion: reduce) { .terms-page *, .terms-page *::before { animation: none; transition: none; } }
@media print {
  body, .terms-page { background: white !important; color: black !important; }
  .site-header, .site-footer, .terms-aside, .terms-end, .back-to-top, .skip-link { display: none !important; }
  .terms-page { padding: 0; max-width: none; width: auto; }
  .terms-layout { display: block; padding-top: 20px; }
  .terms-copy { max-width: none; }
  .terms-page *, .terms-page em { color: black !important; animation: none !important; }
  .terms-copy section { outline: none !important; }
  .terms-copy h2 { break-after: avoid; }
  .terms-copy p { orphans: 3; widows: 3; }
}
