*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

ul {
  list-style: none;
}

/* Defensive reset (helps if Bootstrap loads after this file) */

ul.cards {
  list-style: none;
  margin: 0;
  padding: 0;
  padding-left: 0;
}

li.cards_item {
  list-style: none;
}

.main {
  width: 100%;
  max-width: 1200px;
  height: auto;
  display: grid;
  place-items: center;
  align-content: center;
  justify-items: center;
}

.cards {
  width: 100%;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
  grid-auto-flow: row;
  justify-items: center;
  grid-gap: 1em;
}

.cards_item {
  width: 100%;
  overflow: hidden;
  box-shadow: rgba(0, 0, 0, 0.4) 0px 30px 90px;
  border: 1px inset rgba(157,202,90, 1);
  border-radius: 30px;
  max-width: 350px;
}

.card {
  position: relative;
  height: 350px;
  background-color: var(--black-bkg, #1b2a41);
  cursor: pointer;
  overflow: hidden;
  border-radius: 3px;
  -webkit-tap-highlight-color: transparent;
}

.card:hover > .card_content {
  transform: translateY(5%);
}

.card:hover > .card_image img {
  transform: translateY(-100px) scale(1.3);
}

.card:hover > .card_content .card_text p:not(:first-of-type) {
  opacity: 1;
}

.card_image {
  position: absolute;
  inset: 0;
}

.card_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: translateY(0) scale(1);
  transition: transform 0.4s ease-in-out;
}

.card_content {
  position: absolute;
  inset: 0;
  z-index: 2;
  transform: translateY(65%);
  padding: 1em;
  color: white;
  background: linear-gradient(transparent, #1b2a41 16%);
  transition: transform 0.4s ease-in-out;
}

.card_title {
  font-size: 1.3rem;
  color: var(--yellow, #9dca5a);
  font-family: "Georgia", serif;
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
}

.card_text {
  font-size: 0.8rem;
  line-height: 1.5rem;
  color: var(--white-text, #ffffff);
}

.text_1 {
  margin: 10px 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.text_2 {
  margin: 10px 0;
  display: -webkit-box;
  -webkit-line-clamp: 7;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.card_text p:not(:first-of-type) {
  opacity: 0;
  transition: opacity 0.6s 0.2s;
}

