/* Legal pages (/legal/, /terms/, /privacy/, ...: tools/build-legal-pages.js, skin Site.html).
   The content and the layout come from ExternalDesign2 (css/site.css "Rev06: legal pages");
   fonts and colours are those of the new site. Light and dark theme: html[data-theme]. */

.om-legal {
  --lg-accent:#6745f5; --lg-accent-2:#5534ea; --lg-link:#5534ea;
  --lg-ink:#1d1d1f; --lg-text:#3a3a3e; --lg-ink-2:#6e6e73;
  --lg-line:#e8e8ed; --lg-soft:#f7f5ff; --lg-lav:#efebfe; --lg-lav-line:#e3defc; --lg-card:#ffffff;
  --lg-hero:linear-gradient(180deg,#f4f1ff 0%,#ffffff 100%);
  --lg-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  --lg-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  display:block; font-family:var(--lg-sans); color:var(--lg-text); -webkit-font-smoothing:antialiased;
}
html[data-theme="dark"] .om-legal {
  --lg-accent:#8163fa; --lg-accent-2:#a593fb; --lg-link:#b9a8fa;
  --lg-ink:#eeeef1; --lg-text:#cfcfd6; --lg-ink-2:#99999f;
  --lg-line:#34314a; --lg-soft:#1b1a29; --lg-lav:#2b2740; --lg-lav-line:#3a3555; --lg-card:#211f30;
  --lg-hero:linear-gradient(180deg,#1d1a33 0%,#141320 100%);
}
.om-legal *, .om-legal *::before, .om-legal *::after { box-sizing:border-box; }

.om-legal .legal-page { font-family:inherit; color:inherit; }
.om-legal .legal-wrap { width:1240px; max-width:calc(100% - 64px); margin:0 auto; }

/* ---------- hero ---------- */
.om-legal .legal-hero { position:relative; padding:72px 0 40px; background:var(--lg-hero); }
.om-legal .legal-crumbs { display:flex; gap:10px; margin-bottom:18px; font-size:14px; color:var(--lg-ink-2); }
.om-legal .legal-crumbs a { color:var(--lg-link); text-decoration:none; }
.om-legal .legal-crumbs a:hover { text-decoration:underline; }
.om-legal .legal-eyebrow { margin:0 0 14px; font-family:var(--lg-mono); font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--lg-accent); }
.om-legal .legal-title { margin:0; font-size:clamp(38px,4.4vw,60px); line-height:1.04; letter-spacing:-.04em; font-weight:600; color:var(--lg-ink); text-wrap:balance; }
.om-legal .legal-meta { margin:16px 0 0; font-family:var(--lg-mono); font-size:12px; letter-spacing:.04em; text-transform:uppercase; color:var(--lg-ink-2); }
.om-legal .legal-lead { margin:18px 0 0; max-width:760px; font-size:19px; line-height:1.55; letter-spacing:-.01em; color:var(--lg-ink-2); }
.om-legal .legal-callout { margin:24px 0 0; }

/* draft note ("Counsel review") */
.om-legal .rv-marker { display:inline-flex; align-items:flex-start; gap:10px; max-width:800px; padding:10px 14px;
  border:1px dashed var(--lg-lav-line); border-radius:12px; background:var(--lg-soft); color:var(--lg-ink-2); font-size:13px; line-height:1.45; }
.om-legal .rv-marker b { flex:none; padding:2px 8px; border-radius:6px; background:var(--lg-accent); color:#fff;
  font-family:var(--lg-mono); font-size:11px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; }

/* ---------- document: contents + text ---------- */
.om-legal .legal-body { display:grid; grid-template-columns:260px minmax(0,1fr); gap:64px; align-items:start; padding:48px 0 80px; }
.om-legal .legal-body.no-toc { grid-template-columns:minmax(0,1fr); }
.om-legal .legal-toc { position:sticky; top:96px; max-height:calc(100vh - 120px); overflow:auto; font-size:14px; line-height:1.45; }
.om-legal .legal-toc summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:4px 0 14px; list-style:none; cursor:pointer;
  font-family:var(--lg-mono); font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--lg-ink-2); }
