/* =========================================================
   Child Pages module
   ========================================================= */

.child_pages_module {
  padding: 70px 0;
}

.child_pages_module__heading {
  margin: 0 0 40px;
}

.child_pages_module > .container {
  max-width: var(--ib-container);
  margin: 0 auto;
}

.child_pages_module a:has(h2) {
  text-decoration: none;
  color: inherit;
}

/* =========================================================
   CARD (shared by list and columns)
   ========================================================= */

.child_pages_module__block {
  background: var(--ib-surface, #fff);
  border: 1px solid rgba(22, 58, 44, 0.1);
  border-radius: var(--ib-radius-lg, 20px);
  overflow: hidden;
  margin: 0;
}

.child_pages_module__media {
  width: 100%;
  height: 340px;
  overflow: hidden;
}

.child_pages_module__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0;
}

.child_pages_module__content h2 {
  font-family: var(--ib-heading-font, inherit);
  font-size: 34px;
  line-height: 1.15;
  margin: 8px 0 0;
}

.child_pages_module__text {
  margin-top: 14px;
}

.child_pages_module__text p {
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--ib-muted-green, #52675d);
  margin-top: 14px;
  margin-bottom: 0;
}

.child_pages_module__text p:first-child {
  margin-top: 14px;
}

.child_pages_module__text p:last-child {
  margin-bottom: 0;
}

.child_pages_module .ib-loc-card__facts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}

.child_pages_module__button {
  display: inline-block;
  margin-top: 16px;
  background: #1c2230;
  color: #fff;
  text-decoration: none;
  padding: 10px 16px;
  border-radius: 8px;
}

/* Extra link below the cards */
.child_pages_module__footer {
  margin-top: 40px;
  text-align: center;
}

.child_pages_module__footer .child_pages_module__button {
  margin-top: 0;
}

/* =========================================================
   LIST
   ========================================================= */

.child_pages_module--list .child_pages_module__block {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 46px;
  align-items: stretch;
}

/* Card height comes from the text/button; image just fills it */
.child_pages_module--list .child_pages_module__media {
  position: relative;
  height: auto;
}

.child_pages_module--list .child_pages_module__media img {
  position: absolute;
  inset: 0;
}

.child_pages_module--list .child_pages_module__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}

/* Spacing between cards */
.child_pages_module--list
  .child_pages_module__block
  + .child_pages_module__block {
  margin-top: 40px;
}

/* Image on the right: content first, image second */
.child_pages_module--list .child_pages_module__block--image_right {
  grid-template-columns: 1.15fr 1fr;
}

.child_pages_module--list
  .child_pages_module__block--image_right
  .child_pages_module__content {
  order: 1;
}

.child_pages_module--list
  .child_pages_module__block--image_right
  .child_pages_module__media {
  order: 2;
}

/* Content padding (no padding on the image side) */
.child_pages_module--list
  .child_pages_module__block--image_left
  .child_pages_module__content {
  padding: 34px 40px 34px 0;
}

.child_pages_module--list
  .child_pages_module__block--image_right
  .child_pages_module__content {
  padding: 34px 0 34px 40px;
}

/* =========================================================
   COLUMNS
   ========================================================= */

.child_pages_module--columns .child_pages_module__items {
  display: grid;
  grid-template-columns: repeat(var(--cp-columns, 3), 1fr);
  gap: 28px;
}

.child_pages_module--columns .child_pages_module__block {
  display: flex;
  flex-direction: column;
}

.child_pages_module--columns .child_pages_module__media {
  height: 240px;
}

.child_pages_module--columns .child_pages_module__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex: 1;
  padding: 28px 28px 30px;
}

.child_pages_module--columns .child_pages_module__content h2 {
  font-size: 26px;
}

/* Button sits at the bottom so cards line up */
.child_pages_module--columns .child_pages_module__button {
  margin-top: auto;
}

.child_pages_module--columns .ib-loc-card__facts {
  margin-bottom: 16px;
}

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 900px) {
  .child_pages_module--columns .child_pages_module__items {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 767px) {
  .child_pages_module {
    padding: 50px 16px 20px;
  }

  .child_pages_module--list .child_pages_module__block,
  .child_pages_module--list .child_pages_module__block--image_right {
    grid-template-columns: 1fr;
    gap: 0;
  }

  /* On mobile, always place the image above the content */
  .child_pages_module--list
    .child_pages_module__block--image_right
    .child_pages_module__media {
    order: 1;
  }

  .child_pages_module--list
    .child_pages_module__block--image_right
    .child_pages_module__content {
    order: 2;
  }

  .child_pages_module__media,
  .child_pages_module--list .child_pages_module__media {
    height: 260px;
  }

  .child_pages_module--list
    .child_pages_module__block--image_left
    .child_pages_module__content,
  .child_pages_module--list
    .child_pages_module__block--image_right
    .child_pages_module__content {
    padding: 28px 24px 30px;
  }

  .child_pages_module__content h2 {
    font-size: 28px;
  }
}

@media (max-width: 560px) {
  .child_pages_module--columns .child_pages_module__items {
    grid-template-columns: 1fr;
  }
}
