.terms-main { max-width: 1120px; padding-bottom: 90px; }
.terms-intro { padding: 46px 0 30px; }
.terms-intro .eyebrow { color: #176b96; }
.terms-intro h1 { max-width: 950px; margin: 24px 0; font-size: clamp(2.5rem, 5.4vw, 4.5rem); line-height: 1.08; }
.terms-intro h1 span { color: #177eaf; }
.terms-intro .lead { max-width: 710px; margin-bottom: 0; }
.terms-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 16px; padding: 28px 12px; border: 1px solid #b7deef; border-radius: 22px; background: #eef9ff; }
.terms-summary > div { padding: 0 24px; }
.terms-summary > div + div { border-left: 1px solid #b7deef; }
.terms-summary strong, .terms-summary span { display: block; }
.terms-summary strong { margin-bottom: 5px; font-size: clamp(1.25rem, 2.3vw, 1.7rem); font-weight: 900; }
.terms-summary span, .terms-summary-note { color: var(--muted); font-size: .9rem; }
.terms-summary-note { margin: 12px 0 54px; }
.terms-layout { display: grid; grid-template-columns: 245px minmax(0, 1fr); gap: 64px; align-items: start; }
.terms-toc { position: sticky; top: 24px; font-size: .95rem; }
.terms-toc > p { margin-bottom: 14px; font-size: .75rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.terms-toc ol { margin: 0 0 25px; padding-left: 22px; }
.terms-toc li { padding: 5px 0 5px 3px; }
.terms-toc a:hover, .terms-document a:hover { color: #146e9a; text-decoration: underline; }
.terms-contact { display: block; padding-top: 18px; border-top: 1px solid var(--line); font-weight: 700; }
.terms-document { min-width: 0; }
.terms-document section { scroll-margin-top: 28px; padding-bottom: 30px; margin-bottom: 32px; border-bottom: 1px solid var(--line); }
.terms-document h2 { margin-bottom: 22px; font-size: clamp(1.4rem, 2.5vw, 1.75rem); line-height: 1.3; letter-spacing: -.02em; }
.terms-document p, .terms-document li { line-height: 1.8; }
.terms-document ol { padding-left: 24px; margin-bottom: 0; }
.terms-document li { padding-left: 6px; margin-bottom: 13px; }
.terms-document li:last-child { margin-bottom: 0; }
.terms-document li::marker { color: var(--muted); font-size: .9em; }
.terms-document a { text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.terms-points { width: 100%; margin: 24px 0; border-collapse: collapse; font-size: .95rem; }
.terms-points caption { text-align: left; margin-bottom: 10px; font-weight: 700; }
.terms-points th, .terms-points td { padding: 16px; border-bottom: 1px solid #d9e7ee; text-align: left; }
.terms-points thead { background: #f2f6f8; font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; }
.terms-points tbody th { font-weight: 400; }
.terms-points td { white-space: nowrap; font-weight: 900; text-align: right; }
.terms-points thead th:last-child { text-align: right; }
.terms-points tfoot { background: #eef9ff; }
.terms-example { margin-top: 26px; padding: 20px 24px; border-left: 3px solid #209ed8; background: #f3faff; border-radius: 0 12px 12px 0; }
.terms-example > strong { display: block; margin-bottom: 6px; }
.terms-example p { margin: 0; }
.terms-back { font-weight: 700; }
@media (max-width: 850px) {
  .terms-layout { grid-template-columns: 1fr; gap: 34px; }
  .terms-toc { position: static; padding: 24px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
  .terms-toc ol { columns: 2; column-gap: 35px; }
  .terms-toc li { break-inside: avoid; }
  .terms-summary > div { padding: 0 14px; }
}
@media (max-width: 560px) {
  .terms-intro { padding-top: 22px; }
  .terms-summary { grid-template-columns: 1fr; padding: 6px 22px; }
  .terms-summary > div { padding: 17px 0; }
  .terms-summary > div + div { border-left: 0; border-top: 1px solid #b7deef; }
  .terms-summary-note { margin-bottom: 30px; }
  .terms-toc ol { columns: 1; }
  .terms-points th, .terms-points td { padding: 13px 10px; }
  .terms-document ol { padding-left: 20px; }
  .terms-document li { padding-left: 3px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
@media print {
  body, body::before { background: white; color: black; }
  .site-header, .site-footer, .cookie-banner, .terms-toc, .terms-back, .skip-link { display: none !important; }
  .terms-main { width: 100%; max-width: none; padding: 0; }
  .terms-intro { padding-top: 0; }
  .terms-intro h1 { font-size: 28pt; }
  .terms-layout { display: block; }
  .terms-summary-note { margin-bottom: 26px; }
  .terms-document h2 { break-after: avoid; }
  .terms-points, .terms-example { break-inside: avoid; }
  .terms-document section { margin-bottom: 18px; padding-bottom: 18px; }
}
