.learning-photo {
  position: absolute;
  width: 78px;
  height: 78px;
  object-fit: cover;
  border-radius: 50%;
  left: 45px;
  bottom: 20px;
  border: 5px solid #fff9e9;
  z-index: 3
}
.audio-box audio {
  display: none
}
.material-more {
  display: inline-block;
  margin-top: 16px
}

/* Halaman katalog kelas */
.class-page {
  background: #fffdf7
}
.class-nav .active {
  color: var(--orange)
}
.catalog-hero {
  background: #edf4e6;
  padding: 72px max(30px, calc((100% - 1180px) / 2)) 78px;
  position: relative;
  overflow: hidden
}
.catalog-hero::after {
  content: '</>';
  color: #f27b5a20;
  font: 700 clamp(9rem, 20vw, 17rem) 'Playfair Display', serif;
  position: absolute;
  right: 5%;
  bottom: -75px
}
.back-link {
  display: inline-block;
  color: var(--ink);
  font-size: .82rem;
  font-weight: 600;
  margin-bottom: 52px;
  text-decoration: none
}
.back-link:hover {
  color: var(--orange)
}
.catalog-hero h1 {
  font: 600 clamp(2.8rem, 5vw, 4.8rem) / 1.08 'Playfair Display', serif;
  letter-spacing: -.04em;
  margin: 0;
  position: relative;
  z-index: 1
}
.catalog-hero > p:not(.eyebrow) {
  color: var(--muted);
  max-width: 490px;
  margin: 22px 0;
  position: relative;
  z-index: 1
}
.catalog-count {
  align-items: center;
  display: flex;
  gap: 12px;
  margin-top: 35px;
  position: relative;
  z-index: 1
}
.catalog-count strong {
  color: var(--orange);
  font: 700 2.2rem 'Playfair Display', serif
}
.catalog-count span {
  font-size: .78rem;
  max-width: 130px;
  line-height: 1.3
}
.catalog-content {
  margin: auto;
  max-width: 1180px;
  padding: 80px 30px 110px
}
.filter-row {
  align-items: end;
  display: flex;
  gap: 25px;
  justify-content: space-between
}
.filter-row h2 {
  font-size: clamp(2rem, 3.5vw, 3.1rem)
}
.search-box {
  align-items: center;
  background: white;
  border: 1px solid var(--line);
  display: flex;
  gap: 9px;
  padding: 0 13px;
  width: min(285px, 100%)
}
.search-box span {
  color: var(--orange);
  font-size: 1.35rem
}
.search-box input {
  border: 0;
  margin: 0;
  min-width: 0;
  outline: 0;
  padding: 12px 0;
  width: 100%
}
.filter-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 40px 0 27px
}
.filter {
  background: transparent;
  border: 1px solid #d9ded4;
  color: var(--ink);
  cursor: pointer;
  font: 600 .8rem 'DM Sans', sans-serif;
  padding: 9px 15px
}
.filter:hover,
.filter.active {
  background: var(--ink);
  border-color: var(--ink);
  color: white
}
.catalog-grid {
  display: grid;
  gap: 23px;
  grid-template-columns: repeat(3, 1fr)
}
.catalog-card {
  background: #fff;
  box-shadow: 0 7px 20px #25362b0c;
  min-width: 0
}
.catalog-card[hidden] {
  display: none
}
.catalog-art {
  align-items: center;
  display: flex;
  height: 158px;
  justify-content: center;
  overflow: hidden;
  position: relative
}
.catalog-art > span {
  color: #fff9e9;
  font: 700 3.5rem 'Playfair Display', serif
}
.catalog-art small {
  background: #fffdf7;
  color: var(--ink);
  font-size: .6rem;
  font-weight: 700;
  left: 13px;
  letter-spacing: .06em;
  padding: 4px 8px;
  position: absolute;
  top: 13px
}
.art-purple { background: #dcd6e9 }
.art-yellow { background: #f5ce77 }
.art-coral { background: #f5b4a0 }
.art-green { background: #bcd5be }
.art-blue { background: #b9dce3 }
.art-pink { background: #dfc4cf }
.art-red {background: #e06464;}
.catalog-body {
  padding: 20px
}
.catalog-body h3 {
  font-size: 1.12rem;
  line-height: 1.25;
  margin: 0 0 8px
}
.catalog-body > p:not(.course-meta) {
  color: var(--muted);
  font-size: .86rem;
  margin: 0;
  min-height: 66px
}
.catalog-info {
  border-top: 1px solid var(--line);
  color: var(--muted);
  display: flex;
  font-size: .69rem;
  justify-content: space-between;
  margin-top: 19px;
  padding-top: 12px
}
.card-button {
  color: var(--ink);
  display: inline-block;
  font-size: .8rem;
  font-weight: 700;
  margin-top: 17px;
  text-decoration: none
}
.card-button:hover {
  color: var(--orange)
}
.no-result {
  color: var(--muted);
  padding: 35px 0;
  text-align: center
}
@media (max-width: 760px) {
  .catalog-hero {
    padding: 45px 22px 60px
  }
  .catalog-content {
    padding: 60px 22px 80px
  }
  .filter-row {
    align-items: start;
    flex-direction: column
  }
  .search-box {
    width: 100%
  }
  .catalog-grid {
    grid-template-columns: 1fr
  }
  .class-page .nav-links {
    display: none
  }
}
