/* ============================================================
   KeyLen Web — KeyLen AI Terms document
   ------------------------------------------------------------
   `/ai/terms` is a LEGAL DOCUMENT and the sibling of
   `/ai/privacy`. It uses the same twelve-column field, the same
   type scale, the same header and footer, and every design token
   unchanged.

   This file is ADDITIVE and PAGE-LOCAL. It defines no existing
   selector, so the frozen homepage, `/finder`, `/finder/privacy`,
   `/finder/help`, `/ai`, `/ai/zh`, `/ai/privacy` and
   `/ai/privacy/zh` cannot be affected by it — none of them links
   this stylesheet.

   It introduces no new type scale, no new colour and no new
   component. Every value below is an existing token, and every
   value matches `ai-privacy.css` so the two legal documents
   render as one family. Only three things are set here:

     1. the document section rhythm
     2. the bulleted list treatment
     3. the effective-date line

   WHY THIS FILE EXISTS INSTEAD OF LINKING `ai-privacy.css`:
   `ai-privacy.css` is FROZEN (Round 6G-B) and its selectors are
   named `.ai-privacy-*`. Linking it here would force the Terms
   markup to carry `.ai-privacy-*` class names, which would be a
   naming lie, and it would silently couple two independently
   frozen documents — a later edit to the privacy rhythm would
   move the Terms page. This file keeps each document separately
   frozen. The values are identical, so the rendering is.

   The page deliberately carries NO hero image, NO screenshot,
   NO price, NO CTA and no commercial decoration. It is a
   document. No JavaScript is involved.
   ============================================================ */

/* ---- document rhythm ---------------------------------------
   Lighter than a product section: a legal document is read, not
   skimmed. `--section-pad` is still the site's own value, reused
   so the page keeps the site's tempo. */
.ai-terms-doc { padding: var(--section-pad) 0; }
.ai-terms-doc .grid { row-gap: var(--space-4); }
.ai-terms-doc .t-body + .t-body { margin-top: var(--space-3); }

/* the last section closes the document rather than stopping */
.ai-terms-end { padding: var(--section-pad) 0 var(--space-16); }

/* the effective-date line sits under the H1. It is a release-time
   placeholder, so it is set quieter than body copy — it is not a
   statement of the terms. */
.ai-terms-updated { color: var(--faint); }

/* ---- lists --------------------------------------------------
   The contact details are the only list in the document. Set at
   body size in the reading column, with the same muted colour and
   measure as the paragraphs around them — not cards, not a panel,
   not boxed.

   `max-width: var(--measure)` matches `.t-body`'s own measure so
   the line length matches the prose sections. */
.ai-terms-list {
  margin: 0;
  padding-left: 1.35em;
  font-size: var(--fs-body-lg);
  color: var(--muted);
  max-width: var(--measure);
}
.ai-terms-list li { margin-bottom: var(--space-2); }
.ai-terms-list li:last-child { margin-bottom: 0; }
.ai-terms-list strong { font-weight: 650; color: var(--fg); }

/* a link inside a list item keeps the site's inline-action colour */
.ai-terms-list a { overflow-wrap: anywhere; }

/* ---- mobile ------------------------------------------------
   Only the rhythm changes. `.c-wide` already collapses to the
   single reading axis through `site.css`'s own mobile reset, and
   this page has no figures or grid-anchored blocks beyond that. */
@media (max-width: 900px) {
  .ai-terms-doc { padding: var(--section-pad-sm) 0; }
  .ai-terms-end { padding: var(--section-pad-sm) 0 var(--space-12); }
}