.om-legal .legal-toc summary::-webkit-details-marker { display:none; }
.om-legal .legal-toc summary::after { content:""; width:7px; height:7px; border-right:1.5px solid var(--lg-accent); border-bottom:1.5px solid var(--lg-accent);
  transform:rotate(45deg) translateY(-3px); transition:transform .2s ease; }
.om-legal .legal-toc details[open] summary::after { transform:rotate(-135deg) translateY(-2px); }
@media (min-width:1025px) { .om-legal .legal-toc summary { pointer-events:none; } .om-legal .legal-toc summary::after { display:none; } }
.om-legal .legal-toc ol { list-style:none; margin:0; padding:0 0 0 14px; border-left:1.5px solid var(--lg-line); }
.om-legal .legal-toc li { margin:0 0 10px; }
.om-legal .legal-toc a { position:relative; color:var(--lg-ink-2); text-decoration:none; transition:color .18s ease; }
.om-legal .legal-toc a:hover, .om-legal .legal-toc a.is-current { color:var(--lg-ink); }
.om-legal .legal-toc a.is-current::before { content:""; position:absolute; left:-16px; top:2px; bottom:2px; width:1.5px; background:var(--lg-accent); }

.om-legal .legal-doc { max-width:800px; font-size:17px; line-height:1.7; color:var(--lg-text); }
.om-legal .legal-doc h2 { margin:48px 0 16px; padding-top:28px; border-top:1px solid var(--lg-line); font-size:26px; line-height:1.25; letter-spacing:-.025em; font-weight:600; color:var(--lg-ink); scroll-margin-top:96px; }
.om-legal .legal-doc > h2:first-child { margin-top:0; padding-top:0; border-top:0; }
.om-legal .legal-doc h3 { margin:32px 0 10px; font-size:19px; line-height:1.35; letter-spacing:-.015em; font-weight:600; color:var(--lg-ink); scroll-margin-top:96px; }
.om-legal .legal-doc h4 { margin:24px 0 8px; font-size:17px; font-weight:600; color:var(--lg-ink); }
.om-legal .legal-doc p { margin:0 0 14px; }
.om-legal .legal-doc p.caps { font-size:15px; line-height:1.65; letter-spacing:.005em; }
.om-legal .legal-doc ul, .om-legal .legal-doc ol { margin:0 0 16px; padding-left:24px; }
.om-legal .legal-doc li { margin:0 0 8px; }
.om-legal .legal-doc li::marker { color:var(--lg-accent); }
.om-legal .legal-doc li > ul, .om-legal .legal-doc li > ol { margin:8px 0; }
.om-legal .legal-doc li > p { margin:8px 0 0; }
.om-legal .legal-doc ul.labelled { list-style:none; padding-left:0; }
.om-legal .legal-doc a { color:var(--lg-link); text-decoration:underline; text-underline-offset:2px; text-decoration-thickness:1px; overflow-wrap:anywhere; }
.om-legal .legal-doc strong { font-weight:600; color:var(--lg-ink); }
.om-legal .legal-doc code { font-family:var(--lg-mono); font-size:14px; padding:1px 6px; border-radius:6px; background:var(--lg-lav); color:var(--lg-ink); }
.om-legal .legal-doc hr { margin:32px 0; border:0; border-top:1px solid var(--lg-line); }
.om-legal .legal-doc blockquote { margin:0 0 16px; padding:12px 18px; border-left:3px solid var(--lg-accent); border-radius:0 12px 12px 0; background:var(--lg-soft); }
.om-legal .legal-doc .legal-callout { margin:16px 0 20px; }
.om-legal .legal-table { overflow-x:auto; margin:8px 0 20px; border:1px solid var(--lg-line); border-radius:14px; }
.om-legal .legal-table table { width:100%; border-collapse:collapse; font-size:15px; line-height:1.5; }
.om-legal .legal-table th { text-align:left; padding:12px 14px; font-weight:600; color:var(--lg-ink); background:var(--lg-soft); border-bottom:1px solid var(--lg-line); }
.om-legal .legal-table td { padding:12px 14px; border-top:1px solid var(--lg-line); vertical-align:top; }
.om-legal .legal-table:focus { outline:2px solid var(--lg-lav-line); outline-offset:2px; }

