body {
  font-family: 'Noto Serif Bengali', serif;
}

/* Home page: Noto Serif Bengali. Justify only from tablet up — on narrow
   screens justified Bengali leaves large gaps between words. */
.home-page {
  font-family: 'Noto Serif Bengali', serif;
  text-align: left;
}

@media (min-width: 768px) {
  .home-page {
    text-align: justify;
  }
}

.home-page h1,
.home-page h2,
.home-page h3,
.home-page h4,
.home-page h5,
.home-page h6 {
  font-family: 'Noto Serif Bengali', serif;
}

/* Curriculum cards: full-width title with the icon floating on the top border centre */
.home-page .curriculum-card {
  position: relative;
  margin-top: 1rem;
  padding: 2.5rem .9rem .5rem .9rem;
  border: 1px solid rgba(2, 44, 34, 0.1);
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 1px 2px rgba(2, 44, 34, 0.05);
  transition: transform 0.3s ease, border-color 0.3s ease, background-color 0.3s ease,
    box-shadow 0.3s ease;
}

.home-page .curriculum-card:hover {
  transform: translateY(-2px);
  border-color: #17483d;
  background: #17483d;
  box-shadow: 0 18px 30px -12px rgba(2, 44, 34, 0.25);
}

.home-page .curriculum-card__icon {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  display: grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  border-radius: 9999px;
  border: 4px solid #fffdf8;
  background: #ecfdf5;
  color: #047857;
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

.home-page .curriculum-card__icon svg {
  width: 1.35rem;
  height: 1.35rem;
}

.home-page .curriculum-card:hover .curriculum-card__icon {
  background: #17483d;
  color: #fff;
  border-color: #fffdf8;
}

.home-page .curriculum-card__head {
  display: block;
  text-align: center;
}

.home-page .curriculum-card__title {
  display: block;
  width: 100%;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.4;
  color: #000;
  transition: color 0.3s ease;
}

.home-page .curriculum-card__text {
  /*margin-top: 0.875rem;*/
  padding-top: 0.875rem;
  /*border-top: 1px solid rgba(2, 44, 34, 0.08);*/
  font-size: 0.875rem;
  line-height: 1.65;
  color: #000;
  transition: color 0.3s ease, border-color 0.3s ease;
  /* Keep the card compact until it is hovered */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
  line-clamp: 5;
  overflow: hidden;
}

/* Hovering the card reveals the complete copy */
.home-page .curriculum-card:hover .curriculum-card__text {
  display: block;
  -webkit-line-clamp: unset;
  line-clamp: unset;
  overflow: visible;
  color: rgba(236, 253, 245, 0.9);
  border-color: rgba(255, 255, 255, 0.2);
}

.home-page .curriculum-card:hover .curriculum-card__title {
  color: #fff;
}

/* Quick Access: keep the intro heading on one line and size the column to it */
@media (min-width: 1024px) {
  .home-page .quick-intro {
    grid-template-columns: auto 1fr;
  }

  .home-page .quick-intro__title {
    white-space: nowrap;
  }

  /* Cards sit beside the sticky intro (no row above), so pull them up to align the tops */
  .home-page .curriculum-grid {
    margin-top: -1.5rem;
  }
}
