.terms-main h1 {
  max-width: 24ch;
  font-size: clamp(2rem, 5.8vw, 4.25rem);
  overflow-wrap: anywhere;
  hyphens: auto;
}
.terms-date { color: #496474; margin-bottom: 1rem; }
.terms-download {
  display: inline-block;
  padding: .8rem 1.15rem;
  background: #113746;
  border-radius: 3px;
  color: white;
  font-size: .94rem;
  font-weight: 600;
}
.terms-download:hover { background: #17515a; }
.terms-download span { font-weight: 400; }
.terms-layout {
  margin-top: 2.5rem;
  display: grid;
  grid-template-columns: minmax(13rem, 16rem) minmax(0, 1fr);
  align-items: start;
  gap: clamp(2rem, 5vw, 4rem);
}
.terms-nav {
  padding: 1.25rem 1.4rem;
  border: 1px solid var(--line);
  background: #f1f5f3;
}
.terms-nav h2 { font-size: 1.3rem; margin: 0 0 .65rem; }
.terms-nav ul { list-style: none; margin: 0; padding: 0; }
.terms-nav li + li { border-top: 1px solid var(--line); }
.terms-nav a { display: block; padding: .55rem 0; font-size: .88rem; line-height: 1.5; }
.terms-nav strong { display: block; color: #235d65; }
.terms-nav a:hover, .terms-text a { text-decoration: underline; text-underline-offset: .2em; }
.terms-text { max-width: 75ch; min-width: 0; overflow-wrap: break-word; }
.terms-text h2 {
  font-size: clamp(1.6rem, 3vw, 2.25rem);
  padding-top: 1.6rem;
  margin: 2.25rem 0 1.1rem;
  border-top: 1px solid var(--line);
  scroll-margin-top: 1rem;
}
.terms-text h3 { font-size: 1.22rem; margin: 1.7rem 0 .75rem; }
.terms-text p { margin: 0 0 .85rem; line-height: 1.75; }
.terms-clause { display: grid; grid-template-columns: 2.7rem minmax(0, 1fr); }
.terms-clause strong { color: #2a626a; }
.terms-line { height: 1rem; border-bottom: 1px solid #78909a; margin-bottom: .8rem; }
@media (max-width: 760px) {
  .terms-layout { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; margin-top: 1.75rem; }
  .terms-clause { grid-template-columns: 2.5rem minmax(0, 1fr); }
}
@media print {
  .terms-nav, .terms-download, .legal-page:has(.terms-main) header, .legal-page:has(.terms-main) footer { display: none; }
  .terms-layout { display: block; }
  .terms-text h2, .terms-text h3 { break-after: avoid; }
  .terms-main { width: 100%; }
}