/* ---------- end of a document ---------- */
.om-legal .legal-end { padding:40px 0 56px; background:var(--lg-soft); border-top:1px solid var(--lg-line); }
.om-legal .legal-end-row { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px; }
.om-legal .legal-ask { margin:0; font-size:17px; color:var(--lg-text); }
.om-legal .legal-ask a, .om-legal .legal-hub a { color:var(--lg-link); }
.om-legal .legal-print, .om-legal .legal-btn { display:inline-flex; align-items:center; justify-content:center; height:auto; padding:11px 22px; border:0; border-radius:980px;
  background:transparent; box-shadow:inset 0 0 0 1px var(--lg-accent); color:var(--lg-link); font:500 15px/22px var(--lg-sans); text-decoration:none; cursor:pointer;
  transition:background-color .18s ease; }
.om-legal .legal-print:hover, .om-legal .legal-btn:hover { background:rgba(103,69,245,.08); }
.om-legal .legal-print:focus-visible, .om-legal .legal-btn:focus-visible { outline:3px solid #c9c1fe; outline-offset:2px; }
.om-legal .legal-others { margin-top:28px; }
.om-legal .legal-others-title { margin:0 0 12px; font-family:var(--lg-mono); font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--lg-ink-2); }
.om-legal .legal-others ul { display:flex; flex-wrap:wrap; gap:10px 26px; margin:0; padding:0; list-style:none; font-size:15px; }
.om-legal .legal-others a { color:var(--lg-link); text-decoration:none; }
.om-legal .legal-others a:hover { text-decoration:underline; }

/* ---------- hub (/legal/) ---------- */
.om-legal .legal-h2 { margin:0 0 20px; font-size:clamp(28px,3vw,40px); line-height:1.1; letter-spacing:-.035em; font-weight:600; color:var(--lg-ink); }
.om-legal .legal-hub-docs { padding:48px 0 24px; }
.om-legal .legal-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.om-legal .legal-hub a.legal-card { display:flex; flex-direction:column; gap:10px; padding:26px 26px 22px; border-radius:20px; background:var(--lg-card); color:var(--lg-text);
  text-decoration:none; box-shadow:0 0 0 1px var(--lg-line); transition:box-shadow .2s ease, transform .2s ease; }
