/* 1. Het Grid Systeem (Tot 10 kolommen) */
.bps-product-grid { display: grid; grid-template-columns: repeat(var(--bps-columns, 3), 1fr); gap: 40px; margin: 40px 0; width: 100%; box-sizing: border-box; }

@media (max-width: 1800px) { 
    .bps-product-grid[style*="--bps-columns: 10"], .bps-product-grid[style*="--bps-columns: 9"], .bps-product-grid[style*="--bps-columns: 8"] { grid-template-columns: repeat(6, 1fr); } 
}
@media (max-width: 1400px) { 
    .bps-product-grid[style*="--bps-columns: 10"], .bps-product-grid[style*="--bps-columns: 9"], .bps-product-grid[style*="--bps-columns: 8"], .bps-product-grid[style*="--bps-columns: 7"], .bps-product-grid[style*="--bps-columns: 6"], .bps-product-grid[style*="--bps-columns: 5"] { grid-template-columns: repeat(4, 1fr); } 
}
@media (max-width: 1024px) { .bps-product-grid { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 650px) { .bps-product-grid { grid-template-columns: 1fr !important; } }

/* 2. De Kaart */
.bps-product-card { background-color: #ffffff; border-radius: var(--bps-active-radius, var(--bps-border-radius, 16px)); position: relative; display: flex; flex-direction: column; text-decoration: none !important; transition: transform 0.4s ease, box-shadow 0.4s ease; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04); overflow: hidden; border: none; box-sizing: border-box; height: 100%; }
.bps-product-card:hover { transform: translateY(-8px); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); }

/* 3. Afbeelding & Hover-fix */
.bps-product-image-wrapper { width: 100%; padding-top: 65%; position: relative; background-color: #f8fafc; overflow: hidden; transition: border-radius 0.6s cubic-bezier(0.25, 1, 0.5, 1); -webkit-backface-visibility: hidden; -moz-backface-visibility: hidden; backface-visibility: hidden; transform: translate3d(0, 0, 0); -webkit-mask-image: -webkit-radial-gradient(white, black); }
.bps-product-image { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; border-radius: inherit; }
.bps-product-card:hover .bps-product-image { transform: scale(1.03); }

/* 4. Tag */
.bps-tag { position: absolute; top: 20px; left: 20px; background-color: var(--bps-theme-color, #0076a3); color: #ffffff; padding: 6px 18px; font-size: 13px; font-weight: 600; border-radius: 30px; z-index: 10; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12); font-family: var(--bps-title-font, inherit); letter-spacing: 0.5px; }

/* 5. Tekst (GECORRIGEERDE FONT-SIZE VARIABELEN) */
.bps-product-info { padding: 25px 20px 30px 20px; background-color: transparent; flex-grow: 1; display: flex; flex-direction: column; align-items: center; text-align: center; }
.bps-product-title, #bps-modal-title { margin: 0 0 10px 0; font-size: var(--bps-title-size, 19px); color: var(--bps-font-color, #1a202c); font-weight: 600; font-family: var(--bps-title-font, inherit); line-height: 1.3; }
.bps-product-desc, #bps-modal-desc { font-size: var(--bps-desc-size, 14px); color: var(--bps-desc-color, #64748b); margin: 0 0 15px 0; font-family: var(--bps-desc-font, inherit); line-height: 1.5; }

.bps-price-wrapper { margin-top: auto; }
.bps-product-price { font-size: 17px; color: var(--bps-theme-color, #0076a3); font-weight: 700; font-family: var(--bps-title-font, inherit); }
.bps-product-price-old { font-size: 14px; color: #94a3b8; text-decoration: line-through; margin-right: 8px; font-family: var(--bps-title-font, inherit); }
.bps-product-price-sale { font-size: 17px; color: #e11d48; font-weight: 700; font-family: var(--bps-title-font, inherit); }

/* 6. Layout variaties */
.bps-layout-strak .bps-card-fold { display: none; }
.bps-layout-hoekje .bps-card-fold { position: absolute; bottom: 0; right: 0; width: 30px; height: 30px; background: linear-gradient(to top left, transparent 50%, var(--bps-theme-color, #0076a3) 50%); box-shadow: -2px -2px 5px rgba(0, 0, 0, 0.08); border-top-left-radius: 3px; z-index: 5; transition: all 0.3s ease; }
.bps-layout-hoekje .bps-product-card:hover .bps-card-fold { width: 36px; height: 36px; }

.bps-layout-tekst-onder .bps-product-card { background-color: transparent; box-shadow: none !important; border-radius: 0 !important; }
.bps-layout-tekst-onder .bps-product-image-wrapper { border-radius: var(--bps-active-radius, var(--bps-border-radius, 16px)); padding-top: 100%; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); }
.bps-layout-tekst-onder .bps-product-info { padding: 25px 0 10px 0; }
.bps-layout-tekst-onder .bps-card-fold { display: none; }
.bps-layout-tekst-onder .bps-tag { top: 12%; left: 12%; }

/* 7. Modal & Buttons */
body.bps-modal-noscroll { overflow: hidden !important; }
.bps-modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; height: 100vh; width: 100vw; background-color: rgba(15, 23, 42, 0.4); backdrop-filter: blur(4px); display: flex; align-items: center; justify-content: center; z-index: 999999; opacity: 0; pointer-events: none; transition: opacity 0.4s ease; }
.bps-modal-overlay.bps-modal-active { opacity: 1; pointer-events: auto; }
.bps-modal-box { background: #ffffff; border-radius: 24px; max-width: 800px; width: 90%; max-height: 85vh; overflow-y: auto; -webkit-overflow-scrolling: touch; position: relative; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); transform: scale(0.95); transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1); }
.bps-modal-overlay.bps-modal-active .bps-modal-box { transform: scale(1); }
.bps-modal-close { position: absolute; top: 15px; right: 15px; background: #f1f5f9; border: none; font-size: 28px; cursor: pointer; color: #64748b; width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; z-index: 99; transition: background 0.2s; }
.bps-modal-close:hover { background: #e2e8f0; color: #1e293b; }
.bps-modal-body { display: flex; flex-direction: row; }

@media (max-width: 700px) { .bps-modal-body { flex-direction: column; } .bps-modal-img-side { min-height: 250px; } .bps-modal-info-side { padding: 25px 20px; } }
.bps-modal-img-side { flex: 1.1; background: #f8fafc; display: flex; align-items: center; }
.bps-modal-img-side img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bps-modal-info-side { flex: 1; padding: 40px; display: flex; flex-direction: column; justify-content: center; }
.bps-modal-tag { align-self: flex-start; background: var(--bps-theme-color, #0076a3); color: #fff; padding: 4px 14px; font-size: 12px; font-weight: 600; border-radius: 20px; margin-bottom: 15px; font-family: var(--bps-title-font, inherit); }
#bps-modal-title { margin: 0 0 15px 0; }
#bps-modal-desc { line-height: 1.6; margin: 0 0 25px 0; }
#bps-modal-price-container { margin-bottom: 25px; }

/* --- KNOPPEN CONTAINER & STYLING --- */
.bps-modal-buttons-wrapper { display: flex; flex-wrap: wrap; gap: 12px; }

.bps-modal-btn { 
    text-align: center; text-decoration: none !important; display: inline-flex; align-items: center; justify-content: center; 
    font-family: var(--bps-btn-font, inherit) !important; 
    font-size: var(--bps-btn-size, 15px) !important;
    font-weight: 600 !important; 
    padding: 12px 24px !important; border-radius: var(--bps-btn-shape, 30px) !important; transition: all 0.2s ease; cursor: pointer; 
}

.bps-modal-btn .bps-text-span, .bps-modal-btn i { color: inherit !important; line-height: 1.2; }

.bps-btn-custom { background-color: var(--bps-btn-bg, #0076a3) !important; color: var(--bps-btn-text, #ffffff) !important; border: 2px solid var(--bps-btn-bg, #0076a3) !important; }
.bps-btn-custom:hover { opacity: 0.85; color: var(--bps-btn-text, #ffffff) !important; }

.bps-btn-custom-2 { background-color: var(--bps-btn2-bg, #1e293b) !important; color: var(--bps-btn2-text, #ffffff) !important; border: 2px solid var(--bps-btn2-bg, #1e293b) !important; }
.bps-btn-custom-2:hover { opacity: 0.85; color: var(--bps-btn2-text, #ffffff) !important; }

.bps-btn-custom-2.bps-btn-outline { background-color: transparent !important; color: var(--bps-btn2-bg, #1e293b) !important; }
.bps-btn-custom-2.bps-btn-outline:hover { background-color: var(--bps-btn2-bg, #1e293b) !important; color: var(--bps-btn2-text, #ffffff) !important; }

/* 8. Wisselende Patronen */
.bps-shape-alternating-1 .bps-product-card:nth-child(4n+1) { --bps-active-radius: 60% 40% 30% 70% / 60% 30% 70% 40%; }
.bps-shape-alternating-1 .bps-product-card:nth-child(4n+2) { --bps-active-radius: 40% 60% 70% 30% / 40% 50% 60% 50%; }
.bps-shape-alternating-1 .bps-product-card:nth-child(4n+3) { --bps-active-radius: 70% 30% 50% 50% / 30% 50% 70% 50%; }
.bps-shape-alternating-1 .bps-product-card:nth-child(4n+4) { --bps-active-radius: 50% 50% 30% 70% / 70% 30% 50% 50%; }
.bps-shape-alternating-1 .bps-product-card:nth-child(4n+1):hover { --bps-active-radius: 40% 60% 70% 30% / 40% 50% 60% 50%; }
.bps-shape-alternating-1 .bps-product-card:nth-child(4n+2):hover { --bps-active-radius: 70% 30% 50% 50% / 30% 50% 70% 50%; }
.bps-shape-alternating-1 .bps-product-card:nth-child(4n+3):hover { --bps-active-radius: 50% 50% 30% 70% / 70% 30% 50% 50%; }
.bps-shape-alternating-1 .bps-product-card:nth-child(4n+4):hover { --bps-active-radius: 60% 40% 30% 70% / 60% 30% 70% 40%; }

.bps-shape-alternating-2 .bps-product-card:nth-child(4n+1) { --bps-active-radius: 0px 50px 50px 50px; }
.bps-shape-alternating-2 .bps-product-card:nth-child(4n+2) { --bps-active-radius: 50px 0px 50px 50px; }
.bps-shape-alternating-2 .bps-product-card:nth-child(4n+3) { --bps-active-radius: 50px 50px 0px 50px; }
.bps-shape-alternating-2 .bps-product-card:nth-child(4n+4) { --bps-active-radius: 50px 50px 50px 0px; }
.bps-shape-alternating-2 .bps-product-card:nth-child(4n+1):hover { --bps-active-radius: 50px 0px 50px 50px; }
.bps-shape-alternating-2 .bps-product-card:nth-child(4n+2):hover { --bps-active-radius: 50px 50px 0px 50px; }
.bps-shape-alternating-2 .bps-product-card:nth-child(4n+3):hover { --bps-active-radius: 50px 50px 50px 0px; }
.bps-shape-alternating-2 .bps-product-card:nth-child(4n+4):hover { --bps-active-radius: 0px 50px 50px 50px; }

.bps-shape-alternating-3 .bps-product-card:nth-child(4n+1) { --bps-active-radius: 45% 55% 45% 55% / 55% 45% 55% 45%; }
.bps-shape-alternating-3 .bps-product-card:nth-child(4n+2) { --bps-active-radius: 55% 45% 55% 45% / 45% 55% 45% 55%; }
.bps-shape-alternating-3 .bps-product-card:nth-child(4n+3) { --bps-active-radius: 50% 50% 40% 60% / 60% 40% 50% 50%; }
.bps-shape-alternating-3 .bps-product-card:nth-child(4n+4) { --bps-active-radius: 60% 40% 50% 50% / 50% 50% 40% 60%; }
.bps-shape-alternating-3 .bps-product-card:nth-child(4n+1):hover { --bps-active-radius: 55% 45% 55% 45% / 45% 55% 45% 55%; }
.bps-shape-alternating-3 .bps-product-card:nth-child(4n+2):hover { --bps-active-radius: 45% 55% 45% 55% / 55% 45% 55% 45%; }
.bps-shape-alternating-3 .bps-product-card:nth-child(4n+3):hover { --bps-active-radius: 60% 40% 50% 50% / 50% 50% 40% 60%; }
.bps-shape-alternating-3 .bps-product-card:nth-child(4n+4):hover { --bps-active-radius: 50% 50% 40% 60% / 60% 40% 50% 50%; }

.bps-shape-alternating-4 .bps-product-card:nth-child(4n+1) { --bps-active-radius: 73% 27% 24% 76% / 46% 77% 23% 54%; }
.bps-shape-alternating-4 .bps-product-card:nth-child(4n+2) { --bps-active-radius: 26% 74% 73% 27% / 78% 28% 72% 22%; }
.bps-shape-alternating-4 .bps-product-card:nth-child(4n+3) { --bps-active-radius: 85% 15% 73% 27% / 30% 67% 33% 70%; }
.bps-shape-alternating-4 .bps-product-card:nth-child(4n+4) { --bps-active-radius: 31% 69% 27% 73% / 79% 26% 74% 21%; }
.bps-shape-alternating-4 .bps-product-card:nth-child(4n+1):hover { --bps-active-radius: 26% 74% 73% 27% / 78% 28% 72% 22%; }
.bps-shape-alternating-4 .bps-product-card:nth-child(4n+2):hover { --bps-active-radius: 85% 15% 73% 27% / 30% 67% 33% 70%; }
.bps-shape-alternating-4 .bps-product-card:nth-child(4n+3):hover { --bps-active-radius: 31% 69% 27% 73% / 79% 26% 74% 21%; }
.bps-shape-alternating-4 .bps-product-card:nth-child(4n+4):hover { --bps-active-radius: 73% 27% 24% 76% / 46% 77% 23% 54%; }