/* UpsellPilot storefront */
.upl-box,.upl-sc,.upl-modal,.upl-bump,.upl-sp{--upl-line:#e5e7eb;--upl-muted:#6b7280;--upl-soft:#f8fafc;box-sizing:border-box}
.upl-box *,.upl-sc *,.upl-modal *,.upl-bump *,.upl-sp *{box-sizing:border-box}
.upl-box{margin:24px 0;clear:both}
.upl-heading{font-size:18px;margin:0 0 12px;line-height:1.3}
.upl-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:var(--upl-radius);background:var(--upl-btn);color:var(--upl-btn-text)!important;padding:9px 14px;font-weight:600;font-size:14px;line-height:1.2;cursor:pointer;text-decoration:none!important;transition:opacity .15s,transform .1s}
.upl-btn:hover{opacity:.9}.upl-btn:active{transform:translateY(1px)}.upl-btn:disabled{opacity:.55;cursor:default}
.upl-btn--primary{background:var(--upl-primary);color:var(--upl-primary-text)!important}
.upl-btn--ghost{background:transparent;color:inherit!important;border:1px solid var(--upl-line)}
.upl-btn.is-done{background:var(--upl-accent)}
.upl-btn.loading{opacity:.6;pointer-events:none}
.upl-msg{font-size:13px;color:var(--upl-primary);margin-top:6px;min-height:0}
.upl-msg a{font-weight:700}
.upl-card-price del{color:var(--upl-muted);font-weight:400;margin-right:4px;font-size:.9em}
.upl-card-price ins{text-decoration:none;color:var(--upl-sale);font-weight:700}

