/* =========================================================
   HNIA HARRATI
   CART
========================================================= */


/* =========================================================
   PAGE BASE / VIEWPORT STRUCTURE
========================================================= */

body.woocommerce-cart {
    min-height: 100vh;

    background: #fcfbf8;
}


/*
 * Hello Elementor / theme page wrapper.
 * Il footer viene spinto sotto la viewport anche con
 * un carrello molto piccolo.
 */
body.woocommerce-cart #page {
    display: flex;
    flex-direction: column;

    min-height: 100vh;
}


/*
 * Area contenuto della pagina.
 */
body.woocommerce-cart #content {
    flex: 1 0 auto;

    width: 100%;
}


/* =========================================================
   MAIN WIDTH / SPACING
========================================================= */

body.woocommerce-cart .site-main,
body.woocommerce-cart main {
    width: calc(100% - 64px);
    max-width: 1600px;

    margin: 0 auto;

    padding:
        145px
        0
        150px;
}


/* =========================================================
   HIDE PAGE TITLE
========================================================= */

body.woocommerce-cart
.entry-title {
    display: none !important;
}


/* =========================================================
   CART LAYOUT
========================================================= */

body.woocommerce-cart
.woocommerce {
    display: grid;

    grid-template-columns:
        minmax(0, 1.35fr)
        minmax(360px, .65fr);

    align-items: start;

    gap:
        clamp(56px, 6vw, 100px);

    width: 100%;
}


/* =========================================================
   NOTICES
========================================================= */

body.woocommerce-cart
.woocommerce
> .woocommerce-notices-wrapper {
    grid-column:
        1 / -1;
}


/* Hide success/info cart notices */

body.woocommerce-cart
.woocommerce-message,
body.woocommerce-cart
.woocommerce-info {
    display: none !important;
}


/* Keep real errors visible */

body.woocommerce-cart
.woocommerce-error {
    grid-column:
        1 / -1;

    margin:
        0
        0
        32px !important;

    padding:
        16px
        18px !important;

    border:
        0 !important;

    border-left:
        2px solid
        #a6754c !important;

    border-radius:
        0 !important;

    background:
        #f7f4ef !important;

    font-family:
        "Manrope",
        Arial,
        sans-serif;

    font-size:
        10px;

    line-height:
        1.6;

    color:
        #17120f;
}


body.woocommerce-cart
.woocommerce-error::before {
    display:
        none !important;
}


/* =========================================================
   CART FORM
========================================================= */

body.woocommerce-cart
.woocommerce-cart-form {
    width: 100%;
}


/* =========================================================
   TABLE RESET
========================================================= */

body.woocommerce-cart
.shop_table {
    width: 100%;

    margin:
        0 !important;

    border:
        0 !important;

    border-collapse:
        collapse;

    background:
        transparent;
}


body.woocommerce-cart
.shop_table
thead {
    display:
        none;
}


/* =========================================================
   CART ITEM
========================================================= */

body.woocommerce-cart
.shop_table
.cart_item {
    display: grid;

    grid-template-columns:
        150px
        minmax(0, 1fr)
        auto;

    grid-template-rows:
        auto
        auto
        auto
        auto;

    gap:
        10px
        28px;

    align-items:
        start;

    padding:
        0
        0
        34px;

    margin-bottom:
        34px;

    border-bottom:
        1px solid
        rgba(23,18,15,.10);
}


/* =========================================================
   CART ITEM CELL RESET
========================================================= */

body.woocommerce-cart
.shop_table
.cart_item
td {
    padding:
        0 !important;

    border:
        0 !important;

    background:
        transparent !important;
}


/* =========================================================
   PRODUCT IMAGE
========================================================= */

body.woocommerce-cart
.product-thumbnail {
    grid-column:
        1;

    grid-row:
        1 / span 4;
}


body.woocommerce-cart
.product-thumbnail
a {
    display:
        block;
}


body.woocommerce-cart
.product-thumbnail
img {
    display:
        block;

    width:
        150px !important;

    height:
        auto !important;

    aspect-ratio:
        3 / 4;

    object-fit:
        cover;

    object-position:
        center top;

    background:
        #f1ece6;
}


