/* ---------- Hero / CTA (home page) ---------- */

.hero {
  background: #e2edf8;
  padding: 3rem 0;

  .hero-content {
    text-align: left;
  }

  h2 {
    margin-top: 0;
    font-size: 2rem;
    margin-bottom: 0.75rem;
  }

  p {
    margin-bottom: 1.5rem;
  }

  .hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
  }
}

/* ---------- Candidates section (home page) ---------- */

.candidates-section {
  background: #ffffff;

  .candidate-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.75rem;
  }

  .candidate-card {
    background: #fdfdfd;
    border-radius: 0.75rem;
    overflow: hidden;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
    display: flex;
    flex-direction: column;

    .candidate-image-wrapper {
      width: 200px;
      aspect-ratio: 3 / 3;
      overflow: hidden;

      img {
        width: 100%;
        height: 100%;
        object-fit: cover;
      }
    }

    .candidate-content {
      padding: 1rem 1.25rem 1.25rem;

      h3 {
        margin-top: 0;
        margin-bottom: 0.25rem;
      }

      .candidate-caption {
        margin: 0;
        font-style: italic;
        font-size: 0.95rem;
        color: #555;
        margin-bottom: 0.75rem;
      }

      .candidate-description {
        margin: 0 0 0.75rem 0;
      }

      .candidate-link {
        font-weight: 600;
      }
    }
  }
}

/* ---------- Explore section (home page) ---------- */

.explore-section {
  background: #f2f4fa;

  .explore-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
  }

  .explore-card {
    background: #ffffff;
    border-radius: 0.75rem;
    padding: 1.25rem 1.25rem 1.4rem;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);

    h3 {
      margin-top: 0;
      margin-bottom: 0.75rem;
    }

    .explore-links {
      list-style: none;
      margin: 0;
      padding: 0;

      li + li {
        margin-top: 0.4rem;
      }
    }
  }
}

/* ---------- Responsive rules (home-specific) ---------- */

@media (max-width: 900px) {
  .candidates-section {
    .candidate-grid {
      grid-template-columns: 1fr;
    }
  }

  .explore-section {
    .explore-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }
}

@media (max-width: 600px) {
  .hero {
    padding: 2.25rem 0;

    h2 {
      font-size: 1.6rem;
    }

    .hero-actions {
      flex-direction: column;
      align-items: stretch;
    }
  }

  .explore-section {
    .explore-grid {
      grid-template-columns: 1fr;
    }
  }
}
