/* Legal pages (terms.html, baa.html). Scoped under .page-legal. Text is verbatim; this file only typesets it. */

/* ---------- Hero ---------- */
.page-legal .legal-hero { padding-block: clamp(3rem, 2rem + 4vw, 5.5rem) clamp(2rem, 1.5rem + 2.5vw, 3.5rem); }
.page-legal .legal-hero__grid { display: grid; gap: 2rem; align-items: end; }
@media (min-width: 1024px) { .page-legal .legal-hero__grid { grid-template-columns: minmax(0, 1fr) 340px; gap: 4rem; } }
.page-legal .legal-hero .page-hero__inner { gap: 1rem; max-width: 46rem; }
.page-legal .legal-hero .h1 { font-size: clamp(2.25rem, 1.6rem + 2.8vw, 4rem); }
.page-legal .legal-hero__sub { font-size: clamp(1.05rem, 1rem + .3vw, 1.25rem); color: var(--muted); margin: 0; }
.page-legal .legal-hero .doc-meta { margin-top: .25rem; }
.page-legal .legal-hero .doc-meta span { display: inline-flex; align-items: center; gap: .5rem; }
.page-legal .legal-hero .doc-meta { gap: .35rem .75rem; }
.page-legal .legal-hero .doc-meta span + span::before { content: ""; width: 4px; height: 4px; border-radius: 50%; background: #b9bdd0; margin-right: .25rem; }
@media (max-width: 559px) { .page-legal .legal-hero .doc-meta { flex-direction: column; gap: .25rem; } .page-legal .legal-hero .doc-meta span + span::before { display: none; } }

/* breadcrumb */
.crumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: .15rem .5rem; list-style: none; margin: 0; padding: 0; font-size: var(--fs-xs); font-family: var(--font-mono); color: var(--muted); }
.crumbs li { display: inline-flex; align-items: center; gap: .5rem; }
.crumbs li + li::before { content: "/"; color: var(--line-strong); }
.crumbs a { color: var(--muted); text-decoration: none; display: inline-flex; align-items: center; min-height: 32px; }
.crumbs a:hover { color: var(--indigo-700); text-decoration: underline; }
.crumbs [aria-current] { color: var(--fg); }
@media (pointer: coarse) { .crumbs a { min-height: 44px; } }

/* related-documents card */
.legal-card { position: relative; padding: 1.1rem; border-radius: var(--r-lg); background: rgba(255, 255, 255, .72); border: 1px solid var(--line); box-shadow: var(--sh-sm); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.legal-card__h { font-family: var(--font-mono); font-size: var(--fs-micro); font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); padding: .1rem .5rem .6rem; }
.legal-card__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.legal-card__list a { display: flex; gap: .8rem; align-items: flex-start; padding: .7rem .6rem; border-radius: 12px; color: var(--fg); text-decoration: none; transition: background var(--dur-1); min-height: 44px; }
.legal-card__list a:hover { background: var(--indigo-50); }
.legal-card__list .icon { flex: none; width: 18px; height: 18px; margin-top: 2px; color: var(--indigo); }
.legal-card__list b { display: block; font-size: var(--fs-sm); font-weight: 600; line-height: 1.35; }
.legal-card__list small { display: block; font-size: var(--fs-xs); color: var(--muted); line-height: 1.4; margin-top: .1rem; overflow-wrap: anywhere; }

/* ---------- Document ---------- */
.page-legal .legal-section { padding-top: 0; }
.page-legal .legal { border-top: 1px solid var(--line); padding-top: clamp(2rem, 1.5rem + 2vw, 3.5rem); }
@media (min-width: 1024px) { .page-legal .legal { grid-template-columns: 260px minmax(0, 1fr); gap: clamp(3rem, 2rem + 3vw, 6rem); } }
.page-legal .toc__title { color: var(--fg-2); }
.page-legal .toc ol { counter-reset: none; }
.page-legal .toc a { font-size: .875rem; }
@media (max-width: 1023px) {
  .page-legal .toc { border: 1px solid var(--line); }
  .page-legal .toc ol { border-left: 0; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); gap: 0 1rem; }
  .page-legal .toc a { padding-inline: 0; border-left: 0; min-height: 44px; display: flex; align-items: center; }
}

