.terms-page { background: var(--color-black); }
.terms-page::before { display: none; }
.terms-header, .terms-main { width: min(100%, 80rem); margin-inline: auto; padding-inline: var(--safe-left) var(--safe-right); }
.terms-header { padding-top: 7.5rem; }
.terms-header a, .terms-page .site-footer a { display: inline-block; padding-block: .75rem; color: var(--color-muted); text-underline-offset: .3em; }
.terms-main { padding-block: clamp(2.5rem, 6vw, 6rem); }
.terms-intro h1 { max-width: 15ch; margin: 0 0 2rem; font-size: clamp(2.5rem, 6vw, 5.5rem); line-height: 1.05; letter-spacing: -.045em; }
.terms-intro .section-heading__label { font-size: .875rem; }
.terms-notice { max-width: 70ch; border-left: 2px solid var(--color-orange); padding: .25rem 0 .25rem 1.25rem; }
.terms-notice p { margin: 0; }
.terms-page p, .terms-page dt, .terms-toc { font-size: clamp(1rem, 1.3vw, 1.125rem); line-height: 1.75; color: var(--color-muted); }
.terms-toc { margin-block: 3rem 4rem; }
.terms-toc ol { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .25rem 2.5rem; padding-left: 1.6rem; }
.terms-toc a { display: inline-block; color: var(--color-light); padding-block: .55rem; text-underline-offset: .3em; }
.terms-section { border-top: 1px solid rgb(234 236 240 / 20%); padding-block: clamp(2rem, 5vw, 4rem); scroll-margin-top: 6.5rem; }
.terms-section h2 { display: flex; align-items: baseline; gap: 1rem; margin: 0 0 1.5rem; font-size: clamp(1.4rem, 2.5vw, 2rem); line-height: 1.25; letter-spacing: -.025em; }
.terms-number { flex-shrink: 0; font-size: .8rem; font-weight: 400; color: var(--color-orange); letter-spacing: .05em; }
.terms-section p { max-width: 70ch; margin: 0 0 1rem; }
.terms-prices { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2rem; margin: 2rem 0; }
.terms-prices dt { font-size: 1rem; }
.terms-prices dd { margin: .75rem 0 0; font-size: clamp(2rem, 4vw, 3.25rem); font-weight: 600; letter-spacing: -.04em; }
.terms-prices > div:last-child dd { color: var(--color-orange); }
.terms-page details { border-bottom: 1px solid rgb(234 236 240 / 20%); }
.terms-page summary { cursor: pointer; padding-block: 1.25rem; font-size: 1.125rem; line-height: 1.5; }
.terms-page summary::marker { color: var(--color-orange); }
.terms-page details p { padding: 0 0 .75rem 1.2rem; }
.terms-page a:focus-visible, .terms-page summary:focus-visible { outline: 2px solid var(--color-orange); outline-offset: 4px; }
.terms-contact { margin-block: 2rem; }
@media (max-width: 600px) {
  .terms-toc ol, .terms-prices { grid-template-columns: 1fr; }
  .terms-prices { gap: 1.5rem; }
  .terms-prices dd { margin-top: .25rem; }
  .terms-section h2 { gap: .7rem; }
}
/* Natural answer height is measured in JS; no fixed ceiling or clipped final state. */
.faq-answer { overflow: hidden; }
.faq-answer__content { display: flow-root; }
