/* Modern Cart 1.0.10 creates this element without the role its CSS requires.
 * Do not add a dialog role to a decorative backdrop. The cart is the dialog. */
html.moderncart-trigger-open .moderncart-modal-backdrop {
    position: fixed;
    inset: 0;
    background: rgb(5 19 34 / 58%);
    z-index: 2147482547;
}

#moderncart-slide-out-modal.moderncart-cart-style-slideout {
    --moderncart-primary-color: #2455f5;
    --moderncart-primary-color-light: #f3f6ff;
    --moderncart-heading-color: #10243f;
    --moderncart-header-font-color: #10243f;
    --moderncart-body-color: #43546a;
    --moderncart-button-font-color: #fff;
    --moderncart-background-color: #fff;
}

#moderncart-slide-out-modal.moderncart-cart-style-slideout #moderncart-slide-out {
    width: 460px;
    max-width: calc(100vw - 24px);
    height: 100vh;
    height: 100dvh;
    top: 0;
    box-shadow: -12px 0 48px rgb(5 19 34 / 20%);
}

/* Leave room for WordPress's toolbar when staff preview the storefront. */
body.admin-bar #moderncart-slide-out-modal.moderncart-cart-style-slideout #moderncart-slide-out {
    top: 32px;
    height: calc(100vh - 32px);
    height: calc(100dvh - 32px);
}
@media (max-width: 782px) {
    body.admin-bar #moderncart-slide-out-modal.moderncart-cart-style-slideout #moderncart-slide-out {
        top: 46px;
        height: calc(100vh - 46px);
        height: calc(100dvh - 46px);
    }
}

#moderncart-slide-out .moderncart-panel {
    height: 100%;
    min-height: 0;
}

#moderncart-slide-out .moderncart-slide-out-header,
#moderncart-slide-out .moderncart-slide-out-footer {
    flex-shrink: 0;
}

#moderncart-slide-out .moderncart-slide-out-cart {
    min-height: 0;
    flex: 1 1 auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
}

#moderncart-slide-out .moderncart-slide-out-header-heading {
    padding: 18px 24px;
    gap: 12px;
}

#moderncart-slide-out .moderncart-slide-out-header-title {
    text-align: left;
    width: auto;
    flex: 1;
}

#moderncart-slide-out .moderncart-slide-out-header-title span {
    font-family: Archivo, sans-serif;
    font-size: 22px;
    font-weight: 700;
}

#moderncart-slide-out-modal #moderncart-slide-out .moderncart-slide-out-header-quantity {
    background: #edf2fa;
    color: #10243f;
    border-radius: 20px;
    min-width: 28px;
    text-align: center;
    font-size: 13px;
}

#moderncart-slide-out .moderncart-slide-out-header-close {
    order: 3;
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    max-width: 40px;
    max-height: 40px;
    position: relative;
    border-radius: 50%;
}

#moderncart-slide-out .moderncart-slide-out-header-close svg { display: none; }
#moderncart-slide-out .moderncart-slide-out-header-close::before,
#moderncart-slide-out .moderncart-slide-out-header-close::after {
    content: '';
    position: absolute;
    width: 18px;
    height: 2px;
    background: currentColor;
    transform: rotate(45deg);
}
#moderncart-slide-out .moderncart-slide-out-header-close::after { transform: rotate(-45deg); }

#moderncart-slide-out :is(button, a, input, [role="button"]):focus-visible {
    outline: 2px solid #2455f5 !important;
    outline-offset: 3px;
}

