.dd-cart-drawer {
    display       : flex;
    flex-direction: column;
    max-height    : calc(100vh - 96px);
    overflow      : hidden
}

.dd-cart-head {
    flex: 0 0 auto
}

.dd-cart-content {
    overflow: auto;
    flex    : 1;
    padding : 0 !important
}

.cart51-delivery,
.cart51-coupon,
.cart51-summary,
.cart51-minimum,
.cart51-suggestions {
    padding      : 16px;
    border-bottom: 1px solid #e9e9ee
}

.cart51-trigger {
    width        : 100%;
    display      : flex;
    align-items  : center;
    /*gap        : 10px;*/
    border       : 0;
    background   : #fff;
    text-align   : left;
    font-size    : 13px;
    padding      : 0;
    color        : var(--cardapio-texto, #1f2937)
}

.cart51-trigger i:last-child {
    margin-left: auto
}

.cart51-trigger small {
    display   : block;
    color     : #737786;
    margin-top: 2px
}

.cart51-panel {
    display    : none;
    padding-top: 12px
}

.cart51-panel.is-open {
    display: block
}

.cart51-row {
    display: flex;
    gap    : 8px
}

.cart51-row select,
.cart51-row input {
    min-width    : 0;
    flex         : 1;
    border       : 1px solid #d9dbe3;
    border-radius: 10px;
    padding      : 10px 12px;
    background   : #fff
}

.cart51-row button {
    border       : 0;
    border-radius: 10px;
    padding      : 10px 14px;
    background   : var(--cardapio-botao, #b91c1c);
    color        : #fff;
    font-weight  : 700
}

.cart51-items {
    list-style: none;
    padding   : 0;
    margin    : 0
}

.cart51-item {
    display              : grid;
    grid-template-columns: 64px 1fr;
    gap                  : 12px;
    padding              : 16px;
    border-bottom        : 1px solid #ececf1
}

.cart51-item-img {
    width        : 64px;
    height       : 64px;
    border-radius: 12px;
    object-fit   : cover;
    background   : #f3f4f6
}

.cart51-item-head {
    display    : flex;
    gap        : 8px;
    align-items: flex-start
}

.cart51-item-name {
    font-size  : 10px;
    text-align : left;
    font-weight: 800;
    line-height: 1.25;
    flex       : 1
}

.cart51-remove {
    border    : 0;
    background: transparent;
    color     : #8b8f9c;
    padding   : 0
}

.cart51-details {
    margin     : 6px 0 8px;
    padding    : 0;
    list-style : none;
    color      : #6b7280;
    font-size  : 12px;
    text-align : left;
    line-height: 1.45
}

.cart51-actions {
    display        : flex;
    align-items    : center;
    justify-content: space-between;
    gap            : 10px
}

.cart51-stepper {
    display      : inline-flex;
    align-items  : center;
    border       : 1px solid #d8dae2;
    border-radius: 999px;
    overflow     : hidden
}

.cart51-stepper button {
    width     : 30px;
    height    : 30px;
    border    : 0;
    background: #fff;
    font-size : 18px
}

.cart51-stepper span {
    min-width  : 30px;
    text-align : center;
    font-weight: 700;
    font-size  : 13px
}

.cart51-price {
    text-align: right;
    font-size : 15px
}

.cart51-price small {
    display: block;
    color  : #8b8f9c
}

.cart51-price strong {
    color    : var(--cardapio-preco, #b91c1c);
    font-size: 14px;

}

.cart51-empty {
    text-align: center;
    padding   : 34px 20px;
    color     : #8b8f9c
}

.cart51-empty i {
    font-size    : 42px;
    display      : block;
    margin-bottom: 10px
}

.cart51-empty a {
    display    : inline-block;
    margin-top : 12px;
    color      : var(--cardapio-primaria, #b91c1c);
    font-weight: 700
}

.cart51-minimum-bar {
    height       : 8px;
    border-radius: 99px;
    background   : #eceef3;
    overflow     : hidden;
    margin       : 9px 0
}

.cart51-minimum-bar span {
    display   : block;
    height    : 100%;
    background: var(--cardapio-secundaria, #f59e0b);
    transition: width .2s
}

.cart51-minimum p {
    font-size: 12px;
    margin   : 0;
    color    : #6b7280
}

.cart51-summary {
    display: grid;
    gap    : 8px
}

.cart51-summary>div {
    display        : flex;
    justify-content: space-between;
    font-size      : 13px
}

.cart51-summary .cart51-total {
    font-size  : 16px;
    font-weight: 800;
    padding-top: 9px;
    border-top : 1px solid #e5e7eb
}

.cart51-checkout {
    display        : block;
    margin         : 12px 16px 16px;
    padding        : 13px 15px;
    border-radius  : 10px;
    text-align     : center;
    background     : var(--cardapio-botao, #b91c1c);
    color          : #fff !important;
    font-weight    : 800;
    text-decoration: none
}

.cart51-checkout.is-disabled {
    pointer-events: none;
    background    : #9b9b9b
}

.cart51-feedback {
    font-size : 12px;
    margin-top: 8px;
    color     : #b91c1c
}

.cart51-suggestions h4 {
    font-size: 14px;
    margin   : 0 0 10px
}

.cart51-suggestion {
    display              : grid;
    grid-template-columns: 44px 1fr auto;
    gap                  : 9px;
    align-items          : center;
    margin-top           : 8px
}

.cart51-suggestion img {
    width        : 44px;
    height       : 44px;
    border-radius: 8px;
    object-fit   : cover
}

.cart51-suggestion span {
    font-size  : 12px;
    font-weight: 700
}

.cart51-suggestion a {
    font-size  : 11px;
    font-weight: 800;
    color      : var(--cardapio-primaria, #b91c1c)
}

.cart51-loading {
    padding   : 30px;
    text-align: center;
    color     : #747887
}

.cart51-page {
    max-width: 1160px;
    margin   : 92px auto 120px;
    padding  : 0 18px
}

.cart51-page-grid {
    display              : grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap                  : 24px
}

.cart51-page-card {
    background   : #fff;
    border-radius: 16px;
    box-shadow   : 0 8px 26px rgba(15, 23, 42, .07);
    overflow     : hidden
}

.cart51-page-title {
    padding      : 20px;
    border-bottom: 1px solid #ececf1
}

.cart51-page .cart51-item {
    grid-template-columns: 84px 1fr
}

.cart51-page .cart51-item-img {
    width : 84px;
    height: 84px
}

.cart51-page-side {
    position  : sticky;
    top       : 90px;
    align-self: start
}

.cart51-mobile-bar {
    display: none
}

@media(max-width:900px) {
    .cart51-page-grid {
        grid-template-columns: 1fr
    }

    .cart51-page-side {
        position: static
    }

    .dd-cart-drawer {
        max-height: 92vh
    }

    .cart51-mobile-bar {
        position       : fixed;
        left           : 12px;
        right          : 12px;
        bottom         : 12px;
        z-index        : 999;
        display        : flex;
        align-items    : center;
        justify-content: space-between;
        border         : 0;
        border-radius  : 14px;
        background     : var(--cardapio-carrinho, #b91c1c);
        color          : #fff;
        padding        : 13px 16px;
        box-shadow     : 0 10px 30px rgba(0, 0, 0, .25);
        font-weight    : 800
    }

    .dd-floating-cart {
        display: none !important
    }
}

.cart51-suggestions {
    overflow: hidden
}

.cart51-suggestions-track {
    display        : flex;
    gap            : 10px;
    overflow-x     : auto;
    padding        : 2px 0 8px;
    scrollbar-width: thin
}

.cart51-suggestion {
    flex                 : 0 0 150px;
    display              : grid !important;
    grid-template-columns: 46px 1fr !important;
    align-items          : center;
    padding              : 8px;
    border               : 1px solid #e5e7eb;
    border-radius        : 10px;
    text-decoration      : none !important;
    color                : inherit !important
}

.cart51-suggestion img {
    grid-row: 1/3
}

.cart51-suggestion span {
    min-width    : 0;
    overflow     : hidden;
    text-overflow: ellipsis
}

.cart51-suggestion span small {
    display    : block;
    font-weight: 500;
    margin-top : 3px
}

.cart51-suggestion b {
    font-size: 11px;
    color    : var(--cardapio-primaria, #b91c1c)
}

.cart51-modal-layer {
    position   : fixed;
    inset      : 0;
    z-index    : 10050;
    background : rgba(15, 23, 42, .55);
    display    : grid;
    place-items: center;
    padding    : 14px
}

.cart51-modal {
    width        : min(460px, 100%);
    max-height   : calc(100vh - 28px);
    overflow     : auto;
    background   : #fff;
    border-radius: 16px;
    box-shadow   : 0 24px 70px rgba(0, 0, 0, .28)
}

.cart51-modal>header {
    display        : flex;
    align-items    : center;
    justify-content: space-between;
    padding        : 18px 20px;
    border-bottom  : 1px solid #e5e7eb
}

.cart51-modal h3 {
    margin   : 0;
    font-size: 20px
}

.cart51-modal header button {
    width        : 34px;
    height       : 34px;
    border       : 0;
    border-radius: 50%;
    background   : #eef0f4;
    font-size    : 18px
}

.cart51-modal-body {
    padding: 22px
}

.cart51-choice {
    display: grid;
    gap    : 8px
}

.cart51-choice>button {
    display      : flex;
    gap          : 14px;
    align-items  : center;
    padding      : 16px;
    border       : 0;
    background   : #fff;
    text-align   : left;
    border-bottom: 1px solid #eee
}

.cart51-choice i {
    font-size: 24px;
    color    : #8b93a1
}

.cart51-choice span {
    display: grid
}

.cart51-choice small {
    color     : #8b8f9c;
    margin-top: 3px
}

.cart51-cep {
    text-align: center
}

.cart51-cep p {
    max-width  : 310px;
    margin     : 0 auto 28px;
    line-height: 1.45
}

.cart51-cep>input {
    display       : block;
    width         : 100%;
    border        : 0;
    border-bottom : 1px solid #d9dce3;
    text-align    : center;
    font-size     : 38px;
    letter-spacing: 2px;
    padding       : 10px;
    color         : #2d3442;
    outline       : 0
}

.cart51-primary,
.cart51-outline,
.cart51-link {
    width         : 100%;
    padding       : 13px 16px;
    border-radius : 7px;
    font-weight   : 800;
    text-transform: uppercase;
    margin-top    : 16px
}

.cart51-primary {
    border    : 1px solid var(--cardapio-botao, #b91c1c);
    background: var(--cardapio-botao, #b91c1c);
    color     : #fff
}

.cart51-outline {
    border    : 1px solid var(--cardapio-botao, #b91c1c);
    background: #fff;
    color     : var(--cardapio-botao, #b91c1c)
}

.cart51-link {
    border    : 0;
    background: transparent;
    color     : #526071
}

.cart51-current-address {
    display      : grid;
    gap          : 7px;
    font-size    : 16px;
    line-height  : 1.25;
    margin-bottom: 14px
}

.cart51-current-address span {
    color: #465064
}

.cart51-address-list {
    display   : grid;
    gap       : 8px;
    margin-top: 14px
}

.cart51-address-list button {
    padding      : 12px;
    border       : 1px solid #e1e4ea;
    border-radius: 8px;
    background   : #fff;
    text-align   : left
}

.cart51-address-list small {
    display   : block;
    color     : #7b8190;
    margin-top: 4px
}

.cart51-form-grid {
    display              : grid;
    grid-template-columns: 1fr 92px;
    gap                  : 14px 10px
}

.cart51-form-grid label {
    font-size: 12px;
    color    : #697181
}

.cart51-form-grid label.wide {
    grid-column: 1
}

.cart51-form-grid label.full {
    grid-column: 1/-1
}

.cart51-form-grid input,
.cart51-form-grid select {
    width        : 100%;
    margin-top   : 4px;
    border       : 1px solid #cfd3da;
    border-radius: 5px;
    padding      : 11px;
    font-size    : 15px;
    background   : #fff
}

.cart51-form-grid small {
    display: block;
    margin : 5px 0 0 12px
}

.cart51-form-actions {
    display              : grid;
    grid-template-columns: 1fr 1fr;
    gap                  : 12px
}

.cart51-form-actions button {
    margin-top: 18px
}

.cart51-feedback {
    min-height: 16px
}

.cart51-trigger span {
    min-width: 0
}

.cart51-trigger strong,
.cart51-trigger small {
    white-space: normal
}

@media(max-width:600px) {
    .cart51-modal-layer {
        padding    : 0;
        align-items: end
    }

    .cart51-modal {
        width        : 100%;
        max-height   : 92vh;
        border-radius: 16px 16px 0 0
    }

    .cart51-form-grid {
        grid-template-columns: 1fr 80px
    }
}

/* Marco 5.1.3: mantém totais e ação de finalizar sempre visíveis */
.dd-cart-drawer>[data-cart51-root] {
    display   : flex;
    flex      : 1;
    min-height: 0;
    overflow  : hidden;
    padding   : 0 !important
}

.cart51-shell {
    display       : flex;
    flex-direction: column;
    width         : 100%;
    min-height    : 0;
    max-height    : calc(100vh - 68px)
}

.cart51-scroll {
    flex               : 1;
    min-height         : 0;
    overflow-y         : auto;
    overscroll-behavior: contain;
    scrollbar-width    : thin
}

.cart51-footer-fixed {
    flex      : 0 0 auto;
    background: #fff;
    border-top: 1px solid #e2e8f0;
    box-shadow: 0 -8px 20px rgba(15, 23, 42, .06);
    position  : relative;
    z-index   : 3
}

.cart51-footer-fixed .cart51-summary {
    border-bottom: 0;
    padding      : 12px 16px 6px
}

.cart51-footer-fixed .cart51-checkout {
    margin: 8px 16px 16px
}

.cart51-footer-fixed .cart51-checkout:not(.is-disabled) {
    box-shadow: 0 8px 18px color-mix(in srgb, var(--cardapio-botao, #b91c1c) 25%, transparent)
}

.cart51-suggestions-track {
    display         : flex;
    gap             : 10px;
    overflow-x      : auto;
    padding         : 2px 0 8px;
    scroll-snap-type: x proximity
}

.cart51-suggestion {
    flex             : 0 0 210px;
    scroll-snap-align: start;
    border           : 1px solid #e5e7eb;
    border-radius    : 10px;
    padding          : 8px;
    margin-top       : 0;
    text-decoration  : none;
    color            : inherit
}

.cart51-suggestion b {
    font-size: 11px;
    color    : var(--cardapio-primaria, #b91c1c)
}

.cart51-suggestion small {
    display   : block;
    color     : #6b7280;
    margin-top: 2px
}

.cart51-page-side [data-cart51-root="summary"] {
    display : block;
    overflow: visible
}

.cart51-page-side .cart51-shell {
    max-height: none
}

.cart51-page-side .cart51-scroll {
    overflow: visible
}

.cart51-page-side .cart51-footer-fixed {
    position  : static;
    box-shadow: none
}

@media(max-width:900px) {
    .cart51-shell {
        max-height: calc(100vh - 58px)
    }

    .cart51-footer-fixed {
        padding-bottom: max(0px, env(safe-area-inset-bottom))
    }
}