/* CP Shop by Occasion. Scoped and theme-inheriting. */
.cp-sbo{width:100%;max-width:100%;font-family:inherit;color:inherit;margin:0 auto;min-width:0}
.cp-sbo *, .cp-sbo *::before,.cp-sbo *::after{box-sizing:border-box}
.cp-sbo__heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:18px}
.cp-sbo__heading h2{font-family:inherit;color:inherit;font-size:clamp(24px,3vw,36px);line-height:1.15;letter-spacing:-.025em;margin:0 0 7px;font-weight:750}
.cp-sbo__heading p{font:inherit;font-size:15px;color:#666;margin:0;line-height:1.5}
.cp-sbo__rail{display:flex;gap:14px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scroll-padding-inline:0;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:0 0 4px;min-width:0}
.cp-sbo__rail::-webkit-scrollbar{display:none}
.cp-sbo__card{flex:0 0 78%;min-width:0;scroll-snap-align:start;border:0;margin:0;padding:0;background:transparent}
.cp-sbo__link{display:block;color:inherit!important;text-decoration:none!important;height:100%;background:transparent}
.cp-sbo__media{position:relative;overflow:hidden;background:#f4f3f1;border-radius:10px;aspect-ratio:4/5}
.cp-sbo__photo{width:100%!important;height:100%!important;max-width:none!important;display:block;object-fit:cover;transition:transform 280ms ease}
.cp-sbo__placeholder{width:100%;height:100%;background:linear-gradient(135deg,#eeece8,#e0ddd8)}
.cp-sbo__media-arrow{position:absolute;right:12px;bottom:12px;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.94);color:#222;font-size:18px}
.cp-sbo__body{padding:13px 2px 6px;min-height:115px}
.cp-sbo__eyebrow{display:block;font-size:10px;font-weight:700;letter-spacing:.09em;color:#777;margin-bottom:5px}
.cp-sbo__body h3{font-family:inherit;font-size:clamp(17px,2vw,21px);font-weight:750;color:inherit;margin:0 0 5px;line-height:1.25;letter-spacing:-.015em}
.cp-sbo__body p{font-size:13px;color:#686868;line-height:1.4;margin:0}
.cp-sbo__foot{display:flex;align-items:center;justify-content:space-between;min-height:30px;gap:12px;margin-top:2px}
.cp-sbo__hint{font-size:12px;color:#777}
.cp-sbo__dots{display:flex;gap:6px;align-items:center;justify-content:center}
.cp-sbo__dot{width:6px;height:6px;border-radius:50%;background:#d6d6d6;transition:width .15s ease,background .15s ease}
.cp-sbo__dot[aria-current="true"]{width:17px;border-radius:9px;background:#333}
.cp-sbo__arrows{display:none;gap:8px;flex:0 0 auto}
.cp-sbo__arrows button{display:grid!important;place-items:center;width:36px;height:36px;border:1px solid #ddd!important;border-radius:50%!important;background:transparent!important;color:inherit!important;padding:0!important;cursor:pointer;box-shadow:none!important;font:inherit!important}
.cp-sbo__arrows button span{font-size:25px;line-height:1;transform:translateY(-1px)}
.cp-sbo__arrows button:disabled{opacity:.35;cursor:default}
.cp-sbo__link:focus-visible,.cp-sbo__arrows button:focus-visible,.cp-sbo__rail:focus-visible{outline:2px solid currentColor;outline-offset:3px}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.cp-sbo__link:hover .cp-sbo__photo{transform:scale(1.035)}}
@media(min-width:640px){.cp-sbo__rail{gap:18px}.cp-sbo__card{flex-basis:44%}.cp-sbo__arrows{display:flex}.cp-sbo__body{min-height:105px}}
@media(min-width:1024px){.cp-sbo__rail{gap:20px}.cp-sbo__card{flex-basis:calc((100% - 60px)/4)}.cp-sbo__hint{display:none}}
@media(prefers-reduced-motion:reduce){.cp-sbo__photo,.cp-sbo__dot{transition:none!important}.cp-sbo__rail{scroll-behavior:auto!important}}
