.cui-products { padding: 48px 0; font-family: 'Montserrat', sans-serif; color: #000; }
.cui-products, .cui-products * { box-sizing: border-box; }
/* Enabled by the head script only; no-JS and builder previews stay visible. */
.cui-products-reveal-ready [data-cui-product-reveal]:not(.cui-products-revealed) { opacity: 0; }
.cui-products-reveal-ready [data-cui-product-reveal]:focus-within { opacity: 1; }
.cui-products .cui-products__container { max-width: 1536px; padding: 0 16px; margin: 0 auto; }
.cui-products .cui-products__heading { text-align: center; margin-bottom: 48px; }
.cui-products .cui-products__eyebrow,
.cui-products .cui-products__heading h2 { font: 400 48px/1.1 'Marcellus', serif; text-transform: none; letter-spacing: normal; }
.cui-products .cui-products__eyebrow { color: #2e338c; margin: 0 0 8px; }
.cui-products .cui-products__heading h2 { color: #000; margin: 0 0 12px; }
.cui-products .cui-products__subtitle { color: #555; font: 400 16px/1.5 'Figtree', sans-serif; margin: 0 0 20px; }
.cui-products .cui-products__more { display: flex; align-items: center; width: fit-content; margin: auto; position: relative; color: #2e338c; text-decoration: none; font: 700 16px/1.5 'Figtree', sans-serif; letter-spacing: .04em; text-transform: uppercase; }
.cui-products__more::after { content: ''; position: absolute; left: 0; bottom: -2px; width: 100%; height: 2px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .3s; }
.cui-products__more:hover::after { transform: scaleX(1); }
.cui-products__more svg { width: 20px; height: 20px; transition: transform .3s; }
.cui-products__more:hover svg { transform: translateX(4px); }
.cui-products__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
.cui-products__card { min-width: 0; border: 1px solid #e2e2e2; border-radius: 24px; background: #fff; overflow: hidden; transition: transform .25s, box-shadow .25s, border-color .25s; }
.cui-products__card:hover { transform: translateY(-3px); box-shadow: 0 4px 30px rgba(0,0,0,.1); border-color: transparent; }
.cui-products .cui-products__image { display: block; padding: 20px 20px 0; }
.cui-products .cui-products__image img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; border-radius: 16px; }
.cui-products__content { padding: 16px 20px 21px; }
.cui-products .cui-products__content h3 { margin: 0 0 9px; font: 600 17px/1.35 'Montserrat', sans-serif; text-transform: none; letter-spacing: normal; }
.cui-products .cui-products__content h3 a { color: #000; text-decoration: none; }
.cui-products .cui-products__description { color: #555; font-size: 14px; line-height: 1.6; margin-bottom: 8px; height: 45px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cui-products__description p { margin: 0; }
.cui-products__rating { display: flex; align-items: center; gap: 8px; }
.cui-products__stars { display: inline-block; position: relative; color: #777; font: 20px/1 Arial, sans-serif; white-space: nowrap; }
.cui-products__stars-fill { position: absolute; left: 0; top: 0; overflow: hidden; color: #f5b301; }
.cui-products__reviews { color: #888; font-size: 13px; }
.cui-products a:focus-visible { outline: 2px solid #2e338c; outline-offset: 3px; }
@media (min-width: 600px) {
    .cui-products .cui-products__container { padding: 0 24px; }
    .cui-products__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 900px) {
    .cui-products { padding: 80px 0; }
    .cui-products__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1200px) {
    .cui-products__grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
    .cui-products-reveal-ready [data-cui-product-reveal] { opacity: 1; }
    .cui-products__card, .cui-products__more::after, .cui-products__more svg { transition: none; }
}
