.cart__content {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.cart__notice {
    padding-top: var(--space-x4);
}

.cart__resource-failure {
    display: flex;
    flex-direction: column;
    gap: var(--space);
    align-items: center;
    justify-content: center;
    color: var(--theme-text-10);
}

.cart__resource-failure-loader {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;

    /* This height is the same height as the failed to load resource section to prevent layout shift */
    height: 88px;
}

.cart__retry-button {
    color: var(--theme-warning-text) !important;
}

.cart-warning-icon {
    color: var(--theme-warning-fill);
    fill: var(--theme-warning-fill);
}

.cart__header {
    display: flex;
    justify-content: space-between;
}

.cart__item-content {
    display: flex;
    flex-direction: row;
    gap: var(--space-x2);
    margin-bottom: var(--space-x1_5);
}

.cart__item:not(.cart__item--last) {
    padding: var(--space-x4) 0;
    border-bottom: 1px solid var(--theme-divider-20);
}

.cart__item--last {
    padding-top: var(--space-x4);
}

.cart__item-thumbnail {
    display: inline-block;
}

.cart__item-image {
    --cart-image-width: 64px;

    position: relative;
    width: var(--cart-image-width);
    height: var(--cart-image-width);
    margin-top: var(--space-half);
    overflow: hidden;
    background-color: var(--theme-body-color);
    border: 1px solid var(--theme-divider-20);
    border-radius: var(--theme-border-radius-image);
}

.cart__item-image::after {
    display: block;
    padding-bottom: 100%;
    content: "";
}

.cart__item-image img {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 0%;
}

.cart__item-clamp-text {
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    display: -webkit-box;
    overflow: hidden;
    font: inherit;
    word-break: break-all;
}

.cart__item-modifier-name-wrapper {
    display: flex;
    gap: var(--space-half);
    align-items: center;
    height: max-content;
}

.cart__item-modifier-price {
    text-wrap: nowrap;
}

.cart__item-info {
    display: flex;
    flex-direction: row;
    gap: var(--space-half);
    justify-content: space-between;
}

/* stylelint-disable-next-line no-descending-specificity */
.cart__item-name,
.cart__item-name a {
    font: var(--theme-paragraph-30-medium);
    color: var(--theme-text-10);
    text-decoration: none;
    letter-spacing: var(--theme-paragraph-30-letter-spacing);
    white-space: initial;
}

.cart__item-name a:hover {
    text-decoration: underline;
}

.cart__item-preorder {
    display: flex;
    gap: var(--space-half);
    align-items: center;
    font: var(--theme-paragraph-20);
    color: var(--theme-warning-text);
    letter-spacing: var(--theme-paragraph-20-letter-spacing);
}

.cart__item-variation {
    display: flex;
    gap: var(--space-half);
    font: var(--theme-paragraph-20);
    color: var(--theme-text-20);
    letter-spacing: var(--theme-paragraph-20-letter-spacing);
}

.cart__item-modifier-list-name {
    display: flex;
    gap: var(--space-half);
    margin-top: var(--space);
    margin-bottom: 2px;
    font: var(--theme-paragraph-20);
    letter-spacing: var(--theme-paragraph-20-letter-spacing);
}

.cart__item-discount {
    display: flex;
    gap: var(--space-half);
    font: var(--theme-paragraph-20);
    color: var(--theme-success-fill);
    text-transform: capitalize;
    letter-spacing: var(--theme-paragraph-20-letter-spacing);
}

.cart__item-price {
    margin-left: auto;
}

.cart__item-stepper .form-stepper__input {
    margin-right: var(--space-half);
    margin-left: var(--space-half);
}

.ui-price--cart-item-price {
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    font-weight: var(--theme-font-weight-medium);
}

.cart__item-price .ui-price__final {
    color: var(--theme-text-10);
}

.cart__item-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.cart__item-quantity {
    padding: var(--space) 0;
}

.cart__item-errors {
    margin-top: var(--space-x2);
}

.cart__empty {
    margin: var(--space-x3) auto;
    font-weight: var(--theme-font-weight-semibold);
    text-align: center;
}

@media (max-width: 699px) {
    .cart__empty {
        max-width: 240px;
    }
}

.cart__alcohol-warning {
    margin-top: var(--space-x2);
}

.cart__total-divider {
    color: var(--theme-divider-20);
    border-style: dashed;
}

.cart-total {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-top: var(--space-x2);
    margin-bottom: var(--space-x2);
}

.cart-total__text {
    display: flex;
    flex-direction: column;
}

@keyframes alternate-content-with-fade-in-out {
    0% {
        opacity: 0;
    }

    6.25%, 43.75% {
        opacity: 0.7;
    }

    50%, 100% {
        opacity: 0;
    }
}

.view-order-button__content {
    display: flex;
    flex-direction: row;
    gap: var(--space);
    justify-content: center;
}

.view-order-button__animation-wrapper {
    /* Best guess at how wide the absolutely positioned animation will be so that things can be kind of centered */
    min-width: 50px;
    text-align: left;
}

.view-order-button__animation {
    position: absolute;
    opacity: 0;
    animation-name: alternate-content-with-fade-in-out;

    /* Fade in (500ms) --> Show (3 seconds) --> Fade out (500ms) --> Hidden (4 seconds) --> Repeat */
    animation-duration: 8s;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    animation-fill-mode: forwards;
}

.view-order-button__animation--money {
    animation-delay: 0s;
}

.view-order-button__animation--quantity {
    animation-delay: 4s;
}

