

/* Container query anchor: grid responds to its own container width */
.voorraad-vakgarage.container__main {
    container-type: inline-size;
}

div.row.row-container.occasions__row {
    display: flex;
    flex-wrap: wrap;
}

div.occasions-wrapper {
    padding: 10px 10px;
}

div.col.occasion-container.occasions__box {
    flex: 0 0 var(--vg-col-pct, 25%);
    max-width: var(--vg-col-pct, 25%);
    width: var(--vg-col-pct, 25%);
    margin-right: 0 !important;
}

div.card.occasion-card {
    border: 1px solid rgba(26, 23, 27, .08);
    border-radius: var(--vg-card-radius, 10px);
    transition: transform .2s ease;
}

div.card.occasion-card:hover {
    transform: translateY(-2px);
}

.image.occassion-image-one img {
    margin-bottom: 0;
    display: block;
}

div.card.occasion-card div.occasion-content {
    padding: 16px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

/* Title */
.occasion-card__title {
    font-size: 17px;
    font-weight: 700;
    font-family: "Montserrat", sans-serif;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin: 0 0 4px;
    color: #1a171b;
}

/* Uitvoering */
.occasion-card__uitvoering {
    font-size: 13px;
    color: rgba(26, 23, 27, .6);
    font-family: "Montserrat", sans-serif;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin: 0 0 4px;
    min-height: 1.4em;
}

/* Specs row */
.occasion-card__specs {
    font-size: 13px;
    color: rgba(26, 23, 27, .7);
    font-family: "Montserrat", sans-serif;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin: 0 0 14px;
}

/* Footer: price left, button right */
.occasion-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: auto;
    padding-top: 12px;
    border-top: 1px solid rgba(26, 23, 27, .07);
    flex-wrap: nowrap;
}

.occasion-card__price {
    font-size: 16px;
    font-weight: 700;
    font-family: "Montserrat", sans-serif;
    color: #1a171b;
    white-space: nowrap;
    letter-spacing: -.3px;
}