/* =========================================================
   PRODUCT NAME
========================================================= */

body.woocommerce-cart
.product-name {
    grid-column:
        2;

    grid-row:
        1;

    padding-right:
        40px !important;
}


body.woocommerce-cart
.product-name
a {
    font-family:
        "League Spartan",
        Arial,
        sans-serif;

    font-size:
        25px;

    font-weight:
        400;

    line-height:
        1;

    letter-spacing:
        -.02em;

    color:
        #17120f;

    text-decoration:
        none;

    transition:
        color 220ms ease;
}


body.woocommerce-cart
.product-name
a:hover {
    color:
        #a6754c;
}


/* =========================================================
   VARIATION META
========================================================= */

body.woocommerce-cart
.product-name
.variation {
    margin:
        8px
        0
        0;

    font-family:
        "Manrope",
        Arial,
        sans-serif;

    font-size:
        9px;

    line-height:
        1.6;

    color:
        #81766e;
}


body.woocommerce-cart
.product-name
.variation
dt,
body.woocommerce-cart
.product-name
.variation
dd {
    display:
        inline;

    float:
        none;

    margin:
        0;

    padding:
        0;
}


body.woocommerce-cart
.product-name
.variation
dd {
    margin-right:
        8px;
}


/* =========================================================
   PRODUCT PRICE
========================================================= */

body.woocommerce-cart
.product-price {
    grid-column:
        2;

    grid-row:
        2;

    margin-top:
        4px;

    font-family:
        "Manrope",
        Arial,
        sans-serif;

    font-size:
        10px;

    font-weight:
        500;

    line-height:
        1.4;

    color:
        #81766e;
}


/* =========================================================
   QUANTITY
========================================================= */

body.woocommerce-cart
.product-quantity {
    grid-column:
        2;

    grid-row:
        3;

    margin-top:
        10px;
}


/* =========================================================
   CUSTOM QUANTITY
========================================================= */

body.woocommerce-cart
.hnia-cart-quantity {
    display: inline-grid;

    grid-template-columns:
        38px
        44px
        38px;

    align-items: center;

    width:
        auto !important;

    height:
        40px;

    border:
        1px solid
        rgba(23,18,15,.14);

    background:
        transparent;
}


body.woocommerce-cart
.hnia-cart-quantity__button {
    display: flex;

    align-items: center;
    justify-content: center;

    width:
        38px;

    height:
        38px;

    padding:
        0;

    border:
        0;

    background:
        transparent;

    color:
        #17120f;

    font-family:
        "Manrope",
        Arial,
        sans-serif;

    font-size:
        15px;

    font-weight:
        400;

    line-height:
        1;

    cursor:
        pointer;

    transition:
        background-color 220ms ease,
        color 220ms ease;
}


body.woocommerce-cart
.hnia-cart-quantity__button:hover {
    background:
        #17120f;

    color:
        #fffdf9;
}


body.woocommerce-cart
.hnia-cart-quantity
input.qty {
    width:
        44px !important;

    height:
        38px;

    padding:
        0 !important;

    border:
        0 !important;

    border-left:
        1px solid
        rgba(23,18,15,.10) !important;

    border-right:
        1px solid
        rgba(23,18,15,.10) !important;

    border-radius:
        0 !important;

    outline:
        none;

    background:
        transparent !important;

    box-shadow:
        none !important;

    font-family:
        "Manrope",
        Arial,
        sans-serif;

    font-size:
        10px;

    font-weight:
        500;

    color:
        #17120f;

    text-align:
        center;

    appearance:
        textfield;

    -moz-appearance:
        textfield;
}


body.woocommerce-cart
.hnia-cart-quantity
input.qty::-webkit-inner-spin-button,
body.woocommerce-cart
.hnia-cart-quantity
input.qty::-webkit-outer-spin-button {
    margin:
        0;

    -webkit-appearance:
        none;
}


/* =========================================================
   PRODUCT SUBTOTAL
========================================================= */

