/* Winkelwagen (alleen geladen op /nl/winkelwagen en /en/cart).
   Past bij het thema: achtergrond #212121, tekst #eee, accent oranje #e79965,
   rechte hoeken zoals de knoppen van het thema. */

.cart {
    max-width: 960px;
}

/* Kop: "Winkelwagen" met het aantal prints ernaast */
.cart-header {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 16px;
    margin-bottom: 28px;
}

.cart-header h1 {
    margin: 0;
}

.cart-header__count {
    margin: 0;
    color: #999;
}

/* Meldingen */
.cart-message {
    margin: 0 0 16px;
    padding: 12px 16px;
    border-left: 3px solid #7fbf8e;
    background: rgba(255, 255, 255, .04);
}

.cart-message--warning {
    border-left-color: #e79965;
}

/* De regels */
.cart-lines {
    margin: 0 0 32px;
    padding: 0;
    list-style: none;
    border-top: 1px solid rgba(255, 255, 255, .1);
}

.cart-line {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr) auto 110px;
    grid-template-areas: "image info qty total";
    align-items: center;
    gap: 12px 24px;
    padding: 20px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
    scroll-margin-top: 120px;   /* na + of − niet onder het menu verdwijnen */
}

.cart-line__image {
    grid-area: image;
    align-self: start;
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #2e2e2e;   /* lege plek zolang er geen foto is */
}

.cart-line__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cart-line__info {
    grid-area: info;
    min-width: 0;
}

.cart-line__title {
    margin: 0 0 4px;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
}

.cart-line__title a {
    color: #eee;
}

.cart-line__title a:hover,
.cart-line__title a:focus {
    color: #e79965;
}

.cart-line__meta {
    margin: 0 0 6px;
    color: #999;
    font-size: 13px;
}

/* "Verwijderen" als rustige tekstlink, niet als grote knop.
   Het thema geeft knoppen "color: inherit !important", dus de kleur staat op het formulier. */
.cart-line__remove {
    margin: 0;
    color: #999;
}

.cart-line__remove:hover,
.cart-line__remove:focus-within {
    color: #e79965;
}

.cart-line__remove button {
    padding: 0;
    border: 0;
    background: none;
    font-size: 13px;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

/* Aantal: − [2] + */
.cart-qty {
    grid-area: qty;
    justify-self: start;   /* niet uitrekken op de telefoon: het vak is zo breed als − [2] + */
    display: inline-flex;
    border: 1px solid rgba(255, 255, 255, .3);
}

.cart-qty form {
    margin: 0;
}

.cart-qty .cart-qty__step,
.cart-qty .cart-qty__input {
    height: 40px;
    margin: 0;
    border: 0;
    background: none;
}

.cart-qty .cart-qty__step {
    width: 40px;
    padding: 0;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    transition: background 150ms ease-in;
}

.cart-qty .cart-qty__step:hover:not(:disabled),
.cart-qty .cart-qty__step:focus-visible {
    background: rgba(255, 255, 255, .08);
}

.cart-qty .cart-qty__step:disabled {
    opacity: .3;
    cursor: default;
}

.cart-qty .cart-qty__input {
    width: 48px;
    padding: 0;
    border-right: 1px solid rgba(255, 255, 255, .3);
    border-left: 1px solid rgba(255, 255, 255, .3);
    font-weight: 600;
    text-align: center;
    -moz-appearance: textfield;
    appearance: textfield;
}

/* De kleine pijltjes van de browser weg: daar zijn − en + voor */
.cart-qty .cart-qty__input::-webkit-outer-spin-button,
.cart-qty .cart-qty__input::-webkit-inner-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

.cart-qty .cart-qty__input:focus {
    border-right: 1px solid rgba(255, 255, 255, .3);
    border-left: 1px solid rgba(255, 255, 255, .3);
    outline: 2px solid #e79965;
    outline-offset: -2px;
}

.cart-line__total {
    grid-area: total;
    margin: 0;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    text-align: right;
    white-space: nowrap;
}

/* Subtotaal rechts onder */
.cart-summary {
    max-width: 360px;
    margin-left: auto;
}

.cart-summary__row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin: 0 0 8px;
    font-size: 16px;
}

.cart-summary__row strong {
    font-size: 22px;
    font-variant-numeric: tabular-nums;
}

.cart-summary__note {
    margin: 0 0 20px;
    color: #999;
    font-size: 13px;
}

.cart-summary .btn {
    margin-bottom: 16px;
}

.cart-summary__continue {
    color: #eee;
    font-size: 13px;
}

.cart-summary__continue:hover,
.cart-summary__continue:focus {
    color: #e79965;
}

/* Lege winkelwagen */
.cart-empty {
    padding: 24px 0 48px;
}

.cart-empty p {
    color: #999;
}

/* ===== Afrekenen ===== */
.checkout h2 { margin: 28px 0 14px; font-size: 18px; font-weight: 600; }
.checkout-field label { display: block; margin-bottom: 4px; color: #bbb; font-size: 13px; }
.checkout-field input,
.checkout-field select { width: 100%; }
.checkout select option { background: #212121; }   /* anders witte lijst met lichte tekst */
.checkout-field.has-error input,
.checkout-field.has-error select { border-color: #e79965; }
.checkout-error { margin: -8px 0 12px; color: #e79965; font-size: 13px; }
.checkout-check { display: flex; gap: 10px; align-items: flex-start; margin: 8px 0 20px; font-weight: normal; cursor: pointer; }
.checkout-check input { margin-top: 5px; }
.checkout-summary { padding: 24px; border: 1px solid rgba(255, 255, 255, .1); background: rgba(255, 255, 255, .04); }
.checkout-lines { margin: 0 0 16px; padding: 0 0 16px; list-style: none; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.checkout-lines li,
.checkout-row { display: flex; justify-content: space-between; gap: 16px; margin: 0 0 8px; }
.checkout-row--total { margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .1); font-size: 18px; }
.checkout-note { margin: 12px 0; color: #999; font-size: 13px; }
.checkout-row--vat { margin-top: -4px; color: #999; font-size: 13px; }
.checkout-summary .btn:disabled { opacity: .6; cursor: wait; }

/* ===== Bedankpagina ===== */
.thanks h2 { margin: 28px 0 14px; font-size: 18px; font-weight: 600; }
.thanks .checkout-summary h2 { margin-top: 0; }
.thanks-number { font-size: 18px; }
.thanks-number strong { color: #e79965; letter-spacing: .03em; }
.thanks-address { margin: 0 0 24px; font-style: normal; line-height: 1.7; }

/* Telefoon: foto links, daarnaast titel; aantal en totaal eronder */
@media (max-width: 600px) {
    .cart-line {
        grid-template-columns: 72px minmax(0, 1fr) auto;
        grid-template-areas:
            "image info info"
            "image qty  total";
        gap: 12px 16px;
    }

    .cart-summary {
        max-width: none;
    }
}
