.offerte-product{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.offerte-aantal{display:flex;height:48px;overflow:hidden;border:1px solid #d9d9d9;border-radius:6px;background:#fff}.offerte-min,.offerte-plus{width:48px;height:48px;padding:0;border:0;background:#f7f7f7;cursor:pointer;font-size:24px;font-weight:600}.offerte-min:hover,.offerte-plus:hover{background:#ececec}.offerte-hoeveelheid{width:60px;height:48px;padding:0;border:0;text-align:center;font-size:18px;appearance:textfield}.offerte-hoeveelheid::-webkit-inner-spin-button,.offerte-hoeveelheid::-webkit-outer-spin-button{margin:0;appearance:none}.offerte-toevoegen{min-height:48px;padding:13px 28px;border:0;border-radius:6px;background:#204f83;color:#fff;cursor:pointer;font-size:16px;font-weight:600;transition:background .2s ease,transform .2s ease}.offerte-toevoegen:hover{background:#183c63;transform:translateY(-1px)}.offerte-toevoegen.is-toegevoegd{background:#fff;color:#204f83;box-shadow:inset 0 0 0 2px #204f83}.dstent-offerte-widget{position:fixed;right:22px;bottom:22px;z-index:99999;font-family:inherit}.dstent-offerte-toggle{display:flex;align-items:center;gap:9px;padding:13px 16px;border:0;border-radius:8px;background:#204f83;color:#fff;box-shadow:0 8px 26px rgba(0,0,0,.2);cursor:pointer;font-weight:700}.offerte-teller{display:inline-flex;align-items:center;justify-content:center;min-width:25px;height:25px;padding:0 7px;border-radius:999px;background:#f0c66d;color:#204f83;font-size:13px}.dstent-offerte-paneel{position:absolute;right:0;bottom:calc(100% + 12px);width:min(400px,calc(100vw - 30px));overflow:hidden;border-radius:10px;background:#fff;box-shadow:0 12px 36px rgba(0,0,0,.24)}.dstent-offerte-kop{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;background:#204f83;color:#fff;font-size:18px}.dstent-offerte-sluiten{padding:0;border:0;background:transparent;color:#fff;cursor:pointer;font-size:28px;line-height:1}.dstent-offerte-inhoud{max-height:420px;overflow:auto;padding:14px 18px}.dstent-offerte-rij{display:block;padding:12px 0;border-bottom:1px solid #e5e5e5}.dstent-offerte-rij-boven{display:flex;align-items:center;justify-content:space-between;gap:12px}.dstent-offerte-productnaam{font-weight:600}.dstent-offerte-rij-acties,.offerte-overzicht-acties,.dstent-cart-aantalbediening,.offerte-form-aantalbediening{display:flex;align-items:center;gap:6px}.dstent-cart-min,.dstent-cart-plus,.dstent-cart-verwijderen,.offerte-form-min,.offerte-form-plus{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:1px solid #d8d8d8;border-radius:4px;background:#f7f7f7;cursor:pointer;font-size:18px}.dstent-cart-verwijderen{border:0;background:transparent;color:#8a1f1f;font-size:22px}.dstent-cart-aantal,.offerte-form-aantal{min-width:24px;text-align:center;font-weight:700}.dstent-cart-opmerking,.offerte-form-opmerking{width:100%;margin-top:9px;padding:9px 10px;border:1px solid #d8d8d8;border-radius:5px;background:#fff;font:inherit}.dstent-offerte-acties{display:grid;grid-template-columns:1fr 1.35fr;gap:10px;padding:14px 18px 18px;border-top:1px solid #e5e5e5}.dstent-offerte-wissen,.dstent-offerte-doorgaan{display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 12px;border-radius:6px;cursor:pointer;font-weight:700;text-align:center;text-decoration:none}.dstent-offerte-wissen{border:1px solid #d0d0d0;background:#fff;color:#333}.dstent-offerte-doorgaan{border:1px solid #204f83;background:#204f83;color:#fff!important}.offerte-formulier-overzicht{margin-bottom:24px;padding:20px;border:1px solid #dcdcdc;border-radius:8px;background:#f7f7f7}.offerte-overzicht-rij{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid #ddd}.offerte-overzicht-info{flex:1 1 auto;min-width:0}.offerte-overzicht-product{display:block;color:#204f83;font-size:16px}.offerte-verwijderen{padding:0;border:0;background:transparent;cursor:pointer;text-decoration:underline}.offerte-overzicht-totalen{display:flex;justify-content:flex-end;gap:20px;margin-top:14px;padding-top:14px;border-top:2px solid #204f83;color:#204f83}.offerte-formulier-leeg{margin:0}@media(max-width:767px){.offerte-toevoegen{flex:1 1 100%}.dstent-offerte-widget{right:15px;bottom:15px;left:15px}.dstent-offerte-toggle{width:100%;justify-content:center}.dstent-offerte-paneel{right:0;left:0;width:auto}.dstent-offerte-acties{grid-template-columns:1fr}.offerte-overzicht-rij,.dstent-offerte-rij-boven{align-items:stretch;flex-direction:column}.offerte-overzicht-acties{justify-content:space-between}.offerte-overzicht-totalen{align-items:flex-start;flex-direction:column;gap:5px}}
/* v2.2 professionele offerteweergave */
.offerte-samenvatting{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 24px}.offerte-stat{display:flex;align-items:center;gap:10px;padding:14px 16px;border:1px solid #d8e1eb;border-radius:8px;background:#fff}.offerte-stat strong{font-size:25px;line-height:1;color:#204f83}.offerte-stat span{font-size:13px;color:#526579}.offerte-categorie-groep{margin-top:24px}.offerte-categorie-titel{margin:0 0 12px;color:#204f83;font-size:18px}.offerte-overzicht-grid{display:grid;gap:14px}.offerte-overzicht-kaart{display:flex;overflow:hidden;border:1px solid #d8e1eb;border-radius:9px;background:#fff;box-shadow:0 3px 10px rgba(32,79,131,.07)}.offerte-overzicht-afbeelding{width:128px;min-height:150px;flex:0 0 128px;background:#f3f6f9}.offerte-overzicht-afbeelding img{width:100%;height:100%;object-fit:contain}.offerte-overzicht-body{display:flex;flex:1;min-width:0;flex-direction:column;padding:16px}.offerte-overzicht-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.offerte-categorie-badge{display:inline-block;margin-bottom:4px;color:#6b7c8e;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.offerte-overzicht-product{font-size:18px}.offerte-opmerking-label{display:block;margin-top:14px;color:#526579;font-size:12px;font-weight:700}.offerte-form-opmerking{display:block;min-height:58px;resize:vertical}.offerte-overzicht-footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:12px;color:#6b7c8e;font-size:13px}.offerte-verwijderen{padding:7px 10px;border:1px solid #d9b7b7;border-radius:5px;color:#8a1f1f;text-decoration:none}.offerte-verwijderen:hover{background:#fff2f2}.offerte-overzicht-totalen{align-items:center;justify-content:space-between;padding:16px 0 0;font-size:16px}.offerte-overzicht-totalen strong{font-size:20px}.dstent-offerte-rij{display:flex;gap:10px}.dstent-offerte-thumb{width:54px;height:54px;flex:0 0 54px;border-radius:6px;background:#f3f6f9;overflow:hidden}.dstent-offerte-thumb img{width:100%;height:100%;object-fit:contain}.dstent-offerte-rij-content{flex:1;min-width:0}.dstent-offerte-rij-boven small{display:block;color:#6b7c8e;font-size:10px;text-transform:uppercase}.dstent-offerte-productnaam{display:block}.dstent-offerte-paneel{width:min(440px,calc(100vw - 30px))}
@media(max-width:767px){.offerte-samenvatting{grid-template-columns:1fr}.offerte-overzicht-kaart{flex-direction:column}.offerte-overzicht-afbeelding{width:100%;height:150px;min-height:0;flex-basis:auto}.offerte-overzicht-header{align-items:stretch;flex-direction:column}.offerte-overzicht-header .offerte-form-aantalbediening{align-self:flex-start}.offerte-stat{padding:11px 13px}}
/* v2.3 centraal productbeheer en Elementor-widget */
.dstent-widget-specificaties{margin:0 0 10px;color:#526579;font-size:14px;line-height:1.5}
.post-type-dstent_product .column-dstent_category{width:18%}.post-type-dstent_product .column-dstent_price{width:10%}.post-type-dstent_product .column-dstent_shortcode{width:28%}


/* v2.4 — centrale DS-Tent Elementor-productkaart */
.dstent-product-widget-placeholder {
	padding: 18px;
	border: 1px dashed #b9c7d6;
	border-radius: 8px;
	background: #f7f9fb;
	color: #425466;
}

.dstent-product-card {
	overflow: hidden;
	border: 1px solid #d9e1ea;
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 4px 18px rgba(29, 79, 131, .08);
}

.dstent-product-card__image {
	overflow: hidden;
	background: #fff;
	text-align: center;
}

.dstent-product-card__image img {
	display: block;
	max-width: 100%;
	height: auto;
	margin-inline: auto;
	object-fit: contain;
}

.dstent-product-card__content {
	padding: 20px;
}

.dstent-product-card__category {
	margin-bottom: 6px;
	color: #68798c;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.dstent-product-card__title {
	margin: 0 0 12px;
	color: #204f83;
	font-size: clamp(22px, 2.4vw, 30px);
	line-height: 1.15;
}

.dstent-product-card__price {
	display: flex;
	align-items: baseline;
	justify-content: inherit;
	gap: 3px;
	margin-bottom: 12px;
	color: #204f83;
}

.dstent-product-card__currency {
	font-size: 20px;
	font-weight: 700;
}

.dstent-product-card__amount {
	font-size: 38px;
	font-weight: 800;
	line-height: 1;
}

.dstent-product-card__suffix {
	font-size: 14px;
}

.dstent-product-card__specs {
	margin-bottom: 18px;
	color: #36516d;
	line-height: 1.6;
}

.dstent-product-card__offerte .offerte-product {
	justify-content: inherit;
}

@media (max-width: 767px) {
	.dstent-product-card__content {
		padding: 16px;
	}

	.dstent-product-card__amount {
		font-size: 32px;
	}
}

/* v2.5 — flexibele Elementor-productkaart */
.dstent-product-card--left,
.dstent-product-card--right {
	display: flex;
	align-items: stretch;
}

.dstent-product-card--right {
	flex-direction: row-reverse;
}

.dstent-product-card--left .dstent-product-card__image,
.dstent-product-card--right .dstent-product-card__image {
	flex: 0 0 42%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.dstent-product-card--left .dstent-product-card__content,
.dstent-product-card--right .dstent-product-card__content {
	flex: 1 1 auto;
	min-width: 0;
}

.dstent-product-card__image img {
	max-height: 460px;
}

.dstent-product-card__offerte {
	margin-top: 16px;
}

@media (max-width: 767px) {
	.dstent-product-card--left,
	.dstent-product-card--right {
		flex-direction: column;
	}

	.dstent-product-card--left .dstent-product-card__image,
	.dstent-product-card--right .dstent-product-card__image {
		flex-basis: auto;
		width: 100%;
	}
}


/* v2.6 — minimum, maximum en stapgrootte */
.offerte-aantalregels {
    flex: 1 1 100%;
    margin-top: 7px;
    color: #63758a;
    font-size: 12px;
    line-height: 1.4;
}

.offerte-aantalregels.heeft-waarschuwing {
    color: #a12828;
    font-weight: 700;
}

.offerte-overzicht-regels {
    display: block;
    margin: 4px 0 12px;
    color: #63758a;
    font-size: 12px;
}

.offerte-min:disabled,
.offerte-plus:disabled,
.dstent-cart-min:disabled,
.dstent-cart-plus:disabled,
.offerte-form-min:disabled,
.offerte-form-plus:disabled {
    opacity: .4;
    cursor: not-allowed;
}


/* v2.7.1 — veilige automatische productcatalogus */
.dstent-catalog-tools {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 24px;
}

.dstent-catalog-search {
    display: grid;
    gap: 7px;
    width: min(560px, 100%);
    color: #204f83;
    font-weight: 700;
}

.dstent-catalog-search-input {
    width: 100%;
    min-height: 48px;
    padding: 10px 15px;
    border: 1px solid #cbd7e4;
    border-radius: 7px;
    background: #fff;
    font: inherit;
}

.dstent-catalog-count {
    color: #60758b;
    white-space: nowrap;
}

.dstent-catalog-category {
    margin-bottom: 42px;
}

.dstent-catalog-category-title {
    margin: 0 0 20px;
    padding: 12px 18px;
    background: #9fb3c9;
    color: #f0c66d;
    text-align: center;
    font-size: clamp(28px, 4vw, 42px);
}

.dstent-catalog-grid {
    display: grid;
    grid-template-columns: repeat(var(--dstent-columns, 3), minmax(0, 1fr));
    gap: 24px;
}

.dstent-catalog-card {
    overflow: hidden;
    border: 1px solid #d8e0e9;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 5px 20px rgba(30, 79, 131, .08);
}

.dstent-catalog-card[hidden],
.dstent-catalog-category[hidden] {
    display: none !important;
}

.dstent-catalog-image {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 220px;
    padding: 15px;
}

.dstent-catalog-image img {
    display: block;
    width: 100%;
    max-height: 230px;
    object-fit: contain;
}

.dstent-catalog-card-body {
    padding: 20px;
}

.dstent-catalog-title {
    margin: 0 0 10px;
    color: #204f83;
    font-size: 24px;
}

.dstent-catalog-price {
    margin-bottom: 12px;
    color: #204f83;
    font-size: 30px;
    font-weight: 800;
}

.dstent-catalog-price small {
    font-size: 13px;
    font-weight: 500;
}

.dstent-catalog-specs {
    min-height: 44px;
    margin-bottom: 18px;
    color: #526a81;
    line-height: 1.55;
}

.dstent-catalog-no-results,
.dstent-catalog-empty {
    padding: 24px;
    border: 1px dashed #c6d1dc;
    border-radius: 8px;
    background: #f7f9fb;
    color: #526a81;
    text-align: center;
}

@media (max-width: 1024px) {
    .dstent-catalog-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .dstent-catalog-tools {
        align-items: stretch;
        flex-direction: column;
        gap: 10px;
    }

    .dstent-catalog-grid {
        grid-template-columns: 1fr;
    }
}


/* v2.8 — professionele dynamische DS-Tent catalogus */
.dstent-catalog-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(190px, 260px);
    gap: 18px;
    align-items: end;
    margin-bottom: 18px;
}

.dstent-catalog-search,
.dstent-catalog-sort {
    display: grid;
    gap: 7px;
    color: #204f83;
    font-weight: 700;
}

.dstent-catalog-search-input,
.dstent-catalog-sort-select {
    width: 100%;
    min-height: 48px;
    padding: 10px 14px;
    border: 1px solid #c8d5e2;
    border-radius: 7px;
    background: #fff;
    color: #204f83;
    font: inherit;
}

.dstent-catalog-search-input:focus,
.dstent-catalog-sort-select:focus {
    outline: 2px solid #204f83;
    outline-offset: 1px;
}

.dstent-catalog-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-bottom: 16px;
}

.dstent-catalog-filter {
    min-height: 40px;
    padding: 8px 15px;
    border: 1px solid #204f83;
    border-radius: 999px;
    background: #fff;
    color: #204f83;
    cursor: pointer;
    font: inherit;
    font-weight: 700;
    transition:
        background-color .18s ease,
        color .18s ease,
        transform .18s ease;
}

.dstent-catalog-filter:hover {
    transform: translateY(-1px);
}

.dstent-catalog-filter.is-active {
    background: #204f83;
    color: #fff;
}

.dstent-catalog-meta {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 18px;
    color: #60758b;
}

.dstent-catalog-grid {
    display: grid;
    grid-template-columns:
        repeat(
            var(--dstent-columns, 3),
            minmax(0, 1fr)
        );
    gap: 24px;
}

.dstent-catalog-card {
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #d8e0e9;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 6px 22px rgba(30, 79, 131, .09);
    transition:
        transform .2s ease,
        box-shadow .2s ease;
}

.dstent-catalog-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 30px rgba(30, 79, 131, .14);
}

.dstent-catalog-card[hidden] {
    display: none !important;
}

.dstent-catalog-card.is-popular {
    border-color: #e6bd63;
}

.dstent-catalog-badge {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 3;
    padding: 6px 11px;
    border-radius: 999px;
    background: #f0c66d;
    color: #204f83;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.dstent-catalog-image {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 230px;
    padding: 18px;
    background: #fff;
}

.dstent-catalog-image img {
    display: block;
    width: 100%;
    max-height: 235px;
    object-fit: contain;
}

.dstent-catalog-card-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 20px;
}

.dstent-catalog-category-label {
    margin-bottom: 5px;
    color: #6b7e91;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.dstent-catalog-title {
    margin: 0 0 10px;
    color: #204f83;
    font-size: 24px;
    line-height: 1.2;
}

.dstent-catalog-price {
    display: flex;
    align-items: baseline;
    gap: 3px;
    margin-bottom: 13px;
    color: #204f83;
    font-size: 31px;
    font-weight: 800;
}

.dstent-catalog-price > span {
    font-size: 19px;
}

.dstent-catalog-price small {
    font-size: 13px;
    font-weight: 500;
}

.dstent-catalog-specs {
    flex: 1;
    min-height: 44px;
    margin-bottom: 18px;
    color: #526a81;
    line-height: 1.55;
}

.dstent-catalog-offer {
    margin-top: auto;
}

.dstent-catalog-offer .offerte-product {
    align-items: stretch;
}

.dstent-catalog-no-results,
.dstent-catalog-empty {
    padding: 26px;
    border: 1px dashed #c6d1dc;
    border-radius: 9px;
    background: #f7f9fb;
    color: #526a81;
    text-align: center;
}

@media (max-width: 1024px) {
    .dstent-catalog-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .dstent-catalog-toolbar {
        grid-template-columns: 1fr;
    }

    .dstent-catalog-grid {
        grid-template-columns: 1fr;
    }

    .dstent-catalog-meta {
        justify-content: flex-start;
    }

    .dstent-catalog-filter {
        flex: 1 1 auto;
    }
}


/* v2.9 — premium catalogus polish */
.dstent-catalog-card {
    min-width: 0;
}

.dstent-catalog-badges {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
}

.dstent-catalog-badge {
    position: static;
    display: inline-flex;
    align-items: center;
    min-height: 27px;
    padding: 5px 10px;
    border-radius: 999px;
    color: #204f83;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .08);
}

.dstent-catalog-badge.is-popular {
    background: #f0c66d;
}

.dstent-catalog-badge.is-new {
    background: #d8ebdc;
    color: #245f31;
}

.dstent-catalog-badge.is-action {
    background: #f7dddd;
    color: #922e2e;
}

.dstent-catalog-badge.is-bestseller {
    background: #dce8f7;
    color: #204f83;
}

.dstent-catalog-offer .offerte-product {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

.dstent-catalog-offer .offerte-aantal,
.dstent-catalog-offer .offerte-toevoegen {
    width: 100%;
}

.dstent-catalog-offer .offerte-toevoegen {
    justify-content: center;
    transition:
        transform .18s ease,
        background-color .18s ease,
        color .18s ease;
}

.dstent-catalog-offer .offerte-toevoegen:hover {
    transform: translateY(-1px);
}

.dstent-catalog-card:hover .offerte-toevoegen:not(.is-toegevoegd) {
    background: #f0c66d;
    color: #204f83;
}


/* v2.9.1 — catalogus grid- en uitlijningsfixes */
.dstent-catalog {
    width: 100%;
    min-width: 0;
}

.dstent-catalog-toolbar {
    grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
    align-items: end;
}

.dstent-catalog-toolbar > * {
    min-width: 0;
}

.dstent-catalog-search-input,
.dstent-catalog-sort-select {
    box-sizing: border-box;
}

.dstent-catalog-grid {
    width: 100%;
    min-width: 0;
    align-items: stretch;
}

.dstent-catalog-card {
    width: 100%;
    height: 100%;
}

.dstent-catalog-card-body {
    box-sizing: border-box;
}

/*
 * Elementor kan de responsive --dstent-columns variabele overschrijven.
 * Deze selector houdt de daadwerkelijke grid altijd gekoppeld aan die variabele.
 */
.elementor-widget-dstent_catalog .dstent-catalog-grid {
    min-width: 0;
}

/*
 * Wanneer er minder zichtbare producten zijn dan ingestelde kolommen,
 * vult de catalogus de beschikbare rij zodat er geen grote lege ruimte overblijft.
 */
.dstent-fill-incomplete-row
.dstent-catalog-grid.is-incomplete-row {
    grid-template-columns:
        repeat(
            var(--dstent-visible-columns, 1),
            minmax(0, 1fr)
        ) !important;
}

.dstent-fill-incomplete-row
.dstent-catalog-grid.has-single-product {
    --dstent-visible-columns: 1;
}

.dstent-fill-incomplete-row
.dstent-catalog-grid.has-two-products {
    --dstent-visible-columns: 2;
}

.dstent-catalog-category-label {
    display: inline-flex;
    align-self: flex-start;
    margin-bottom: 8px;
    padding: 4px 8px;
    border-radius: 999px;
    background: #eef3f8;
    color: #204f83;
    font-size: 10px;
    line-height: 1.2;
}

.offerte-aantalregels {
    opacity: .78;
}

@media (max-width: 767px) {
    .dstent-catalog-toolbar {
        grid-template-columns: 1fr;
    }

    .dstent-fill-incomplete-row
    .dstent-catalog-grid.has-two-products {
        --dstent-visible-columns: 1;
    }
}


/* v2.10 — structurele Elementor grid-oplossing */
.dstent-catalog-widget-output .dstent-catalog-grid {
    grid-template-columns:
        repeat(
            var(--dstent-columns-desktop, 3),
            minmax(0, 1fr)
        ) !important;
}

@media (max-width: 1024px) {
    .dstent-catalog-widget-output .dstent-catalog-grid {
        grid-template-columns:
            repeat(
                var(--dstent-columns-tablet, 2),
                minmax(0, 1fr)
            ) !important;
    }
}

@media (max-width: 767px) {
    .dstent-catalog-widget-output .dstent-catalog-grid {
        grid-template-columns:
            repeat(
                var(--dstent-columns-mobile, 1),
                minmax(0, 1fr)
            ) !important;
    }
}

/*
 * Alleen wanneer de optie aanstaat en er minder kaarten zijn dan kolommen,
 * wordt de rij dynamisch opgevuld.
 */
.dstent-fill-incomplete-row
.dstent-catalog-grid.has-single-product {
    grid-template-columns: minmax(0, 1fr) !important;
}

.dstent-fill-incomplete-row
.dstent-catalog-grid.has-two-products {
    grid-template-columns:
        repeat(2, minmax(0, 1fr)) !important;
}

@media (max-width: 767px) {
    .dstent-fill-incomplete-row
    .dstent-catalog-grid.has-two-products {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}


/* v2.10.1 — uniforme productkaarten en compactere toolbar */
.dstent-catalog-toolbar {
    padding: 14px;
    border: 1px solid #d9e2eb;
    border-radius: 10px;
    background: #f8fafc;
}

.dstent-catalog-search-input,
.dstent-catalog-sort-select {
    min-height: 46px;
}

.dstent-catalog-filters {
    margin-top: 12px;
}

.dstent-catalog-filter.is-active {
    box-shadow: 0 3px 10px rgba(32, 79, 131, .18);
}

.dstent-catalog-grid {
    grid-auto-rows: 1fr;
}

.dstent-catalog-card {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.dstent-catalog-image {
    height: 240px;
    min-height: 240px;
    padding: 18px;
}

.dstent-catalog-image img {
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: contain;
    object-position: center;
}

.dstent-catalog-card-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
}

.dstent-catalog-card-content {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
}

.dstent-catalog-title {
    min-height: 2.4em;
}

.dstent-catalog-specs {
    flex: 1 1 auto;
    min-height: 3.1em;
}

.dstent-catalog-offer {
    margin-top: auto;
}

.dstent-catalog-offer .offerte-product {
    margin-top: 0;
}

.dstent-catalog-offer .offerte-aantalregels {
    min-height: 18px;
}

@media (max-width: 1024px) {
    .dstent-catalog-image {
        height: 220px;
        min-height: 220px;
    }
}

@media (max-width: 767px) {
    .dstent-catalog-toolbar {
        padding: 12px;
    }

    .dstent-catalog-image {
        height: 210px;
        min-height: 210px;
    }

    .dstent-catalog-title {
        min-height: 0;
    }
}


/* v3.0 — voorraadstatus */
.offerte-voorraadstatus {
    margin-top: 8px;
    padding: 8px 10px;
    border-radius: 7px;
    background: #edf6ef;
    color: #29643a;
    font-size: 12px;
    font-weight: 700;
}

.offerte-voorraadstatus.is-laag {
    background: #fff3d8;
    color: #8b5a00;
}

.offerte-voorraadstatus.is-onbeschikbaar {
    background: #f8dddd;
    color: #922e2e;
}

.offerte-toevoegen:disabled,
.offerte-hoeveelheid:disabled {
    opacity: .55;
    cursor: not-allowed;
}

.dstent-catalog-card:has(
    .offerte-voorraadstatus.is-onbeschikbaar
) {
    opacity: .82;
}


/* v3.0.1 — verhuurgerichte beschikbaarheidslabels */
.dstent-admin-stock {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 4px 9px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
}

.dstent-admin-stock.is-active {
    background: #e8f3eb;
    color: #286238;
}

.dstent-admin-stock.is-disabled {
    background: #eef1f4;
    color: #697582;
}

/* v3.15: verberg lege afbeeldingskolommen in het aanvraagoverzicht */
.offerte-overzicht-afbeelding:empty{display:none}.offerte-overzicht-kaart:has(.offerte-overzicht-afbeelding:empty) .offerte-overzicht-body{padding-left:16px}


/* v4.0.0-dev2 — productkaart en selectie vanaf nul */
.dstent-catalog-title {
    font-size: clamp(24px, 2vw, 30px);
    line-height: 1.15;
}

.dstent-catalog-image img {
    transform: translateY(8px);
}

.dstent-catalog-offer .offerte-product {
    justify-content: center;
}

.dstent-catalog-offer .offerte-aantal {
    flex: 0 1 75%;
    width: 75%;
}

.dstent-catalog-offer .offerte-hoeveelheid {
    flex: 1 1 auto;
    width: auto;
}

.dstent-catalog-offer .offerte-toevoegen {
    flex: 0 1 52%;
    width: 52%;
    margin-inline: auto;
}

.dstent-catalog-offer .offerte-voorraadstatus {
    width: 100%;
    text-align: center;
}

.dstent-catalog-offer .offerte-aantalregels {
    width: 100%;
    text-align: left;
}

.dstent-catalog-offer .offerte-toevoegen:disabled {
    background: #d8dee6;
    color: #667588;
    opacity: 1;
}

@media (max-width: 767px) {
    .dstent-catalog-offer .offerte-aantal,
    .dstent-catalog-offer .offerte-toevoegen {
        width: 100%;
        flex-basis: 100%;
    }
}

/* v4.0.0-dev3 — gecentreerde bediening en categorie linksboven */
.dstent-catalog-category-label {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 4;
    margin: 0;
}

.dstent-catalog-offer {
    padding-top: 8px;
}

.dstent-catalog-offer .offerte-aantal,
.dstent-catalog-offer .offerte-toevoegen,
.dstent-catalog-offer .offerte-voorraadstatus {
    width: 75%;
    margin-inline: auto;
}

.dstent-catalog-offer .offerte-aantal {
    flex-basis: 75%;
}

.dstent-catalog-offer .offerte-toevoegen {
    flex-basis: 75%;
}

.dstent-catalog-offer .offerte-voorraadstatus {
    box-sizing: border-box;
    font-size: 13px;
    line-height: 1.35;
}

.dstent-catalog-offer .offerte-aantalregels {
    color: #60758a;
    opacity: 1;
}

@media (max-width: 767px) {
    .dstent-catalog-offer .offerte-aantal,
    .dstent-catalog-offer .offerte-toevoegen,
    .dstent-catalog-offer .offerte-voorraadstatus {
        width: 100%;
        flex-basis: 100%;
    }
}


/* v4.0.0-dev4 — laatste afwerking productkaarten */
.dstent-catalog-card {
    height: 100%;
}

.dstent-catalog-image {
    box-sizing: border-box;
    height: 230px;
    min-height: 230px;
    padding: 22px 24px 14px;
}

.dstent-catalog-image img {
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: contain;
    object-position: center;
    transform: none;
}

.dstent-catalog-title {
    font-size: clamp(26px, 2.15vw, 32px);
    line-height: 1.13;
}

.dstent-catalog-price {
    column-gap: 5px;
}

.dstent-catalog-price small {
    margin-left: 2px;
    white-space: nowrap;
}

/* De promotielabels sluiten visueel aan bij het categorielabel. */
.dstent-catalog-badge {
    min-height: 0;
    padding: 4px 8px;
    border-radius: 999px;
    background: #eef3f8;
    color: #204f83;
    font-size: 10px;
    line-height: 1.2;
    box-shadow: none;
}

.dstent-catalog-badge.is-popular,
.dstent-catalog-badge.is-new,
.dstent-catalog-badge.is-action,
.dstent-catalog-badge.is-bestseller {
    background: #eef3f8;
    color: #204f83;
}

.dstent-catalog-offer .offerte-product {
    gap: 8px;
}

.dstent-catalog-offer .offerte-voorraadstatus {
    margin-top: -1px;
}

@media (max-width: 767px) {
    .dstent-catalog-image {
        height: 210px;
        min-height: 210px;
    }
}

/* v4.0.0-dev5 — productafbeeldingen iets lager in het vaste afbeeldingsvlak */
.dstent-catalog-image img {
    object-position: center 58%;
}

@media (max-width: 767px) {
    .dstent-catalog-image img {
        object-position: center 56%;
    }
}

/* Dev6: tentconfigurator */
.offerte-tentconfig {
    width: min(100%, 310px);
    margin: 0 auto 14px;
    padding: 12px;
    border: 1px solid #dbe4ef;
    border-radius: 8px;
    background: #f8fbff;
    text-align: left;
}
.offerte-tentconfig-titel {
    margin-bottom: 8px;
    font-weight: 700;
    color: #174f87;
}
.offerte-tentkeuze {
    display: grid;
    gap: 7px;
}
.offerte-tentkeuze label,
.offerte-zijwand-rij label {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    color: #355b82;
}
.offerte-zijwanden {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #dbe4ef;
}
.offerte-zijwand-info,
.offerte-zijwand-prijs {
    margin-bottom: 9px;
    font-size: 12px;
    color: #627f9f;
}
.offerte-zijwand-rij {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}
.offerte-zijwand-rij label {
    display: block;
    font-weight: 600;
}
.offerte-zijwand-aantal {
    width: 100%;
    margin-top: 4px;
    padding: 7px 5px;
    border: 1px solid #cbd7e4;
    border-radius: 5px;
    text-align: center;
}
.offerte-zijwand-teller {
    margin-top: 10px;
    padding: 8px;
    border-radius: 5px;
    background: #eef5fb;
    font-size: 12px;
    font-weight: 700;
    color: #174f87;
    text-align: center;
}
.offerte-zijwand-teller.is-compleet {
    background: #eaf7ee;
    color: #17652e;
}
.offerte-zijwand-teller.heeft-waarschuwing {
    background: #fff2ed;
    color: #a63b1f;
}
@media (max-width: 480px) {
    .offerte-zijwand-rij { grid-template-columns: 1fr; }
}


/* v4.0.0-dev7 — compacte tentconfiguratie in Geselecteerde materialen */
.offerte-overzicht-configuratie {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin: 6px 0 12px;
    color: #526579;
    font-size: 12px;
    line-height: 1.45;
}

.offerte-overzicht-configuratie strong {
    color: #204f83;
    font-size: 13px;
}


/* v4.0.0-dev10 — compacte, duidelijke productgroepen */
/*
 * Automatische rijen mogen niet op 1fr staan: daardoor kreeg een subtitel
 * dezelfde rijhoogte als een productkaart en ontstond er veel lege ruimte.
 */
.dstent-catalog-grid {
    grid-auto-rows: auto;
}

.dstent-catalog-subtitle {
    grid-column: 1 / -1;
    margin: 28px 0 0;
    padding: 0 0 9px;
    border-bottom: 2px solid #e8b94f;
    color: #204f83;
    font-size: clamp(24px, 2vw, 31px);
    font-weight: 800;
    letter-spacing: .01em;
    line-height: 1.2;
}

/* Ook de eerste groep krijgt ademruimte onder de zoek- en sorteerbalk. */
.dstent-catalog-subtitle:first-child {
    margin-top: 24px;
}

/* Productkaarten blijven per rij even hoog, zonder de subtitelrij op te rekken. */
.dstent-catalog-card {
    align-self: stretch;
}

.dstent-catalog-subtitle[hidden] {
    display: none !important;
}

@media (max-width: 767px) {
    .dstent-catalog-subtitle,
    .dstent-catalog-subtitle:first-child {
        margin-top: 20px;
        padding-bottom: 8px;
        font-size: 25px;
    }
}


/* 4.0.0-dev12: korte productomschrijving op cataloguskaarten */
.dstent-catalog-description {
    margin: 0 0 18px;
    color: #355b7d;
    font-size: 15px;
    line-height: 1.65;
}

@media (max-width: 767px) {
    .dstent-catalog-description {
        font-size: 14px;
        line-height: 1.6;
    }
}

/* v4.0.0-dev14 — omschrijving sluit direct aan op titel zonder specificaties */
.dstent-catalog-card.has-no-specs .dstent-catalog-title {
    min-height: 0;
    margin-bottom: 12px;
}

.dstent-catalog-card.has-no-specs .dstent-catalog-description {
    margin-top: 0;
    margin-bottom: 20px;
}

.dstent-catalog-card.has-no-specs .dstent-catalog-card-content {
    justify-content: flex-start;
}


/* v4.0.0-dev15 — compactere producttekst en vaste inhoudsvolgorde */
.dstent-catalog-title,
.dstent-catalog-card.has-no-specs .dstent-catalog-title {
    min-height: 0;
    margin: 0 0 8px;
}

.dstent-catalog-description,
.dstent-catalog-card.has-no-specs .dstent-catalog-description {
    margin: 0 0 9px;
    line-height: 1.55;
}

.dstent-catalog-specs {
    flex: 0 0 auto;
    min-height: 0;
    margin: 0 0 11px;
}

.dstent-catalog-price {
    margin: 0 0 14px;
}

/* Alleen het bedieningsblok blijft onderaan uitgelijnd. */
.dstent-catalog-card-content {
    justify-content: flex-start;
}

@media (max-width: 767px) {
    .dstent-catalog-title,
    .dstent-catalog-card.has-no-specs .dstent-catalog-title {
        margin-bottom: 7px;
    }

    .dstent-catalog-description,
    .dstent-catalog-card.has-no-specs .dstent-catalog-description {
        margin-bottom: 8px;
    }
}

/* v4.0.0-dev16 — extra ademruimte rond catalogus en duidelijke routefeedback */
.elementor-widget-dstent_catalog .dstent-catalog-widget-output {
    margin-top: 28px;
    margin-bottom: 34px;
}

.dstent-route-status {
    display: block;
    margin-top: 8px;
    font-weight: 600;
    line-height: 1.45;
    white-space: normal;
}

.dstent-route-status.is-loading {
    color: #6b7280;
}

.dstent-route-status.is-success {
    color: #16713f;
}

.dstent-route-status.is-error {
    color: #b42318;
    background: #fff1f0;
    border: 1px solid #f3b7b2;
    border-radius: 6px;
    padding: 8px 10px;
}

@media (max-width: 767px) {
    .elementor-widget-dstent_catalog .dstent-catalog-widget-output {
        margin-top: 20px;
        margin-bottom: 26px;
    }
}


/* v4.0.0-dev17 — routeknop onder km-veld en volledige foutdiagnose */
.dstent-route-distance-field {
    display: block;
    width: 100%;
    margin: 0 0 8px;
}
.dstent-route-distance-field > label {
    display: block;
    margin-bottom: 5px;
}
.dstent-route-tools {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    width: 100%;
    clear: both;
    gap: 8px;
    margin: 0 0 12px !important;
}
.dstent-route-tools #dstent_calculate_route {
    position: static !important;
    float: none !important;
    display: inline-flex !important;
    width: auto !important;
    max-width: 100%;
    margin: 0 !important;
}
.dstent-route-tools .dstent-route-status {
    width: 100%;
    overflow-wrap: anywhere;
}


/* v4.0.0-dev18 — optionele tafelhoezen per tafel, zwart en wit */
.offerte-tafelhoezen { width:min(100%,410px); margin:0 auto 14px; padding:12px; border:1px solid #d7e1ec; border-radius:8px; background:#f8fbfe; }
.offerte-tafelhoezen-titel { color:#174f87; font-weight:700; margin-bottom:3px; }
.offerte-tafelhoezen-titel span,.offerte-tafelhoezen-info { color:#66788a; font-size:12px; font-weight:400; }
.offerte-tafelhoezen-info { margin-bottom:10px; }
.offerte-tafelhoes-rij { display:grid; grid-template-columns:minmax(90px,1fr) 132px; align-items:center; gap:8px 12px; padding:9px 0; border-top:1px solid #e3eaf1; }
.offerte-tafelhoes-label { display:flex; flex-direction:column; gap:2px; }
.offerte-tafelhoes-label small,.offerte-tafelhoes-voorraad { color:#66788a; font-size:11px; }
.offerte-tafelhoes-aantal { display:grid; grid-template-columns:34px 1fr 34px; border:1px solid #d3dbe5; border-radius:6px; overflow:hidden; background:#fff; }
.offerte-tafelhoes-aantal button,.offerte-tafelhoes-aantal input { min-height:34px; border:0!important; background:transparent; text-align:center; margin:0!important; padding:0!important; }
.offerte-tafelhoes-aantal button { cursor:pointer; font-weight:700; }
.offerte-tafelhoes-aantal input { width:100%; appearance:textfield; }
.offerte-tafelhoes-voorraad { grid-column:1/-1; text-align:right; margin-top:-5px; }
.offerte-overzicht-configuratie.is-addon { color:#385f83; }
.dstent-offerte-addon-label { display:block; margin-top:2px; color:#63788d; }
@media (max-width:520px) { .offerte-tafelhoes-rij { grid-template-columns:1fr; } .offerte-tafelhoes-aantal { width:150px; } .offerte-tafelhoes-voorraad { text-align:left; } }


/* v4.0.0-dev19 — inklapbare tafelhoezen en selecteerbare zijwandtypes */
.offerte-tafelhoezen-keuze { display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:8px; }
.offerte-tafelhoezen-keuze label { display:flex; align-items:center; gap:6px; color:#264f76; font-size:13px; cursor:pointer; }
.offerte-tafelhoezen-paneel { margin-top:10px; }
.offerte-tafelhoezen-paneel[hidden] { display:none!important; }
.offerte-zijwand-rij:has(label:only-child) { grid-template-columns:minmax(0,1fr); }
.offerte-zijwand-rij:has(label:nth-child(2):last-child) { grid-template-columns:repeat(2,minmax(0,1fr)); }


/* v4.0.0-dev20 — plaatsingskosten tenten */
.offerte-plaatsingskost{margin-top:10px;color:#244f79;font-size:12px;line-height:1.45}

/* v4.0.0-dev21 — verplichte plaatsing subtiel onder de huurprijs */
.dstent-catalog-placement-cost,
.dstent-product-card__placement-cost {
    margin-top: 4px;
    color: #385f83;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.4;
}



/* v4.0.0-dev24 — prijsafstand, afbeeldingslightbox en sorteervolgorde */
.dstent-catalog-price { margin-bottom: 0 !important; }
.dstent-catalog-placement-cost,
.dstent-product-card__placement-cost { margin-top: 3px !important; margin-bottom: 20px; }
button.dstent-catalog-image { border: 0; padding: 0; width: 100%; position: relative; background: transparent; cursor: zoom-in; display: block; }
.dstent-image-zoom-icon { position: absolute; right: 10px; bottom: 10px; width: 30px; height: 30px; border-radius: 999px; display: grid; place-items: center; background: rgba(255,255,255,.9); color: #244f79; font-size: 22px; line-height: 1; opacity: 0; transform: translateY(3px); transition: opacity .18s ease, transform .18s ease; box-shadow: 0 2px 10px rgba(0,0,0,.14); }
.dstent-image-zoom:hover .dstent-image-zoom-icon, .dstent-image-zoom:focus-visible .dstent-image-zoom-icon { opacity: 1; transform: translateY(0); }
.dstent-image-lightbox[hidden] { display: none !important; }
.dstent-image-lightbox { position: fixed; inset: 0; z-index: 999999; background: rgba(9,18,28,.88); display: flex; align-items: center; justify-content: center; padding: 28px; animation: dstentLightboxIn .18s ease; }
.dstent-image-lightbox img { max-width: min(1200px, 94vw); max-height: 90vh; width: auto; height: auto; object-fit: contain; border-radius: 8px; box-shadow: 0 18px 60px rgba(0,0,0,.38); }
.dstent-image-lightbox-close { position: fixed; top: 18px; right: 22px; width: 44px; height: 44px; border: 0; border-radius: 999px; background: #fff; color: #1d3550; font-size: 32px; line-height: 1; cursor: pointer; }
body.dstent-lightbox-open { overflow: hidden; }
@keyframes dstentLightboxIn { from { opacity: 0; } to { opacity: 1; } }
@media (hover: none) { .dstent-image-zoom-icon { opacity: .9; transform: none; } }


/* v4.0.0-dev30 — compacte zoekbalk zonder sorteerveld */
.dstent-catalog-toolbar {
    display: block;
    margin-bottom: 18px;
}

.dstent-catalog-search {
    width: min(380px, 100%);
    gap: 5px;
}

.dstent-catalog-search-input {
    min-height: 42px;
    padding: 8px 12px;
    font-size: 15px;
}

@media (max-width: 767px) {
    .dstent-catalog-search {
        width: min(320px, 100%);
    }
}


/* v4.0.0-dev30 — permanent zichtbaar vergrootglas-icoon */
.dstent-image-zoom-icon {
    width: 34px;
    height: 34px;
    opacity: 1;
    transform: none;
    background: rgba(255,255,255,.96);
    border: 1px solid rgba(36,79,121,.16);
    box-shadow: 0 3px 12px rgba(18,44,69,.18);
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
    pointer-events: none;
}
.dstent-image-zoom-icon svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.dstent-image-zoom:hover .dstent-image-zoom-icon,
.dstent-image-zoom:focus-visible .dstent-image-zoom-icon {
    opacity: 1;
    transform: scale(1.08);
    border-color: #e1a72b;
    box-shadow: 0 5px 16px rgba(18,44,69,.24);
}
@media (max-width: 767px) {
    .dstent-image-zoom-icon {
        right: 8px;
        bottom: 8px;
        width: 32px;
        height: 32px;
    }
}


/* v4.0.0-dev31 — ademruimte rond productfoto's */
button.dstent-catalog-image {
    box-sizing: border-box;
    padding: 20px 22px 14px;
}

@media (max-width: 767px) {
    button.dstent-catalog-image {
        padding: 16px 16px 12px;
    }
}


/* v4.0.0-dev32 — foto-icoon op beeld en informatiepanelen */
button.dstent-catalog-image {
    display: flex;
    align-items: center;
    justify-content: center;
}
.dstent-catalog-image-frame {
    position: relative;
    display: inline-block;
    width: auto;
    height: 100%;
    max-width: 100%;
}
.dstent-catalog-image-frame img {
    display: block;
    width: auto;
    max-width: 100%;
    height: 100%;
    object-fit: contain;
}
.dstent-catalog-image-frame .dstent-image-zoom-icon {
    right: 7px;
    bottom: 7px;
    width: 29px;
    height: 29px;
}
.dstent-catalog-image-frame .dstent-image-zoom-icon svg {
    width: 15px;
    height: 15px;
}
.dstent-product-info-grid {
    display: grid;
    gap: 14px;
    margin: 16px 0 18px;
}
.dstent-product-info-grid.has-two-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.dstent-product-info-grid.has-one-column {
    grid-template-columns: minmax(0, 1fr);
}
.dstent-product-info-panel {
    border: 1px solid rgba(36,79,121,.08);
    border-radius: 10px;
    padding: 15px 17px;
}
.dstent-product-info-panel.is-ideal {
    background: rgba(246,194,74,.10);
}
.dstent-product-info-panel.is-included {
    background: rgba(72,176,112,.08);
}
.dstent-product-info-panel h4 {
    margin: 0 0 9px;
    color: #174e82;
    font-size: 17px;
    line-height: 1.25;
}
.dstent-product-info-panel h4 span {
    display: inline-grid;
    place-items: center;
    min-width: 22px;
    margin-right: 4px;
}
.dstent-product-info-panel ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.dstent-product-info-panel li {
    position: relative;
    margin: 5px 0;
    padding-left: 23px;
    color: #315f89;
    line-height: 1.35;
}
.dstent-product-info-panel.is-ideal li::before {
    content: '•';
    position: absolute;
    left: 6px;
    color: #d69b1d;
    font-weight: 700;
}
.dstent-product-info-panel.is-included li::before {
    content: '✓';
    position: absolute;
    left: 2px;
    color: #3ca66a;
    font-weight: 800;
}
@media (max-width: 767px) {
    .dstent-catalog-image-frame .dstent-image-zoom-icon {
        right: 6px;
        bottom: 6px;
        width: 28px;
        height: 28px;
    }
    .dstent-product-info-grid.has-two-columns {
        grid-template-columns: 1fr;
    }
    .dstent-product-info-panel {
        padding: 13px 14px;
    }
}


/* v4.0.0-dev33 — compact zoekvenster */
.dstent-catalog-toolbar {
    width: min(460px, 100%);
    margin-bottom: 18px;
}
.dstent-catalog-search {
    width: 100%;
    padding: 12px 14px;
    gap: 4px;
}
.dstent-catalog-search > span {
    font-size: 14px;
    line-height: 1.3;
}
.dstent-catalog-search-input {
    width: min(330px, 100%);
    min-height: 38px;
    padding: 7px 11px;
    font-size: 14px;
}
@media (max-width: 767px) {
    .dstent-catalog-toolbar,
    .dstent-catalog-search,
    .dstent-catalog-search-input {
        width: 100%;
        max-width: none;
    }
}

/* v4.0.0-dev35 — producttitel links, categorie rechts en extra compacte zoekbalk */
.dstent-catalog-toolbar {
    width: min(360px, 100%);
    margin-bottom: 14px;
}
.dstent-catalog-search {
    width: 100%;
    padding: 9px 11px;
    gap: 3px;
}
.dstent-catalog-search > span {
    font-size: 13px;
    line-height: 1.25;
}
.dstent-catalog-search-input {
    width: min(290px, 100%);
    min-height: 34px;
    padding: 6px 10px;
    font-size: 13px;
}

.dstent-catalog-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 20px 0;
}
.dstent-catalog-card-header .dstent-catalog-title {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
}
.dstent-catalog-card-header-meta {
    flex: 0 0 auto;
    display: flex;
    align-items: flex-end;
    flex-direction: column;
    gap: 6px;
}
.dstent-catalog-card-header .dstent-catalog-category-label {
    margin: 0;
    white-space: nowrap;
}
.dstent-catalog-card-header .dstent-catalog-badges {
    position: static;
    display: flex;
    align-items: flex-end;
    flex-direction: column;
    gap: 5px;
}
.dstent-catalog-card-header + button.dstent-catalog-image {
    padding-top: 14px;
}

@media (max-width: 767px) {
    .dstent-catalog-toolbar,
    .dstent-catalog-search,
    .dstent-catalog-search-input {
        width: 100%;
        max-width: none;
    }
    .dstent-catalog-card-header {
        gap: 10px;
        padding: 15px 16px 0;
    }
    .dstent-catalog-card-header .dstent-catalog-title {
        font-size: clamp(21px, 6vw, 27px);
    }
    .dstent-catalog-card-header .dstent-catalog-category-label {
        white-space: normal;
        text-align: right;
    }
}

/* v4.0.0-dev36 — categoriebadge definitief rechts in de productkaartheader */
.dstent-catalog-card-header .dstent-catalog-category-label {
    position: static;
    inset: auto;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    align-self: flex-end;
    flex: 0 0 auto;
    margin: 0;
}


/* v4.0.0-dev37 — productlabels onder titel en nog compacter zoekvenster */
.dstent-catalog-toolbar {
    width: min(300px, 100%);
    margin-bottom: 12px;
}
.dstent-catalog-search {
    width: 100%;
    padding: 8px 10px;
    gap: 2px;
}
.dstent-catalog-search > span {
    font-size: 12px;
    line-height: 1.2;
}
.dstent-catalog-search-input {
    width: min(250px, 100%);
    min-height: 32px;
    padding: 5px 9px;
    font-size: 12px;
}
.dstent-catalog-card-header-main {
    flex: 1 1 auto;
    min-width: 0;
}
.dstent-catalog-card-header-main .dstent-catalog-title {
    margin: 0;
}
.dstent-catalog-card-header-main .dstent-catalog-badges {
    position: static;
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 5px;
    margin-top: 6px;
}
.dstent-catalog-card-header-main .dstent-catalog-badge {
    min-height: 0;
}
.dstent-catalog-card-header > .dstent-catalog-category-label {
    flex: 0 0 auto;
    align-self: flex-start;
}
@media (max-width: 767px) {
    .dstent-catalog-toolbar,
    .dstent-catalog-search,
    .dstent-catalog-search-input {
        width: 100%;
        max-width: none;
    }
    .dstent-catalog-card-header-main .dstent-catalog-badges {
        margin-top: 5px;
    }
}


/* v4.0.0-dev38 — correcte productlabels, compact zoeken en responsive binnenmarges */
.dstent-catalog-card-header-main > .dstent-catalog-badges {
    position: static !important;
    inset: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    z-index: auto;
    display: flex !important;
    flex-flow: row wrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 5px !important;
    margin: 6px 0 0 !important;
}
.dstent-catalog-card-header-main > .dstent-catalog-badges .dstent-catalog-badge {
    position: static !important;
    inset: auto !important;
}
.dstent-catalog-card-header > .dstent-catalog-category-label {
    position: static !important;
    align-self: flex-start;
    margin: 0;
}

/* Zoekblok bewust klein en ondergeschikt aan de producten. */
.dstent-catalog-toolbar {
    width: min(240px, 100%) !important;
    max-width: 240px !important;
    margin-bottom: 10px;
}
.dstent-catalog-search {
    width: 100% !important;
    max-width: 240px !important;
    padding: 7px 8px !important;
    gap: 2px !important;
}
.dstent-catalog-search > span {
    font-size: 11px !important;
    line-height: 1.15 !important;
}
.dstent-catalog-search-input {
    width: 100% !important;
    max-width: 214px !important;
    min-height: 30px !important;
    padding: 4px 8px !important;
    font-size: 11px !important;
}

/* Elementor tablet- en telefoonvoorbeeld: geen tekst tegen de schermrand. */
@media (max-width: 1024px) {
    .elementor-widget-dstent_catalog .dstent-catalog-widget-output {
        box-sizing: border-box;
        width: 100%;
        padding-right: 20px;
        padding-left: 20px;
    }
    .dstent-catalog-card-header {
        padding-right: 20px;
        padding-left: 20px;
    }
    .dstent-catalog-card-body {
        padding-right: 20px;
        padding-left: 20px;
    }
}
@media (max-width: 767px) {
    .elementor-widget-dstent_catalog .dstent-catalog-widget-output {
        padding-right: 14px;
        padding-left: 14px;
    }
    .dstent-catalog-toolbar {
        width: min(220px, 100%) !important;
        max-width: 220px !important;
    }
    .dstent-catalog-search {
        max-width: 220px !important;
    }
    .dstent-catalog-search-input {
        max-width: 194px !important;
    }
    .dstent-catalog-card-header {
        padding-right: 16px;
        padding-left: 16px;
    }
    .dstent-catalog-card-body {
        padding-right: 16px;
        padding-left: 16px;
    }
}


/* v4.0.0-dev39 — minimalistisch zoekveld zonder buitenkader of zichtbare titel */
.dstent-catalog-toolbar {
    width: min(280px, 100%) !important;
    max-width: 280px !important;
    margin: 0 0 18px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}
.dstent-catalog-search {
    position: relative;
    display: block !important;
    width: 100% !important;
    max-width: 280px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
.dstent-catalog-search > span:not(.screen-reader-text) {
    display: none !important;
}
.dstent-catalog-search::before {
    content: "⌕";
    position: absolute;
    top: 50%;
    left: 13px;
    z-index: 2;
    transform: translateY(-52%);
    color: #1f568c;
    font-size: 19px;
    line-height: 1;
    pointer-events: none;
}
.dstent-catalog-search-input {
    box-sizing: border-box;
    width: 100% !important;
    max-width: 280px !important;
    min-height: 42px !important;
    height: 42px !important;
    margin: 0 !important;
    padding: 8px 13px 8px 40px !important;
    color: #174f86 !important;
    font-size: 14px !important;
    line-height: 1.3 !important;
    background: #fff !important;
    border: 1px solid #cfdae6 !important;
    border-radius: 12px !important;
    box-shadow: none !important;
}
.dstent-catalog-search-input::placeholder {
    color: #7890a8;
    opacity: 1;
}
.dstent-catalog-search-input:focus {
    outline: none !important;
    border-color: #1f568c !important;
    box-shadow: 0 0 0 3px rgba(31, 86, 140, 0.10) !important;
}
@media (max-width: 767px) {
    .dstent-catalog-toolbar,
    .dstent-catalog-search,
    .dstent-catalog-search-input {
        width: min(280px, 100%) !important;
        max-width: 280px !important;
    }
}


/* v4.0.0-dev40 — optionele gekoppelde gasfles bij gasverwarmers */
.offerte-gasfles{width:min(100%,410px);margin:0 auto 14px;padding:12px;border:1px solid #d7e1ec;border-radius:8px;background:#f8fbfe}
.offerte-gasfles-titel{color:#174f87;font-weight:700;margin-bottom:7px}
.offerte-gasfles-titel span,.offerte-gasfles-voorraad{color:#66788a;font-size:12px;font-weight:400}
.offerte-gasfles-keuze{display:flex;flex-wrap:wrap;gap:8px 16px}
.offerte-gasfles-keuze label{display:flex;align-items:flex-start;gap:6px;color:#264f76;font-size:13px;cursor:pointer}
.offerte-gasfles-voorraad{display:block;margin-top:7px}

/* v4.0.0-dev42 — eenvoudige gasflesoptie zonder gekoppeld product */
.offerte-gasfles-checkbox{display:flex;align-items:center;gap:8px;color:#264f76;font-size:14px;font-weight:600;cursor:pointer}
.offerte-gasfles-checkbox input{margin:0}
