.products-shell {
    font-family: "Sora", "Manrope", "Segoe UI", sans-serif;
}

.products-page {
    --catalog-card-border: rgba(230, 232, 240, 0.92);
    --catalog-card-bg: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(246,248,252,0.98));
    --catalog-card-shadow: 0 20px 42px -34px rgba(24, 38, 72, 0.2);
    --catalog-card-shadow-hover: 0 28px 54px -38px rgba(24, 38, 72, 0.28);
    --catalog-text: #1f2430;
    --catalog-text-soft: rgba(31, 36, 48, 0.68);
    --catalog-text-muted: rgba(31, 36, 48, 0.52);
    --catalog-primary: #12306e;
    --catalog-accent: #1b4f99;
}

.theme-cjonlinetogether .products-page,
.theme-cjonlinetogether .products-page :is(button, input, select, textarea, a) {
    font-family: "Sora", "Manrope", "Segoe UI", sans-serif;
}

.products-reveal {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 420ms ease, transform 420ms ease;
}

.products-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.catalog-menu-item:hover > .catalog-flyout {
    visibility: visible;
    opacity: 1;
}

/* cjonlinetogether theme-only color alignment for /producten */
.theme-cjonlinetogether .products-page {
    --products-surface: #ffffff;
    --products-surface-muted: #f8fafc;
    --products-border: #e5e7eb;
    --products-text: #111827;
    --products-text-muted: #4b5563;
    --products-primary: #111111;
    --products-primary-contrast: #ffffff;
}

.theme-cjonlinetogether .products-page [class*='text-[#12306e]'],
.theme-cjonlinetogether .products-page [class*='text-[#0c1d43]'],
.theme-cjonlinetogether .products-page [class*='text-[#0d2559]'],
.theme-cjonlinetogether .products-page [class*='text-white/'],
.theme-cjonlinetogether .products-page [class*='text-white '] {
    color: var(--products-text) !important;
}

.theme-cjonlinetogether .products-page [class*='border-[#12306e]'],
.theme-cjonlinetogether .products-page [class*='border-[#0f1f47]'],
.theme-cjonlinetogether .products-page [class*='border-[#0e255a]'],
.theme-cjonlinetogether .products-page [class*='border-white'] {
    border-color: var(--products-border) !important;
}

.theme-cjonlinetogether .products-page [class*='bg-[#f8fbff]'],
.theme-cjonlinetogether .products-page [class*='bg-[#eef4ff]'],
.theme-cjonlinetogether .products-page [class*='bg-white/10'] {
    background: var(--products-surface-muted) !important;
}

.theme-cjonlinetogether .products-page [class*='bg-[#12306e]'],
.theme-cjonlinetogether .products-page [class*='bg-[#0f275a]'],
.theme-cjonlinetogether .products-page [class*='bg-[#0d2559]'] {
    background: var(--products-primary) !important;
    color: var(--products-primary-contrast) !important;
}

.theme-cjonlinetogether .products-page input::placeholder {
    color: var(--products-text-muted);
}

/* Stronger card shadows requested for products page blocks */
.theme-cjonlinetogether .products-page .ds-proof-item {
    box-shadow: 0 16px 36px rgba(15, 23, 42, 0.12);
}

.theme-cjonlinetogether .products-page section.relative.z-40,
.theme-cjonlinetogether .products-page aside.hidden.lg\:block {
    box-shadow: 0 22px 52px rgba(15, 23, 42, 0.14) !important;
}

.theme-cjonlinetogether .products-page #searchResultsGrid > article {
    box-shadow: 0 20px 48px rgba(15, 23, 42, 0.16) !important;
}

.theme-cjonlinetogether .products-page #searchResultsGrid a[class*='bg-neutral-900'] {
    color: #ffffff !important;
}

.products-page .cv-product-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-height: 100%;
    text-decoration: none;
    color: var(--catalog-text);
    border-radius: 22px;
    border: 1px solid var(--catalog-card-border);
    background: var(--catalog-card-bg);
    box-shadow: var(--catalog-card-shadow);
    transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.products-page .cv-product-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--catalog-card-shadow-hover);
    border-color: rgba(114, 162, 215, 0.24);
}

.products-page .cv-product-card__media {
    display: block;
    aspect-ratio: 1 / 1;
    padding: 16px;
    background: linear-gradient(145deg, rgba(114, 162, 215, 0.13), rgba(27, 79, 153, 0.08));
}

.products-page .cv-product-card__media img,
.products-page .cv-product-card__placeholder {
    width: 100%;
    height: 100%;
    border-radius: 20px;
}

