.motors {
  background-color: var(--color-web-background);
  padding: var(--section-padding-vertical) 0;
}

.motors-wrap {
  position: relative;
  display: flex;
  flex-direction: column;
  margin: 0 6vw;
  padding: 2vw;
  background-color: #ffffff;
  border-radius: 0.6rem;
  box-shadow: 0 0.3vw 0.9vw rgba(29, 29, 27, 0.15);
}

.motors-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2vw;
  min-height: 0;
  flex: 1 1 auto;
  overflow-y: auto;
  max-height: 48vw;
  padding-right: 1.2vw;
  padding-bottom: 1.2vw;
}

.motors-fade {
  position: absolute;
  top: 2vw;
  left: 2vw;
  right: 2vw;
  height: 2.5vw;
  background: linear-gradient(180deg, #ffffff, transparent);
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.4s ease;
  z-index: 1;
}

.motors-fade.visible {
  opacity: 1;
}

.motors-grid::-webkit-scrollbar {
  width: 1vw;
}

.motors-grid::-webkit-scrollbar-track {
  background-color: rgba(33, 56, 81, 0.12);
  border-radius: 0.5vw;
}

.motors-grid::-webkit-scrollbar-thumb {
  background-color: var(--color-primary-background);
  border-radius: 0.5vw;
}

.motors-grid::-webkit-scrollbar-thumb:hover {
  background-color: var(--color-primary-foreground);
}

.motors-grid {
  scrollbar-width: thin;
  scrollbar-color: var(--color-primary-background) rgba(33, 56, 81, 0.12);
}

.motor-card {
  width: calc((100% - 6vw) / 4);
  background-color: #ffffff;
  border-radius: 0.6rem;
  overflow: hidden;
  box-shadow: 0 0.3vw 0.9vw rgba(29, 29, 27, 0.2);
  display: flex;
  flex-direction: column;
}

.motor-card img:not(:first-of-type) {
  display: none;
}

.motor-card img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.motor-card h3 {
  margin: 1vw 1vw 0.5vw;
  font-size: 1.4vw;
  color: var(--color-primary-background);
}

.motor-card p {
  margin: 0 1vw 1vw;
  font-size: 1vw;
  text-align: justify;
  flex-grow: 1;
}

.motor-more {
  margin: 0 1vw 1vw;
  padding: 0.6vw 1vw;
  border: none;
  border-radius: 0.4rem;
  background-color: var(--color-primary-background);
  color: var(--color-web-background);
  font-family: var(--font-text);
  font-size: 1vw;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.motor-more:hover {
  background-color: var(--color-primary-foreground);
}

.motors-collapsed .motor-card:nth-child(n + 5) {
  display: none;
}

.motors-toggle {
  display: block;
  margin: 2vw auto 0;
  padding: 0.7vw 2vw;
  border: none;
  border-radius: 0.4rem;
  background-color: var(--color-secondary-background);
  color: var(--color-web-background);
  font-family: var(--font-text);
  font-size: 1.2vw;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.motors-toggle:hover {
  background-color: var(--color-primary-foreground);
}

.motor-modal {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: none;
  align-items: center;
  justify-content: center;
  background-color: rgba(29, 29, 27, 0.92);
  padding: 2vw;
  box-sizing: border-box;
}

.motor-modal.open {
  display: flex;
}

.motor-modal-frame {
  position: relative;
  display: flex;
  width: 100%;
  height: 100%;
  border-radius: 0.6rem;
  overflow: hidden;
  box-shadow: 0 0.6vw 2.4vw rgba(0, 0, 0, 0.6);
}

.motor-modal-close {
  position: absolute;
  top: 1vw;
  left: 1vw;
  z-index: 10;
  width: 3vw;
  height: 3vw;
  border: none;
  border-radius: 50%;
  background-color: rgba(33, 56, 81, 0.9);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.motor-modal-close:hover {
  background-color: var(--color-primary-foreground);
}

.motor-modal-close img {
  width: 55%;
  height: 55%;
}

.motor-modal-media-wrap {
  position: relative;
  flex: 2;
  min-width: 0;
  background-color: #1d1d1b;
  overflow: hidden;
}

.motor-modal-media {
  position: relative;
  width: 100%;
  height: 100%;
}

.motor-modal-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.motor-modal-media img.active {
  opacity: 1;
}

.motor-modal-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 3.2vw;
  height: 3.2vw;
  border: none;
  border-radius: 50%;
  background-color: var(--color-primary-background);
  padding: 0.7vw;
  cursor: pointer;
  transition: background-color 0.3s ease;
  z-index: 3;
}

.motor-modal-arrow svg {
  width: 100%;
  height: 100%;
}

.motor-modal-arrow .arrow-fill {
  fill: var(--color-primary-foreground);
}

.motor-modal-arrow:hover {
  background-color: var(--color-secondary-background);
}

.motor-modal-arrow:focus-visible {
  outline: 3px solid var(--color-primary-foreground);
}

.motor-modal-prev {
  left: 2vw;
}

.motor-modal-next {
  right: 2vw;
}

.motor-modal-dots {
  position: absolute;
  bottom: 1vw;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 0.6vw;
  padding: 0.4vw 0.8vw;
  border-radius: 50vw;
  background-color: rgba(29, 29, 27, 0.45);
  z-index: 3;
}

.motor-modal-dots[hidden] {
  display: none;
}

.motor-modal-dot {
  width: 0.8vw;
  height: 0.8vw;
  min-width: 0.8vw;
  border: none;
  border-radius: 50%;
  background-color: rgba(248, 248, 248, 0.6);
  cursor: pointer;
  transition: background-color 0.3s ease;
  padding: 0;
}

.motor-modal-dot:hover {
  background-color: var(--color-web-background);
}

.motor-modal-dot.active {
  background-color: var(--color-primary-foreground);
}

.motor-modal-info {
  flex: 1;
  background-color: var(--color-web-background);
  padding: 2vw;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--color-primary-background) rgba(33, 56, 81, 0.12);
}

.motor-modal-info::-webkit-scrollbar {
  width: 0.6vw;
}

.motor-modal-info::-webkit-scrollbar-track {
  background-color: rgba(33, 56, 81, 0.12);
  border-radius: 0.5vw;
}

.motor-modal-info::-webkit-scrollbar-thumb {
  background-color: var(--color-primary-background);
  border-radius: 0.5vw;
}

.motor-modal-info::-webkit-scrollbar-thumb:hover {
  background-color: var(--color-primary-foreground);
}

.motor-modal-info h3 {
  margin-bottom: 1vw;
  font-size: 1.8vw;
  color: var(--color-primary-background);
}

.motor-modal-text {
  font-size: 1.1vw;
  text-align: justify;
  line-height: 1.7;
}