.well-bonus {
    --well-bonus-card-width: 220px;
    container: well-bonus / inline-size;
    inline-size: min(100%, 760px);
    margin: 32px auto;
    padding-inline: 12px;
    text-align: center;
    margin-bottom: -5px;

}

.well-bonus[hidden],
.well-bonus-total[hidden] { display: none; }

#well-bonus #well-bonus-title {
    margin: 0 0 18px !important;
    color: #171717;
    font-size: 14px !important;
}

#popup-app #well-bonus-title { font-size: 12px !important; }

.well-bonus-cards {
    display: grid;
    grid-template-columns: repeat(3, var(--well-bonus-card-width));
    justify-content: center;
    gap: 27px;
}

.well-bonus-card,
.well-bonus-card .well-bonus-action,
.well-bonus-input-slot input {
    box-shadow: 10px var(--offer-shadow-y, 10px) 7px 1px rgba(0, 0, 0, .25);
}

.well-bonus-card {
    display: flex;
    flex-direction: column;
    min-inline-size: 0;
    min-block-size: 282px;
    background: var(--brown-color, #b87549);
    border-radius: 10px;
}

.well-bonus-card .card-content {
    display: grid;
    grid-template-rows: 83px minmax(33px, auto) minmax(51px, 1fr) 47px 32px;
    justify-items: center;
    gap: 0;
    padding: 8px 12px 28px;
    color: #171717;
    line-height: 1.2;
}

.well-bonus-card .card-icon {
  inline-size: min(132px, 100%);
    block-size: 83px;
    margin: 0;
}

.well-bonus-card .card-icon img {
    inline-size: 100%;
    block-size: 100%;
    object-fit: contain;
    transform: scale(1.2);
}

.well-bonus-card .card-amount {
    min-block-size: 33px;
    align-items: baseline;
    align-self: center;
}

.well-bonus-card .amount-value { margin: 0; font-size: 24px; line-height: 1.2; }
.well-bonus-card[data-type="libre"] .amount-value { font-size: 20px; }
.well-bonus-card .amount-frequency { margin-inline-start: 5px; line-height: 1.2; }

.well-bonus-card .amount-info {
    display: grid;
    place-items: center;
    min-block-size: 2lh;
    margin: 0;
    line-height: 1.2;
}

.well-bonus-input-slot {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    align-self: start;
    inline-size: 100%;
    min-block-size: 32px;
}

.well-bonus-input-slot input {
    inline-size: min(100%, 112px);
    min-inline-size: 0;
    block-size: 32px;
    padding-block: 0 !important;
    line-height: 20px;
    text-align: center;
}

#well-bonus .well-bonus-input-slot input { font-size: 16px !important; }

.well-bonus-input-slot input::placeholder {
    position: relative;
    /* Center the smaller placeholder glyphs on the amount field. */
    inset-block-start: -2px;
    line-height: normal !important;
}

.well-bonus-card .well-bonus-action {
    display: grid;
    place-items: center;
    inline-size: min(100%, 112px);
    max-inline-size: 100%;
    min-block-size: 32px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 5px;
    background: #69aa53;
    cursor: pointer;
}

.well-bonus-action img { inline-size: 20px; block-size: 20px; filter: brightness(0) invert(1); }
.well-bonus-card .well-bonus-action[aria-pressed="true"] { background: var(--red-color, #a30404); }
.well-bonus-card :is(button, input):focus-visible { outline: 2px solid #004aad; outline-offset: 3px; }

.well-bonus-notice,
#well-bonus-feedback {
    margin: 16px 0 0;
    color: #171717;
    font-size: .875rem;
}

.well-bonus-notice { margin: 0 0 4rem; }

#well-bonus-feedback { color: #72100b; }
#well-bonus-feedback:empty { display: none; }
.well-bonus-line td { white-space: normal; }

#popup-app .well-bonus-popup-slot .well-bonus {
    inline-size: 100%;
    margin: 0 auto 22px;
    padding-inline: 0;
}

#popup-app .well-bonus-popup-slot .well-bonus-card {
    background: #d9d9d9;
}

.well-bonus-popup-slot .well-bonus-notice { font-size: 12px; }

.well-bonus-dots { display: none; }

@media (width > 1024px) {
    .well-bonus-notice { margin-top: 16px; }
    #popup-app .well-bonus-popup-slot .well-bonus-cards { margin-inline: -4rem; }
}

@media (width <= 1024px) {
    .well-bonus { inline-size: 100%; padding-inline: 0; }
    #pancarte_section .well-bonus-cards { --well-bonus-track-bleed: 50px; }
    #popup-app .well-bonus-popup-slot .well-bonus-cards { --well-bonus-track-bleed: 2rem; }
    /* Tailwind's md:px-16 starts at 768px, including the mobile boundary. */
    @media (min-width: 768px) {
        #popup-app .well-bonus-popup-slot .well-bonus-cards { --well-bonus-track-bleed: 4rem; }
    }
}

@media (width <= 1024px) {
    .well-bonus-cards {
        /* The track can reach the panel edges while the heading keeps its padding. */
        --well-bonus-track-bleed: 0px;
        --well-bonus-track-width: calc(100cqi + 2 * var(--well-bonus-track-bleed));
        --well-bonus-track-gutter: max(
            0px,
            calc((var(--well-bonus-track-width) - var(--well-bonus-card-width)) / 2)
        );
        display: flex;
        justify-content: start;
        margin-inline: calc(-1 * var(--well-bonus-track-bleed));
        padding-block: 3px 18px;
        padding-inline: var(--well-bonus-track-gutter);
        column-gap: max(50px, var(--well-bonus-track-gutter));
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        overscroll-behavior-x: contain;
        scrollbar-width: none;
    }
    .well-bonus-card {
        flex: 0 0 min(var(--well-bonus-card-width), 100%);
        scroll-snap-align: center;
        scroll-snap-stop: always;
    }
    .well-bonus-dots:not([hidden]) {
        display: flex;
        justify-content: center;
        margin-top: 0;
    }
    .well-bonus-dots button {
        display: grid;
        place-items: center;
        inline-size: 24px;
        block-size: 44px;
        padding: 0;
        border: 0;
        background: transparent;
        cursor: pointer;
    }
    .well-bonus-dots button::after {
        content: '';
        inline-size: 7px;
        block-size: 7px;
        border-radius: 50%;
        background: #767676;
    }
    .well-bonus-popup-slot .well-bonus-dots button::after {
        background: #fff;
    }
    .well-bonus-dots button[aria-current="true"]::after { transform: scale(1.6); }
    .well-bonus-dots button:focus-visible {
        outline: 2px solid #20439e;
        outline-offset: 4px;
    }

    @media (prefers-reduced-motion: no-preference) {
        .well-bonus-cards { scroll-behavior: smooth; }
    }
}

@media (768px <= width <= 1024px) {
    .well-bonus-cards {
        --well-bonus-pair-gap: max(22px, calc((var(--well-bonus-track-width) - 2 * var(--well-bonus-card-width)) / 3));
        --well-bonus-track-gutter: max(16px, calc((var(--well-bonus-track-width) - 2 * var(--well-bonus-card-width) - var(--well-bonus-pair-gap)) / 2));
        column-gap: var(--well-bonus-pair-gap);
        scroll-padding-inline: var(--well-bonus-track-gutter);
    }
    .well-bonus-card { scroll-snap-align: none; }
    .well-bonus-card:first-child { scroll-snap-align: start; }
    .well-bonus-card:last-child { scroll-snap-align: end; }
    .well-bonus-dots button:nth-child(2) { display: none; }
}

@media (max-width: 500px) {
    #pancarte_section .well-bonus-cards { --well-bonus-track-bleed: 24px; }
}