#moderncart-slide-out .moderncart-cart-item {
    padding: 24px;
    border-bottom: 1px solid #edf0f5;
}
#moderncart-slide-out-modal.moderncart-cart-theme-style1 .moderncart-cart-item {
    display: block;
}
#moderncart-slide-out .moderncart-cart-item-container {
    display: flex;
    gap: 16px;
    width: 100%;
}
#moderncart-slide-out .moderncart-cart-item-product { min-width: 0; }
#moderncart-slide-out-modal.moderncart-cart-theme-style1 .moderncart-cart-item-actions {
    margin-left: 80px;
    width: auto;
    max-width: none;
}
#moderncart-slide-out .moderncart-cart-item-product-link a {
    color: #10243f;
    font-size: 15px;
    line-height: 1.4;
    white-space: normal;
    overflow-wrap: anywhere;
}
#moderncart-slide-out .moderncart-cart-item-image {
    width: 64px;
    min-width: 64px;
}
#moderncart-slide-out .moderncart-cart-item-image img {
    width: 64px;
    height: 76px;
    object-fit: contain;
}
#moderncart-slide-out .moderncart-cart-item-image:has(img) {
    display: block !important; /* Keep thumbnails in the phone layout as well. */
}
#moderncart-slide-out-modal.moderncart-cart-theme-style1 .moderncart-cart-item-quantity-selector {
    margin-top: 10px;
}
#moderncart-slide-out-modal.moderncart-cart-theme-style1 .moderncart-cart-item-quantity {
    display: inline-flex;
    flex-direction: row;
    border: 1px solid #dae2ec;
    border-radius: 8px;
    overflow: hidden;
}
#moderncart-slide-out .moderncart-cart-item-quantity :focus-visible {
    outline-offset: -3px; /* The rounded quantity group clips outside outlines. */
}
#moderncart-slide-out-modal.moderncart-cart-theme-style1 .quantity__button--down { order: 0; }
#moderncart-slide-out-modal.moderncart-cart-theme-style1 .quantity__button--up { order: 2; }
#moderncart-slide-out-modal.moderncart-cart-theme-style1 .moderncart-quantity__input { order: 1; }
#moderncart-slide-out-modal.moderncart-cart-theme-style1 :is(.quantity__button--up, .quantity__button--down) {
    width: 32px;
    height: 34px;
}
#moderncart-slide-out-modal.moderncart-cart-theme-style1 input.moderncart-quantity__input {
    height: 34px;
    max-height: none;
    border: 0;
}
#moderncart-slide-out .moderncart-slide-out-footer {
    background: #fff;
    box-shadow: 0 -5px 20px rgb(16 36 63 / 5%);
    border-top: 1px solid #e5eaf1;
    padding-bottom: max(16px, env(safe-area-inset-bottom));
    max-height: 55vh;
    max-height: 55dvh;
    overflow-y: auto;
}
#moderncart-slide-out .moderncart-slide-out-footer .moderncart-have-coupon-code-area {
    padding: 14px 24px;
    color: #43546a;
    font-size: 13px;
}
/* Long coupon errors must push totals down, not spill out of the accordion. */
#moderncart-slide-out .moderncart-slide-out-coupon:not(.moderncart-hide) {
    max-height: none;
}
#moderncart-slide-out .moderncart-slide-out-coupon .moderncart-notification {
    overflow-wrap: anywhere;
}
#moderncart-slide-out .moderncart-slide-out-footer .moderncart-cart-total .moderncart-cart-line-items-item {
    padding: 18px 24px;
    color: #10243f;
}
/* Final totals belong on checkout. Keep the drawer's subtotal and savings. */
#moderncart-slide-out .moderncart-slide-out-footer .moderncart-cart-total .moderncart-cart-line-items__total {
    display: none;
}
#moderncart-slide-out .moderncart-slide-out-footer .moderncart-cart-total .wc-proceed-to-checkout {
    padding: 8px 24px 0;
}
#moderncart-slide-out .moderncart-slide-out-footer .moderncart-cart-total a.checkout-button {
    background: #2455f5;
    border-radius: 10px;
    font-size: 16px;
    padding: 17px 12px;
    box-shadow: 0 4px 12px rgb(36 85 245 / 16%);
}
#moderncart-slide-out .moderncart-slide-out-footer .moderncart-cart-total a.checkout-button:hover {
    background: #1943d4;
}
@media (max-width: 500px) {
    #moderncart-slide-out .moderncart-slide-out-header-heading { padding: 12px 16px; }
    #moderncart-slide-out .moderncart-cart-item { padding: 18px 16px; }
    #moderncart-slide-out .moderncart-slide-out-header-title span { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
    #moderncart-slide-out-modal #moderncart-slide-out { transition: none; }
}
