:root { --paper:#fff; --ink:#101827; --sub:#474f60; --line:#dde1eb; --accent:#5467ca; --cyan:#02d7ee; color-scheme:light; scroll-behavior:smooth; }
*,*::before,*::after { box-sizing:border-box; }
html,body { margin:0; }
body { background:var(--paper); color:var(--ink); font:400 16px/1.65 'Roboto',sans-serif; -webkit-font-smoothing:antialiased; }
::selection { color:#fff; background:var(--accent); }
a { color:inherit; text-underline-offset:5px; }
a:focus-visible,summary:focus-visible { outline:3px solid var(--accent); outline-offset:5px; }
.skip-link { position:absolute; left:16px; top:-60px; z-index:30; padding:10px 16px; background:var(--ink); color:#fff; }
.skip-link:focus { top:12px; }
.site-header { position:sticky; top:0; z-index:20; border-bottom:1px solid var(--line); background:#fff; }
.site-header-inner { max-width:1264px; min-height:96px; margin:auto; padding:20px 32px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand,.brand img { display:block; }
.brand img { width:188px; height:auto; }
.home-link { color:var(--accent); font-size:14px; font-weight:500; text-decoration:none; }
.home-link:hover { text-decoration:underline; }
.terms-shell { max-width:1264px; margin:auto; padding:40px 32px 112px; }
.page-context { display:flex; align-items:center; gap:10px; color:var(--sub); font-size:13px; }
.terms-layout { display:grid; grid-template-columns:210px minmax(0,760px); justify-content:space-between; gap:64px; margin-top:44px; }
.terms-aside { min-width:0; }
.terms-toc { position:sticky; top:128px; padding-left:20px; border-left:1px solid var(--line); }
.terms-toc h2 { margin:0 0 16px; font:600 15px/1.4 'Roboto',sans-serif; }
.terms-toc :is(ol,ul) { list-style:none; margin:0; padding:0; }
.terms-toc li + li { margin-top:4px; }
.terms-toc a { display:block; padding:5px 0; color:var(--sub); font-size:13px; line-height:1.4; text-decoration:none; }
.terms-toc a:hover { color:var(--accent); text-decoration:underline; }
.terms-reading { min-width:0; }
.terms-mobile-toc { display:none; }
.terms-article h1,.terms-article h2 { font-family:'Raleway',sans-serif; letter-spacing:-.025em; color:var(--ink); }
.terms-article h1 { max-width:14ch; margin:0 0 32px; font-size:clamp(40px,5vw,64px); line-height:1.07; font-weight:700; }
.terms-article h2 { margin:64px 0 20px; padding-top:28px; border-top:1px solid var(--line); font-size:26px; line-height:1.25; font-weight:600; scroll-margin-top:120px; }
.terms-article p { margin:0 0 20px; max-width:70ch; }
.terms-article p:first-of-type { font-size:18px; }
.terms-article strong { font-weight:700; }
.terms-article em { color:var(--sub); }
.terms-article a { color:#4255b5; }
.terms-article ul,.terms-article ol { margin:0 0 24px; padding-left:26px; }
.terms-article li { padding-left:6px; }
.terms-article li + li { margin-top:12px; }
.terms-article li::marker { color:var(--accent); }
.terms-article hr { display:none; }
.terms-article > p:last-child { margin-top:36px; }
.site-footer { background:var(--ink); color:#f2f5ff; }
.site-footer a:focus-visible { outline-color:var(--cyan); }
.site-footer-main,.site-footer-bottom { max-width:1264px; margin:auto; padding-inline:32px; }
.site-footer-main { display:grid; grid-template-columns:minmax(220px,1.7fr) repeat(2,minmax(0,1fr)); gap:40px; padding-block:56px 28px; }
.footer-brand img { display:block; width:176px; height:auto; }
.footer-brand p { margin:20px 0 0; color:#c5cee8; font-size:15px; }
.site-footer nav { display:flex; flex-direction:column; align-items:flex-start; gap:8px; }
.site-footer nav h2 { margin:0 0 10px; font:600 14px/1.5 'Roboto',sans-serif; }
.site-footer nav a { display:inline-flex; align-items:center; min-height:32px; color:#c5cee8; font-size:14px; text-decoration:none; }
.site-footer a:hover { color:#fff; text-decoration:underline; text-decoration-color:var(--cyan); }
.footer-partner { display:flex; align-items:center; gap:12px; color:#aebbd9; font-size:12px; white-space:nowrap; }
.footer-partner a { display:inline-flex; align-items:center; min-height:44px; }
.footer-partner img { display:block; width:128px; height:auto; filter:brightness(0) invert(1); opacity:.78; }
.footer-partner a:hover img { opacity:1; }
.site-footer-bottom { display:flex; align-items:center; justify-content:space-between; gap:12px 24px; padding-block:20px 24px; border-top:1px solid #394358; color:#aebbd9; font-size:12px; }
.site-footer-bottom nav { flex-direction:row; gap:24px; }
.site-footer-bottom > a { min-height:36px; display:inline-flex; align-items:center; text-decoration:none; }
@media (max-width:900px) {
  .terms-layout { grid-template-columns:170px minmax(0,1fr); gap:36px; }
}
@media (max-width:700px) {
  .site-header-inner { min-height:80px; padding-inline:24px; }
  .brand img { width:158px; }
  .terms-shell { padding:28px 24px 80px; }
  .terms-layout { display:block; margin-top:28px; }
  .terms-aside { display:none; }
  .terms-mobile-toc { display:block; margin-bottom:36px; padding:14px 18px; border:1px solid var(--line); border-radius:12px; }
  .terms-mobile-toc summary { cursor:pointer; font-size:14px; font-weight:500; }
  .terms-mobile-toc :is(ol,ul) { list-style:none; margin:16px 0 0; padding:0; }
  .terms-mobile-toc li + li { margin-top:10px; }
  .terms-mobile-toc a { color:var(--accent); font-size:14px; }
  .terms-article h1 { font-size:clamp(36px,10vw,52px); }
  .terms-article h2 { margin-top:48px; font-size:23px; }
  .site-footer-main { grid-template-columns:repeat(2,minmax(0,1fr)); padding:48px 24px 24px; }
  .footer-brand { grid-column:1/-1; }
  .site-footer-bottom { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 16px; padding-inline:24px; }
  .footer-partner { gap:8px; }
  .footer-partner img { width:100px; }
  .site-footer-bottom > a { justify-self:end; }
}
@media (max-width:480px) {
  .site-footer-main { grid-template-columns:1fr; gap:28px; }
  .footer-brand { grid-column:auto; }
  .site-footer nav a,.site-footer-bottom > a { min-height:44px; }
}
@media (max-width:360px) {
  .site-footer-bottom { font-size:11px; }
  .footer-partner img { width:88px; }
}
@media (prefers-reduced-motion:reduce) { :root { scroll-behavior:auto; } }
