.pc-hero-carousel {
    --pc-hc-space: clamp(24px, 6vw, 104px);
    position: relative;
    width: 100%;
    overflow: hidden;
    isolation: isolate;
}

.pc-hero-carousel__viewport {
    position: relative;
    overflow: hidden;
    transition: height 360ms ease;
}

.pc-hero-carousel__slide {
    position: absolute;
    inset: 0;
    z-index: 0;
    display: grid;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 450ms ease, visibility 450ms ease;
}

.pc-hero-carousel__slide.is-active {
    position: relative;
    z-index: 1;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.pc-hero-carousel__image-wrap,
.pc-hero-carousel__image {
    display: block;
    grid-area: 1 / 1;
    width: 100%;
}

.pc-hero-carousel__image {
    height: auto;
    min-height: 220px;
    object-fit: cover;
}

.pc-hero-carousel__content {
    z-index: 1;
    display: flex;
    grid-area: 1 / 1;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    max-width: min(560px, 46%);
    padding: var(--pc-hc-space);
    pointer-events: none;
}

.pc-hero-carousel__content > * {
    pointer-events: auto;
}

.pc-hero-carousel__content h2,
.pc-hero-carousel__content p {
    margin: 0;
    text-wrap: balance;
}

.pc-hero-carousel__content h2 {
    color: var(--pc-hc-title-color, #fff);
    font-size: var(--pc-hc-title-size, clamp(34px, 4.4vw, 64px));
    font-weight: 700;
    letter-spacing: -0.045em;
    line-height: 0.98;
}

.pc-hero-carousel__content p {
    max-width: 48ch;
    margin-top: clamp(10px, 1.35vw, 20px);
    color: var(--pc-hc-description-color, #fff);
    font-size: var(--pc-hc-description-size, clamp(15px, 1.35vw, 20px));
    line-height: 1.45;
}

.pc-hero-carousel__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    margin-top: clamp(16px, 2vw, 28px);
    padding: 0.7em 1.35em;
    border-radius: 999px;
    background: var(--pc-hc-button-bg, #fff);
    color: var(--pc-hc-button-text, #101828) !important;
    font-size: var(--pc-hc-button-size, 16px);
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    transition: transform 180ms ease, opacity 180ms ease;
}

.pc-hero-carousel__button:hover,
.pc-hero-carousel__button:focus-visible {
    color: var(--pc-hc-button-text, #101828) !important;
    opacity: 0.9;
    transform: translateY(-2px);
}

.pc-hero-carousel__content--desktop-top-left { align-items: flex-start; justify-content: flex-start; text-align: left; }
.pc-hero-carousel__content--desktop-top-center { align-items: center; justify-content: flex-start; text-align: center; margin-inline: auto; }
.pc-hero-carousel__content--desktop-top-right { align-items: flex-end; justify-content: flex-start; margin-left: auto; text-align: right; }
.pc-hero-carousel__content--desktop-center-left { align-items: flex-start; justify-content: center; text-align: left; }
.pc-hero-carousel__content--desktop-center-center { align-items: center; justify-content: center; margin-inline: auto; text-align: center; }
.pc-hero-carousel__content--desktop-center-right { align-items: flex-end; justify-content: center; margin-left: auto; text-align: right; }
.pc-hero-carousel__content--desktop-bottom-left { align-items: flex-start; justify-content: flex-end; text-align: left; }
.pc-hero-carousel__content--desktop-bottom-center { align-items: center; justify-content: flex-end; margin-inline: auto; text-align: center; }
.pc-hero-carousel__content--desktop-bottom-right { align-items: flex-end; justify-content: flex-end; margin-left: auto; text-align: right; }

.pc-hero-carousel__arrow {
    position: absolute;
    z-index: 3;
    top: 50%;
    display: grid;
    width: 46px;
    height: 46px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.75);
    border-radius: 50%;
    background: rgba(16, 24, 40, 0.18);
    color: #fff;
    cursor: pointer;
    font-size: 38px;
    line-height: 1;
    place-items: center;
    transform: translateY(-50%);
    transition: background 180ms ease, transform 180ms ease;
}

.pc-hero-carousel__arrow:hover,
.pc-hero-carousel__arrow:focus-visible { background: rgba(16, 24, 40, 0.55); transform: translateY(-50%) scale(1.05); }
.pc-hero-carousel__arrow--prev { left: clamp(12px, 2vw, 32px); }
.pc-hero-carousel__arrow--next { right: clamp(12px, 2vw, 32px); }

.pc-hero-carousel__dots {
    position: absolute;
    z-index: 3;
    bottom: clamp(14px, 2vw, 28px);
    left: 50%;
    display: flex;
    gap: 8px;
    transform: translateX(-50%);
}

.pc-hero-carousel__dots button {
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.6);
    cursor: pointer;
    transition: width 200ms ease, background 200ms ease;
}

.pc-hero-carousel__dots button[aria-selected='true'] { width: 28px; background: #fff; }

@media (max-width: 767px) {
    .pc-hero-carousel { --pc-hc-space: clamp(20px, 7vw, 38px); }
    .pc-hero-carousel__image { min-height: 360px; }
    .pc-hero-carousel__content {
        max-width: 100%;
        padding-bottom: calc(var(--pc-hc-space) + 30px);
    }
    .pc-hero-carousel__content h2 { font-size: min(var(--pc-hc-title-size, 40px), 10vw); }
    .pc-hero-carousel__content p { font-size: min(var(--pc-hc-description-size, 17px), 4.8vw); }
    .pc-hero-carousel__content--mobile-top-left { align-items: flex-start; justify-content: flex-start; text-align: left; }
    .pc-hero-carousel__content--mobile-top-center { align-items: center; justify-content: flex-start; text-align: center; }
    .pc-hero-carousel__content--mobile-top-right { align-items: flex-end; justify-content: flex-start; text-align: right; }
    .pc-hero-carousel__content--mobile-center-left { align-items: flex-start; justify-content: center; text-align: left; }
    .pc-hero-carousel__content--mobile-center-center { align-items: center; justify-content: center; text-align: center; }
    .pc-hero-carousel__content--mobile-center-right { align-items: flex-end; justify-content: center; text-align: right; }
    .pc-hero-carousel__content--mobile-bottom-left { align-items: flex-start; justify-content: flex-end; text-align: left; }
    .pc-hero-carousel__content--mobile-bottom-center { align-items: center; justify-content: flex-end; text-align: center; }
    .pc-hero-carousel__content--mobile-bottom-right { align-items: flex-end; justify-content: flex-end; text-align: right; }
    .pc-hero-carousel__arrow { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .pc-hero-carousel__viewport,
    .pc-hero-carousel__slide,
    .pc-hero-carousel__button,
    .pc-hero-carousel__arrow,
    .pc-hero-carousel__dots button { transition: none; }
}