body.woocommerce-cart
.product-subtotal {
    grid-column:
        2;

    grid-row:
        4;

    margin-top:
        10px;

    font-family:
        "Manrope",
        Arial,
        sans-serif;

    font-size:
        11px;

    font-weight:
        600;

    line-height:
        1.4;

    color:
        #17120f;
}


/* =========================================================
   REMOVE PRODUCT
========================================================= */

body.woocommerce-cart
.product-remove {
    grid-column:
        3;

    grid-row:
        1;

    justify-self:
        end;

    align-self:
        start;
}


body.woocommerce-cart
.product-remove
.remove {
    display:
        inline-flex !important;

    align-items:
        center;

    justify-content:
        center;

    width:
        24px;

    height:
        24px;

    padding:
        0;

    border:
        0 !important;

    border-radius:
        0 !important;

    background:
        transparent !important;

    color:
        #81766e !important;

    font-family:
        Arial,
        sans-serif;

    font-size:
        18px !important;

    font-weight:
        300;

    line-height:
        1 !important;

    text-decoration:
        none;

    transition:
        color 220ms ease,
        transform 300ms cubic-bezier(.16,1,.3,1);
}


body.woocommerce-cart
.product-remove
.remove:hover {
    color:
        #17120f !important;

    transform:
        rotate(90deg);
}


/* =========================================================
   CART ACTIONS
========================================================= */

body.woocommerce-cart
.shop_table
.actions {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        18px;

    padding:
        8px
        0
        0 !important;

    border:
        0 !important;

    background:
        transparent !important;
}


/* =========================================================
   COUPON
========================================================= */

body.woocommerce-cart
.coupon {
    display:
        flex;

    align-items:
        stretch;

    gap:
        8px;
}


body.woocommerce-cart
.coupon
.input-text {
    width:
        200px !important;

    height:
        42px;

    padding:
        0
        12px !important;

    border:
        1px solid
        rgba(23,18,15,.14);

    border-radius:
        0;

    outline:
        none;

    background:
        transparent;

    font-family:
        "Manrope",
        Arial,
        sans-serif;

    font-size:
        9px;

    font-weight:
        400;

    color:
        #17120f;

    transition:
        border-color 220ms ease;
}


body.woocommerce-cart
.coupon
.input-text::placeholder {
    color:
        #8c8179;

    opacity:
        1;
}


body.woocommerce-cart
.coupon
.input-text:focus {
    border-color:
        rgba(23,18,15,.45);
}


/* =========================================================
   CART ACTION BUTTONS
========================================================= */

body.woocommerce-cart
.shop_table
.actions
.button {
    min-height:
        42px;

    padding:
        0
        16px !important;

    border:
        1px solid
        rgba(23,18,15,.14) !important;

    border-radius:
        0 !important;

    background:
        transparent !important;

    box-shadow:
        none !important;

    color:
        #17120f !important;

    font-family:
        "Manrope",
        Arial,
        sans-serif;

    font-size:
        8px !important;

    font-weight:
        600 !important;

    line-height:
        1;

    letter-spacing:
        .12em;

    text-transform:
        uppercase;

    transition:
        background-color 220ms ease,
        color 220ms ease,
        border-color 220ms ease,
        opacity 220ms ease;
}


body.woocommerce-cart
.shop_table
.actions
.button:hover:not(:disabled) {
    border-color:
        #17120f !important;

    background:
        #17120f !important;

    color:
        #fffdf9 !important;
}


body.woocommerce-cart
.shop_table
.actions
.button:disabled,
body.woocommerce-cart
.shop_table
.actions
.button.disabled {
    opacity:
        .38;

    cursor:
        default;
}


/* Hide update cart button */

body.woocommerce-cart
.shop_table
.actions
button[name="update_cart"] {
    display:
        none !important;
}


/* =========================================================
   CART COLLATERALS
========================================================= */

body.woocommerce-cart
.cart-collaterals {
    width:
        100%;

    margin:
        0;

    float:
        none;
}


/* =========================================================
   CART TOTALS
========================================================= */