.products-page .cv-product-card__media img {
    object-fit: cover;
    display: block;
}

.products-page .cv-product-card__placeholder {
    display: grid;
    place-items: center;
    background:
        radial-gradient(circle at 30% 30%, rgba(114, 162, 215, 0.22), transparent 44%),
        radial-gradient(circle at 70% 70%, rgba(27, 79, 153, 0.14), transparent 40%),
        #f6f7fb;
}

.products-page .cv-product-card__placeholder span {
    display: inline-block;
    max-width: 84%;
    padding: 8px 12px;
    border-radius: 12px;
    border: 1px dashed rgba(18, 48, 110, 0.34);
    background: rgba(255,255,255,0.92);
    color: var(--catalog-primary);
    font-size: 0.76rem;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: 0.02em;
    text-transform: none;
    text-align: center;
}

.products-page .cv-product-card__body {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 26px;
}

.products-page .cv-product-card__body h3 {
    margin: 12px 0 0;
    color: var(--catalog-text);
    font-size: 1.4rem;
    line-height: 1.06;
    letter-spacing: -0.02em;
}

.products-page .cv-product-card__body p {
    margin: 0;
    color: var(--catalog-text-soft);
    line-height: 1.68;
    min-height: 4.9em;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.products-page .cv-product-card__cue,
.products-page .cv-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-height: 28px;
    padding: 6px 11px;
    border-radius: 999px;
    border: 1px solid rgba(114, 162, 215, 0.26);
    background: linear-gradient(135deg, rgba(114, 162, 215, 0.15), rgba(27, 79, 153, 0.1));
    color: var(--catalog-primary);
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.products-page .cv-product-card__meta {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 12px;
    margin: auto 26px 0;
    padding: 20px 0 26px;
    border-top: 1px solid rgba(230, 232, 240, 0.72);
}

.products-page .cv-product-card__price-group {
    display: flex;
    justify-content: center;
}

.products-page .cv-product-card__price {
    color: var(--catalog-text);
    font-weight: 800;
    font-size: 1rem;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.products-page .cv-product-card__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-width: 136px;
    min-height: 38px;
    padding: 8px 14px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--catalog-primary), var(--catalog-accent));
    color: #fff;
    font-weight: 700;
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    box-shadow: 0 10px 24px -14px rgba(33, 48, 82, 0.3);
}

.products-page .cv-shop-result-item {
    display: grid;
    gap: 0;
}

.products-page .cv-shop-card-actions {
    display: none;
}

.products-page .cv-shop-card-actions__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 12px;
    color: var(--catalog-text);
}

.products-page .cv-shop-card-actions__stock {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 6px 11px;
    border-radius: 999px;
    border: 1px solid rgba(114, 162, 215, 0.18);
    background: rgba(244, 248, 255, 0.92);
    color: var(--catalog-primary);
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.products-page .cv-shop-card-actions__old-price {
    color: var(--catalog-text-muted);
    font-size: 0.74rem;
    text-decoration: line-through;
}

.products-page .cv-shop-card-actions__buttons {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.products-page .cv-shop-card-actions__buttons .cv-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 40px;
    padding: 10px 14px;
    border-radius: 999px;
    border: 1px solid rgba(31, 36, 48, 0.14);
    background: rgba(255,255,255,0.88);
    color: var(--catalog-text);
    text-decoration: none;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.products-page .cv-shop-card-actions__wishlist.is-active {
    border-color: rgba(255, 79, 163, 0.28);
    background: rgba(255, 228, 241, 0.92);
    color: #cf347e;
}

.products-page .cv-shop-facet-option {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    color: var(--catalog-text);
    font-size: 0.92rem;
}

.products-page .cv-shop-facet-option + .cv-shop-facet-option {
    margin-top: 10px;
}

.products-page .cv-shop-facet-option__main {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.products-page .cv-shop-facet-option__checkbox {
    width: 16px;
    height: 16px;
    min-height: 16px;
    flex: 0 0 16px;
    margin: 0;
    border-radius: 4px;
    accent-color: var(--catalog-primary);
    box-shadow: none;
}

.products-page .cv-shop-facet-option__label {
    min-width: 0;
    color: var(--catalog-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.products-page .cv-shop-facet-option__count {
    color: var(--catalog-text-muted);
    font-size: 0.75rem;
}

@media (max-width: 767px) {
    .products-page .cv-shop-card-actions__buttons {
        grid-template-columns: 1fr;
    }
}
