@import url("https://pro.fontawesome.com/releases/v6.0.0-beta1/css/all.css");
@import url("https://fonts.googleapis.com/css2?family=Jura:wght@500;600;900&display=swap");

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

.bannercards {
  --color: rgba(30, 30, 30);
  --bgColor: rgba(245, 245, 245);
  min-height: 100vh;
  display: grid;
  align-content: center;
  gap: 2rem;
  padding: 2rem;
  font-family: "Jura", sans-serif;
  color: var(--color);
  background: var(--bgColor);
}

.bannercards {
  padding-left:     0px !important;
  padding-right:    0px !important;
  padding-top:      0px !important;
  padding-bottom: 120px !important;
}

.bannercards h1 {
  text-align: center;
  margin-top: -20px;
  margin-bottom: 20px;
}

.bannercards ul {
  --col-gap: 2rem;
  --barH: 1rem;
  --roleH: 2rem;
  --flapH: 2rem;
  width: min(80rem, 90%);
  margin-inline: auto;
  display: flex;
  flex-wrap: wrap;
  gap: var(--col-gap);
  padding-inline: calc(var(--col-gap) / 2);
  justify-content: center;
  align-items: flex-start;
  list-style: none;
}

@media (max-width: 900px) {
  .bannercards ul {width: min(80rem, 95%);}
  .bannercards h1 {font-size: 1.7em !important;}
}

.bannercards ul li {
  width: 20em;
  display: grid;
  grid-template:
    "role"
    "icon"
    "title"
    "descr";
  align-items: flex-start;
  gap: 1rem;
  padding-block-end: calc(var(--flapH) + 1rem);
  text-align: center;
  background: var(--accent-color);
  background-image: linear-gradient(
    rgba(0, 0, 0, 0.6) var(--roleH),
    rgba(0, 0, 0, 0.4) calc(var(--roleH) + 0.5rem),
    rgba(0, 0, 0, 0) calc(var(--roleH) + 0.5rem + 5rem)
  );
  clip-path: polygon(
    calc(var(--col-gap) / -2 - 5px) 0,
    calc(100% + var(--col-gap) / 2 + 5px) 0,
    calc(100% + var(--col-gap) / 2 + 5px ) calc(100% - var(--flapH)),
    50% 100%,
    calc(var(--col-gap) / -2 - 5px) calc(100% - var(--flapH))
  );
}

/* bar */
.bannercards ul li::before {
  content: "";
  grid-area: role;
  height: var(--barH);
  width: calc(100% + var(--col-gap));
  margin-left: calc(var(--col-gap) / -2);
  margin-top: calc(var(--roleH) / 2 - var(--barH) / 2);
  background: grey;
  z-index: -1;
  background-image: linear-gradient(
    rgba(255, 255, 255, 0.4),
    rgba(255, 255, 255, 0.2) 30%,
    rgba(255, 255, 255, 0.1) 40%,
    rgba(0, 0, 0, 0.1) 60%,
    rgba(0, 0, 0, 0.2) 70%,
    rgba(0, 0, 0, 0.4)
  );
}

/* role */
.bannercards ul li::after {
  content: "";
  grid-area: role;
  background: var(--accent-color);
  background-image: linear-gradient(
    rgba(255, 255, 255, 0.4),
    rgba(255, 255, 255, 0.2) 30%,
    rgba(255, 255, 255, 0.1) 40%,
    rgba(0, 0, 0, 0.1) 60%,
    rgba(0, 0, 0, 0.2) 70%,
    rgba(0, 0, 0, 0.4)
  );
  height: var(--roleH);
}

ul li .icon,
ul li .title,
ul li .descr {
  padding-inline: 1rem;
  color: white;
}

ul li .icon {
  font-size: 3rem;
}

ul li .title {
  font-family: 'PressGothic', sans-serif;
  font-size: 2rem;
  letter-spacing: 1px;
}

ul li .descr {
  font-size: 0.9rem;
}

ul li .descr {
  font-size: 1.2rem !important;
}

.bannercards a       {color: #ffffff;}
.bannercards a:hover {color: #ffffff;}

.credits {
  position: fixed;
  bottom: 1rem;
  right: 1rem;
}
.credits a {
  color: var(--color);
}