.om-legal .legal-hub a.legal-card:hover { box-shadow:0 0 0 1px var(--lg-lav-line), 0 24px 48px -28px rgba(52,32,140,.35); transform:translateY(-2px); }
.om-legal .legal-card-title { font-size:20px; line-height:1.25; letter-spacing:-.02em; font-weight:600; color:var(--lg-ink); }
.om-legal .legal-card-text { flex:1; font-size:15px; line-height:1.55; color:var(--lg-ink-2); }
.om-legal .legal-card-meta { font-family:var(--lg-mono); font-size:11px; letter-spacing:.04em; text-transform:uppercase; color:var(--lg-ink-2); }
.om-legal .legal-card-go { font-size:15px; font-weight:500; color:var(--lg-link); }
.om-legal .legal-hub-security { padding:64px 0; scroll-margin-top:90px; }
.om-legal .legal-hub-security .legal-lead { margin:-8px 0 28px; }
.om-legal .legal-cols { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.om-legal .legal-col { padding:28px; border-radius:20px; background:var(--lg-soft); font-size:15px; line-height:1.6; }
.om-legal .legal-col h3 { margin:0 0 12px; font-size:19px; line-height:1.3; letter-spacing:-.02em; font-weight:600; color:var(--lg-ink); }
.om-legal .legal-col ul { margin:0 0 12px; padding-left:20px; }
.om-legal .legal-col li { margin-bottom:8px; }
.om-legal .legal-col li::marker { color:var(--lg-accent); }
.om-legal .legal-col p { margin:0 0 12px; }
.om-legal .legal-col-links { font-weight:500; }
.om-legal .legal-hub-choices { padding:0 0 80px; }
.om-legal .legal-choice-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.om-legal .legal-choice { padding:32px; border-radius:20px; box-shadow:0 0 0 1px var(--lg-line); font-size:16px; line-height:1.6; }
.om-legal .legal-choice .legal-h2 { margin-bottom:12px; font-size:26px; }
.om-legal .legal-choice p { margin:0 0 16px; }
.om-legal .legal-small { margin-top:18px !important; font-size:14px; color:var(--lg-ink-2); }

/* ---------- e-mail shown on click (/js/omnitep/legal.js) ---------- */
.om-legal button.eml { display:inline-flex; align-items:baseline; margin:0; padding:0; border:0; background:none; font:inherit; color:var(--lg-link); cursor:pointer; vertical-align:baseline; }
.om-legal button.eml .eml-user { text-decoration:underline; text-underline-offset:3px; text-decoration-color:currentColor; }
.om-legal button.eml .eml-at { opacity:.6; }
.om-legal button.eml .eml-cta { margin-left:7px; padding:1px 9px; border-radius:980px; background:var(--lg-lav); color:var(--lg-link); font-size:.78em; font-weight:500; line-height:1.5; transition:background-color .2s ease; }
.om-legal button.eml:hover .eml-cta { background:var(--lg-lav-line); }
.om-legal button.eml:focus-visible { outline:2px solid var(--lg-accent); outline-offset:2px; border-radius:4px; }
.om-legal a.eml-link { color:var(--lg-link); word-break:break-all; }

/* ---------- narrow screens ---------- */
@media (max-width:1280px) { .om-legal .legal-body { grid-template-columns:230px minmax(0,1fr); gap:44px; } }
@media (max-width:1024px) {
  .om-legal .legal-hero { padding-top:48px; }
  .om-legal .legal-body { grid-template-columns:minmax(0,1fr); gap:20px; padding-top:24px; }
  .om-legal .legal-toc { position:static; max-height:none; padding:12px 16px; border-radius:14px; box-shadow:0 0 0 1px var(--lg-line); }
  .om-legal .legal-toc summary { padding:4px 0; }
  .om-legal .legal-toc details[open] summary { padding-bottom:12px; }
  .om-legal .legal-cards, .om-legal .legal-cols { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
  .om-legal .legal-wrap { max-width:calc(100% - 40px); }
  .om-legal .legal-hero { padding-top:36px; }
  .om-legal .legal-lead { font-size:17px; }
  .om-legal .legal-doc { font-size:16px; }
  .om-legal .legal-doc h2 { margin-top:36px; padding-top:22px; font-size:22px; }
  .om-legal .legal-doc h3 { font-size:18px; }
  .om-legal .legal-cards, .om-legal .legal-cols, .om-legal .legal-choice-row { grid-template-columns:minmax(0,1fr); }
  .om-legal .legal-choice, .om-legal .legal-col { padding:24px 20px; }
}

/* ---------- print / save as PDF ---------- */
@media print {
  .om-nav, .om-foot, .om-to-top, .ta-dock, .ta-panel, .om-rib-host, .cc-banner, .cc-dialog,
  .om-legal .legal-toc, .om-legal .legal-end, .om-legal .rv-marker, .om-legal .legal-callout { display:none !important; }
  .om-site > .page { padding-top:0 !important; }
  .om-legal .legal-hero { padding:0 0 12px; background:none; }
  .om-legal .legal-body { display:block; padding:0; }
  .om-legal .legal-doc { max-width:none; font-size:11pt; color:#000; }
  .om-legal .legal-doc a { color:inherit; }
}
