.breadcrumb { flex-wrap: wrap; }
.legal-heading { min-height: 158px; }
.legal-heading h1 { font-size: 30px; }
.legal-heading .title-sea { left: 53%; right: 0; }
.legal-heading .title-fish { opacity: .65; }
.legal-layout { display: grid; grid-template-columns: 205px minmax(0,1fr); gap: 38px; padding: 0 0 64px; }
.legal-nav { align-self: start; position: sticky; top: 24px; }
.legal-nav h2 { font-size: 14px; margin: 0 0 12px; }
.legal-nav a { display: block; padding: 14px 10px; color: var(--green); text-decoration: none; border-bottom: 1px solid var(--line); font-size: 13px; }
.legal-nav a:hover { background: #eef4f1; }
.legal-section { scroll-margin-top: 24px; margin: 0 0 42px; }
.legal-section:last-child { margin-bottom: 0; }
.legal-section h2 { font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: 22px; font-weight: 600; margin: 0 0 18px; color: var(--green); }
.terms { margin: 0; border-top: 1px solid #bccbc4; }
.terms > div { display: grid; grid-template-columns: 180px minmax(0,1fr); border-bottom: 1px solid var(--line); }
.terms dt { padding: 20px 18px; background: #f5f7f5; font-size: 13px; font-weight: 600; }
.terms dd { margin: 0; padding: 20px 24px; font-size: 14px; line-height: 1.95; overflow-wrap: anywhere; }
.terms dd p { margin: 0 0 12px; }
.terms dd p:last-child { margin-bottom: 0; }
.terms dd ul { margin: 0; padding-left: 20px; }
.terms dd a { color: var(--green); }
.legal-actions { display: flex; flex-wrap: wrap; gap: 24px; padding-top: 24px; }
.legal-actions a { color: var(--green); font-size: 14px; }
@media (max-width: 1000px) {
  .legal-layout { grid-template-columns: 170px minmax(0,1fr); gap: 24px; }
  .terms > div { grid-template-columns: 150px minmax(0,1fr); }
  .legal-heading h1 { max-width: 540px; font-size: 28px; }
}
@media (max-width: 700px) {
  .legal-heading { min-height: 156px; padding: 25px 20px; }
  .legal-heading h1 { font-size: 24px; line-height: 1.6; }
  .legal-heading .title-sea { left: 30%; opacity: .35; }
  .legal-layout { display: block; padding-bottom: 40px; }
  .legal-nav { position: static; display: flex; flex-wrap: wrap; gap: 4px 18px; margin-bottom: 28px; }
  .legal-nav h2 { display: none; }
  .legal-nav a { padding: 7px 0; font-size: 12px; }
  .legal-section { margin-bottom: 32px; }
  .legal-section h2 { font-size: 20px; margin-bottom: 14px; }
  .terms > div { grid-template-columns: minmax(0,1fr); }
  .terms dt { padding: 11px 14px; }
  .terms dd { padding: 14px; font-size: 13px; }
  .desktop-break { display: none; }
}
