.custom-cards-wrapper {
  display: flex;
  flex-wrap: wrap;
  margin: -7.75px; /* half of 15.5px to counteract margin on children */
}

.custom-row {
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    margin-right: -20px;
    margin-left: -65px;
    width: 1250px;
}

.custom-card {
  width: 600px;
  height: 558px;
  border-radius: 8px;
  border: 0.5px solid #D1D3D4;
  box-shadow: 2px 2px 4px rgba(167, 167, 167, 0.6);
  background-color: white;
  position: relative;
  overflow: hidden;
  margin: 7.75px;
}

.custom-card-image-wrapper {
  height: 342px;
  width: 1600px;
  position: relative;
  background-color: black;
}

.custom-black-bg {
  height: 100%;
  width: 100%;
  background-color: black;
  position: absolute;
  top: 0;
  left: 0;
  border-radius: 8px 8px 0 0;
}

.custom-card-image {
    position: absolute;
  top: -6.72px;
  left: -165.71px;
  width: 622.59px;
  height: 349.66px;
}

.custom-card-body {
  padding: 24px;
  position: absolute;
  top: 361px;
  left: 0;
  right: 0;
}

.custom-title {
    color: #2A2A2A;
    font-size: 2.6rem;
    font-weight: 900;
    text-transform: uppercase;
    line-height: 17px;
    letter-spacing: 1.07px;
    word-wrap: break-word;
    font-family: "Neutraface 2 Display", sans-serif;
    width: 368px;
    height: 25px;
    max-width: 368px;
    max-height: 25px;
}

.custom-subtitle {
  /*color: #585858;*/
  /*font-size: 1.5rem;*/
  /*font-style: italic;*/
  /*font-weight: 600;*/
  /*margin-bottom: 8px;*/
  color: #585858;
font-size: 2.4rem;
font-family: "Neutraface 2 Text", sans-serif;
font-style: italic;
font-weight: 600;
word-wrap: break-word
}

.custom-promo {
  color: #D5181A;
  font-size: 1.4rem;
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: 12px;
}

.custom-price {
  display: flex;
  align-items: flex-start;
  margin-bottom: 4px;
}

.custom-price-main {
    color: #2A2A2A;
    font-size: 3.2rem;
    font-family: "Neutraface 2 Display", sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    word-wrap: break-word
}

.custom-price-cents {
  font-size: 1.2rem;
  font-weight: 700;
  color: #D5181A;
  text-transform: uppercase;
  margin-top: 5px;
}

.custom-original-price {
  font-size: 1.6rem;
  color: #585858;
  font-weight: 600;
  text-decoration: line-through;
  margin-bottom: 12px;
}

.custom-points {
  font-size: 1.8rem;
  color: #D5181A;
  font-weight: 700;
  margin-bottom: 16px;
}

.custom-points-label {
  font-size: 1.5rem;
}

.custom-book-button {
  background-color: #D5181A;
  color: white;
  text-transform: uppercase;
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  border-radius: 4px;
  padding: 10px 24px;
  width: 160px;
  height: 42px;
}

.custom-book-button:hover {
  background-color: #9c2627;
  color: white;
  text-transform: uppercase;
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  border-radius: 4px;
  padding: 10px 24px;
  width: 160px;
  height: 42px;
}

/* ---------- CARD LAYOUT FIX ---------- */
.col-md-4.mb-4 {
  display: flex;
  align-items: stretch;
}
.custom-cards-wrapper,
.custom-card {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.custom-card-body {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex: 1;
}

.custom-card .custom-subtitle,
.custom-card .custom-subtitle.invisible {
  display: block !important;
  line-height: 1.5 !important;
  min-height: 24px !important;   /* exact 1line height */
  margin-bottom: 0 !important;
  padding: 0 !important;
}
.custom-card .custom-subtitle.invisible {
  visibility: hidden !important; /* hides text, keeps space */
}

.custom-card p.custom-promo {
  all: unset;
  display: block;
  height: auto;
  min-height: 0;
  margin: 0;
  padding: 0;
  line-height: 1;
}
