.keypoint {
  display: flex;
  color: var(--color);
  --icon-gap: 3rem;
}

.keypoint-line--left {
  position: relative;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  padding-bottom: 3rem;
}
.keypoint-line--left::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: var(--regular-border-width);
  height: 100%;
  background-color: var(--regular-border-color);
}
.keypoint-icon--left.keypoint-line--left {
  padding-left: 0;
  padding-right: 0;
}
.keypoint-icon--left.keypoint-line--left::before {
  content: none;
}
.keypoint-icon--left.keypoint-line--left .keypoint-icon-row-content {
  position: relative;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  padding-bottom: 3rem;
}
.keypoint-icon--left.keypoint-line--left .keypoint-icon-row-content::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: var(--regular-border-width);
  height: 100%;
  background-color: var(--regular-border-color);
}

.keypoint-line--top {
  position: relative;
  padding-top: 1.5rem;
  padding-bottom: 3rem;
}
.keypoint-line--top::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  height: var(--regular-border-width);
  width: 100%;
  background-color: var(--regular-border-color);
}

.keypoint-line-between {
  margin-top: 1rem;
  margin-bottom: 1rem;
}



/* COLUMN */

.keypoint-variant--column {
  flex-direction: column;
}
.keypoint-variant--column .keypoint-icon-wrapper {
  text-align: center;
  margin-bottom: var(--icon-gap);
}
.keypoint-variant--column .keypoint-headline {
  text-align: center;
}
.keypoint-variant--column.keypoint-line--between .keypoint-line {
  margin-bottom: .6em;
}
.keypoint-variant--column.keypoint-line--left .keypoint-headline {
  text-align: left;
  margin-bottom: .5em;
}

.keypoint-icon--left .keypoint-icon-row {
  display: flex;
  align-items: flex-start;
  gap: var(--icon-gap);
}
.keypoint-icon--left .keypoint-icon-wrapper {
  margin-bottom: 0;
}
.keypoint-icon--left .keypoint-icon-row-content {
  flex: 1;
}

/* ROW */

.keypoint-variant--row {
  flex-direction: row;
}
.keypoint-variant--row .keypoint-icon-wrapper {
  margin-right: var(--icon-gap);
}
.keypoint-variant--row .keypoint-headline {
  margin-right: 1rem;
  flex: 1;
}
.keypoint-variant--row .keypoint-text {
  flex-basis: 50%;
  flex-shrink: 0;
}




@media (max-width: 720px) { 
  
  .keypoint {
    --icon-gap: 2rem;
  }
  
  .keypoint-variant--row {
    flex-direction: column;
    gap: 1rem;
  }
  
  .keypoint-variant--row.has-icon .keypoint-icon-wrapper {
    position: absolute;
  }
  .keypoint-variant--row.has-icon .keypoint-text,
  .keypoint-variant--row.has-icon .keypoint-headline {
    margin: 0;
    margin-left: 5rem;
  }
  
  .keypoint-variant--row .keypoint-icon-wrapper {
    width: 3rem;
  }
  .keypoint-variant--row .keypoint-icon-wrapper {
    width: 3rem;
  }
  .keypoint-variant--row .keypoint-icon-wrapper img {
    width: 100%;
  }
  
  .keypoint-variant--column.keypoint-line--left.keypoint-icon--left .keypoint-icon-wrapper {
    width: 3rem;
  }
  .keypoint-variant--column.keypoint-line--left.keypoint-icon--left .keypoint-icon-wrapper img {
    width: 100%;
  }
  
}