body.woocommerce-cart
.cart_totals {
    position:
        sticky;

    top:
        120px;

    width:
        100% !important;

    float:
        none !important;

    padding:
        36px;

    border:
        1px solid
        rgba(23,18,15,.10);

    background:
        #f7f4ef;
}


/* =========================================================
   TOTALS TITLE
========================================================= */

body.woocommerce-cart
.cart_totals
h2 {
    margin:
        0
        0
        26px;

    font-family:
        "League Spartan",
        Arial,
        sans-serif;

    font-size:
        32px;

    font-weight:
        400;

    line-height:
        1;

    letter-spacing:
        -.025em;

    color:
        #17120f;
}


/* =========================================================
   TOTALS TABLE
========================================================= */

body.woocommerce-cart
.cart_totals
.shop_table {
    margin-bottom:
        28px !important;
}


body.woocommerce-cart
.cart_totals
.shop_table
tr {
    border-bottom:
        1px solid
        rgba(23,18,15,.08);
}


body.woocommerce-cart
.cart_totals
.shop_table
tr:last-child {
    border-bottom:
        0;
}


body.woocommerce-cart
.cart_totals
.shop_table
th,
body.woocommerce-cart
.cart_totals
.shop_table
td {
    padding:
        15px
        0 !important;

    border:
        0 !important;

    background:
        transparent !important;

    font-family:
        "Manrope",
        Arial,
        sans-serif;

    font-size:
        10px;

    line-height:
        1.5;

    color:
        #756b64;
}


body.woocommerce-cart
.cart_totals
.shop_table
th {
    width:
        45%;

    font-weight:
        500;

    text-align:
        left;
}


body.woocommerce-cart
.cart_totals
.shop_table
td {
    font-weight:
        600;

    text-align:
        right;

    color:
        #17120f;
}


/* =========================================================
   ORDER TOTAL
========================================================= */

body.woocommerce-cart
.cart_totals
.order-total
th,
body.woocommerce-cart
.cart_totals
.order-total
td {
    padding-top:
        20px !important;

    padding-bottom:
        20px !important;

    font-size:
        12px;

    color:
        #17120f;
}


body.woocommerce-cart
.cart_totals
.order-total
strong {
    font-weight:
        700;
}


/* =========================================================
   CHECKOUT AREA
========================================================= */

body.woocommerce-cart
.wc-proceed-to-checkout {
    padding:
        0 !important;
}


/* =========================================================
   CHECKOUT BUTTON
========================================================= */

body.woocommerce-cart
.checkout-button {
    display:
        flex !important;

    align-items:
        center;

    justify-content:
        center;

    width:
        100%;

    min-height:
        56px;

    margin:
        4px
        0
        0 !important;

    padding:
        0
        22px !important;

    border:
        0 !important;

    border-radius:
        0 !important;

    background:
        #17120f !important;

    box-shadow:
        none !important;

    color:
        #fffdf9 !important;

    font-family:
        "Manrope",
        Arial,
        sans-serif;

    font-size:
        9px !important;

    font-weight:
        600 !important;

    line-height:
        1;

    letter-spacing:
        .15em;

    text-transform:
        uppercase;

    text-decoration:
        none;

    transition:
        background-color 280ms ease,
        transform 300ms cubic-bezier(.16,1,.3,1);
}


body.woocommerce-cart
.checkout-button:hover {
    background:
        #a6754c !important;

    transform:
        translateY(-1px);
}


/* =========================================================
   EMPTY CART
========================================================= */

body.woocommerce-cart
.cart-empty {
    margin:
        0
        0
        28px !important;

    padding:
        0 !important;

    border:
        0 !important;

    background:
        transparent !important;

    font-family:
        "League Spartan",
        Arial,
        sans-serif;

    font-size:
        clamp(36px, 4vw, 60px);

    font-weight:
        400;

    line-height:
        1;

    letter-spacing:
        -.025em;

    color:
        #17120f;
}


body.woocommerce-cart
.return-to-shop {
    margin:
        0;
}


