:root{
  --ivory:#fafaf7; --surface:#ffffff;
  --ink:#1a1a1a; --ink-2:#45433d; --muted:#6b6b66;
  --line:#ececea; --accent:#2563eb;
  --font-sans:"Geist", ui-sans-serif, -apple-system, "Segoe UI", sans-serif;
  --font-mono:"Geist Mono", ui-monospace, Menlo, monospace;
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; font-family:var(--font-sans); background:var(--ivory); color:var(--ink);
  font-size:16px; line-height:1.7; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
a{color:var(--accent); text-decoration:none;}
a:hover{text-decoration:underline;}
.mono{font-family:var(--font-mono);}

/* ─── Top bar ─── */
header.legal-bar{
  position:sticky; top:0; z-index:50;
  background:color-mix(in srgb, var(--ivory) 88%, transparent);
  backdrop-filter:blur(12px); border-bottom:1px solid var(--line);
}
.legal-bar .bar-inner{
  max-width:900px; margin:0 auto; padding:0 24px; height:60px;
  display:flex; align-items:center; gap:16px;
}
.legal-bar .logo{display:inline-flex; align-items:center; gap:10px;}
.legal-bar .logo-mark{
  width:28px; height:28px; border-radius:8px; background:var(--ink); color:var(--ivory);
  display:grid; place-items:center; font-weight:700; font-size:15px; flex-shrink:0;
}
.legal-bar .logo-word{font-weight:600; font-size:16px; letter-spacing:-.02em; color:var(--ink);}
.legal-bar .lang-switch{margin-left:auto; display:flex; gap:2px; align-items:center;}
.legal-bar .lang-switch a{
  font-size:13px; color:var(--muted); padding:5px 9px; border-radius:7px;
  border:1px solid transparent; text-decoration:none;
}
.legal-bar .lang-switch a:hover{color:var(--ink); background:var(--surface); border-color:var(--line); text-decoration:none;}
.legal-bar .lang-switch a.active{color:var(--ink); background:var(--surface); border:1px solid var(--line); font-weight:500;}

/* ─── Document body ─── */
main.legal{max-width:760px; margin:0 auto; padding:52px 24px 40px;}
.legal h1{font-size:30px; line-height:1.25; letter-spacing:-.02em; margin:0 0 10px; color:var(--ink);}
.doc-meta{
  font-size:13.5px; color:var(--muted); font-family:var(--font-mono);
  margin:0 0 8px; display:flex; flex-wrap:wrap; gap:6px 18px;
}
.entity-line{font-size:14.5px; color:var(--ink-2); margin:0 0 28px; padding-bottom:26px; border-bottom:1px solid var(--line);}

.legal h2{
  font-size:20px; line-height:1.3; letter-spacing:-.01em; margin:40px 0 12px; color:var(--ink);
  padding-top:6px;
}
.legal h3{font-size:16.5px; margin:26px 0 8px; color:var(--ink);}
.legal p{margin:0 0 14px; color:var(--ink-2);}
.legal ul,.legal ol{margin:0 0 16px; padding-left:22px; color:var(--ink-2);}
.legal li{margin:0 0 7px;}
.legal strong{color:var(--ink); font-weight:600;}
.legal a{word-break:break-word;}
.legal hr{border:0; border-top:1px solid var(--line); margin:34px 0;}

/* Callouts */
.callout{
  background:var(--surface); border:1px solid var(--line); border-left:3px solid var(--accent);
  border-radius:10px; padding:14px 18px; margin:0 0 28px; font-size:14.5px; color:var(--ink-2);
}
.note{
  background:var(--surface); border:1px solid var(--line);
  border-radius:10px; padding:14px 18px; margin:18px 0; font-size:14.5px; color:var(--ink-2);
}
.ref-code{
  display:inline-block; font-family:var(--font-mono); font-size:14px;
  background:var(--surface); border:1px solid var(--line); border-radius:7px;
  padding:3px 10px; color:var(--ink);
}
.legal .mono{font-family:var(--font-mono); font-size:0.92em;}

/* Subprocessor table — scrolls inside its own box so the page never scrolls sideways */
.legal .subproc-wrap{overflow-x:auto; margin:18px 0; -webkit-overflow-scrolling:touch;}
table.subproc{
  border-collapse:collapse; width:100%; min-width:560px;
  font-size:14px; color:var(--ink-2);
}
table.subproc th, table.subproc td{
  border:1px solid var(--line); padding:9px 12px; text-align:left; vertical-align:top;
}
table.subproc th{background:var(--surface); color:var(--ink); font-weight:600; font-size:13.5px;}
table.subproc tbody tr:nth-child(even){background:color-mix(in srgb, var(--surface) 45%, transparent);}

/* Status page hero */
.status-box{
  background:var(--surface); border:1px solid var(--line); border-radius:14px;
  padding:34px 30px; margin:26px 0; text-align:center;
}
.status-box .status-icon{
  width:52px; height:52px; border-radius:50%; background:var(--accent); color:#fff;
  display:grid; place-items:center; margin:0 auto 18px; font-size:26px; font-weight:700;
}
.status-box p{margin:0 0 8px;}

/* ─── Footer ─── */
footer.legal-foot{border-top:1px solid var(--line); margin-top:20px;}
.legal-foot .foot-inner{
  max-width:760px; margin:0 auto; padding:24px; display:flex; flex-wrap:wrap;
  gap:12px 24px; align-items:center; justify-content:space-between;
  font-size:13px; color:var(--muted);
}
.legal-foot a{color:var(--muted); text-decoration:none;}
.legal-foot a:hover{color:var(--ink);}
.legal-foot .foot-links{display:flex; gap:18px; flex-wrap:wrap;}

@media (max-width:640px){
  .legal h1{font-size:25px;}
  .legal h2{font-size:18px;}
  main.legal{padding:38px 20px 32px;}
}
