/* =====================================================================
   v554 — Carrinho público responsivo para celular/iPhone
   Objetivo: eliminar overflow horizontal da tabela do carrinho sem mexer
   em regra de negócio, formulários, carrinho, pedido ou checkout.
   ===================================================================== */

.lp-body-public,
.lp-body-public body {
    overflow-x: clip;
}

.cart-main-container,
.cart-page,
.cart-page .cart-shell,
.cart-page .cart-content-grid,
.cart-page .cart-main-panel,
.cart-page .cart-sidebar {
    max-width: 100%;
    min-width: 0;
}

.cart-page img,
.cart-page video,
.cart-page iframe {
    max-width: 100%;
}

@media (max-width: 575.98px) {
    .lp-body-public main.cart-main-container {
        width: 100%;
        max-width: 100%;
        padding-left: .75rem !important;
        padding-right: .75rem !important;
        overflow-x: hidden;
    }

    .cart-page .row,
    .cart-page .col-12,
    .cart-page [class*="col-"] {
        min-width: 0;
    }

    .cart-page .cart-shell {
        overflow-x: hidden;
    }

    .cart-page .cart-content-grid {
        display: block;
        overflow-x: hidden;
    }

    .cart-page .cart-table-wrap {
        overflow: visible !important;
        width: 100%;
        max-width: 100%;
    }

    .cart-page .cart-table-wrap table,
    .cart-page .cart-table-wrap thead,
    .cart-page .cart-table-wrap tbody,
    .cart-page .cart-table-wrap tr,
    .cart-page .cart-table-wrap th,
    .cart-page .cart-table-wrap td {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    .cart-page .cart-table-wrap table {
        display: block;
        border-collapse: separate;
        border-spacing: 0;
        table-layout: fixed;
    }

    .cart-page .cart-table-wrap thead {
        display: none;
    }

    .cart-page .cart-table-wrap tbody {
        display: grid;
        gap: .75rem;
    }

    .cart-page .cart-table-wrap tr {
        display: block;
        border: 1px solid rgba(220, 38, 38, .22);
        border-radius: .85rem;
        background: var(--table-bg, #fff);
        overflow: hidden;
        box-shadow: 0 .45rem 1.1rem rgba(15, 23, 42, .08);
    }

    .cart-page .cart-table-wrap td {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: .75rem;
        padding: .7rem .85rem !important;
        text-align: left !important;
        border-bottom: 1px solid rgba(15, 23, 42, .08);
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .cart-page .cart-table-wrap td:last-child {
        border-bottom: 0;
    }

    .cart-page .cart-table-wrap td:first-child {
        display: block;
        background: rgba(15, 23, 42, .025);
    }

    .cart-page .cart-table-wrap td:first-child .fw-semibold {
        font-size: .98rem;
        line-height: 1.25;
        margin-bottom: .2rem;
    }

    .cart-page .cart-table-wrap td:first-child .small {
        line-height: 1.35;
    }

    .cart-page .cart-table-wrap td:nth-child(2)::before,
    .cart-page .cart-table-wrap td:nth-child(3)::before,
    .cart-page .cart-table-wrap td:nth-child(4)::before {
        flex: 0 0 auto;
        min-width: 4.6rem;
        color: rgba(15, 23, 42, .72);
        font-weight: 700;
        font-size: .9rem;
    }

    .cart-page .cart-table-wrap td:nth-child(2)::before { content: "Qtd"; }
    .cart-page .cart-table-wrap td:nth-child(3)::before { content: "Preço"; }
    .cart-page .cart-table-wrap td:nth-child(4)::before { content: "Subtotal"; }

    .cart-page .cart-table-wrap td:nth-child(3),
    .cart-page .cart-table-wrap td:nth-child(4) {
        align-items: center;
    }

    .cart-page .cart-table-wrap td:nth-child(3) > *,
    .cart-page .cart-table-wrap td:nth-child(4) > * {
        text-align: right;
    }

    .cart-page .cart-qty-form {
        width: auto;
        max-width: calc(100% - 5rem);
        justify-content: flex-end !important;
    }

    .cart-page .cart-qty-form .input-group {
        width: min(138px, 100%) !important;
        max-width: 100%;
    }

    .cart-page .cart-qty-form .btn {
        flex: 0 0 2.35rem;
        width: 2.35rem;
        min-width: 2.35rem;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .cart-page .cart-qty-input {
        flex: 1 1 3.1rem;
        min-width: 0;
        max-width: 3.5rem;
        padding-left: .25rem;
        padding-right: .25rem;
    }

    .cart-page .cart-table-wrap td:last-child form {
        width: 100%;
    }

    .cart-page .cart-table-wrap td:last-child .btn {
        width: 100%;
        justify-content: center !important;
        min-height: 2.45rem;
        background: rgba(220, 38, 38, .06);
        border: 1px solid rgba(220, 38, 38, .2);
        text-decoration: none;
    }

    .cart-page .cart-action-links,
    .cart-page .cart-checkout-actions {
        grid-template-columns: 1fr !important;
        width: 100%;
    }

    .cart-page .cart-side-card,
    .cart-page .cart-suggestions,
    .cart-page .cart-panel,
    .cart-page .alert {
        max-width: 100%;
        overflow-x: hidden;
    }

    .cart-page .cart-suggestions .row {
        --bs-gutter-x: 0;
    }

    .cart-page .cart-suggestions .card-img-top {
        width: 100%;
        aspect-ratio: 16 / 10;
        object-fit: cover;
    }
}

@media (max-width: 380px) {
    .cart-page .cart-table-wrap td {
        padding-left: .7rem !important;
        padding-right: .7rem !important;
        gap: .5rem;
    }

    .cart-page .cart-table-wrap td:nth-child(2)::before,
    .cart-page .cart-table-wrap td:nth-child(3)::before,
    .cart-page .cart-table-wrap td:nth-child(4)::before {
        min-width: 4.1rem;
    }

    .cart-page .cart-qty-form {
        max-width: calc(100% - 4.4rem);
    }

    .cart-page .cart-qty-form .input-group {
        width: min(128px, 100%) !important;
    }

    .cart-page .cart-qty-form .btn {
        flex-basis: 2.15rem;
        width: 2.15rem;
        min-width: 2.15rem;
    }
}
