.hp3-products,
.hp3-products * {
    box-sizing: border-box;
}

.hp3-products {
    --hp3-cycle: 6500ms;
    position: relative;
    height: clamp(720px, 46vw, 860px);
    overflow: hidden;
    background: var(--bs-charcoal);
    color: var(--bs-white);
    font-family: Arial, "Helvetica Neue", sans-serif;
    isolation: isolate;
}

.hp3-products-scenes,
.hp3-products-scenes img,
.hp3-products-shade {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.hp3-products-scenes img {
    display: block;
    object-fit: cover;
    object-position: center;
    opacity: 0;
    transition: opacity 900ms ease;
}

.hp3-products-scenes img.is-active {
    opacity: 1;
}

.hp3-products-shade {
    z-index: 1;
    background: linear-gradient(90deg, color-mix(in srgb,var(--bs-charcoal) 18%,transparent) 0%, transparent 54%),
        linear-gradient(180deg, color-mix(in srgb,var(--bs-charcoal) 26%,transparent) 0%, transparent 40%, color-mix(in srgb,var(--bs-charcoal) 43%,transparent) 100%);
    pointer-events: none;
}

.hp3-products-inner {
    position: relative;
    z-index: 2;
    width: min(1400px, calc(100% - 96px));
    height: 100%;
    margin: 0 auto;
}

.hp3-products-heading {
    padding-top: 82px;
    text-align: center;
}

.hp3-products-heading h2 {
    margin: 0;
    color: var(--bs-white);
    font-size: 40px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: .01em;
    text-transform: uppercase;
}

.hp3-products-heading p {
    margin: 7px 0 0;
    color: color-mix(in srgb,var(--bs-white) 94%,transparent);
    font-size: 18px;
    line-height: 1.55;
}

.hp3-products[data-in-view] .hp3-products-heading h2,
.hp3-products[data-in-view] .hp3-products-heading p {
    animation: hp3-product-copy-in 650ms cubic-bezier(.2, .7, .25, 1) both;
}

.hp3-products[data-in-view] .hp3-products-heading p { animation-delay: 100ms; }

.hp3-products-panels {
    width: min(540px, 44%);
    margin-top: 94px;
    min-height: 310px;
}

.hp3-product-panel[hidden] {
    display: none;
}

.hp3-product-panel.is-active {
    animation: none;
}

.hp3-products[data-in-view] .hp3-product-panel.is-active h3,
.hp3-products[data-in-view] .hp3-product-panel.is-active p,
.hp3-products[data-in-view] .hp3-product-panel.is-active a {
    animation: hp3-product-copy-in 650ms cubic-bezier(.2, .7, .25, 1) both;
}

.hp3-products[data-in-view] .hp3-product-panel.is-active p { animation-delay: 110ms; }
.hp3-products[data-in-view] .hp3-product-panel.is-active a { animation-delay: 220ms; }

@keyframes hp3-product-copy-in {
    from { opacity: 0; transform: translateY(22px); }
    to { opacity: 1; transform: translateY(0); }
}

.hp3-product-panel h3 {
    margin: 0 0 26px;
    color: var(--bs-white);
    font-size: 29px;
    font-weight: 700;
    line-height: 1.25;
}

.hp3-product-panel p {
    max-width: 530px;
    min-height: 110px;
    margin: 0 0 34px;
    color: color-mix(in srgb,var(--bs-white) 94%,transparent);
    font-size: 18px;
    line-height: 1.7;
}

.hp3-product-panel a {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    color: var(--bs-white) !important;
    font-size: 16px;
    font-weight: 600;
    text-decoration: none !important;
}

.hp3-product-panel a span {
    display: grid;
    place-items: center;
    width: 43px;
    height: 43px;
    border-radius: 50%;
    background: var(--bs-energy-gradient);
    color: var(--bs-white);
    font-size: 24px;
    font-weight: 400;
    line-height: 1;
    transition: transform 250ms ease;
}

.hp3-product-panel a:hover span,
.hp3-product-panel a:focus-visible span {
    transform: translateX(4px);
}

.hp3-product-nav {
    position: absolute;
    right: 0;
    bottom: 60px;
    left: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    min-height: 72px;
    border-bottom: 1px solid color-mix(in srgb,var(--bs-white) 72%,transparent);
}

.hp3-product-nav button {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-width: 0;
    padding: 7px 10px 18px;
    border: 0;
    border-radius: 0;
    background: transparent !important;
    box-shadow: none !important;
    color: color-mix(in srgb,var(--bs-white) 83%,transparent) !important;
    cursor: pointer;
    font: inherit;
    font-size: 17px;
    font-weight: 600;
    line-height: 1.25;
    text-align: center;
    transition: color 240ms ease;
}

.hp3-product-nav button + button::before {
    position: absolute;
    top: 18px;
    left: 0;
    width: 1px;
    height: 27px;
    background: color-mix(in srgb,var(--bs-white) 65%,transparent);
    content: "";
}

.hp3-product-nav button::after {
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 3px;
    background: var(--bs-energy-gradient);
    content: "";
    opacity: 0;
    transform: scaleX(0);
    transform-origin: left;
}

.hp3-product-nav button.is-active,
.hp3-product-nav button:hover,
.hp3-product-nav button:focus-visible {
    color: var(--bs-white) !important;
}
.hp3-product-nav button.is-active span {
    color: var(--bs-white);
    font-weight: 700;
}
.hp3-product-nav button.is-active .hp3-product-icon {
    color: var(--bs-green);
}

.hp3-product-nav button.is-active::after {
    opacity: 1;
    animation: hp3-product-progress var(--hp3-cycle) linear forwards;
}

.hp3-products[data-autoplay-paused] .hp3-product-nav button.is-active::after {
    animation: none;
    transform: scaleX(0);
}

@keyframes hp3-product-progress {
    from { transform: scaleX(0); }
    to { transform: scaleX(1); }
}

.hp3-product-icon {
    display: block;
    flex: none;
    width: 30px;
    height: 30px;
    color: currentColor;
}

@media (max-width: 1100px) {
    .hp3-products-inner { width: calc(100% - 60px); }
    .hp3-product-nav button { font-size: 15px; }
    .hp3-product-icon { width: 25px; height: 25px; }
}

@media (max-width: 767px) {
    .hp3-products { height: clamp(630px, 78svh, 740px); }
    .hp3-products-scenes img { object-position: 70% center; }
    .hp3-products-shade {
        background: linear-gradient(180deg, color-mix(in srgb,var(--bs-charcoal) 48%,transparent), color-mix(in srgb,var(--bs-charcoal) 24%,transparent) 48%, color-mix(in srgb,var(--bs-charcoal) 58%,transparent));
    }
    .hp3-products-inner { width: calc(100% - 34px); }
    .hp3-products-heading { padding-top: 48px; }
    .hp3-products-heading h2 { font-size: 29px; }
    .hp3-products-heading p { max-width: 310px; margin: 9px auto 0; font-size: 14px; line-height: 1.45; }
    .hp3-products-panels { width: 100%; margin-top: 72px; min-height: 0; }
    .hp3-product-panel h3 { margin-bottom: 14px; font-size: 24px; }
    .hp3-product-panel p { max-width: 320px; min-height: 0; margin-bottom: 20px; font-size: 14px; line-height: 1.5; }
    .hp3-product-panel a { font-size: 14px; }
    .hp3-product-panel a span { width: 36px; height: 36px; font-size: 21px; }
    .hp3-product-nav {
        bottom: 20px;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        min-height: 74px;
    }
    .hp3-product-nav button { flex-direction: column; gap: 5px; padding: 7px 3px 13px; font-size: 11px; line-height: 1.2; }
    .hp3-product-nav button + button::before { top: 14px; height: 40px; }
    .hp3-product-icon { width: 23px; height: 23px; }
}

@media (prefers-reduced-motion: reduce) {
    .hp3-products-scenes img,
    .hp3-products[data-in-view] .hp3-products-heading h2,
    .hp3-products[data-in-view] .hp3-products-heading p,
    .hp3-products[data-in-view] .hp3-product-panel.is-active h3,
    .hp3-products[data-in-view] .hp3-product-panel.is-active p,
    .hp3-products[data-in-view] .hp3-product-panel.is-active a,
    .hp3-product-nav button.is-active::after {
        animation: none;
        transition: none;
    }
    .hp3-product-nav button.is-active::after { transform: scaleX(1); }
}
