.vj-lp-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;max-width:1240px;margin:24px auto 32px;padding:0 15px}.vj-lp-grid .vj-lp-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;background:#fff;border:1px solid #c9deed;border-radius:18px;box-shadow:0 8px 24px rgba(23,43,77,.1);transition:transform .2s,box-shadow .2s}.vj-lp-grid .vj-lp-photo{display:block;position:relative;aspect-ratio:1/1;overflow:hidden;background:#e8f0f6}.vj-lp-grid .vj-lp-image{display:block;width:100%;height:100%;object-fit:cover;margin:0}.vj-lp-grid .vj-lp-placeholder{display:flex;align-items:center;justify-content:center;height:100%;padding:24px;color:#172b4d;text-align:center}.vj-lp-grid .vj-lp-badge{position:absolute;top:12px;left:12px;background:#ff8a00;color:#fff;border-radius:7px;padding:8px 10px;font-size:10px;font-weight:700}.vj-lp-grid .vj-lp-body{display:flex;flex:1;flex-direction:column;padding:20px}.vj-lp-grid .vj-lp-body h3{font-size:18px;line-height:1.4;margin:0 0 12px;min-height:2.8em}.vj-lp-grid .vj-lp-body h3 a{color:#172b4d;text-decoration:none}.vj-lp-grid .vj-lp-body p{font-size:14px;line-height:1.5;color:#637083;margin:0 0 20px}.vj-lp-grid .vj-lp-button{display:block;margin-top:auto;padding:12px;text-align:center;border-radius:8px;background:linear-gradient(120deg,#eb7213,#f89920);color:#fff;text-decoration:none;font-weight:700;font-size:13px}.vj-lp-grid a:focus-visible{outline:3px solid #0795f9;outline-offset:3px}.vj-lp-empty{text-align:center}@media(hover:hover){.vj-lp-grid .vj-lp-card:hover{transform:translateY(-4px);box-shadow:0 14px 28px rgba(23,43,77,.15)}}@media(max-width:849px){.vj-lp-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}@media(max-width:549px){.vj-lp-grid{gap:12px;padding:0 12px}.vj-lp-grid .vj-lp-body{padding:12px}.vj-lp-grid .vj-lp-body h3{font-size:15px}.vj-lp-grid .vj-lp-badge{font-size:9px;padding:5px 7px;left:8px;top:8px}.vj-lp-grid .vj-lp-body p{font-size:12px}.vj-lp-grid .vj-lp-button{font-size:12px;padding:10px 6px}}@media(prefers-reduced-motion:reduce){.vj-lp-grid .vj-lp-card{transition:none}.vj-lp-grid .vj-lp-card:hover{transform:none}}

/* Seasonal collection and latest products are separate sections. */
.vj-seasonal-products{background:linear-gradient(135deg,#fff5e8,#fffaf4)!important;border-top:1px solid #f1dbc0;border-bottom:1px solid #f1dbc0}
.vj-seasonal-products .vj-lp-card{border-color:#ecd9bf}.vj-seasonal-products .vj-lp-badge{background:#9d3829}
.vj-newest-products{background:#f1f7fb!important}.vj-newest-products .vj-lp-badge{background:#183552}
.vj-seasonal-products .vj-collection-label,.vj-newest-products .vj-collection-label{font-size:12px;font-weight:700;letter-spacing:1.5px;margin:0 0 10px;color:#99551d}
.vj-newest-products .vj-collection-label{color:#385d7a}

/* Product cards show the product's own specifications. */
.vj-lp-grid .vj-lp-specs{margin:0 0 20px;font-size:13px;line-height:1.6;color:#526277}
.vj-lp-grid .vj-lp-specs>div{display:block;margin:0 0 8px}
.vj-lp-grid .vj-lp-specs dt{display:inline;font-weight:700;color:#263c55;margin:0}
.vj-lp-grid .vj-lp-specs dt:after{content:": "}
.vj-lp-grid .vj-lp-specs dd{display:inline;margin:0;overflow-wrap:anywhere}
@media(max-width:549px){.vj-lp-grid .vj-lp-specs{font-size:12px}}

/* Santa CTA: independent from product image rules. */
.vj-santa-cta{position:fixed;left:16px;bottom:20px;width:210px;z-index:1000;isolation:isolate}
.vj-santa-cta[hidden]{display:none!important}
.vj-santa-cta .vj-santa-link{display:block;text-decoration:none;text-align:center;animation:vjSantaFloat 3s ease-in-out infinite}
.vj-santa-cta .vj-santa-link img{display:block;width:100%;height:auto;max-width:100%;margin:0;filter:drop-shadow(0 4px 5px rgba(65,25,12,.15))}
.vj-santa-cta .vj-santa-label{display:block;padding:11px 8px;margin-top:2px;border-radius:24px;background:#bd1826;color:#fff;font-size:13px;font-weight:700;line-height:1.4;box-shadow:0 5px 16px rgba(189,24,38,.24)}
.vj-santa-cta .vj-santa-close{position:absolute;top:-5px;right:-3px;z-index:2;display:flex;align-items:center;justify-content:center;width:32px;height:32px;min-height:0;margin:0;padding:0;border-radius:50%;border:1px solid #ead6d2;background:#fff;color:#733a37;box-shadow:0 2px 6px rgba(0,0,0,.1);font-size:23px;line-height:1;cursor:pointer}
.vj-santa-cta a:focus-visible,.vj-santa-cta button:focus-visible{outline:3px solid #0795f9;outline-offset:4px}
@keyframes vjSantaFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@media(max-width:849px){.vj-santa-cta{width:155px;left:10px;bottom:16px}.vj-santa-cta .vj-santa-label{font-size:11px;padding:9px 5px}}
@media(max-width:549px){.vj-santa-cta{width:125px;bottom:calc(12px + env(safe-area-inset-bottom));left:8px}.vj-santa-cta .vj-santa-label{font-size:10px}.vj-santa-cta .vj-santa-close{width:28px;height:28px;font-size:20px;top:-9px}}
@media(prefers-reduced-motion:reduce){.vj-santa-cta .vj-santa-link{animation:none}}

/* Animate the text independently of theme text colors. */
body #vj-santa-cta .vj-santa-label .vj-santa-text{display:inline-block;color:#fff!important;animation:vjSantaTextPulse17 1.6s ease-in-out infinite!important}
@keyframes vjSantaTextPulse17{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.18;transform:scale(.97)}}
@media(prefers-reduced-motion:reduce){body #vj-santa-cta .vj-santa-label .vj-santa-text{animation:none!important;opacity:1}}


/* Compact product cards; keep all content visible and preserve image proportions. */
.vj-lp-grid{align-items:start!important;gap:20px!important}
.vj-lp-grid .vj-lp-card{height:auto!important;min-height:0!important;align-self:start!important}
.vj-lp-grid .vj-lp-body{flex:0 0 auto!important;min-height:0!important;height:auto!important;padding:16px!important}
.vj-lp-grid .vj-lp-body h3{min-height:0!important;margin:0 0 10px!important}
.vj-lp-grid .vj-lp-body .vj-lp-summary{white-space:normal;line-height:1.5;margin:0 0 12px!important}
.vj-lp-grid .vj-lp-specs{margin:0 0 12px!important;line-height:1.45;text-transform:none!important}
.vj-lp-grid .vj-lp-specs>div{margin:0 0 5px!important}
.vj-lp-grid .vj-lp-button{margin-top:8px!important;padding:10px!important}
@media(max-width:549px){.vj-lp-grid{gap:12px!important}.vj-lp-grid .vj-lp-body{padding:12px!important}}
