.cfl-related-products{position:relative;min-height:100px}
.cfl-related-products[hidden]{display:none!important}
.cfl-related-products .cfl-related-includes{display:flex;align-items:center;gap:8px;margin:8px 0 12px;padding:9px 10px;border:1px solid var(--campaign-strong-line,var(--line));border-radius:9px;background:var(--campaign-surface,var(--lavender));color:var(--purple-dark);font-size:11px;line-height:1.5;overflow-wrap:anywhere}
.cfl-related-products .cfl-related-includes>.cfl-icon{flex:none;width:18px;height:18px;color:var(--purple)}
.cfl-related-products .cfl-related-includes strong{font-weight:600}
.cfl-related-products.is-loading{min-height:360px}
.cfl-related-loading{display:none;position:absolute;inset:58px 0 auto;min-height:300px;align-items:center;justify-content:center;flex-direction:column;gap:16px;color:var(--purple-dark);font-size:13px;text-align:center;padding:30px;background:var(--campaign-surface,var(--lavender));border-radius:16px}
.cfl-related-spinner{width:32px;height:32px;border:3px solid var(--line);border-top-color:var(--purple);border-radius:50%;animation:cfl-related-spin .8s linear infinite}
.cfl-related-products.is-loading>ul.products,html.cfl-related-personalizing .cfl-related-products:not([data-cfl-related-ready])>ul.products{visibility:hidden;pointer-events:none}
.cfl-related-products.is-loading>.cfl-related-loading,html.cfl-related-personalizing .cfl-related-products:not([data-cfl-related-ready])>.cfl-related-loading{display:flex}
@keyframes cfl-related-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.cfl-related-spinner{animation:none}}
