.grid_3-col.min-height_100dvh {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  justify-content: center !important;
  justify-items: center;
  gap: 1rem;
}
.min-height_100dvh {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  justify-content: right !important;
  justify-items: right;
  gap: 1rem;
}
.force-white {
  color: white !important;
}
.force-black {
  background-color: black !important;
  color: white !important;
}
.force-white-background {
  background-color: white !important;
}
.force-green-background {
  background-color: rgb(78, 126, 108) !important;
}
.force-green {
  color: rgb(78, 126, 108) !important;
}
.center-image {
  display: block;
  margin: 0 auto;
}
.text-align_center {
  text-align: center;
}
.pagination-container {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: center;
  margin-top: 40px;
}

.pagination-link {
  display: inline-block;
  padding: 8px 12px;
  border: 1px solid #ccc;
  border-radius: 6px;
  text-decoration: none;
  color: #333;
  background-color: #f5f5f5;
  transition: all 0.2s ease-in-out;
}

.pagination-link:hover {
  background-color: #ddd;
}

.pagination-link.active {
  background-color: #28a745;
  color: white;
  border-color: #28a745;
  font-weight: bold;
}
/* make cards equal height and push price to the bottom */
.grid_4-col { align-items: stretch; }

.card { display: flex; }

.card .card_body_small,
.card .card_body {        /* covers both variants you used */
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

/* this block sits at the bottom of every card */
.card .price-wrap { 
  margin-top: auto;
}

/* keep £ and /mo on one line, nicely aligned */
.card .price-row {
  display: flex;
  align-items: baseline;
  gap: 0.25rem;
}
