.mainSite .cartPage {
    --cart-border: #e5e7eb;
    --cart-muted: #6b7280;
    --cart-soft: #f7f8fa;
    --cart-surface: #fff;
}

.mainSite #shoppingCart h1 {
    margin-bottom: 1.25rem;
}

.mainSite #cartForm {
    position: relative;
}

.mainSite #cartForm.loading * {
    pointer-events: none;
}

.mainSite #cartForm.loading::before {
    align-items: center;
    background-color: rgba(255,255,255,.75);
    bottom: 0;
    content: url('/image/loading.gif');
    display: flex;
    justify-content: center;
    left: 0;
    position: fixed;
    right: 0;
    top: 0;
    z-index: 10;
}

.mainSite .cart-shell {
    max-width: 1500px;
}

.mainSite .cart-layout {
    row-gap: 1.25rem;
}

.mainSite .cart-lines {
    display: grid;
    gap: .85rem;
}

.mainSite .cartRow {
    background: var(--cart-surface);
    border: 1px solid var(--cart-border);
    border-radius: 8px;
    color: #111827;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    overflow: hidden;
}

.mainSite .cartRow .image {
    align-items: center;
    background: var(--cart-soft);
    display: none;
    justify-content: center;
    padding: .85rem;
}

.mainSite .cartRow .image img {
    aspect-ratio: 1;
    max-height: 88px;
    max-width: 88px;
    object-fit: contain;
}

.mainSite .cartRow .info {
    min-width: 0;
    padding: 1rem;
}

.mainSite .cartRow .info .inner .top {
    align-items: flex-start;
    display: grid;
    gap: .75rem;
    grid-template-columns: minmax(0, 1fr);
}

.mainSite .cartRow .description {
    color: #111827;
    display: grid;
    font-size: 1rem;
    font-weight: 700;
    gap: .15rem;
    text-decoration: none;
}

.mainSite .cartRow .description:hover {
    color: var(--color-prim);
    text-decoration: none;
}

.mainSite .cartRow .description .optionDescription {
    color: var(--cart-muted);
    display: block;
    font-size: .9rem;
    font-weight: 400;
}

.mainSite .cartRow .price {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    justify-content: flex-start;
    text-align: left;
}

.mainSite .cartRow .price .total {
    color: #111827;
    font-size: 1.05rem;
    font-weight: 700;
}

.mainSite .cartRow .oldTotal {
    color: var(--cart-muted);
    text-decoration: line-through;
}

.mainSite .cartRow .badge {
    background: rgba(var(--color-prim-rgb), .12);
    color: var(--color-prim);
}

.mainSite .cartRow .info .inner > span {
    color: var(--cart-muted);
    display: inline-block;
    font-size: .9rem;
    margin-top: .35rem;
}

.mainSite .cartRow .actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: .75rem;
}

.mainSite .plusMinus {
    align-items: stretch;
    border: 1px solid var(--cart-border);
    border-radius: 8px;
    display: inline-flex;
    height: 2.4rem;
    overflow: hidden;
}

.mainSite .plusMinus button {
    align-items: center;
    background: var(--cart-soft);
    border: 0;
    color: #111827;
    display: inline-flex;
    font-size: 1.05rem;
    justify-content: center;
    padding: 0;
    width: 2.35rem;
}

.mainSite .plusMinus button:hover {
    background: rgba(var(--color-prim-rgb), .1);
    color: var(--color-prim);
}

.mainSite .plusMinus input {
    border: 0;
    border-left: 1px solid var(--cart-border);
    border-right: 1px solid var(--cart-border);
    padding: .35rem;
    text-align: center;
    width: 4rem;
}

.mainSite .cartRow .removeBtn {
    align-items: center;
    background: transparent;
    border: 0;
    color: var(--cart-muted);
    display: inline-flex;
    font-size: .85rem;
    gap: .35rem;
    line-height: 1.2;
    padding: .35rem .15rem;
    text-decoration: none;
}

.mainSite .cartRow .removeBtn i {
    color: var(--cart-muted);
}

.mainSite .cartRow .removeBtn:hover {
    background: transparent;
    color: var(--bs-danger);
    text-decoration: none;
}

.mainSite .cartRow .removeBtn:hover i {
    color: var(--bs-danger);
}

.mainSite .cartRow .deliveryTime {
    color: var(--cart-muted);
    font-size: .9rem;
}

.mainSite .cartRow .related {
    background: var(--cart-soft);
    border-top: 1px solid var(--cart-border);
    display: grid;
    gap: .35rem;
    padding: .85rem 1rem;
}

.mainSite .cartRow .related .item {
    color: #374151;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    justify-content: space-between;
}

.mainSite .cart-panel,
.mainSite #cartForm .payment {
    background: var(--cart-surface);
    border: 1px solid var(--cart-border);
    border-radius: 8px;
    margin-bottom: 1rem;
    padding: 1.25rem;
}

.mainSite .cart-section-title {
    align-items: center;
    display: flex;
    font-size: 1.15rem;
    gap: .5rem;
    margin: 0 0 1rem;
}

.mainSite #cartForm .staticGegevens {
    background: var(--cart-soft);
    border: 1px solid var(--cart-border);
    border-radius: 8px;
    padding: 1rem;
}