.page-legal .legal-doc { max-width: 46rem; }
.page-legal .legal-doc h2 { font-size: clamp(1.3rem, 1.2rem + .45vw, 1.6rem); }
.page-legal .legal-doc h3 { font-size: 1.0625rem; font-weight: 600; }
.page-legal .legal-doc address { font-style: normal; }
.page-legal .legal-doc ul ul { margin-top: .5em; list-style: circle; }

/* upper-case disclaimers: keep the text, calm the shouting */
.page-legal .legal-caps { font-size: .9375rem; line-height: 1.7; letter-spacing: .01em; color: var(--fg-2); padding: 1rem 1.2rem; border-radius: 12px; background: var(--mist); border: 1px solid var(--line); overflow-wrap: break-word; }

/* permitted / prohibited lists */
.page-legal .legal-list { list-style: none; padding-left: 0; }
.page-legal .legal-list li { position: relative; padding-left: 1.9rem; }
.page-legal .legal-list li::before { content: ""; position: absolute; left: 0; top: .32em; width: 1.15rem; height: 1.15rem; border-radius: 50%; background-repeat: no-repeat; background-position: center; background-size: 12px; }
.page-legal .legal-list--ok li::before { background-color: var(--mint-50); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b7a60' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E"); }
.page-legal .legal-list--no li::before { background-color: #fdecea; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b42318' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M7 7l10 10M17 7L7 17'/%3E%3C/svg%3E"); }

/* definitions list */
.page-legal .legal-defs { list-style: none; padding: 0; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: var(--surface); }
.page-legal .legal-defs li { margin: 0; padding: .75rem 1rem; font-size: .9375rem; line-height: 1.6; }
.page-legal .legal-defs li + li { border-top: 1px solid var(--line); }
.page-legal .legal-defs li:nth-child(even) { background: #fafbfe; }

/* callouts (medical disclaimer, important notice) */
.page-legal .legal-callout { padding: 1.25rem 1.35rem; border-radius: 16px; background: #fff8e6; border: 1px solid #f3dea3; color: #4d3700; }
.page-legal .legal-callout > * + * { margin-top: .7em; }
.page-legal .legal-doc .legal-callout__h { display: flex; align-items: center; gap: .55rem; margin: 0; padding: 0; border: 0; font-size: 1rem; font-weight: 600; color: #4d3700; letter-spacing: -.01em; }
.page-legal .legal-callout__h .icon { width: 18px; height: 18px; flex: none; }
.page-legal .legal-callout ul { padding-left: 1.2em; }
.page-legal .legal-callout li::marker { color: #9a6b00; }
.page-legal .legal-callout--info { background: var(--indigo-50); border-color: var(--indigo-100); color: var(--ink-2); }
.page-legal .legal-doc .legal-callout--info .legal-callout__h { color: var(--indigo-700); }
.page-legal .legal-callout + h2 { margin-top: 2em; }

/* version history */
.page-legal .legal-history { padding: 1rem 1.2rem; border-left: 3px solid var(--indigo); background: var(--indigo-50); border-radius: 0 12px 12px 0; }
.page-legal .legal-history__h { font-family: var(--font-mono); font-size: var(--fs-xs); letter-spacing: .04em; color: var(--indigo-700); font-weight: 500; }
.page-legal .legal-history ul { list-style: none; padding: 0; margin-top: .5rem; font-size: .9375rem; }
.page-legal .legal-history b { font-family: var(--font-mono); font-size: .8125rem; font-weight: 600; color: var(--ink); }

/* addresses / parties */
.page-legal .legal-address { padding: 1.1rem 1.25rem; border-radius: 14px; border: 1px solid var(--line); background: var(--surface); line-height: 1.7; }
.page-legal .legal-parties { display: grid; gap: 1rem; }
@media (min-width: 640px) { .page-legal .legal-parties { grid-template-columns: 1fr 1fr; } }
.page-legal .legal-party { padding: 1.1rem 1.25rem; border-radius: 14px; border: 1px solid var(--line); background: var(--surface); line-height: 1.65; font-size: .9375rem; }
.page-legal .legal-party > * + * { margin-top: .5rem; }
.page-legal .legal-doc .legal-party__role { margin: 0 0 .6rem; font-family: var(--font-mono); font-size: var(--fs-micro); font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--indigo-700); }
.page-legal .legal-party__alias { display: inline-block; margin-top: .35rem; font-family: var(--font-mono); font-size: .8125rem; color: var(--muted); }
.page-legal .legal-party__date { font-family: var(--font-mono); font-size: .8125rem; color: var(--fg); padding-top: .6rem; border-top: 1px dashed var(--line-strong); }
.page-legal .legal-parties--sign .legal-party { border-style: dashed; border-color: var(--line-strong); background: transparent; }

/* end-of-document meta */
.page-legal .legal-end { display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; margin-top: 3rem; padding-top: 1.25rem; border-top: 1px solid var(--line); font-family: var(--font-mono); font-size: var(--fs-xs); color: var(--muted); }
.page-legal .legal-end p { margin: 0; }

/* ---------- Next-steps cards ---------- */
.page-legal .legal-next__grid { display: grid; gap: 1rem; }
@media (min-width: 720px) { .page-legal .legal-next__grid { grid-template-columns: 1fr 1fr; } }
.page-legal .legal-next__card { display: flex; flex-direction: column; align-items: flex-start; padding: clamp(1.5rem, 1.2rem + 1vw, 2rem); }
.page-legal .legal-next__card .card__title { font-size: var(--fs-h4); margin-top: 1.1rem; }
.page-legal .legal-next__card .card__text { max-width: 34rem; }
.page-legal .legal-next__card .link-arrow { margin-top: 1rem; }
.page-legal .legal-next__card:hover .link-arrow svg { transform: translateX(3px); }

@media print {
  .page-legal .legal-hero, .page-legal .legal-next { display: none; }
  .page-legal .legal { display: block; border: 0; }
  .page-legal .legal-callout, .page-legal .legal-caps, .page-legal .legal-defs li:nth-child(even) { background: none; }
}
@media (max-width: 1023px) { .page-legal .legal-card { display: none; } }

/* ---------- Flask port: "Back to Registration" link carried over from the old legal pages ---------- */
.page-legal .legal-back { align-self: flex-start; gap: .4rem; font-size: var(--fs-sm); }
.page-legal .legal-back .icon { transform: rotate(180deg); }
/* "Useful Links" strip: the old legal pages' own footer links/contacts, carried over */
.page-legal .legal-links { display: grid; gap: 1.5rem; margin-top: clamp(2rem, 1.5rem + 2vw, 3rem); padding-top: clamp(1.5rem, 1rem + 1.5vw, 2rem); border-top: 1px solid var(--line); font-size: var(--fs-sm); color: var(--muted); }
@media (min-width: 720px) { .page-legal .legal-links { grid-template-columns: 1.4fr 1fr 1fr 1.4fr; } }
.page-legal .legal-links__brand b { display: block; color: var(--fg); font-weight: 600; }
.page-legal .legal-links__h { margin: 0 0 .5rem; font-family: var(--font-mono); font-size: var(--fs-micro); font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--indigo-700); }
.page-legal .legal-links ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.page-legal .legal-links a { color: var(--fg); text-decoration: none; }
.page-legal .legal-links a:hover { color: var(--indigo-700); text-decoration: underline; }
.page-legal .legal-links p { margin: 0; line-height: 1.7; }

/* Old legal-page chrome kept for parity (site nav + document copyright). */
.page-legal .legal-links__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--line); font-size: var(--fs-xs); color: var(--muted); }
.page-legal .legal-links__copy { margin: 0; }
.page-legal .legal-links__nav { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem 1rem; }
.page-legal .legal-links__nav a { color: var(--fg); text-decoration: none; display: inline-flex; align-items: center; min-height: 32px; }
.page-legal .legal-links__nav a:hover { color: var(--indigo-700); text-decoration: underline; }
