.df-featured {
  padding: var(--df-sp-16) 0 var(--df-sp-20);
  background: var(--df-white);
  overflow: hidden;
}

.df-featured__top {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--df-sp-6);
  padding: 0 var(--df-sp-8);
  margin-bottom: var(--df-sp-8);
  max-width: 1680px;
  margin-left: auto;
  margin-right: auto;
}

.df-featured__collection-title {
  font-family: var(--df-font-body);
  font-size: clamp(0.75rem, 1.1vw, 0.85rem);
  font-weight: 400;
  letter-spacing: var(--df-track-wide);
  text-transform: uppercase;
  color: var(--df-dark);
  margin: 0;
}

.df-featured__tabs {
  display: flex;
  gap: var(--df-sp-8);
  flex-shrink: 0;
}

.df-featured__tab {
  font-family: var(--df-font-body);
  font-size: clamp(0.75rem, 1.1vw, 0.85rem);
  font-weight: 400;
  letter-spacing: var(--df-track-wide);
  text-transform: uppercase;
  color: var(--df-dark);
  padding: 0 0 var(--df-sp-2);
  border: none;
  border-bottom: 1px solid transparent;
  background: none;
  cursor: pointer;
  transition: border-color var(--df-ease), color var(--df-ease);
}

.df-featured__tab:hover {
  color: var(--df-gray-mid);
}

.df-featured__tab.is-active {
  border-bottom-color: var(--df-dark);
}

.df-featured__carousel-wrap {
  position: relative;
  max-width: 1680px;
  margin: 0 auto;
  padding: 0 var(--df-sp-8);
}

.df-featured__viewport {
  position: relative;
  overflow: hidden;
}

.df-featured__track {
  display: flex;
  gap: var(--df-sp-2);
  overflow-x: auto;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: var(--df-sp-2);
}

.df-featured__track::-webkit-scrollbar {
  display: none;
}

.df-featured__track:not(.is-active) {
  display: none;
}

.df-featured__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--df-sp-8);
  margin-top: var(--df-sp-10);
}

.df-featured__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 1px solid var(--df-gray-light);
  background: var(--df-white);
  color: var(--df-dark);
  cursor: pointer;
  transition:
    border-color var(--df-ease),
    color var(--df-ease),
    background var(--df-ease),
    transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.df-featured__arrow:hover,
.df-featured__arrow:focus-visible {
  border-color: var(--df-dark);
  background: var(--df-cream);
  transform: scale(1.06);
  outline: none;
}

.df-featured__arrow:active {
  transform: scale(1);
}

.df-featured__progress {
  position: relative;
  flex: 1;
  max-width: 240px;
  height: 2px;
  background: var(--df-gray-light);
  overflow: visible;
}

.df-featured__progress-bar {
  display: block;
  height: 100%;
  background: var(--df-dark);
  transition: margin-left 0.25s ease;
}

.df-featured-card {
  min-width: 0;
}

.df-featured__track .df-featured-card {
  flex: 0 0 calc((100% - 3 * var(--df-sp-2)) / 4);
  scroll-snap-align: start;
}

.df-featured-card__img-wrap {
  position: relative;
  display: block;
  overflow: hidden;
  background: var(--df-gray-light);
  aspect-ratio: 1 / 1;
}

.df-featured-card__img-wrap .df-card-gallery {
  width: 100%;
  height: 100%;
  display: block;
}

.df-featured-card__media-link {
  display: block;
  height: 100%;
  position: relative;
}

.df-featured-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--df-ease-slow);
}

.df-featured-card:hover .df-featured-card__img {
  transform: scale(1.03);
}

.df-featured-card__badge {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
  font-family: var(--df-font-body);
  font-size: 0.55rem;
  letter-spacing: var(--df-track-widest);
  text-transform: uppercase;
  color: var(--df-dark);
  padding: var(--df-sp-2) var(--df-sp-3);
  pointer-events: none;
}

.df-featured-card__info {
  padding: var(--df-sp-4) 0 0;
}

.df-featured-card__name {
  font-family: var(--df-font-body);
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.45;
  color: var(--df-dark);
  margin: 0 0 var(--df-sp-2);
}

.df-featured-card__name a {
  color: inherit;
}

.df-featured-card__price {
  font-family: var(--df-font-body);
  font-size: 0.75rem;
  color: var(--df-dark);
  margin: 0;
  display: flex;
  gap: 10px;
}

@media (max-width: 1023px) {
  .df-featured__track .df-featured-card {
    flex: 0 0 calc((100% - 2 * var(--df-sp-2)) / 3);
  }
}

@media (max-width: 768px) {
  .df-featured__top {
    flex-direction: column;
    align-items: flex-start;
    padding: 0 var(--df-sp-4);
  }

  .df-featured__carousel-wrap {
    padding: 0 var(--df-sp-4);
  }

  .df-featured__arrow {
    width: 38px;
    height: 38px;
  }

  .df-featured__track .df-featured-card {
    flex: 0 0 min(72vw, calc((100% - var(--df-sp-2)) * 0.72));
  }
}
