/* 本文は傾けず、余白と小さな紙の印だけで本体と揃える。 */
.terms-page .app { max-width: 960px; margin-top: 20px; }
.terms-page .brand { text-decoration: none; min-height: 44px; }
.terms-page .edition { margin-top: 25px; }
.terms-page h1 { font-size: 34px; letter-spacing: .12em; }
.terms-page .intro { margin-left: 0; font-size: 14px; }
.terms-document { max-width: 68ch; margin: 30px auto 0; font-size: 16px; line-height: 2; overflow-wrap: anywhere; }
.terms-document h2 { font: 600 22px/1.7 var(--heading); letter-spacing: .03em; border-bottom: 1px solid var(--line); padding-bottom: 15px; }
.terms-dates { margin-bottom: 25px; color: var(--muted); font-size: 13px; }
.terms-dates p { margin: 3px 0; }
.terms-document section { margin-top: 36px; }
.terms-document h3 { border-left: 4px solid #a8b3a0; padding: 8px 12px; font: 600 19px/1.7 var(--heading); background: #f1edde; }
.terms-document section:nth-of-type(3n+2) h3 { border-left-color: #ba9c83; }
.terms-document section:nth-of-type(3n) h3 { border-left-color: #9bb1b3; }
.terms-document p { margin-top: 16px; margin-bottom: 16px; }
.terms-document ul { padding-left: 1.5em; }
.terms-document li { padding-left: .15em; margin: 8px 0; }
.terms-contact { border-bottom: 1px dashed var(--line); padding-bottom: 12px; }
.terms-page a { color: var(--accent); text-underline-offset: 5px; }
.terms-page a:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
.back-link { display: inline-flex; align-items: center; min-height: 44px; }
@media (max-width: 600px) {
  .terms-page .app { margin-top: 12px; }
  .terms-page h1 { font-size: 29px; }
  .terms-page .brand { font-size: 12px; }
  .terms-document { font-size: 15px; line-height: 1.95; margin-top: 24px; }
  .terms-document h2 { font-size: 20px; }
  .terms-document h3 { font-size: 17px; padding-left: 9px; }
  .terms-document section { margin-top: 28px; }
}

.terms-page h1 { overflow-wrap: anywhere; }

@media (max-width: 600px) { .terms-page .privacy-heading { font-size: 26px; } }
