/* Cart */

.cart {
    width: 100%;

    display: flex;
    flex-direction: column;
    gap: calc(2 * var(--space-xxxl));

    padding: calc(2 * var(--space-xxxl)) var(--space-xxxl);
}

.cart__products-wrapper {
    width: 100%;

    display: flex;
    flex-direction: column;
    gap: var(--space-xxxl);
}

.cart__header {
    display: flex;
    justify-content: space-between;
    gap: var(--space-xxxl);
}

.cart__header-item-wrapper {
    display: flex;
}

.cart__header-item-wrapper--01 {
    width: calc(50% - (3 * var(--space-xxxl) / 4));
}

.cart__header-item-wrapper--02 {
    width: 120px;
    
    justify-content: center;
}

.cart__header-item-wrapper--03 {
    width: 120px;
    
    justify-content: center;
}

.cart__header-item-wrapper--04 {
    width: 120px;
}

.cart__header-item {
    position: relative;
}

.cart__header-item-wrapper--01 > .cart__header-item {
    width: 120px;

    display: flex;
    justify-content: center;
}

.cart__header-item-wrapper--04 > .cart__header-item {
    width: 120px;
}

.cart__header-item::after {
    content: "";

    width: 1px;
    height: 16px;

    background-color: var(--color-05);

    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);

    position: absolute;

    top: calc(100% + var(--space-xxxl) - 8px);
    left: 50%;
}

.cart__products {
    width: 100%;

    display: flex;
    flex-direction: column;
    gap: var(--space-xxxl);
}

.product {
    width: 100%;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-xxxl);
}

.product__info-wrapper {
    width: calc(50% - (3 * var(--space-xxxl) / 4));
}

.product__info-body {
    width: 100%;

    display: flex;
    align-items: center;
    gap: var(--space-m);
}

.product__img-wrapper {
    width: 120px;

    aspect-ratio: 1 / 1;

    display: flex;

    overflow: hidden;
}

.product__img-wrapper > img {
    width: 100%;
    height: 100%;
}

.product__info {
    width: calc(100% - var(--space-m) - 120px);

    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
}

.product__params {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
}

.product__param--mobile {
    display: none;
}

.product__item-params-wrapper {
    width: calc(50% - (3 * var(--space-xxxl) / 4 * 3));

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-xxxl);
}

.product__quantity {
    width: 120px;
    height: 40px;

    border: 1px solid var(--color-05);

    display: flex;
    align-items: center;
    justify-content: space-between;

    padding: 0 calc(var(--space-xs) + var(--space-xs));
}

.product__quantity-field {
    width: calc(100% - (4 * var(--space-xs)) - (2 * 12px));

    border: none;
    border-radius: 0;

    outline: none;

    line-height: 1;

    text-align: center;

    padding: 0;

    margin: 0;

    caret-color: transparent;
    
    appearance: textfield;
    -moz-appearance: textfield;
    -webkit-appearance: none;
}

.product__quantity-field::-webkit-outer-spin-button,
.product__quantity-field::-webkit-inner-spin-button {
    margin: 0;

    appearance: none;
    -webkit-appearance: none;
}

.product__quantity-btn {
    width: 12px;
    height: 12px;
}

.product__quantity-btn > div {
    background-color: var(--color-01);
}

.product__quantity-btn--min > div:first-child {
    width: 100%;
    height: 1px;
}

.product__quantity-btn--max {
    position: relative;
}

.product__quantity-btn--max > div:first-child {
    width: 100%;
    height: 1px;
}

.product__quantity-btn--max > div:last-child {
    width: 1px;
    height: 100%;

    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);

    position: absolute;

    top: 50%;
    left: 50%;
}

.product__price-wrapper {
    width: 120px;

    display: flex;
    align-items: center;
    justify-content: center;
}

.product__removal {
    width: 120px;

    display: flex;
    align-items: center;
    justify-content: center;
}

.product__removal-btn {
    width: 100%;
    height: 40px;

    border: 1px solid var(--color-05);

    display: flex;
    align-items: center;
    justify-content: center;
}

.product__removal-btn > img {
    height: 16px;
}

.products__hr {
    height: 1px;

    background-color: var(--color-05);
}

.summary-wrapper {
    display: flex;
    justify-content: flex-end;
}

.summary {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--space-xs);
}

.summary__block {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
}

.checkout-link {
    width: 100%;

    justify-content: center;
}

/* Cart not found */

.cart__not-found {
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-m);
}

.cart__not-found--active {
    display: flex;
}

@media (max-width: 1280px) {
    
}

@media only screen and (max-width: 1024px) {
    .cart__header-item-wrapper--01 {
        width: 80px;
    }

    .cart__header-item-wrapper--02,
    .cart__header-item-wrapper--03 {
        display: none;
    }

    .product {
        flex-direction: column;
        gap: var(--space-m);
    }

    .product__info-wrapper {
        width: 100%;
    }

    .product__param--mobile {
        display: block;
    }

    .product__item-params-wrapper {
        width: 100%;

        gap: var(--space-m);
    }

    .product__price-wrapper {
        display: none;
    }
}

@media (max-width: 768px) {
    .cart {
        padding: var(--space-xxxl);
    }
    
    .cart__products-wrapper {
        gap: var(--space-m);
    }

    .cart__header-item-wrapper--04 {
        display: none;
    }

    .cart__header-item-wrapper--01 > .cart__header-item {
        width: 80px;
    }

    .cart__header-item::after {
        top: calc(100% + var(--space-m) - 8px);
    }

    .cart__products {
        gap: var(--space-m);
    }

    .product__img-wrapper {
        width: 80px;
    }

    .product__info {
        width: calc(100% - var(--space-m) - 80px);

        gap: var(--space-xxs);
    }

    .product__name {
        font-size: var(--font-size-m);
    }

    .product__quantity {
        width: calc(100% - var(--space-m) - 40px);
    }

    .product__removal {
        width: max-content;
    }

    .product__removal-btn {
        width: 40px;
    }

    .product__removal-btn > img {
        height: 12px;
    }

    .summary-wrapper {
        justify-content: flex-start;
    }

    .summary {
        align-items: flex-start;
    }
}

@media (max-width: 480px) {
    
}