.ifs-legal-page,
.ifs-courses-dates-page {
  --ifs-legal-line: rgba(12, 52, 77, .14);
}

.ifs-legal-page section,
.ifs-courses-dates-page section {
  scroll-margin-top: 7rem;
}

.ifs-legal-page section + section,
.ifs-courses-dates-page section + section {
  border-top: 1px solid var(--ifs-legal-line);
  padding-top: clamp(2rem, 4vw, 3.25rem);
}

.ifs-legal-page h2,
.ifs-courses-dates-page h2 {
  max-width: 22ch;
}

.ifs-legal-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 1.5rem;
}

.ifs-legal-page address {
  font-style: normal;
}

.ifs-legal-page .ifs-card {
  height: 100%;
}

.ifs-legal-contact-card {
  max-width: 46rem;
}

.ifs-editor-review-note {
  background: #fff5df;
  border: 1px solid #e8b45c;
  border-radius: .9rem;
  color: #51330b;
  padding: 1rem 1.15rem;
}

.ifs-courses-dates-page__help {
  align-self: start;
  max-width: 30rem;
}

.ifs-courses-dates-page .ifs-finder {
  margin-top: 1.5rem;
}

@media (max-width: 48rem) {
  .ifs-legal-grid {
    grid-template-columns: 1fr;
  }
}

/* Smart empty states and course-area fallback for the courses & dates page. */
.ifs-courses-empty {
  align-items: center;
  background: linear-gradient(135deg, rgba(231, 246, 248, .92), rgba(247, 251, 252, .98));
  border: 1px solid rgba(23, 116, 130, .2);
  border-radius: 1.2rem;
  display: grid;
  gap: 1rem;
  grid-template-columns: auto minmax(0, 1fr) auto;
  margin-top: 1.5rem;
  padding: clamp(1.25rem, 3vw, 2rem);
}

.ifs-courses-empty__icon {
  align-items: center;
  background: #0f8e82;
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  font-size: 1rem;
  height: 2.5rem;
  justify-content: center;
  width: 2.5rem;
}

.ifs-courses-empty h3,
.ifs-courses-request-cta h3 {
  margin: 0 0 .35rem;
}

.ifs-courses-empty p,
.ifs-courses-request-cta p {
  margin: 0;
}

.ifs-courses-empty__actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .8rem;
  justify-content: flex-end;
}

.ifs-course-area-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 1.5rem;
}

.ifs-course-area-card {
  background: #fff;
  border: 1px solid rgba(12, 52, 77, .12);
  border-radius: 1.1rem;
  box-shadow: 0 10px 28px rgba(12, 52, 77, .08);
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: 1.25rem;
}

.ifs-course-area-card__label {
  align-items: center;
  align-self: flex-start;
  background: #e7f5f5;
  border-radius: 999px;
  color: #0d746e;
  display: inline-flex;
  font-size: .72rem;
  font-weight: 800;
  justify-content: center;
  margin-bottom: .9rem;
  min-height: 1.8rem;
  min-width: 2.25rem;
  padding: .25rem .55rem;
}

.ifs-course-area-card h3 {
  font-size: clamp(1.08rem, 2vw, 1.3rem);
  margin: 0 0 .55rem;
}

.ifs-course-area-card p {
  color: #526b7a;
  flex: 1 1 auto;
  margin: 0 0 1rem;
}

.ifs-courses-request-cta {
  align-items: center;
  background: #0d344c;
  border-radius: 1.2rem;
  color: #fff;
  display: flex;
  gap: 1.25rem;
  justify-content: space-between;
  margin-top: 1.5rem;
  padding: clamp(1.25rem, 3vw, 1.75rem);
}

.ifs-courses-request-cta p {
  color: rgba(255, 255, 255, .82);
}

@media (max-width: 60rem) {
  .ifs-course-area-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ifs-courses-empty {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .ifs-courses-empty__actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }
}

@media (max-width: 42rem) {
  .ifs-course-area-grid {
    grid-template-columns: 1fr;
  }

  .ifs-courses-empty {
    align-items: start;
    grid-template-columns: 1fr;
  }

  .ifs-courses-empty__actions,
  .ifs-courses-request-cta {
    align-items: stretch;
    flex-direction: column;
  }

  .ifs-courses-empty__actions .ifs-button,
  .ifs-courses-request-cta .ifs-button {
    justify-content: center;
    text-align: center;
    width: 100%;
  }
}
