/* Legal content. Brand, typography, containers and page shell live in site.css. */
.updated { font: 12px/1.6 var(--mono); color: var(--muted); margin: 27px 0 0; }
.legal-grid { display: grid; grid-template-columns: 200px minmax(0,1fr); gap: 75px; padding-top: 20px; padding-bottom: 102px; }
.contents { position: sticky; top: 26px; align-self: start; min-width: 0; }
.contents-title { font: 12px/1.5 var(--mono); text-transform: uppercase; letter-spacing: .06em; margin: 0 0 16px; color: var(--blue); }
.contents a { display: flex; align-items: center; min-height: 44px; font-size: 13px; color: var(--muted); line-height: 1.5; padding: 10px 0; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; transition: color .25s; }
.contents a:hover { color: var(--blue); }
.contact-text { overflow-wrap: anywhere; }
.prose { max-width: 810px; min-width: 0; overflow-wrap: break-word; }
.operator { font-size: 15px; line-height: 1.75; margin: 0 0 37px; }
.operator strong { font-weight: 700; }
.legal-section { border-top: 1px solid var(--line); padding: 29px 0 31px; scroll-margin-top: 24px; }
.legal-section h2 { font-size: clamp(23px,2.4vw,29px); line-height: 1.25; letter-spacing: -.028em; font-weight: 600; margin: 0 0 16px; }
.legal-section p { font-size: 16px; line-height: 1.8; color: var(--muted); margin: 0 0 15px; max-width: 75ch; }
.legal-section p:last-child { margin-bottom: 0; }
@media (max-width: 900px) {
  .legal-grid { grid-template-columns: 165px minmax(0,1fr); gap: 37px; }
}
@media (max-width: 700px) {
  .legal-grid { grid-template-columns: minmax(0,1fr); gap: 36px; padding-top: 7px; padding-bottom: 68px; }
  .contents { position: static; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 24px; }
  .contents-title { grid-column: 1 / -1; margin-bottom: 6px; }
  .legal-section { padding: 24px 0; }
  .legal-section h2 { font-size: 24px; }
  .legal-section p { font-size: 15px; }
}
@media (max-width: 380px) {
  .contents { grid-template-columns: minmax(0,1fr); }
}
