.main-carousel {
    display: flex;
    justify-content: space-between;
    position: relative; /*faz elementos filhos considerarem  o pai*/
    padding-left: 85px;
    padding-right: 85px;
}

.main-carousel::after {
    content: "";
    position: absolute;
    left: 50px;
    top: 38px;
    display: block;
    height: 6px;
    width: calc(100% - 100px);
    background-color: #000;
}

.main-carousel::before {
    content: "";
    position: absolute;
    box-sizing: border-box;
    left: 0;
    top: 38.2px;
    display: block;
    border: 3px dashed #000;
    width: 100%;
}

.main-carousel .button-arrow {
    position: absolute; /* respeita o pai, porque ele é diferente de static */
    bottom: 70px;
    transform: translateY(50%);
}

.main-carousel .button-arrow.-left {
    left: 15px;
}

.main-carousel .button-arrow.-right {
    right: 15px;
}

.main-carousel .items {
    width: 100%;
    overflow: hidden;
}

.main-carousel .elements {
    display: flex;
    justify-content: space-between;
    transition: transform 100 ms ease-in-out;
}