:root {
  color-scheme: light;
  --ink: #0a1633;
  --muted: #62708a;
  --line: #dde5f0;
  --canvas: #f6f8fc;
  --surface: #fff;
  --blue-950: #002060;
  --blue-600: #1a5fd1;
  --blue-500: #2474f5;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--canvas); -webkit-font-smoothing: antialiased; }
a { color: inherit; }
button { font: inherit; }
.shell { width: min(900px, calc(100% - 40px)); margin-inline: auto; }
.skip-link { position: fixed; top: -80px; left: 16px; z-index: 20; padding: 11px 15px; border-radius: 10px; background: #fff; color: var(--blue-950); box-shadow: 0 8px 30px rgba(5, 31, 77, .16); }
.skip-link:focus { top: 16px; }
.site-header { position: sticky; top: 0; z-index: 10; border-bottom: 1px solid rgba(219, 226, 237, .9); background: rgba(246, 248, 252, .88); backdrop-filter: blur(16px); }
.header-inner { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--blue-950); font-size: 21px; font-weight: 800; letter-spacing: -.045em; text-decoration: none; }
.brand img { display: block; border-radius: 11px; }
.header-actions { display: flex; align-items: center; gap: 10px; }
.back-link, .language-button { min-height: 39px; padding: 0 13px; border: 1px solid var(--line); border-radius: 12px; color: #48566d; background: rgba(255,255,255,.74); font-size: 12px; font-weight: 750; text-decoration: none; cursor: pointer; }
.back-link { display: inline-flex; align-items: center; }
.language-button { min-width: 43px; }
.back-link:hover, .language-button:hover { border-color: #aec1dd; color: var(--blue-600); background: #fff; }
.legal-hero { padding: 82px 0 48px; background: radial-gradient(circle at 12% 0%, rgba(45, 121, 246, .14), transparent 32%), linear-gradient(180deg, #fbfcff, #f5f8fd); }
.eyebrow { margin: 0 0 18px; color: var(--blue-600); font-size: 11px; font-weight: 850; letter-spacing: .15em; text-transform: uppercase; }
.legal-hero h1 { max-width: 690px; margin: 0; font-size: clamp(42px, 7vw, 66px); line-height: .98; letter-spacing: -.065em; }
.legal-hero p:not(.eyebrow) { max-width: 650px; margin: 22px 0 0; color: var(--muted); font-size: 17px; line-height: 1.7; }
.last-updated { display: inline-flex; margin-top: 24px; padding: 8px 11px; border: 1px solid #dbe6f7; border-radius: 99px; color: #597093; background: rgba(255,255,255,.75); font-size: 11px; font-weight: 700; }
.legal-main { padding: 24px 0 96px; }
.legal-card { padding: clamp(24px, 5vw, 48px); border: 1px solid #dfe6f1; border-radius: 26px; background: var(--surface); box-shadow: 0 20px 60px rgba(12, 40, 89, .08); }
.legal-card section + section { margin-top: 38px; padding-top: 38px; border-top: 1px solid #e8edf4; }
.legal-card h2 { margin: 0 0 12px; font-size: clamp(22px, 3vw, 29px); letter-spacing: -.035em; }
.legal-card p, .legal-card li { color: #43516a; font-size: 15px; line-height: 1.75; }
.legal-card p { margin: 0; }
.legal-card p + p { margin-top: 14px; }
.legal-card ul { margin: 14px 0 0; padding-left: 21px; }
.legal-card li + li { margin-top: 8px; }
.legal-card strong { color: var(--ink); }
.notice { margin-top: 15px !important; padding: 15px 17px; border-left: 3px solid var(--blue-500); border-radius: 0 12px 12px 0; color: #405a83 !important; background: #f2f6ff; }
.contact-box { padding: 18px; border: 1px solid #dce7f8; border-radius: 15px; background: #f7faff; }
.contact-box a { color: var(--blue-600); font-weight: 750; }
.site-footer { border-top: 1px solid #e1e7f0; background: #fff; }
.footer-inner { min-height: 92px; display: flex; align-items: center; justify-content: space-between; gap: 16px; color: #7a879a; font-size: 12px; }
.footer-links { display: flex; gap: 16px; }
.footer-links a { color: #4f5d73; font-weight: 700; text-decoration: none; }
.footer-links a:hover { color: var(--blue-600); }
[hidden] { display: none !important; }

@media (max-width: 620px) {
  .shell { width: min(100% - 28px, 900px); }
  .header-inner { min-height: 68px; }
  .brand { font-size: 19px; }
  .brand img { width: 31px; height: 31px; }
  .back-link { font-size: 0; width: 39px; padding: 0; justify-content: center; }
  .back-link::before { content: "←"; font-size: 18px; }
  .legal-hero { padding: 60px 0 36px; }
  .legal-main { padding-bottom: 60px; }
  .legal-card { border-radius: 20px; }
  .legal-card section + section { margin-top: 29px; padding-top: 29px; }
  .footer-inner { flex-direction: column; justify-content: center; padding: 25px 0; text-align: center; }
}
