.mb-home-carousel {
  width: min(100%, 65rem);
  min-width: 0;
  margin: 0 auto var(--mb-space-8);
}

.mb-carousel-viewport {
  overflow: hidden;
  aspect-ratio: 16 / 9;
  border-radius: var(--mb-radius-card);
  background: #171735;
  touch-action: pan-y;
}

.mb-carousel-slide,
.mb-carousel-link {
  display: block;
  width: 100%;
  height: 100%;
}

.mb-shell .mb-carousel-link img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.mb-carousel-link:focus-visible {
  outline-offset: -4px;
}

.mb-carousel-controls {
  display: flex;
  align-items: center;
  gap: var(--mb-space-1);
  margin-top: var(--mb-space-2);
}

.mb-carousel-controls button {
  flex-shrink: 0;
  min-width: var(--mb-target-min);
  min-height: var(--mb-target-min);
  padding: var(--mb-space-2);
  border: 1px solid var(--mb-control-border);
  border-radius: var(--mb-radius-control);
  color: var(--mb-text);
  background: var(--mb-surface);
  cursor: pointer;
}

.mb-carousel-controls button:hover {
  background: var(--mb-brand-soft);
}

.mb-carousel-dots {
  display: flex;
  flex: 1;
  flex-wrap: wrap;
  justify-content: center;
  min-width: 0;
}

.mb-carousel-dots button {
  display: grid;
  place-items: center;
  border: 0;
  background: transparent;
}

.mb-carousel-dots button::before {
  content: "";
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: var(--mb-text-muted);
}

.mb-carousel-dots button[aria-current="true"]::before {
  width: 0.75rem;
  height: 0.75rem;
  background: var(--mb-brand);
}

@media (max-width: 40rem) {
  .mb-home-carousel { margin-bottom: var(--mb-space-6); }
  .mb-carousel-controls { flex-wrap: wrap; justify-content: center; }
  .mb-carousel-dots { order: -1; flex-basis: 100%; }
}
