/* MPA Cart Lab 1.0.1 — authoritative storefront runtime geometry. */
.dcp-root .dcp-drawer {
    height:100vh !important;
    height:100dvh !important;
    min-height:0 !important;
    overflow:visible !important;
}
.dcp-root .dcp-cart-pane {
    display:flex !important;
    width:100% !important;
    min-width:0 !important;
    height:100% !important;
    min-height:0 !important;
    flex-direction:column !important;
    overflow:hidden !important;
}
.dcp-root .dcp-header,
.dcp-root .dcp-reward,
.dcp-root .dcp-status,
.dcp-root .dcp-summary { flex:0 0 auto !important; }
.dcp-root .dcp-body {
    flex:1 1 0 !important;
    min-height:0 !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    overscroll-behavior:contain !important;
}
.dcp-root .dcp-summary:not([hidden]) {
    position:relative !important;
    inset:auto !important;
    display:block !important;
    width:100% !important;
    max-height:min(52dvh,620px) !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    visibility:visible !important;
    opacity:1 !important;
}
@media (min-width:621px) {
    .dcp-root.dcp-recs-side-panel .dcp-cart-pane {
        position:relative !important;
        z-index:4 !important;
        isolation:isolate !important;
    }
    .dcp-root.dcp-recs-side-panel .dcp-recommendations-companion {
        --dcp-recs-companion-duration:360ms;
        --dcp-recs-companion-easing:cubic-bezier(.2,.76,.2,1);
        position:absolute !important;
        top:0 !important;
        right:100% !important;
        bottom:0 !important;
        left:auto !important;
        z-index:3 !important;
        display:block !important;
        width:calc(var(--dcp-recs-active-width) + var(--dcp-recs-trigger-width)) !important;
        height:100% !important;
        overflow:visible !important;
        pointer-events:none !important;
        transform:translate3d(var(--dcp-recs-active-width),0,0) !important;
        transition:transform var(--dcp-recs-companion-duration,480ms) var(--dcp-recs-companion-easing,cubic-bezier(.16,.82,.2,1)) !important;
        backface-visibility:hidden !important;
        contain:layout style !important;
        will-change:transform !important;
    }
    .dcp-root.dcp-side-left.dcp-recs-side-panel .dcp-recommendations-companion {
        right:auto !important;
        left:100% !important;
        transform:translate3d(calc(0px - var(--dcp-recs-active-width)),0,0) !important;
    }
    .dcp-root.dcp-recs-side-panel.is-recommendations-open .dcp-recommendations-companion,
    .dcp-root.dcp-side-left.dcp-recs-side-panel.is-recommendations-open .dcp-recommendations-companion { transform:translate3d(0,0,0) !important; }
    .dcp-root.dcp-recs-side-panel .dcp-recommendations-companion[hidden] { display:none !important; }
    .dcp-root.dcp-recs-side-panel .dcp-recommendations-companion .dcp-rail {
        position:absolute !important;
        top:0 !important;
        right:0 !important;
        bottom:0 !important;
        left:auto !important;
        z-index:1 !important;
        display:flex !important;
        width:var(--dcp-recs-active-width) !important;
        min-width:0 !important;
        height:100% !important;
        overflow:visible !important;
        opacity:1 !important;
        visibility:visible !important;
        pointer-events:none !important;
        transform:none !important;
        clip-path:none !important;
        transition:box-shadow 220ms ease !important;
    }
    .dcp-root.dcp-side-left.dcp-recs-side-panel .dcp-recommendations-companion .dcp-rail {
        right:auto !important;
        left:0 !important;
        clip-path:none !important;
    }
    .dcp-root.dcp-recs-side-panel.is-recommendations-open .dcp-recommendations-companion .dcp-rail,
    .dcp-root.dcp-side-left.dcp-recs-side-panel.is-recommendations-open .dcp-recommendations-companion .dcp-rail {
        clip-path:none !important;
        pointer-events:auto !important;
    }
    .dcp-root.dcp-recs-side-panel .dcp-recommendations-companion .dcp-recommendations-trigger {
        position:absolute !important;
        top:50% !important;
        right:100% !important;
        left:auto !important;
        z-index:2 !important;
        opacity:1 !important;
        visibility:visible !important;
        pointer-events:auto !important;
        transform:translate3d(0,-50%,0) !important;
        transition:background-color 180ms ease,border-color 180ms ease,color 180ms ease,box-shadow 220ms ease !important;
    }
    .dcp-root.dcp-side-left.dcp-recs-side-panel .dcp-recommendations-companion .dcp-recommendations-trigger {
        right:auto !important;
        left:100% !important;
        transform:translate3d(0,-50%,0) !important;
    }
    .dcp-root.dcp-recs-side-panel .dcp-recommendations[aria-hidden="true"] {
        opacity:0 !important;
        pointer-events:none !important;
        transform:translate3d(8px,0,0) !important;
        transition:opacity 150ms ease,transform 190ms var(--dcp-recs-companion-easing,cubic-bezier(.2,.76,.2,1)) !important;
    }
    .dcp-root.dcp-side-left.dcp-recs-side-panel .dcp-recommendations[aria-hidden="true"] {
        transform:translate3d(-8px,0,0) !important;
    }
    .dcp-root.dcp-recs-side-panel.is-recommendations-open .dcp-recommendations[aria-hidden="false"] {
        opacity:1 !important;
        pointer-events:auto !important;
        transform:translate3d(0,0,0) !important;
        transition:opacity 150ms ease 45ms,transform 190ms var(--dcp-recs-companion-easing,cubic-bezier(.2,.76,.2,1)) 45ms !important;
    }
}
@media (max-width:620px) {
    .dcp-root .dcp-recommendations-companion { display:none !important; }
    /* Each recommendation is its own card: the mobile rail has no outer pill. */
    .dcp-root [data-dcp-mobile-recommendations-shell],
    .dcp-root .dcp-mobile-recommendations,
    .dcp-root .dcp-mobile-recommendations .dcp-recommendations--mobile {
        max-width:none !important;
        border:0 !important;
        border-radius:0 !important;
        background:transparent !important;
        box-shadow:none !important;
    }
    .dcp-root [data-dcp-mobile-recommendations-shell],
    .dcp-root .dcp-mobile-recommendations {
        box-sizing:border-box !important;
        width:100% !important;
        margin:8px 0 0 !important;
        padding:0 !important;
        overflow:visible !important;
    }
    .dcp-root .dcp-mobile-recommendations__heading {
        margin:0 2px 7px !important;
        padding:0 !important;
        border:0 !important;
        background:transparent !important;
    }
    .dcp-root .dcp-mobile-recommendations .dcp-recommendations--mobile:not([hidden]) {
        display:grid !important;
        width:auto !important;
        margin:0 !important;
        padding:2px 24px 12px 2px !important;
        grid-auto-flow:column !important;
        grid-auto-columns:minmax(242px,86%) !important;
        grid-template-columns:none !important;
        gap:11px !important;
        overflow-x:auto !important;
        overflow-y:visible !important;
        scroll-padding-inline:2px 24px !important;
        scroll-snap-type:x proximity !important;
        scrollbar-width:none !important;
        -webkit-mask-image:none !important;
        mask-image:none !important;
    }
    .dcp-root .dcp-mobile-recommendations .dcp-recommendations--mobile:not([hidden])[data-recommendation-style="premium-carousel"],
    .dcp-root .dcp-mobile-recommendations .dcp-recommendations--mobile:not([hidden])[data-recommendation-style="compact-snap"],
    .dcp-root .dcp-mobile-recommendations .dcp-recommendations--mobile:not([hidden])[data-recommendation-style="stack"] {
        display:grid !important;
        grid-auto-flow:column !important;
        grid-auto-columns:minmax(238px,86%) !important;
        grid-template-columns:none !important;
        grid-template-rows:1fr !important;
        overflow-x:auto !important;
        overflow-y:hidden !important;
        touch-action:pan-x !important;
    }
    .dcp-root .dcp-mobile-recommendations .dcp-recommendations--mobile::-webkit-scrollbar { display:none !important; }
    .dcp-root .dcp-mobile-recommendations .dcp-recommendation {
        display:grid !important;
        box-sizing:border-box !important;
        width:100% !important;
        height:144px !important;
        margin:0 !important;
        padding:7px !important;
        grid-template-columns:82px minmax(0,1fr) !important;
        grid-template-rows:minmax(24px,1fr) auto !important;
        grid-template-areas:"image content" "image action" !important;
        gap:6px 8px !important;
        overflow:visible !important;
        border:1px solid var(--dcp-border) !important;
        border-radius:14px !important;
        background:var(--dcp-surface,#fff) !important;
        box-shadow:0 8px 22px rgb(15 23 42 / 7%) !important;
        scroll-snap-align:start !important;
    }
    .dcp-root .dcp-mobile-recommendations .dcp-recommendation__image {
        grid-area:image !important;
        width:82px !important;
        height:128px !important;
        border-radius:9px !important;
    }
    .dcp-root .dcp-mobile-recommendations .dcp-recommendation__content { grid-area:content !important; }
    .dcp-root .dcp-mobile-recommendations .dcp-recommendation__actions {
        grid-area:action !important;
        display:grid !important;
        width:100% !important;
        grid-template-columns:1fr !important;
        gap:5px !important;
    }
    .dcp-root .dcp-mobile-recommendations .dcp-recommendation__actions > * {
        box-sizing:border-box !important;
        width:100% !important;
        min-width:0 !important;
        min-height:34px !important;
        height:34px !important;
        padding:0 8px !important;
        border-radius:9px !important;
    }
    .dcp-root .dcp-mobile-recommendations .dcp-recommendation__secondary[data-content="icon"] {
        display:inline-grid !important;
        width:100% !important;
        min-width:34px !important;
        min-height:34px !important;
        place-items:center !important;
        padding:0 !important;
    }
}

@media (prefers-reduced-motion:reduce) {
    .dcp-root .dcp-recommendations-companion,
    .dcp-root .dcp-recommendations { transition:none !important; }
}

/* 1.0.0 baseline: the saved side is explicit and mobile cross-sells are a
   shelf of independent cards without an outer pill/card surface. */
.dcp-root.dcp-side-right .dcp-drawer {
    right:0 !important;
    left:auto !important;
}
.dcp-root.dcp-side-left .dcp-drawer {
    right:auto !important;
    left:0 !important;
}
.dcp-root[data-drawer-side="right"] .dcp-drawer,
.dcp-root[data-drawer-side="right"] .dcp-drawer[data-dcp-authoritative-side="right"] {
    right:0 !important;
    left:auto !important;
}
.dcp-root[data-drawer-side="left"] .dcp-drawer,
.dcp-root[data-drawer-side="left"] .dcp-drawer[data-dcp-authoritative-side="left"] {
    right:auto !important;
    left:0 !important;
}
@media (max-width:620px) {
    .dcp-root .dcp-mobile-recommendations:not([hidden]) {
        margin:6px 0 8px !important;
        padding:0 1px 3px !important;
        overflow:hidden !important;
        border:0 !important;
        border-radius:0 !important;
        background:transparent !important;
        box-shadow:none !important;
    }
    .dcp-root .dcp-mobile-recommendations__heading {
        margin:0 2px 8px !important;
    }
    .dcp-root .dcp-mobile-recommendations .dcp-recommendations--mobile:not([hidden]) {
        padding:1px 1px 5px !important;
        gap:10px !important;
        background:transparent !important;
        -webkit-mask-image:none !important;
        mask-image:none !important;
    }
    .dcp-root .dcp-mobile-recommendations .dcp-recommendation {
        border:1px solid color-mix(in srgb,var(--dcp-border) 86%,transparent) !important;
        border-radius:14px !important;
        background:var(--dcp-surface) !important;
        box-shadow:0 9px 24px rgb(15 23 42 / 9%) !important;
    }
    .dcp-root .dcp-mobile-recommendations .dcp-recommendation__name,
    .dcp-root .dcp-mobile-recommendations .dcp-recommendation__secondary {
        color:var(--dcp-text) !important;
    }
}

/* 1.0.1 connection contract: the shelf owns horizontal movement, while each
   product card owns and contains its controls. No cross-sell may create a
   second vertical scroller inside the cart. */
.dcp-root .dcp-recommendation,
.dcp-root .dcp-recommendation__content,
.dcp-root .dcp-recommendation__actions {
    min-width:0 !important;
}
.dcp-root .dcp-recommendation__content {
    overflow-wrap:anywhere;
}
.dcp-root .dcp-recommendation__actions {
    display:grid !important;
    box-sizing:border-box !important;
    width:100% !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px !important;
}
.dcp-root .dcp-recommendation__actions > * {
    box-sizing:border-box !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    min-height:40px !important;
    height:40px !important;
    margin:0 !important;
    padding-inline:10px !important;
    overflow:hidden !important;
}
.dcp-root .dcp-recommendation__action-label,
.dcp-root .dcp-recommendation__secondary > span:not(.dcp-recommendation__action-icon) {
    min-width:0 !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
}
.dcp-root .dcp-recommendation__action-icon {
    flex:0 0 auto !important;
}

@media (max-width:620px) {
    .dcp-root [data-dcp-mobile-recommendations-shell],
    .dcp-root .dcp-mobile-recommendations:not([hidden]) {
        width:100% !important;
        max-width:none !important;
        margin:8px 0 6px !important;
        padding:0 !important;
        overflow:visible !important;
    }
    .dcp-root .dcp-mobile-recommendations .dcp-recommendations--mobile:not([hidden]) {
        --dcp-mobile-shelf-peek:18px;
        display:grid !important;
        box-sizing:border-box !important;
        width:calc(100% + var(--dcp-mobile-shelf-peek)) !important;
        max-width:none !important;
        margin:0 calc(0px - var(--dcp-mobile-shelf-peek)) 0 0 !important;
        padding:4px var(--dcp-mobile-shelf-peek) 12px 2px !important;
        grid-auto-flow:column !important;
        grid-auto-columns:minmax(238px,86%) !important;
        grid-template-columns:none !important;
        grid-template-rows:1fr !important;
        gap:10px !important;
        overflow-x:auto !important;
        overflow-y:hidden !important;
        overscroll-behavior-x:contain !important;
        overscroll-behavior-y:none !important;
        scroll-padding-inline:2px var(--dcp-mobile-shelf-peek) !important;
        scroll-snap-type:x mandatory !important;
        scrollbar-width:none !important;
        touch-action:pan-x !important;
        -webkit-overflow-scrolling:touch;
        -webkit-mask-image:none !important;
        mask-image:none !important;
    }
    .dcp-root .dcp-mobile-recommendations .dcp-recommendation {
        display:grid !important;
        box-sizing:border-box !important;
        width:100% !important;
        min-width:0 !important;
        height:126px !important;
        min-height:126px !important;
        max-height:126px !important;
        padding:7px !important;
        grid-template-columns:68px minmax(0,1fr) !important;
        grid-template-rows:minmax(26px,1fr) 36px !important;
        grid-template-areas:"image content" "image action" !important;
        gap:7px 9px !important;
        overflow:hidden !important;
        scroll-snap-align:start !important;
        scroll-snap-stop:always;
    }
    .dcp-root .dcp-mobile-recommendations .dcp-recommendation__image {
        width:68px !important;
        height:112px !important;
    }
    .dcp-root .dcp-mobile-recommendations .dcp-recommendation__content {
        align-self:stretch !important;
        overflow:hidden !important;
    }
    .dcp-root .dcp-mobile-recommendations .dcp-recommendation__actions {
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        gap:6px !important;
    }
    .dcp-root .dcp-mobile-recommendations .dcp-recommendation__actions > *,
    .dcp-root .dcp-mobile-recommendations .dcp-recommendation__secondary[data-content="icon"] {
        width:100% !important;
        min-width:0 !important;
        max-width:100% !important;
        min-height:36px !important;
        height:36px !important;
        padding-inline:8px !important;
        border-radius:9px !important;
    }
}

/* Final mobile authority: the rail scrolls on one horizontal axis, but its
   complete compact cards remain visible inside the checkout shelf. */
@media (max-width:620px) {
    .dcp-root [data-dcp-mobile-recommendations-shell],
    .dcp-root .dcp-mobile-recommendations:not([hidden]) {
        min-height:0 !important;
        max-height:142px !important;
        overflow:visible !important;
    }
    .dcp-root .dcp-mobile-recommendations .dcp-recommendations--mobile:not([hidden]) {
        min-height:134px !important;
        max-height:134px !important;
        overflow-x:auto !important;
        overflow-y:hidden !important;
    }
    .dcp-root[data-drawer-side="right"] .dcp-drawer {
        inset:0 0 0 auto !important;
    }
    .dcp-root[data-drawer-side="left"] .dcp-drawer {
        inset:0 auto 0 0 !important;
    }
}

@media (max-width:340px) {
    .dcp-root .dcp-mobile-recommendations .dcp-recommendations--mobile:not([hidden]) {
        grid-auto-columns:minmax(224px,90%) !important;
    }
    .dcp-root .dcp-mobile-recommendations .dcp-recommendation {
        grid-template-columns:72px minmax(0,1fr) !important;
    }
    .dcp-root .dcp-mobile-recommendations .dcp-recommendation__image {
        width:72px !important;
    }
}

@media (prefers-reduced-motion:reduce) {
    .dcp-root .dcp-mobile-recommendations .dcp-recommendations--mobile {
        scroll-behavior:auto !important;
    }
}

/* 1.0.2 coupon typography is one setting contract from studio to storefront. */
.dcp-root .dcp-coupon summary {
    font-size:var(--dcp-coupon-heading-font-size,13px) !important;
    font-weight:var(--dcp-coupon-heading-weight,650) !important;
    line-height:1.35 !important;
}
.dcp-root .dcp-coupon form input {
    font-size:var(--dcp-coupon-field-font-size,13px) !important;
    font-weight:var(--dcp-coupon-field-weight,400) !important;
}
.dcp-root .dcp-coupon__apply {
    font-size:var(--dcp-coupon-button-font-size,13px) !important;
}

/* Final mobile footer authority: keep coupon and cross-sells useful without
   consuming the product-list viewport. Horizontal cards remain complete. */
@media (max-width:620px) {
    .dcp-root .dcp-summary:not([hidden]) {
        max-height:min(46dvh,500px) !important;
        padding:8px 12px calc(9px + env(safe-area-inset-bottom)) !important;
        overscroll-behavior:contain !important;
    }
    .dcp-root .dcp-coupon {
        margin:0 0 6px !important;
        padding:0 8px !important;
    }
    .dcp-root .dcp-coupon summary {
        min-height:36px !important;
        padding:8px 0 !important;
    }
    .dcp-root .dcp-coupon form {
        gap:6px !important;
        padding:0 0 8px !important;
    }
    .dcp-root [data-dcp-mobile-recommendations-shell],
    .dcp-root .dcp-mobile-recommendations:not([hidden]) {
        max-height:124px !important;
        margin:4px 0 !important;
    }
    .dcp-root .dcp-mobile-recommendations__heading {
        margin-bottom:4px !important;
    }
    .dcp-root .dcp-mobile-recommendations .dcp-recommendations--mobile:not([hidden]) {
        min-height:116px !important;
        max-height:116px !important;
        padding-block:2px 6px !important;
    }
    .dcp-root .dcp-mobile-recommendations .dcp-recommendation {
        height:108px !important;
        min-height:108px !important;
        max-height:108px !important;
        padding:6px !important;
        grid-template-columns:60px minmax(0,1fr) !important;
        grid-template-rows:minmax(24px,1fr) 32px !important;
        gap:5px 7px !important;
    }
    .dcp-root .dcp-mobile-recommendations .dcp-recommendation__image {
        width:60px !important;
        height:96px !important;
    }
    .dcp-root .dcp-mobile-recommendations .dcp-recommendation__actions > *,
    .dcp-root .dcp-mobile-recommendations .dcp-recommendation__secondary[data-content="icon"] {
        min-height:32px !important;
        height:32px !important;
        padding-inline:7px !important;
    }
    .dcp-root .dcp-checkout {
        margin-top:6px !important;
    }
    .dcp-root .dcp-secondary-actions,
    .dcp-root .dcp-trust {
        margin-top:6px !important;
    }
}
