.bottom-sheet--checkout-review .bottom-sheet__body {
    overflow-x: hidden;
}

.bottom-sheet--checkout-review .checkout-payment-flow,
.bottom-sheet--checkout-review .bottom-sheet-review__prices,
.bottom-sheet--checkout-review .stripe-payment {
    width: min(100%, 36rem);
    margin-inline: auto;
}

.checkout-payment-flow,
.checkout-payment-flow__entry,
.checkout-payment-flow__result {
    min-width: 0;
    max-width: 100%;
}

.checkout-payment-flow__entry {
    display: grid;
    gap: var(--space-4);
}

.checkout-payment-flow__result {
    display: grid;
    justify-items: center;
    gap: var(--space-4);
    padding-block: var(--space-4);
    text-align: center;
    overflow-wrap: anywhere;
}

.checkout-payment-flow__entry[hidden],
.checkout-payment-flow__result[hidden],
.checkout-payment-flow__content-link[hidden],
.checkout-payment-flow__retry[hidden] {
    display: none;
}

.checkout-payment-flow__result:focus-visible {
    /* Focus is moved here programmatically for assistive technologies. */
    /* Interactive descendants retain the shared bottom-sheet focus ring. */
    outline: 0;
}

.checkout-payment-flow__title,
.checkout-payment-flow__message {
    margin: 0;
}

.checkout-payment-flow__icon {
    display: grid;
    place-items: center;
    width: 3.5rem;
    height: 3.5rem;
    border: 2px solid currentColor;
    border-radius: 50%;
    font-size: 2rem;
    line-height: 1;
}

.checkout-payment-flow__result[data-payment-state="checking"] .checkout-payment-flow__icon {
    border-top-color: transparent;
    animation: checkout-payment-spin .9s linear infinite;
}

.checkout-payment-flow__result[data-payment-state="approved"] .checkout-payment-flow__icon::before {
    content: "✓";
}

.checkout-payment-flow__result[data-payment-state="refused"] .checkout-payment-flow__icon::before {
    content: "×";
}

.checkout-payment-flow__result[data-payment-state="terminal"] .checkout-payment-flow__icon::before {
    content: "!";
}

.checkout-payment-flow__result[data-payment-state="manual"] .checkout-payment-flow__icon::before {
    content: "?";
}

.checkout-payment-flow__content-link,
.checkout-payment-flow__retry {
    width: min(100%, 22rem);
    white-space: normal;
}

@keyframes checkout-payment-spin {
    to { transform: rotate(1turn); }
}

.bottom-sheet-review__prices--embedded-stripe {
    margin-bottom: var(--space-2);
}

.stripe-payment,
.stripe-payment__form,
.stripe-payment__element {
    min-width: 0;
    width: 100%;
}

.stripe-payment {
    display: grid;
    gap: var(--space-4);
    overflow-x: clip;
}

.stripe-payment__title {
    margin: 0;
    font-size: var(--primitive-font-base);
    font-weight: 600;
}

.stripe-payment__live-total {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-3);
    margin: 0;
    padding-block: var(--space-3);
    border-block: 1px solid var(--color-separator);
    font-weight: 700;
    text-transform: uppercase;
}

.stripe-payment__live-total strong {
    flex: 0 0 auto;
}

.stripe-payment__form {
    display: grid;
    gap: var(--space-4);
}

.stripe-payment__element iframe {
    max-width: 100%;
}

.stripe-payment__status,
.stripe-payment__error,
.stripe-payment__secured {
    max-width: 100%;
    margin: 0;
    overflow-wrap: anywhere;
}

.stripe-payment__status,
.stripe-payment__secured {
    color: var(--color-text);
    font-size: var(--primitive-font-base);
    text-align: center;
}

.stripe-payment__error {
    color: var(--color-danger);
    font-size: var(--primitive-font-average);
}

.stripe-payment__submit {
    width: 100%;
    white-space: normal;
}

.stripe-payment__submit[disabled] {
    cursor: wait;
    opacity: .58;
}

@media (max-width: 22rem) {
    .checkout-payment-flow__entry,
    .checkout-payment-flow__result,
    .stripe-payment,
    .stripe-payment__form {
        gap: var(--space-3);
    }
}

@media (prefers-reduced-motion: reduce) {
    .checkout-payment-flow__result[data-payment-state="checking"] .checkout-payment-flow__icon {
        border-top-color: currentColor;
        animation: none;
    }

    .checkout-payment-flow__result[data-payment-state="checking"] .checkout-payment-flow__icon::before {
        content: "…";
    }
}
