.characters-section {
  max-width: 1200px;
  padding: 20px;
  background-color: #161b22;
  border-radius: 10px;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.4);
  margin: 0 auto 40px;

  .header {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    color: #c9d1d9;
    margin-bottom: 30px;

    h1 {
      font-size: 32px;
      color: #58a6ff;
      margin-bottom: 10px;
      display: flex;
      align-items: center;

      i {
        margin-right: 10px;
      }
    }

    p {
      font-size: 16px;
      margin: 0;
      color: #8b949e;
      margin-bottom: 20px;
    }

    .section-divider {
      width: 100px;
      height: 4px;
      background-color: #58a6ff;
      margin: 10px auto 20px;
      border-radius: 2px;
    }

    .search-filter {
      position: relative;
      width: 300px;

      input {
        width: 100%;
        padding: 10px;
        border-radius: 5px;
        border: 1px solid #30363d;
        background-color: #0d1117;
        color: #c9d1d9;
        font-size: 14px;
        transition: border-color 0.3s ease;

        &:focus {
          border-color: #58a6ff;
          outline: none;
        }

        &::placeholder {
          color: #6b6e70;
        }
      }
    }
  }

  .characters-container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 2rem;
    justify-items: center;
    margin-bottom: 30px;
  }

  @media (max-width: 768px) {
    .characters-container {
      grid-template-columns: 1fr;
    }
  }

  .footer {
    text-align: center;
    color: #8b949e;

    p {
      font-size: 14px;
      margin: 5px 0;

      i {
        margin-right: 5px;
        color: #58a6ff;
      }
    }

    .footer-divider {
      width: 80px;
      height: 2px;
      background-color: #58a6ff;
      margin: 10px auto;
    }
  }
}