a.occassion-detail-button {
    font-family: "Montserrat", sans-serif;
    padding: 8px 16px;
    background: var(--vg-btn-bg, #f3f4f6);
    color: var(--vg-btn-text, #1a171b);
    font-weight: 600;
    border-radius: var(--vg-btn-radius, 6px);
    text-transform: uppercase;
    text-decoration: none !important;
    font-size: 10px;
    letter-spacing: .6px;
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
    transition: background .2s ease, color .2s ease;
}

a.occassion-detail-button:hover {
    background: var(--vg-accent, #1a171b);
    color: #ffffff;
}

/* Grid: 4 → 3 → 2 → 1 column based on container width */
@container (max-width: 1100px) {
    div.col.occasion-container.occasions__box {
        width: 33.3333% !important;
        max-width: 33.3333% !important;
        flex: 0 0 33.3333% !important;
    }
}

@container (max-width: 750px) {
    div.col.occasion-container.occasions__box {
        width: 50% !important;
        max-width: 50% !important;
        flex: 0 0 50% !important;
    }
}

@container (max-width: 500px) {
    div.col.occasion-container.occasions__box {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
    }
}

div.vakgarage-occasions .occasion-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    padding: 10px;
}

div.vakgarage-occasions .occasion-filters>div.filter-option {
    background-color: white;
    padding: 8px 12px;
    border: 1px solid rgba(26, 23, 27, .1);
    border-radius: 4px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    position: relative;
}

div.vakgarage-occasions .occasion-filters>div.filter-option>.filter-button {
    display: flex;
    align-items: center;
    gap: 7px;
}

div.vakgarage-occasions .occasion-filters > div.filter-option > .filter-button .vg-filter-dot {
    display: none;
    width: 18px;
    height: 18px;
    background: #1a171b;
    color: #fff;
    border-radius: 50%;
    font-size: 10px;
    font-weight: 700;
    flex-shrink: 0;
    margin-left: auto;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

div.vakgarage-occasions .occasion-filters > div.filter-option.has-active-filter > .filter-button .vg-filter-dot {
    display: inline-flex;
}

div.vakgarage-occasions .occasion-filters .filter-name {
    padding: unset;
    margin: unset;
}

div.vakgarage-occasions .occasion-filters>div.filter-option .filter_modal {
    position: absolute;
    background-color: white;
    padding: 20px;
    top: 100%;
    margin-top: 10px;
    min-width: 300px;
    max-width: 450px;
    z-index: 50;
    left: 0;
    border-radius: 4px;
    border: 1px solid rgba(26, 23, 27, .1);
    box-shadow: 0 4px 16px 0 rgba(26, 23, 27, .15);
    display: none;
}

div.vakgarage-occasions .occasion-filters>div.filter-option.active .filter_modal {
    display: block;
}

div.vakgarage-occasions .occasion-filters .filter_modal .filter__input-boxes {
    display: flex;
    gap: 10px;
}

div.vakgarage-occasions .occasion-filters input.vakgarage-occasions.filter__input {
    padding: 0 .8rem;
    letter-spacing: 1px;
    border: 1px solid rgb(26 23 27 / 35%);
    font-size: 14px;
    font-weight: 500;
    color: rgb(0 0 0 / 65%);
    width: 100%;
    min-width: 150px;
    height: 40px;
}

div.vakgarage-occasions .occasion-filters .filter__inputbox label {
    font-weight: 600;
    color: black;
    margin-bottom: 6px;
}

div.vakgarage-occasions .occasion-filters .filter__inputbox.mileage {
    position: relative;
}

.vg-suffix-wrap {
    position: relative;
    display: flex;
    align-items: center;
}

.vg-suffix-wrap .vakgarage-occasions.filter__input {
    padding-right: 40px;
}

.vg-suffix {
    position: absolute;
    right: 10px;
    font-size: 12px;
    color: rgb(0 0 0 / 45%);
    pointer-events: none;
    white-space: nowrap;
}

.vg-prefix {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 13px;
    color: rgb(0 0 0 / 45%);
    pointer-events: none;
    z-index: 1;
}

div.vakgarage-occasions .occasion-filters .filter__inputbox.price input.vakgarage-occasions.filter__input {
    padding-left: 25px;
}

div.vakgarage-occasions .occasion-filters .filter__inputbox.mileage input.vakgarage-occasions.filter__input {
    padding-right: 45px;
}

.filter-option.option_merkmodel.active .filter_modal {
    width: 250px;
    max-width: 250px !important;
}

.brand-filter {
    padding-bottom: 5px;
}

.brand-models {
    display: none;
    margin-left: 10px;
    border-left: 1px dashed #d3d3d3;
    padding-left: 10px;
    padding-top: 10px;
}

.filter-option.option_merkmodel.active .filter_modal {
    width: 250px;
    max-width: 250px !important;
    min-width: 200px !important;
}

.brand-label {
    display: flex;
    align-items: center;
    position: relative;
    gap: 10px;
}

.brand-label svg {
    transform: rotate(270deg);
}

.brand-filter.active .brand-models {
    display: block;
}

.filter_modal:has(.brand-filter.active) {
    width: 500px !important;
    max-width: 500px !important;
}

.vakgarage-occasions.filter-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.vakgarage-occasions.filter-container > div.buttons {
    display: flex;
    align-items: center;
    gap: 1.3em;
}
.voorraad-vakgarage a.reset-filter__btn,
.voorraad-vakgarage button.reset-filter__btn,
.vg-plugin-wrap a.reset-filter__btn,
.vg-plugin-wrap button.reset-filter__btn {
    color: #fff;
    background: #dc2626;
    border: none;
    border-radius: 9999px;
    padding: 0 16px;
    height: 40px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: background .15s;
}

.voorraad-vakgarage a.reset-filter__btn:hover,
.voorraad-vakgarage button.reset-filter__btn:hover,
.vg-plugin-wrap a.reset-filter__btn:hover,
.vg-plugin-wrap button.reset-filter__btn:hover {
    background: #b91c1c;
}

/* Swiper Slider */
div.swiper.occassion-slider .swiper-button-next.swiper-button-disabled,
div.swiper.occassion-slider .swiper-button-prev.swiper-button-disabled {
    display: none;
}

div.swiper.occassion-slider .swiper-button-next:after,
div.swiper.occassion-slider .swiper-rtl .swiper-button-prev:after,
div.swiper.occassion-slider .swiper-button-prev:after,
div.swiper.occassion-slider .swiper-rtl .swiper-button-next:after {
    content: none !important;
}

div.swiper.occassion-slider .swiper-button-next,
div.swiper.occassion-slider .swiper-button-prev {
    display: flex;
    justify-content: center;
    background-color: white;
    width: 33px;
    height: 33px;
    border-radius: 50%;
    box-shadow: 0px 0px 14px 4px rgb(0 0 0 / 53%);
    opacity: 0;
    transition: opacity .3s ease-in-out;
}

.swiper.occassion-slider:hover .swiper-button-next,
.swiper.occassion-slider:hover .swiper-button-prev {
    opacity: 1;
    transition: opacity .3s ease-in-out;
}

div.swiper.occassion-slider .swiper-pagination {
    bottom: 30px !important;
}

div.swiper.occassion-slider .swiper-pagination-bullet-active {
    background: white;
    width: 20px;
    border-radius: 10px;
}

img.occasions-card__image {
    margin: unset !important;
}

div.vakgarage-occasions .filter-item.occasions-custom__checkbox, div.vakgarage-occasions .brand-model.model-option.occasions-custom__checkbox {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 3px;
    min-height: 24px;
    cursor: pointer;
}

div.vakgarage-occasions .occasions-custom__checkbox input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 18px;
    height: 18px;
    min-width: 18px;
    border: 1.5px solid #c9c9c9;
    border-radius: 3px;
    background: #fff;
    cursor: pointer;
    position: relative;
    margin: 0;
    flex-shrink: 0;
    transition: background .15s, border-color .15s;
}

div.vakgarage-occasions .occasions-custom__checkbox input[type="checkbox"]:checked {
    background: #1a171b;
    border-color: #1a171b;
}

div.vakgarage-occasions .occasions-custom__checkbox input[type="checkbox"]:checked::after {
    content: "";
    position: absolute;
    left: 5px;
    top: 1px;
    width: 5px;
    height: 10px;
    border: 2px solid #fff;
    border-top: none;
    border-left: none;
    transform: rotate(45deg);
}

div.vakgarage-occasions .occasion-filters label {
    font-weight: 500 !important;
    color: rgb(0 0 0 / 80%);
    font-family: inherit;
    display: flex;
    align-items: center;
    gap: 5px;
}

.vg-filter-count {
    font-size: 11px;
    font-weight: 500;
    color: rgb(0 0 0 / 40%);
    margin-left: auto;
}

/* ── Pagination ──────────────────────────────────────────── */
.vg-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px;
    padding: 24px 0 8px;
    flex-wrap: wrap;
}

.vg-pagination__btn {
    min-width: 36px;
    height: 36px;
    padding: 0 10px;
    border: 1.5px solid rgba(26,23,27,.15);
    border-radius: var(--vg-btn-radius, 6px);
    background: #fff;
    color: #1a171b;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s, border-color .15s, color .15s;
    line-height: 1;
}

.vg-pagination__btn:hover {
    border-color: var(--vg-accent, #1a171b);
    background: var(--vg-accent, #1a171b);
    color: #fff;
}

.vg-pagination__btn.active {
    background: var(--vg-accent, #1a171b);
    border-color: var(--vg-accent, #1a171b);
    color: #fff;
}

.vg-pagination__btn:disabled {
    opacity: .35;
    cursor: default;
    pointer-events: none;
}

.voorraad-vakgarage.container__main .sticky-bottom.mobile__btns {
    display: none;
}

.voorraad-vakgarage button.occasion-filter__btn {
    padding: 0 30px;
    height: 40px;
    font-size: 13px;
    background: var(--vg-btn-bg, #1a171b);
    color: var(--vg-btn-text, #ffffff);
    font-weight: 600;
    border: none;
    cursor: pointer;
    border-radius: var(--vg-btn-radius, 200px);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

/* Mobile UI Filter Menu */
.vg-filter-mobile-header {
    display: none;
    
}

.vg-filter-mobile-reset {
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    font-size: 13px;
    font-weight: 600;
    color: #dc2626 !important;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border-radius: 0 !important;
    -webkit-appearance: none;
    appearance: none;
}

.vg-filter-mobile-close {
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    font-size: 20px !important;
    color: #1a171b !important;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    line-height: 1;
    -webkit-appearance: none;
    appearance: none;
}

@media (max-width: 768px) {
    /* ── Full-screen filter ─────────────────────── */
    .vakgarage-filter-wrap {
        position: static;
        background: none;
        padding: 0;
        margin: 0;
    }
    .vakgarage-occasions.filter-container {
        position: fixed;
        z-index: 99;
        width: 100%;
        left: 0;
        bottom: 0;
        top: auto;
        height: 100dvh;
        max-height: 100dvh;
        background: #fff;
        border-radius: 0;
        flex-direction: column;
        display: flex;
        transform: translateY(110%);
        transition: transform 0.35s cubic-bezier(0.32, 0.72, 0, 1);
        pointer-events: none;
        overflow: hidden;
        padding-bottom: 0;
        box-shadow: none;
    }

    .vakgarage-occasions.filter-container.mobile__filtermenu-active {
        transform: translateY(0);
        pointer-events: all;
        padding-bottom: 1em;
    }

    /* No drag handle on full-screen */
    .vakgarage-occasions.filter-container::before {
        display: none;
    }

    /* ── Header ─────────────────────────────────── */
    .vg-filter-mobile-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 30px 30px 0px 30px;
        flex-shrink: 0;
        position: relative;
        z-index: 2;
        background: #fff;
    }

    .vg-filter-mobile-header__title {
        font-size: 16px;
        font-weight: 700;
        color: #1a171b;
    }

    .vg-filter-mobile-header__left {
        display: flex;
        align-items: center;
        gap: 10px;
    }

    /* ── Scrollable filter body ──────────────────── */
    div.vakgarage-occasions .occasion-filters {
        display: block;
        overflow-y: auto;
        flex: 1 1 auto;
        padding: 0 0 4px;
        -webkit-overflow-scrolling: touch;
    }

    div.vakgarage-occasions .occasion-filters > div.filter-option {
        border: none;
        border-bottom: 1px solid rgb(26 23 27 / 8%);
    }

    div.vakgarage-occasions .occasion-filters > div.filter-option > .filter-button {
        padding: 14px 16px;
    }

    div.vakgarage-occasions .occasion-filters > div.filter-option .filter_modal {
        display: block;
        position: relative;
        padding: 0 16px 14px;
        background: none;
        box-shadow: none;
        border: none;
        width: 100% !important;
        max-width: 100% !important;
    }

    div.vakgarage-occasions .occasion-filters > div.filter-option > .filter-button svg {
        display: none;
    }

    div.vakgarage-occasions .occasion-filters .filter-name {
        font-size: 14px;
        font-weight: 600;
        color: #1a171b;
        border-bottom: none;
        width: 100%;
        margin: 0;
        padding: 0;
    }

    /* ── Brand / model ───────────────────────────── */
    div.brand-filter .brand-models {
        position: relative;
        left: 0;
        border-left: 2px solid rgb(235 234 235);
        height: max-content;
        margin-left: 10px;
        padding: 8px 10px 4px !important;
    }

    div.brand-filter .brand-label {
        padding: 0;
    }

    .filter_modal .brand-filter {
        width: 100%;
        max-width: 100%;
    }

    .brand-label svg {
        transform: rotate(0deg);
    }

    .vakgarage-occasions.filter-container > div.buttons {
        justify-content: center;
    }

    .filter-option.option_merkmodel.active .filter_modal.filter-active {
        width: 100%;
        max-width: 100%;
    }

    /* ── Sticky bar ──────────────────────────────── */
    .voorraad-vakgarage.container__main .sticky-bottom.mobile__btns {
        position: sticky;
        bottom: 30px;
        z-index: 10;
        width: max-content;
        background-color: whitesmoke;
        border-radius: 200px;
        display: flex;
        align-items: center;
        gap: 15px;
        margin: auto;
        box-shadow: 0px 0px 20px 0px #0000004f;
    }

    .voorraad-vakgarage.container__main .sticky-bottom.mobile__btns a {
        text-decoration: none;
    }
}

/* -------------------------------------------------------------------------
   Responsive improvements
   ------------------------------------------------------------------------- */

/* Head: title + filter form side by side, stack on mobile */
.vakgarage-occasions-head {
    margin-bottom: 16px;
}

.vakgarage-filter-wrap {
    position: sticky;
    top: 0;
    z-index: 50;
    background: #fff;
    padding: 6px 0;
    margin: 0 0 10px;
}

.vakgarage-occasion-title {
    flex-shrink: 0;
    margin: 0;
}

.vakgarage-occasions-head > form {
    flex: 1 1 auto;
    min-width: 0;
}

/* Fixed aspect ratio on the slider so cards have a consistent image height */
.image.occassion-image-one .swiper.occassion-slider {
    aspect-ratio: 4 / 3;
    width: 100%;
}

.image.occassion-image-one .swiper-slide {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.image.occassion-image-one .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

/* Prevent filter dropdown modals from overflowing viewport on small screens */
div.vakgarage-occasions .occasion-filters > div.filter-option .filter_modal {
    max-width: min(450px, calc(100vw - 20px));
}

@media (max-width: 768px) {
    /* Stack title above filter form */
    .vakgarage-occasions-head {
        flex-direction: column;
    }

    /* Sticky bar must sit ABOVE the full-screen filter overlay (z-index: 99) */
    .voorraad-vakgarage.container__main .sticky-bottom.mobile__btns {
        z-index: 100;
    }

    /* Give the full-screen filter panel breathing room at the top and bottom
       so it never sits behind mobile browser chrome */
    .vakgarage-occasions.filter-container {
        padding-top: env(safe-area-inset-top, 12px);
        padding-bottom: env(safe-area-inset-bottom, 0px);
    }
}



