/* ============================================================
   Terms of service (terms-of-service.html, en/terms-of-service.html)
   Presentation only: a readable ~70 character column, navy
   section headings, a quiet date line and the company identity
   as an address block. Extends .legal-page / .legal-content from
   styles.css without touching the privacy and cookie pages.
   Tokens from styles.css only. Scoped to body.terms-page.
   ============================================================ */

.terms-page .legal-page {
    padding: clamp(112px, 12vw, 144px) 0 var(--polish-section);
}

.terms-page .legal-content {
    max-width: 72ch;
    margin: 0 auto;
    font-size: 1.05rem;
    line-height: 1.75;
    color: var(--dark-gray);
    overflow-wrap: break-word;
}

.terms-page .legal-content h1 {
    margin: 0 0 0.75rem;
    font-size: clamp(2.2rem, 4.5vw, 3rem);
    line-height: 1.1;
    letter-spacing: -0.02em;
    text-align: left;
    color: var(--dark-gray);
}

.terms-page .legal-updated {
    margin: 0 0 2.5rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--border-light);
    font-size: 0.98rem;
    color: var(--medium-gray);
}

.terms-page .legal-content h2 {
    margin: 2.75rem 0 0.75rem;
    padding: 0;
    border: 0;
    font-size: 1.35rem;
    line-height: 1.3;
    letter-spacing: -0.01em;
    color: var(--dark-gray);
    scroll-margin-top: 100px;
}

.terms-page .legal-content h3 {
    margin: 1.75rem 0 0.5rem;
    font-size: 1.1rem;
    color: var(--dark-gray);
}

.terms-page .legal-content p {
    margin: 0 0 1rem;
}

.terms-page .legal-content ul {
    margin: 0.5rem 0 1.25rem;
    padding-left: 1.25rem;
}

.terms-page .legal-content li {
    margin: 0.4rem 0;
    padding-left: 0.25rem;
}

.terms-page .legal-content li::marker {
    color: var(--blue-text);
}

.terms-page .legal-content a {
    color: var(--blue-text);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.terms-page .legal-content a:hover {
    color: var(--dark-blue);
}

.terms-page .legal-content a:focus-visible {
    outline: 2px solid var(--primary-blue);
    outline-offset: 2px;
    border-radius: 2px;
}

.terms-page .legal-address {
    margin: 1rem 0 0;
    padding: 1.5rem;
    background: var(--light-gray);
    border-radius: 12px;
    font-style: normal;
    line-height: 1.8;
}

@media (max-width: 640px) {
    .terms-page .legal-content {
        font-size: 1rem;
    }

    .terms-page .legal-address {
        padding: 1.25rem;
    }
}

.terms-page .legal-nowrap {
    white-space: nowrap;
}
