.home-carousel {
    position: relative;
    max-width: 1200px;
    margin: 24px auto;
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
}
.home-carousel-slides {
    aspect-ratio: 3 / 1;
    touch-action: pan-y pinch-zoom;
}
.home-carousel-slide {
    animation: banner-appear 450ms ease-out;
    display: block;
    width: 100%;
    height: 100%;
}
.home-carousel-slide[hidden],
.home-carousel-controls[hidden] {
    display: none;
}
.home-carousel-slide[data-banner-image='img/banner-30-anos.jpg'] {
    background: linear-gradient(110deg, #dca126, #fbe476 48%, #fff 70%);
}
.home-carousel-slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.home-carousel-controls {
    position: absolute;
    inset: 0;
    pointer-events: none;
}
.home-carousel-controls button {
    pointer-events: auto;
    min-height: 44px;
    min-width: 44px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgb(0 0 0 / 45%);
    color: #fff;
    cursor: pointer;
}
.home-carousel-controls button:focus-visible {
    outline: 3px solid #fff;
    outline-offset: -3px;
    box-shadow: 0 0 0 2px #951927;
}
.home-carousel-controls [data-carousel='previous'],
.home-carousel-controls [data-carousel='next'] {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    font-size: 32px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 160ms ease;
}
@media (hover: hover) and (pointer: fine) {
    .home-carousel:hover [data-carousel='previous'],
    .home-carousel:hover [data-carousel='next'] {
        opacity: 1;
        pointer-events: auto;
    }
}
.home-carousel-controls [data-carousel='previous']:focus-visible,
.home-carousel-controls [data-carousel='next']:focus-visible {
    opacity: 1;
    pointer-events: auto;
}
.home-carousel-controls [data-carousel='previous'] {
    left: 12px;
}
.home-carousel-controls [data-carousel='next'] {
    right: 12px;
}
.home-carousel-dots {
    position: absolute;
    bottom: 10px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    max-width: calc(100% - 120px);
    overflow-x: auto;
    border-radius: 24px;
    background: rgb(0 0 0 / 30%);
    pointer-events: auto;
}
.home-carousel-dots button {
    flex: 0 0 32px;
    min-width: 32px;
    background: transparent;
}
.home-carousel-dots button::before {
    content: '';
    display: block;
    margin: auto;
    width: 10px;
    height: 10px;
    border: 2px solid #fff;
    border-radius: 50%;
}
.home-carousel-dots button[aria-current='true']::before {
    background: #fff;
}
@keyframes banner-appear {
    from {
        opacity: 0.4;
    }
    to {
        opacity: 1;
    }
}
@media (prefers-reduced-motion: reduce) {
    .home-carousel-slide {
        animation: none;
    }
}
@media (max-width: 768px) {
    .home-carousel-controls [data-carousel='previous'],
    .home-carousel-controls [data-carousel='next'] {
        display: none;
    }
    .home-carousel {
        margin: 16px 12px;
    }
    .home-carousel-slides {
        aspect-ratio: 1.91 / 1;
    }
}