.mainSite #cartForm .staticGegevens p {
    line-height: 1.7;
    margin-bottom: 0;
}

.mainSite #cartForm .staticGegevens p > strong {
    color: #374151;
    font-weight: 700;
}

.mainSite #cartForm .staticGegevens .editBtn {
    font-size: .85rem;
    margin-top: .75rem;
    padding: .45rem .75rem;
}

.mainSite #cartForm textarea {
    min-height: 125px;
}

.mainSite #cartForm .payment {
    margin-top: 0;
}

.mainSite #cartForm .payment .paymentMethods {
    display: grid;
    gap: .65rem;
}

.mainSite #cartForm .payment .paymentMethods label {
    align-items: center;
    border: 1px solid var(--cart-border);
    border-radius: 8px;
    display: flex;
    gap: .5rem;
    margin: 0;
    min-height: 3rem;
    padding: .65rem .75rem;
}

.mainSite #cartForm .paymentMethods label img {
    max-width: 50px;
}

.mainSite #cartForm .paymentMethods label input {
    margin: 0;
}

.mainSite #cartForm .terms {
    align-items: flex-start;
    display: flex;
    gap: .5rem;
    margin-top: .75rem;
    margin-bottom: 1rem;
    position: relative;
    z-index: 1;
}

.mainSite #cartForm .terms input[type="checkbox"] {
    flex: 0 0 auto;
    margin-top: .35rem;
    position: relative;
    z-index: 2;
}

.mainSite #shoppingCart .sticky {
    background: var(--cart-surface);
    border: 1px solid var(--cart-border);
    border-radius: 8px;
    color: #111827;
    font-size: .95rem;
    line-height: 1.5;
    margin-bottom: 2rem;
    padding: 1.15rem;
}

.mainSite #shoppingCart .sticky h3 {
    align-items: center;
    display: flex;
    font-size: 1.05rem;
    gap: .5rem;
    margin: 0 0 .75rem;
}

.mainSite #shoppingCart .sticky .delivery {
    background: var(--cart-soft);
    border-radius: 8px;
    padding: .9rem;
}

.mainSite #shoppingCart .sticky .form-check {
    margin-bottom: .35rem;
}

.mainSite #shoppingCart .sticky hr {
    border-color: var(--cart-border);
    margin: 1rem 0;
    opacity: 1;
}

.mainSite #shoppingCart .sticky td {
    background: transparent;
    border-bottom: 1px solid var(--cart-border);
    padding: .45rem 0;
}

.mainSite #shoppingCart .sticky tr:last-of-type td {
    border-bottom: 0;
    font-size: 1.05rem;
    font-weight: 700;
    padding-top: .7rem;
}

.mainSite #shoppingCart .buttons {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    justify-content: flex-end;
    margin-top: .75rem;
}

.mainSite #shoppingCart .buttons .cta,
.mainSite #shoppingCart .buttons .btn {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    min-height: 2.65rem;
    padding: .65rem 1rem;
}

.mainSite .cartPage .orderComplete {
    margin-top: 4rem;
}

.mainSite footer {
    margin-top: 4rem;
    padding-top: 4rem;
}

@media (min-width: 768px) {
    .mainSite .cartRow {
        grid-template-columns: 116px minmax(0, 1fr);
    }

    .mainSite .cartRow .image {
        display: flex;
    }

    .mainSite .cartRow .info .inner .top {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .mainSite .cartRow .price {
        justify-content: flex-end;
        text-align: right;
    }

    .mainSite .cartRow .related {
        grid-column: 1 / -1;
        padding-left: calc(116px + 1rem);
    }

    .mainSite #cartForm .payment .paymentMethods {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    .mainSite .cartPage .stickyCol {
        height: 100%;
    }

    .mainSite #shoppingCart .sticky {
        margin-bottom: 0;
        position: sticky;
        top: 9rem;
    }
}

@media (min-width: 1200px) {
    .mainSite .cartPage .stickyCol {
        position: absolute;
        right: 0;
    }
}

@media (max-width: 767.98px) {
    .mainSite .cart-shell {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .mainSite .cartRow .actions {
        align-items: flex-start;
        display: grid;
    }

.mainSite .cartRow .related .item {
        display: grid;
    }
}
.mainSite #shoppingCart .sticky .discountCode .input-group{align-items:stretch}.mainSite #shoppingCart .sticky .discountCode .btn{white-space:nowrap}.mainSite #shoppingCart .sticky .appliedDiscountCode{align-items:center;background:var(--cart-soft);border:1px solid var(--cart-border);border-radius:8px;display:flex;justify-content:space-between;min-height:2.6rem;padding:.35rem .35rem .35rem .75rem}.mainSite #shoppingCart .sticky .appliedDiscountCode span{font-weight:700}.mainSite #shoppingCart .sticky .appliedDiscountCode .btn{color:var(--cart-muted);padding:.25rem .45rem;text-decoration:none}
.mainSite .cartRow .customerPriceBenefit{flex-basis:100%;display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.mainSite .cartRow .consumerPrice{color:var(--cart-muted);text-decoration:line-through}
