:root {
  color-scheme: light;
  --sh-card: #fffef9;
  --sh-ink: #2a2118;
  --sh-ink-2: #5c5348;
  --sh-accent: #1d4ed8;
  --sh-bg: #e8d8bc;
  --sh-radius-md: 12px;
  --sh-shadow-paper: 0 1px 0 rgb(42 33 24 / 6%);
  --sh-text-sm: 0.875rem;
  --sh-text-md: 1rem;
  --sh-text-lg: 1.0625rem;
  --sh-leading-body: 1.5;
  --sh-leading-tight: 1.25;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", sans-serif;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: var(--sh-bg);
  color: var(--sh-ink);
  line-height: var(--sh-leading-body);
}

a {
  color: var(--sh-accent);
  font-weight: 700;
}

.legal-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  max-width: 42rem;
  margin: 0 auto;
  padding: 16px 16px 0;
}

.legal-brand {
  font-weight: 800;
  font-size: 1.125rem;
  text-decoration: none;
  color: var(--sh-ink);
  min-height: 48px;
  display: inline-flex;
  align-items: center;
}

.legal-nav {
  display: flex;
  gap: 8px;
}

.legal-nav a {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  padding: 0 8px;
  text-decoration: none;
}

.legal-main {
  max-width: 42rem;
  margin: 0 auto;
  padding: 8px 16px 32px;
}

.legal-foot {
  max-width: 42rem;
  margin: 0 auto 24px;
  padding: 0 16px;
  color: var(--sh-ink-2);
  font-size: var(--sh-text-sm);
}

.legal-404 h1 {
  margin: 24px 0 8px;
}

.sh-policy {
  display: grid;
  gap: 12px;
  overflow-wrap: anywhere;
}

.sh-policy section {
  background: var(--sh-card);
  border-radius: var(--sh-radius-md);
  padding: 14px 14px 6px;
  box-shadow: var(--sh-shadow-paper);
}

.sh-policy h2 {
  margin: 0 0 8px;
  font-size: var(--sh-text-lg);
  line-height: var(--sh-leading-tight);
}

.sh-policy h3 {
  margin: 12px 0 6px;
  font-size: var(--sh-text-md);
}

.sh-policy p,
.sh-policy li,
.sh-policy dd {
  font-size: var(--sh-text-md);
  line-height: var(--sh-leading-body);
}

.sh-policy p,
.sh-policy ul {
  margin: 0 0 10px;
}

.sh-policy-meta {
  margin: 12px 2px 0;
  color: var(--sh-ink-2);
  font-size: var(--sh-text-sm);
}

.sh-policy-rows {
  margin: 0 0 10px;
  display: grid;
  gap: 8px;
}

.sh-policy-rows div {
  display: grid;
  gap: 2px;
}

.sh-policy-rows dt {
  font-weight: 800;
}

.sh-policy-rows dd {
  margin: 0;
}

.sh-policy a {
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  padding: 12px 2px;
}
