.legal-section{
  background:var(--white);
}

.legal-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 280px;
  align-items:start;
  gap:64px;
  max-width:1200px;
  margin-inline:auto;
}

.legal-content{
  min-width:0;
  font-size:17px;
  line-height:1.8;
  overflow-wrap:anywhere;
}

.legal-content h2{
  margin:44px 0 18px;
  font-size:clamp(25px,2.4vw,32px);
  line-height:1.25;
  scroll-margin-top:24px;
}

.legal-content h3{
  margin:28px 0 12px;
  font-size:21px;
  line-height:1.35;
  scroll-margin-top:24px;
}

.legal-content > h2:first-child{
  margin-top:0;
}

.legal-content p{
  margin:0 0 18px;
}

.legal-content .legal-related{
  margin-top:24px;
}

.legal-content ul,
.legal-content ol{
  margin:0 0 20px;
  padding-left:26px;
}

.legal-content ul{
  list-style:disc;
}

.legal-content ol{
  list-style:decimal;
}

.legal-content li{
  padding-left:4px;
  margin-bottom:10px;
}

.legal-content li ul,
.legal-content li ol{
  margin-top:12px;
  margin-bottom:12px;
}

.legal-content a,
.legal-contact a{
  color:var(--blue);
  text-decoration:underline;
  text-underline-offset:3px;
}

.legal-content a:hover,
.legal-contact a:hover{
  color:var(--blue-dark);
}

.legal-content .legal-date,
.legal-content > time{
  display:block;
  margin-bottom:24px;
  color:var(--body);
  font-size:14px;
  font-weight:600;
}

.legal-toc{
  position:sticky;
  top:calc(var(--header-h) + 24px);
  padding:26px 24px;
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  background:var(--wave-tint-2);
  overflow-wrap:anywhere;
}

.legal-toc h2,
.legal-toc h3{
  margin:0 0 16px;
  font-size:19px;
  line-height:1.35;
}

.legal-toc ol{
  margin:0;
  padding-left:21px;
  list-style:decimal;
}

.legal-toc li{
  padding-left:3px;
  margin-bottom:10px;
  color:var(--blue);
}

.legal-toc li:last-child{
  margin-bottom:0;
}

.legal-toc a{
  color:var(--blue);
  font-size:14px;
  line-height:1.5;
}

.legal-toc a:hover{
  color:var(--blue-dark);
  text-decoration:underline;
  text-underline-offset:3px;
}

.legal-contact{
  margin-top:36px;
  padding:28px;
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  background:var(--wave-tint-2);
  overflow-wrap:anywhere;
}

.legal-contact h2:first-child,
.legal-contact h3:first-child{
  margin-top:0;
}

.legal-contact address{
  font-style:normal;
}

.legal-contact p:last-child{
  margin-bottom:0;
}

@media (max-width:1023px){
  .legal-layout{
    grid-template-columns:minmax(0,1fr);
    gap:36px;
    max-width:820px;
  }

  .legal-toc{
    position:static;
    order:-1;
  }
}

@media (max-width:767px){
  .legal-content{
    font-size:16px;
    line-height:1.75;
  }

  .legal-content h2{
    margin-top:36px;
  }

  .legal-content h3{
    font-size:19px;
  }

  .legal-toc,
  .legal-contact{
    padding:22px;
  }
}