/* Grid + cards */
.upl-grid{display:grid;gap:14px}
.upl-cols-1{grid-template-columns:1fr}.upl-cols-2{grid-template-columns:repeat(2,1fr)}.upl-cols-3{grid-template-columns:repeat(3,1fr)}.upl-cols-4{grid-template-columns:repeat(4,1fr)}.upl-cols-5{grid-template-columns:repeat(5,1fr)}
@media(max-width:900px){.upl-cols-4,.upl-cols-5{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.upl-grid:not(.upl-cols-1){grid-template-columns:repeat(2,1fr)}}
.upl-card{position:relative;display:flex;flex-direction:column;border:1px solid var(--upl-line);border-radius:var(--upl-radius);overflow:hidden;background:#fff}
.upl-card-img{display:block!important;position:relative!important;overflow:hidden;height:auto!important;background:var(--upl-soft);padding:0!important;line-height:0}
.upl-card-img:before{content:"";display:block;padding-top:100%}
.upl-card-img img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover;display:block;margin:0!important;transform:none!important}
.upl-card-body{padding:10px;display:flex;flex-direction:column;gap:6px;flex:1}
.upl-card-title{font-size:13px;line-height:1.35;color:inherit;text-decoration:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.upl-card-price{font-size:14px}
.upl-card-actions{margin-top:auto;display:flex;flex-direction:column;gap:6px}
.upl-badge{position:absolute;top:8px;left:8px;z-index:2;background:var(--upl-accent);color:#fff;font-size:11px;font-weight:700;padding:3px 8px;border-radius:99px;text-transform:uppercase;letter-spacing:.03em}
.upl-card--compact{flex-direction:row!important;align-items:flex-start}
.upl-card--compact .upl-card-img{flex:0 0 40%;width:40%;max-width:180px;align-self:flex-start}
.upl-card--compact .upl-card-body{padding:10px 12px;gap:6px;min-width:0;align-self:stretch}
.upl-card--compact .upl-card-title{font-size:14px;line-height:1.35}
.upl-card--compact .upl-card-price{font-size:15px;font-weight:700}
.upl-card--compact .upl-card-actions{flex-direction:row;flex-wrap:nowrap;align-items:center;gap:6px;margin-top:auto}
.upl-card--compact .upl-picker{flex:1 1 auto;min-width:0;flex-wrap:nowrap}
.upl-card--compact .upl-picker select{height:38px;font-size:14px;flex:1 1 0;min-width:52px}
.upl-card--compact .upl-btn{padding:0 12px;height:38px;font-size:14px;white-space:nowrap;flex:0 0 auto}
.upl-card--compact .upl-btn--ghost{height:auto;padding:8px 12px}
.upl-card--compact .upl-badge{font-size:10px;top:6px;left:6px}

/* Variation picker */
.upl-picker{display:flex;gap:6px;flex-wrap:wrap}
.upl-picker select{flex:1 1 70px;min-width:0;height:34px;padding:0 6px;border:1px solid var(--upl-line);border-radius:6px;font-size:13px;background:#fff;color:inherit}
.upl-picker.upl-need select{border-color:var(--upl-primary);animation:upl-shake .35s}
.upl-picker.upl-na select{border-color:#f59e0b}
@keyframes upl-shake{25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}

/* FBT */
.upl-fbt{border:1px solid var(--upl-line);border-radius:calc(var(--upl-radius) + 4px);padding:16px}
.upl-fbt-images{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.upl-fbt-thumb{width:84px;height:84px;border-radius:var(--upl-radius);overflow:hidden;border:1px solid var(--upl-line);transition:opacity .2s}
.upl-fbt-thumb img{width:100%;height:100%;object-fit:cover;display:block;margin:0!important}
.upl-fbt-thumb.is-off{opacity:.3}
.upl-plus{font-size:20px;color:var(--upl-muted);font-weight:300}
.upl-fbt-list{list-style:none;margin:0;padding:0}
.upl-fbt-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;padding:9px 0;border-top:1px solid var(--upl-line);margin:0}
.upl-fbt-row:first-child{border-top:0}
.upl-fbt-row.is-off .upl-fbt-check span,.upl-fbt-row.is-off .upl-card-price{opacity:.5}
.upl-fbt-check{display:flex;gap:8px;align-items:flex-start;font-size:14px;flex:1 1 260px;margin:0;cursor:pointer}
.upl-fbt-check input{margin-top:3px;accent-color:var(--upl-primary);width:16px;height:16px}
.upl-fbt-meta{display:flex;align-items:center;gap:10px;flex:0 1 auto}
.upl-fbt-meta .upl-picker{width:200px}
.upl-fbt-footer{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--upl-line)}
.upl-fbt-total{font-size:16px;font-weight:600}
.upl-fbt-save{background:#ecfdf5;color:#047857;font-size:12px;font-weight:700;padding:4px 8px;border-radius:99px}
.upl-fbt-add{margin-left:auto}
@media(max-width:640px){.upl-fbt-meta{width:100%;justify-content:space-between}.upl-fbt-meta .upl-picker{flex:1}.upl-fbt-add{width:100%}}

/* BMSM */
.upl-bmsm{border:1px dashed var(--upl-primary);border-radius:calc(var(--upl-radius) + 4px);padding:12px;margin:14px 0}
.upl-bmsm-head{display:flex;flex-direction:column;margin-bottom:10px}.upl-bmsm-head span{font-size:13px;color:var(--upl-muted)}
.upl-bmsm-tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px}
.upl-tier{display:flex;flex-direction:column;align-items:center;gap:2px;border:1px solid var(--upl-line);background:#fff;border-radius:var(--upl-radius);padding:8px 6px;cursor:pointer;color:inherit;font:inherit;line-height:1.2}
.upl-tier:hover,.upl-tier.is-active{border-color:var(--upl-primary);box-shadow:0 0 0 1px var(--upl-primary)}
.upl-tier-label{font-size:13px;font-weight:600}.upl-tier-off{font-size:15px;font-weight:800;color:var(--upl-primary)}.upl-tier small{font-size:11px;color:var(--upl-muted)}
.upl-bmsm-status{font-size:13px;margin-top:8px}
.upl-bmsm-ok,.upl-sc-bmsm .upl-bmsm-ok,.upl-cart-bmsm .upl-bmsm-ok{color:#047857;font-weight:600}
.upl-bmsm-next{color:var(--upl-muted)}
.upl-cart-bmsm{padding:10px 14px;background:var(--upl-soft,#f8fafc);border-radius:8px;margin-bottom:12px}

/* Free shipping */
.upl-fs{padding:10px 0}
.upl-fs-msg{font-size:13px;margin-bottom:6px;text-align:center}
.upl-fs-track{height:7px;background:#e5e7eb;border-radius:99px;overflow:hidden}
.upl-fs-track span{display:block;height:100%;background:var(--upl-fs-bar);border-radius:99px;transition:width .4s}

/* Side cart */
html.upl-lock{overflow:hidden}
.upl-sc{position:fixed;inset:0;z-index:999990;pointer-events:none}
.upl-sc-overlay{position:absolute;inset:0;background:rgba(15,23,42,.45);opacity:0;transition:opacity .25s}
.upl-sc-panel{position:absolute;top:0;right:0;bottom:0;width:420px;max-width:100%;background:#fff;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .3s cubic-bezier(.2,.8,.2,1);box-shadow:-10px 0 30px rgba(0,0,0,.12)}
.upl-sc.is-open{pointer-events:auto}.upl-sc.is-open .upl-sc-overlay{opacity:1}.upl-sc.is-open .upl-sc-panel{transform:none}
.upl-sc-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--upl-line);font-size:16px}
.upl-sc-close,.upl-modal-close{background:none;border:0;font-size:28px;line-height:1;cursor:pointer;color:inherit;padding:0 4px}
.upl-sc-body{flex:1;display:flex;flex-direction:column;min-height:0}
.upl-sc.is-loading .upl-sc-body:empty{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 50 50'%3E%3Ccircle cx='25' cy='25' r='20' fill='none' stroke='%239ca3af' stroke-width='4' stroke-dasharray='90 60'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 25 25' to='360 25 25' dur='.8s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/svg%3E") center 80px no-repeat}
.upl-sc-scroll{flex:1;overflow-y:auto;padding:4px 18px 14px;-webkit-overflow-scrolling:touch}
.upl-sc-bmsm{font-size:13px;padding:8px 10px;background:#f8fafc;border-radius:8px;margin-bottom:6px}
.upl-sc-items{list-style:none;margin:0;padding:0}
.upl-sc-item{position:relative;display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--upl-line);margin:0;transition:opacity .2s}
.upl-sc-item.is-loading{opacity:.4;pointer-events:none}
.upl-sc-img{flex:0 0 72px;width:72px;height:72px;border-radius:8px;overflow:hidden;background:#f8fafc}
.upl-sc-img img{width:100%!important;height:100%!important;object-fit:cover;margin:0!important}
.upl-sc-info{flex:1;min-width:0;padding-right:18px}
.upl-sc-name{font-size:14px;font-weight:600;color:inherit;text-decoration:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35}
.upl-sc-meta{font-size:12px;color:var(--upl-muted)}.upl-sc-meta dl{margin:2px 0}.upl-sc-meta dt,.upl-sc-meta dd{display:inline;margin:0}.upl-sc-meta dd p{display:inline;margin:0}.upl-sc-meta dd:after{content:"";display:block}
.upl-sc-stock{font-size:12px;color:#b45309;margin-top:2px}
.upl-sc-row{display:flex;justify-content:space-between;align-items:center;margin-top:6px}
.upl-qty{display:inline-flex;align-items:center;border:1px solid var(--upl-line);border-radius:99px}
.upl-qty button{width:30px;height:30px;border:0;background:none;cursor:pointer;font-size:16px;color:inherit;padding:0}
.upl-qty span{min-width:22px;text-align:center;font-size:14px;font-variant-numeric:tabular-nums}
.upl-sc-price{font-weight:700;font-size:14px}
.upl-sc-remove{position:absolute;top:10px;right:0;background:none;border:0;font-size:20px;cursor:pointer;color:var(--upl-muted);padding:0 2px;line-height:1}
.upl-sc-recs{margin:16px 0 0}.upl-sc-recs .upl-heading{font-size:16px}
.upl-sc-recs-list{display:flex;flex-direction:column;gap:10px}
.upl-sc-footer{border-top:1px solid var(--upl-line);padding:14px 18px calc(14px + env(safe-area-inset-bottom));background:#fff}
.upl-sc-line{display:flex;justify-content:space-between;font-size:14px;margin-bottom:6px}
.upl-sc-save{color:#047857;font-weight:600}
.upl-sc-checkout{width:100%;padding:14px;font-size:15px;margin-top:4px}
.upl-sc-viewcart{display:block;text-align:center;font-size:13px;margin-top:8px;color:var(--upl-muted)}
.upl-sc-empty{padding:40px 20px;text-align:center}
.upl-float{position:fixed;bottom:20px;z-index:99990;border:0;border-radius:50%;background:var(--upl-icon-bg);color:var(--upl-icon-color);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.2);width:56px;height:56px;padding:0}
.upl-float--bl{left:20px}.upl-float--br{right:20px}.upl-float--s{width:46px;height:46px}.upl-float--l{width:66px;height:66px}
.upl-float .upl-count{position:absolute;top:-2px;right:-2px;background:var(--upl-primary);color:var(--upl-primary-text);font-size:11px;font-weight:700;min-width:20px;height:20px;border-radius:99px;display:flex;align-items:center;justify-content:center;padding:0 5px}

/* Modal popup */
.upl-modal{position:fixed;inset:0;z-index:999991;display:none;align-items:center;justify-content:center;padding:16px}
.upl-modal.is-open{display:flex}
.upl-modal-overlay{position:absolute;inset:0;background:rgba(15,23,42,.5)}
.upl-modal-box{position:relative;background:#fff;border-radius:14px;width:720px;max-width:100%;max-height:90vh;overflow:auto;padding:20px;animation:upl-pop .25s ease}
@keyframes upl-pop{from{transform:translateY(12px) scale(.98);opacity:0}}
.upl-modal-close{position:absolute;top:10px;right:12px}
.upl-pop-head{display:flex;gap:12px;align-items:center;padding-right:30px}
.upl-pop-check{width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:var(--upl-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}
.upl-pop-name{font-size:13px;color:var(--upl-muted)}
.upl-modal .upl-box{margin:14px 0}
.upl-pop-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:6px}
.upl-pop-actions .upl-btn{flex:1 1 0;padding:12px}
.upl-spinner{height:120px}

/* Order bump */
.upl-bump{display:flex;gap:12px;align-items:flex-start;border:2px dashed var(--upl-primary);border-radius:calc(var(--upl-radius) + 2px);padding:12px;margin:0 0 16px;background:#fff;transition:background .2s,opacity .2s}
.upl-bump.is-on{background:#f0fdf4;border-style:solid;border-color:var(--upl-accent)}
.upl-bump.is-loading{opacity:.55;pointer-events:none}
.upl-bump-img{flex:0 0 72px;width:72px}.upl-bump-img img{width:100%;height:auto;border-radius:8px;display:block}
.upl-bump-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.upl-bump-head{display:flex;gap:8px;align-items:center;font-weight:700;cursor:pointer;margin:0}
.upl-bump-head input{width:18px;height:18px;accent-color:var(--upl-accent)}
.upl-bump-desc{font-size:13px;line-height:1.45}
.upl-bump-price del{color:var(--upl-muted)}.upl-bump-price ins{text-decoration:none;color:var(--upl-sale);font-weight:700}
.upl-bump-chosen{font-size:12px;color:var(--upl-muted)}.upl-bump-chosen dl{margin:0}.upl-bump-chosen dt,.upl-bump-chosen dd{display:inline;margin:0}.upl-bump-chosen p{display:inline;margin:0}
.upl-bump--banner .upl-bump-head{background:#fef3c7;margin:-12px -12px 0;padding:10px 12px;border-radius:6px 6px 0 0}
.upl-bump--banner{flex-wrap:wrap}
.upl-bump--compact{align-items:center;padding:8px 10px}.upl-bump--compact .upl-bump-img{flex-basis:48px;width:48px}.upl-bump--compact .upl-bump-desc{display:none}

/* Social proof */
.upl-sp{position:fixed;bottom:20px;z-index:99980;max-width:340px;display:flex;gap:10px;align-items:center;background:#fff;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.15);padding:10px 30px 10px 10px;transform:translateY(140%);opacity:0;transition:transform .35s,opacity .35s;font-size:13px;line-height:1.35}
.upl-sp--bl{left:20px}.upl-sp--br{right:20px}
.upl-sp.is-on{transform:none;opacity:1}
.upl-sp img{width:54px;height:54px;object-fit:cover;border-radius:8px;flex:0 0 54px}
.upl-sp p{margin:0}.upl-sp a{color:inherit;font-weight:600}.upl-sp small{color:var(--upl-muted);font-size:11px}
.upl-sp-x{position:absolute;top:4px;right:6px;border:0;background:none;font-size:16px;cursor:pointer;color:var(--upl-muted)}
@media(max-width:640px){
	.upl-sp{left:10px!important;right:10px!important;max-width:none}
	.upl-sp-m--top{top:10px;bottom:auto;transform:translateY(-140%)}
	.upl-sp-m--hide{display:none!important}
}

/* Announcements */
.upl-topbar{position:relative;background:var(--upl-top-bg);color:var(--upl-top-color);text-align:center;font-size:13px;padding:8px 36px;z-index:9999}
.upl-topbar a{color:inherit;text-decoration:underline}
.upl-topbar-msg{display:none}.upl-topbar-msg.is-on{display:inline;animation:upl-fade .4s}
@keyframes upl-fade{from{opacity:0}}
.upl-topbar-x{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:0;color:inherit;font-size:18px;cursor:pointer}
.upl-ann{background:var(--upl-ann-bg);color:var(--upl-ann-color);border-radius:var(--upl-radius);padding:10px 14px;font-size:14px;line-height:1.6;margin:0 0 14px}
.upl-form-err{margin:0 0 10px!important}
.upl-coupon-box{border:2px dashed var(--upl-accent);border-radius:10px;padding:14px 18px;margin:0 0 24px;background:#f0fdf4;font-size:15px}
.upl-code{font-family:ui-monospace,Menlo,monospace;font-weight:800;background:#fff;padding:2px 8px;border-radius:6px;letter-spacing:.05em}
/* Short screens (phones in landscape): give the scroll area more room */
@media (max-height:500px){
	.upl-sc-head{padding:8px 18px;font-size:15px}
	.upl-sc-footer{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:8px 18px calc(8px + env(safe-area-inset-bottom))}
	.upl-sc-line{margin:0;flex:1 1 40%;font-size:13px}
	.upl-sc-checkout{padding:10px;font-size:14px;margin:0}
	.upl-sc-viewcart{display:none}
	.upl-sc-recs-list .upl-card--compact .upl-card-img{flex-basis:110px;width:110px}
	.upl-sc-item{padding:8px 0}
}