body.woocommerce-cart
.return-to-shop
.button {
    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    min-height:
        46px;

    padding:
        0
        22px !important;

    border:
        0 !important;

    border-radius:
        0 !important;

    background:
        #17120f !important;

    box-shadow:
        none !important;

    color:
        #fffdf9 !important;

    font-family:
        "Manrope",
        Arial,
        sans-serif;

    font-size:
        9px !important;

    font-weight:
        600 !important;

    letter-spacing:
        .14em;

    text-transform:
        uppercase;

    text-decoration:
        none;

    transition:
        background-color 280ms ease;
}


body.woocommerce-cart
.return-to-shop
.button:hover {
    background:
        #a6754c !important;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1024px) {

    body.woocommerce-cart
    .site-main,
    body.woocommerce-cart
    main {
        width:
            calc(100% - 48px);

        min-height:
            calc(100vh - 30px);

        padding:
            120px
            0
            110px;
    }


    body.woocommerce-cart
    .woocommerce {
        grid-template-columns:
            minmax(0,1fr)
            minmax(300px,.7fr);

        gap:
            40px;
    }


    body.woocommerce-cart
    .shop_table
    .cart_item {
        grid-template-columns:
            120px
            minmax(0,1fr)
            auto;

        gap:
            10px
            20px;
    }


    body.woocommerce-cart
    .product-thumbnail
    img {
        width:
            120px !important;
    }


    body.woocommerce-cart
    .product-name
    a {
        font-size:
            23px;
    }


    body.woocommerce-cart
    .cart_totals {
        padding:
            26px;
    }
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {

    body.woocommerce-cart
    .site-main,
    body.woocommerce-cart
    main {
        width:
            calc(100% - 24px);

        min-height:
            auto;

        padding:
            105px
            0
            80px;
    }


    body.woocommerce-cart
    .woocommerce {
        display:
            block;
    }


    body.woocommerce-cart
    .woocommerce-cart-form {
        margin-bottom:
            54px;
    }


    body.woocommerce-cart
    .shop_table
    .cart_item {
        grid-template-columns:
            88px
            minmax(0,1fr)
            auto;

        grid-template-rows:
            auto
            auto
            auto
            auto;

        gap:
            8px
            14px;

        padding-bottom:
            26px;

        margin-bottom:
            26px;
    }


    body.woocommerce-cart
    .product-thumbnail {
        grid-row:
            1 / span 4;
    }


    body.woocommerce-cart
    .product-thumbnail
    img {
        width:
            88px !important;
    }


    body.woocommerce-cart
    .product-name {
        padding-right:
            24px !important;
    }


    body.woocommerce-cart
    .product-name
    a {
        font-size:
            20px;

        line-height:
            1.05;
    }


    body.woocommerce-cart
    .product-price {
        font-size:
            9px;
    }


    body.woocommerce-cart
    .product-subtotal {
        font-size:
            10px;
    }


    body.woocommerce-cart
    .hnia-cart-quantity {
        grid-template-columns:
            34px
            40px
            34px;

        height:
            38px;
    }


    body.woocommerce-cart
    .hnia-cart-quantity__button {
        width:
            34px;

        height:
            36px;
    }


    body.woocommerce-cart
    .hnia-cart-quantity
    input.qty {
        width:
            40px !important;

        height:
            36px;
    }


    body.woocommerce-cart
    .shop_table
    .actions {
        flex-direction:
            column;

        align-items:
            stretch;

        gap:
            10px;
    }


    body.woocommerce-cart
    .coupon {
        width:
            100%;
    }


    body.woocommerce-cart
    .coupon
    .input-text {
        flex:
            1;

        width:
            auto !important;
    }


    body.woocommerce-cart
    .shop_table
    .actions
    .button {
        min-height:
            44px;
    }


    body.woocommerce-cart
    .cart_totals {
        position:
            static;

        padding:
            24px;
    }


    body.woocommerce-cart
    .cart_totals
    h2 {
        font-size:
            30px;
    }


    body.woocommerce-cart
    .checkout-button {
        min-height:
            54px;
    }
}