/* FDShop Bundle Builder: loaded only when a product exposes the builder. */
.fdshop-bundle-entry { display: flex; grid-column: 1 / -1; flex-wrap: wrap; align-items: end; gap: .5rem; margin-top: .5rem; }
.fdshop-bundle-entry select { max-width: 22rem; }
.fdshop-bundle-dialog { width: min(88rem, calc(100vw - 2rem)); height: min(55rem, calc(100vh - 2rem)); max-height: calc(100vh - 2rem); padding: 0; overflow: hidden; border: 0; border-radius: 1rem; box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 28%); }
.fdshop-bundle-dialog::backdrop { background: rgb(0 0 0 / 65%); }
.fdshop-bundle-dialog__content { position: relative; height: 100%; background: #f7f5f0; }
.fdshop-bundle-dialog__content > [data-fdshop-bundle-content] { height: 100%; }
.fdshop-bundle-dialog__close { position: absolute; z-index: 20; top: .7rem; right: .9rem; width: 2.25rem; height: 2.25rem; padding: 0; border: 0; border-radius: 50%; background: rgb(255 255 255 / 88%); font-size: 2rem; line-height: 1; box-shadow: 0 .2rem .7rem rgb(0 0 0 / 12%); }
.fdshop-bundle-dialog__close:hover { background: #fff; transform: scale(1.04); }
.fdshop-bundle { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; height: 100%; min-height: 0; }
.fdshop-bundle__header { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(22rem, .85fr); gap: 2rem; align-items: center; padding: .75rem 4rem .75rem 1.5rem; border-bottom: 1px solid #e2ded5; background: #fff; }
.fdshop-bundle__intro { min-width: 0; }
.fdshop-bundle__promise { display: grid; align-self: stretch; align-content: center; justify-items: end; padding-left: 1.5rem; text-align: right; }
.fdshop-bundle__eyebrow { margin: 0 0 .55rem; color: #e0a721; font-size: .88rem; font-weight: 900; letter-spacing: .1em; }
.fdshop-bundle__header h2 { margin: 0; font-size: clamp(1.45rem, 2vw, 2rem); line-height: 1.1; }
.fdshop-bundle__description { white-space: pre-line; }
.fdshop-bundle__intro > .fdshop-bundle__description { max-width: 46rem; margin: .3rem 0 0; color: #5e5a53; font-size: .86rem; line-height: 1.35; }
.fdshop-bundle__requirements { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .25rem 1.1rem; color: #4f5a50; font-size: .76rem; }
.fdshop-bundle__chosen-top { display: grid; grid-template-columns: minmax(7.5rem, .25fr) minmax(25rem, 1fr); gap: 1.25rem; align-items: start; padding-bottom: 1rem; }
.fdshop-bundle__progress { position: relative; z-index: 4; min-width: 0; padding: .2rem .7rem .35rem; }
.fdshop-bundle__progress-heading { display: block; margin-bottom: .95rem; }
.fdshop-bundle__progress-heading strong { font-size: .78rem; letter-spacing: .06em; }
.fdshop-bundle__progress-scale { position: relative; min-width: 0; }
.fdshop-bundle__progress-status { min-height: 1.35em; margin: 1.2rem 0 0; overflow: hidden; color: #39362f; font-size: .88rem; font-weight: 600; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.fdshop-bundle__progress-track { position: relative; height: .28rem; margin-inline: .35rem; border-radius: 1rem; background: #dedbd4; }
.fdshop-bundle__progress-fill { position: absolute; inset: 0 auto 0 0; width: 0; border-radius: inherit; background: linear-gradient(90deg, #d88900, #f2bb1b); transition: width .35s ease; }
.fdshop-bundle__progress-marker { position: absolute; top: 50%; display: grid; width: 4.2rem; translate: -50% -50%; place-items: center; color: #817b71; font-size: .7rem; text-align: center; }
.fdshop-bundle__progress-marker b { position: absolute; bottom: .55rem; font-size: 1rem; line-height: 1; white-space: nowrap; }
.fdshop-bundle__progress-marker i { display: block; width: .75rem; height: .75rem; border: .16rem solid #fff; border-radius: 50%; background: #c8c3ba; box-shadow: 0 0 0 1px #c8c3ba; }
.fdshop-bundle__progress-marker small { position: absolute; top: .58rem; white-space: nowrap; }
.fdshop-bundle__progress-marker.is-active { color: #995900; }
.fdshop-bundle__progress-marker.is-active i { background: #e0a721; box-shadow: 0 0 0 1px #e0a721; }
.fdshop-bundle__progress-marker.is-celebrating i { animation: fdshop-bundle-pulse .9s ease-out; }
.fdshop-bundle__celebration { position: absolute; z-index: 5; top: -3.15rem; display: grid; width: max-content; max-width: 11rem; padding: .42rem .78rem; border-radius: 99rem; background: #20251f; color: #fff; font-size: .72rem; font-weight: 800; letter-spacing: .035em; opacity: 0; text-align: center; transform: translateX(-50%) translateY(.35rem) scale(.92); transition: opacity .25s, transform .32s; pointer-events: none; }
.fdshop-bundle__celebration strong { color: #ffd873; font-size: .95rem; }
.fdshop-bundle__celebration::before, .fdshop-bundle__celebration::after { position: absolute; color: #e0a721; content: "✦"; }
.fdshop-bundle__celebration::before { left: -.8rem; top: -.4rem; }
.fdshop-bundle__celebration::after { right: -.65rem; bottom: -.35rem; }
.fdshop-bundle__celebration.is-visible { opacity: 1; transform: translateX(-50%) translateY(0) scale(1); }
.fdshop-bundle__celebration.is-transferring { opacity: .82; transform: translateX(calc(-50% + var(--ribbon-shift-x))) translateY(var(--ribbon-shift-y)) scale(.82); transition-duration: .7s; transition-timing-function: cubic-bezier(.2,.72,.25,1); }
.fdshop-bundle__celebration-effects { position: absolute; z-index: 7; top: 0; width: 1px; height: 1px; pointer-events: none; }
.fdshop-bundle__celebration-effects i { --particle-color: #e0a721; position: absolute; width: .32rem; height: .32rem; border-radius: 50%; background: var(--particle-color); opacity: 0; transform: rotate(var(--particle-angle)) translateX(0); }
.fdshop-bundle__celebration-effects i:nth-child(3n) { --particle-color: #fff0a9; border-radius: 0; }
.fdshop-bundle__celebration-effects i:nth-child(3n + 1) { --particle-color: #c87800; }
.fdshop-bundle__celebration-effects.is-visible i { animation: fdshop-bundle-particle .95s cubic-bezier(.2,.75,.25,1) calc(var(--particle-index) * 15ms) both; }
.fdshop-bundle__celebration-effects.level-2 i { width: .38rem; height: .38rem; }
.fdshop-bundle__celebration-effects.level-3 i, .fdshop-bundle__celebration-effects.level-4 i { width: .42rem; height: .42rem; box-shadow: 0 0 .45rem rgb(224 167 33 / 65%); }
.fdshop-bundle__celebration-effects.is-maximum i { animation-duration: 1.25s; }
.fdshop-bundle__workspace { display: grid; grid-template-columns: minmax(18rem, 38%) minmax(0, 62%); min-height: 0; }
.fdshop-bundle__pool, .fdshop-bundle__chosen { display: flex; min-height: 0; flex-direction: column; padding: 1rem; }
.fdshop-bundle__pool { border-right: 1px solid #ddd8ce; background: #f2efe9; }
.fdshop-bundle__pool h3, .fdshop-bundle__chosen h3 { margin: 0; font-size: 1rem; }
.fdshop-bundle__pool-list { min-height: 0; overflow-y: auto; margin-top: .7rem; padding-right: .35rem; scrollbar-color: #bbb4a9 transparent; scrollbar-width: thin; }
.fdshop-bundle__pool-card { display: grid; grid-template-columns: 4rem minmax(0, 1fr); gap: .65rem; align-items: center; margin-bottom: .5rem; padding: .55rem; border: 1px solid #ded9d0; border-radius: .65rem; background: #fff; box-shadow: 0 .12rem .35rem rgb(36 30 20 / 5%); transition: border-color .2s, box-shadow .2s, transform .2s; }
.fdshop-bundle__pool-card:hover, .fdshop-bundle__pool-card:focus-within { border-color: #c89a3a; box-shadow: 0 .35rem .9rem rgb(70 49 11 / 11%); }
.fdshop-bundle__pool-card.is-dragging { opacity: .7; transform: scale(1.02) rotate(-.3deg); }
.fdshop-bundle__pool-card > img { width: 4rem; height: 4rem; object-fit: contain; }
.fdshop-bundle__pool-body { display: grid; min-width: 0; gap: .25rem; align-self: stretch; }
.fdshop-bundle__pool-name { display: -webkit-box; min-width: 0; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-height: 1.18; overflow-wrap: anywhere; }
.fdshop-bundle__pool-lower { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .8rem; align-items: end; min-width: 0; }
.fdshop-bundle__pool-copy { display: grid; min-width: 0; gap: .05rem; }
.fdshop-bundle__pool-copy small { color: #777168; }
.fdshop-bundle__pool-price { color: #a35f00; font-weight: 700; }
.fdshop-bundle__availability { font-size: .7rem; }
.fdshop-bundle__availability.is-available { color: #25843c; }
.fdshop-bundle__availability.is-unavailable { color: #a42c36; }
.fdshop-bundle__pool-actions { display: grid; grid-template-columns: 1fr auto; gap: .7rem; align-items: center; }
.fdshop-bundle__pool-actions .btn { white-space: nowrap; }
.fdshop-bundle .fdshop-bundle__pool-actions [data-bundle-add], .fdshop-bundle .fdshop-bundle__quick-copy [data-bundle-quick-add] { border-color: #e0a721 !important; background: #e0a721 !important; color: #17130d !important; font-weight: 700; }
.fdshop-bundle__info-button { width: 1.9rem; height: 1.9rem; padding: 0; border: 1px solid #cfc8bd; border-radius: 50%; background: #fff; color: #5b554d; font-family: Georgia, serif; font-weight: 700; }
.fdshop-bundle__chosen { position: relative; background: #fff; transition: background-color .2s, box-shadow .2s; }
.fdshop-bundle__chosen.is-dragover { background: #fff9e9; box-shadow: inset 0 0 0 .2rem #e0a721; }
.fdshop-bundle__chosen.is-dragover::after { position: absolute; z-index: 2; inset: 6.5rem 1rem 1rem; display: grid; border: 2px dashed #d08b00; border-radius: 1rem; background: rgb(255 249 230 / 88%); color: #995900; content: "Hier ablegen"; font-size: 1.1rem; font-weight: 800; place-items: center; pointer-events: none; }
.fdshop-bundle__chosen-heading { display: flex; align-items: center; gap: 1rem; margin-bottom: .1rem; }
.fdshop-bundle__chosen-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); min-height: 0; flex: 1 1 auto; overflow-y: auto; align-content: start; gap: .7rem; padding: .2rem .25rem .5rem .05rem; }
.fdshop-bundle__empty { display: grid; grid-column: 1 / -1; min-height: 17rem; color: #777168; text-align: center; place-content: center; }
.fdshop-bundle__empty > span { color: #e0a721; font-size: 2.2rem; }
.fdshop-bundle__empty strong { color: #302e2a; font-size: 1.15rem; }
.fdshop-bundle__empty p { max-width: 25rem; margin: .25rem auto; }
.fdshop-bundle__empty small { margin-top: .15rem; color: #777168; font-size: .75rem; }
.fdshop-bundle__chosen-footer { display: flex; justify-content: flex-end; min-height: 1.55rem; padding-top: .15rem; }
.fdshop-bundle__chosen-footer .btn-link { padding: 0; color: #777168; font-size: .75rem; }
.fdshop-bundle__maximum { position: absolute; z-index: 8; inset: 6.4rem 0 1.7rem; overflow: hidden; background: transparent; opacity: 0; text-align: center; transition: opacity .22s; pointer-events: none; }
.fdshop-bundle__maximum[hidden] { display: none; }
.fdshop-bundle__maximum.is-visible { opacity: 1; }
.fdshop-bundle__maximum-copy { position: absolute; z-index: 3; top: 48%; left: 54%; display: grid; padding: .7rem 1.2rem; border: 1px solid rgb(224 167 33 / 58%); border-radius: .8rem; background: rgb(28 28 27 / 88%); color: #fff; box-shadow: 0 .7rem 2rem rgb(0 0 0 / 18%); opacity: 0; transform: translate(-50%, -50%) scale(.88); }
.fdshop-bundle__maximum.is-visible .fdshop-bundle__maximum-copy { animation: fdshop-bundle-panel-pop .62s cubic-bezier(.16,.78,.25,1) .12s both; }
.fdshop-bundle__maximum-copy strong { color: #e0a721; font-size: clamp(1.5rem, 3vw, 2.6rem); letter-spacing: .06em; }
.fdshop-bundle__maximum-copy span { font-size: clamp(.9rem, 1.45vw, 1.25rem); font-weight: 800; }
.fdshop-bundle__party-hat {
	position: absolute;
	z-index: 5;
	bottom: 23%;
	left: 19%;
	width: clamp(5.5rem, 9vw, 8rem);
	height: clamp(6rem, 10vw, 9rem);
	clip-path: polygon(50% 0, 100% 88%, 76% 100%, 24% 100%, 0 88%);
	background: repeating-linear-gradient(115deg, #222 0 1.05rem, #e0a721 1.05rem 1.7rem, #d37719 1.7rem 2.2rem, #666 2.2rem 3rem);
	filter: drop-shadow(0 .55rem .45rem rgb(0 0 0 / 28%));
	transform: rotate(-90deg);
	transform-origin: 50% 100%;
}
.fdshop-bundle__party-hat::before { position: absolute; top: -.3rem; left: 50%; width: 1.25rem; height: 1.25rem; border-radius: 50%; background: #f2bc38; content: ""; translate: -50% 0; }
.fdshop-bundle__maximum.is-visible .fdshop-bundle__party-hat { animation: fdshop-bundle-hat 2.20s cubic-bezier(.16,.82,.25,1) both; }
.fdshop-bundle__maximum-burst { position: absolute; bottom: 24%; left: 14%; width: 1px; height: 1px; }
.fdshop-bundle__maximum-burst.is-behind { z-index: 2; }
.fdshop-bundle__maximum-burst.is-front { z-index: 4; }
.fdshop-bundle__maximum-burst i { --particle-color: #e0a721; position: absolute; opacity: 0; will-change: transform, opacity; animation: fdshop-bundle-confetti var(--burst-duration) cubic-bezier(.12,.68,.22,1) var(--burst-delay) both; }
.fdshop-bundle__maximum-burst .is-confetti { width: .38rem; height: .82rem; border-radius: .08rem; background: var(--particle-color); }
.fdshop-bundle__maximum-burst .is-confetti:nth-child(3n) { width: .55rem; height: 1.05rem; }
.fdshop-bundle__maximum-burst .is-confetti:nth-child(4n) { width: .3rem; height: .65rem; }
.fdshop-bundle__maximum-burst .is-confetti:nth-child(5n) { --particle-color: #fff1bb; }
.fdshop-bundle__maximum-burst .is-confetti:nth-child(5n + 1) { --particle-color: #d97818; }
.fdshop-bundle__maximum-burst .is-confetti:nth-child(5n + 2) { --particle-color: #373834; }
.fdshop-bundle__maximum-burst .is-confetti:nth-child(5n + 3) { --particle-color: #f7f5ec; }
.fdshop-bundle__maximum-burst .is-star { width: 1em; height: 1em; color: #e0a721; font-size: 1.15rem; line-height: 1; text-shadow: 0 0 .45rem rgb(224 167 33 / 58%); }
.fdshop-bundle__maximum-burst .is-star:nth-child(4n) { font-size: 1.6rem; }
.fdshop-bundle__maximum-burst .is-star:nth-child(3n) { color: #fff2bd; }
.fdshop-bundle__maximum-burst .is-streamer { width: clamp(3.5rem, 6vw, 6rem); height: clamp(1.3rem, 2.4vw, 2.2rem); border: .28rem solid #e0a721; border-color: #e0a721 transparent #d97818; border-radius: 50%; background: transparent; }
.fdshop-bundle__maximum-burst .is-streamer:nth-child(4n) { border-top-color: #f7f5ec; border-bottom-color: #555651; }
.fdshop-bundle__maximum-burst .is-streamer::after { position: absolute; inset: 32% -18% auto 18%; height: 55%; border: .2rem solid #e0a721; border-color: #e0a721 transparent transparent; border-radius: 50%; content: ""; }
.fdshop-bundle__chosen-card { display: flex; min-width: 0; height: max-content; flex-direction: column; align-items: center; padding: .65rem; border: 1px solid #e0dcd5; border-radius: .75rem; background: #fff; text-align: center; box-shadow: 0 .2rem .7rem rgb(35 29 20 / 7%); }
.fdshop-bundle__chosen-card.is-new { animation: fdshop-bundle-arrive .52s cubic-bezier(.18,.82,.25,1); }
.fdshop-bundle__chosen-card > img { width: 100%; height: 7rem; object-fit: contain; }
.fdshop-bundle__chosen-card > strong { display: -webkit-box; min-height: 2.45em; margin: .35rem 0 .65rem; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: .82rem; line-height: 1.2; }
.fdshop-bundle__controls { display: flex; align-items: center; justify-content: center; }
.fdshop-bundle__controls button { width: 2rem; height: 2rem; padding: 0; border: 1px solid #c9c3b9; background: #f5f3ef; font-size: 1.15rem; }
.fdshop-bundle__controls input { width: 2.6rem; height: 2rem; border: solid #c9c3b9; border-width: 1px 0; text-align: center; appearance: textfield; }
.fdshop-bundle__controls input::-webkit-inner-spin-button { appearance: none; }
.fdshop-bundle__remove { margin-top: .35rem; padding: .1rem; border: 0; background: transparent; color: #817b72; font-size: .7rem; text-decoration: underline; }
.fdshop-bundle__summary { z-index: 5; display: grid; grid-template-columns: minmax(18rem, 1fr) auto; gap: 1.5rem; align-items: center; padding: .7rem 1.25rem; border-top: 1px solid #dcd7ce; background: #f0f4fb; box-shadow: 0 -.35rem 1rem rgb(30 25 18 / 5%); }
.fdshop-bundle__summary-values { display: grid; grid-template-columns: auto minmax(25rem, 1fr); gap: 1rem; align-items: center; }
.fdshop-bundle__summary-values > p { margin: 0; font-weight: 700; white-space: nowrap; }
.fdshop-bundle__summary dl { display: flex; flex-wrap: wrap; align-items: baseline; gap: .15rem 1rem; margin: 0; }
.fdshop-bundle__summary dl > div { display: flex; gap: .35rem; }
.fdshop-bundle__summary dt { color: #68635c; font-size: .72rem; font-weight: 400; }
.fdshop-bundle__summary dd { margin: 0; font-weight: 700; }
.fdshop-bundle__summary .total { color: #e0a721; font-size: 1.05rem; font-weight: 800; }
.fdshop-bundle__summary .total dt { color: inherit; font-weight: 800; }
.fdshop-bundle__summary .saving { color: #26763a; }
.fdshop-bundle__summary.is-updating .fdshop-bundle__summary-values { animation: fdshop-bundle-summary .32s ease-out; }
.fdshop-bundle__message { grid-column: 1 / -1; margin: -.25rem 0 0; color: #26763a; font-size: .78rem; text-align: right; }
.fdshop-bundle__actions { display: flex; flex-wrap: wrap; justify-content: end; gap: .5rem; }
.fdshop-bundle .fdshop-bundle__actions [data-bundle-save] { border-color: #777168; background: #fff; color: #302e2a; font-weight: 700; }
.fdshop-bundle__actions [data-bundle-save]:hover, .fdshop-bundle__actions [data-bundle-save]:focus-visible { border-color: #e0a721; color: #8a5000; box-shadow: 0 0 0 .18rem rgb(224 167 33 / 18%); }
.fdshop-bundle__actions [data-bundle-save]:disabled { border-color: #c9c5bc; background: #eeece8; color: #969189; box-shadow: none; }
.fdshop-bundle .fdshop-bundle__actions [data-bundle-cart] { min-width: 10.5rem; border-color: #e0a721 !important; background: #e0a721 !important; color: #17130d !important; font-weight: 800; box-shadow: 0 .3rem .8rem rgb(168 102 0 / 18%); }
.fdshop-bundle .fdshop-bundle__actions [data-bundle-cart]:disabled { border-color: #c9c5bc !important; background: #d8d5cf !important; color: #777168 !important; box-shadow: none; }
.fdshop-bundle__saved { margin-block: .75rem; padding: .75rem; border: 1px solid #adb5bd; }
.fdshop-bundle__saved > div { display: flex; align-items: center; gap: .5rem; margin-top: .35rem; }
.fdshop-bundle__saved > div span { margin-right: auto; }
[data-bundle-message].is-error { color: #b02a37; }
.fdshop-bundle__quick { position: absolute; z-index: 15; inset: 0; display: grid; padding: 2rem; overflow-y: auto; background: rgb(20 18 15 / 64%); place-items: center; }
.fdshop-bundle__quick[hidden] { display: none; }
.fdshop-bundle__quick-card { position: relative; width: min(52rem, 100%); padding: 1.25rem; border-radius: 1rem; background: #fff; box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 35%); }
.fdshop-bundle__quick-close { position: absolute; z-index: 2; top: .5rem; right: .65rem; width: 2.2rem; height: 2.2rem; padding: 0; border: 0; border-radius: 50%; background: #f2f0ec; font-size: 1.7rem; }
.fdshop-bundle__quick-card [data-bundle-quick-body] { display: grid; grid-template-columns: minmax(14rem, .9fr) minmax(18rem, 1.1fr); gap: 1.5rem; align-items: center; }
.fdshop-bundle__quick-image { width: 100%; max-height: 24rem; object-fit: contain; }
.fdshop-bundle__quick-copy { display: grid; gap: .6rem; }
.fdshop-bundle__quick-copy h3, .fdshop-bundle__quick-copy p { margin: 0; }
.fdshop-bundle__quick-sku { color: #777168; font-size: .8rem; }
.fdshop-bundle__quick-price { color: #a35f00; font-size: 1.3rem; }
.fdshop-bundle__quick-description { white-space: pre-line; }
.fdshop-bundle__quick-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem 1rem; margin: .2rem 0; }
.fdshop-bundle__quick-facts > div { display: flex; justify-content: space-between; gap: .5rem; border-bottom: 1px solid #ece8e0; }
.fdshop-bundle__quick-facts dt { color: #6e685f; }
.fdshop-bundle__quick-facts dd { margin: 0; font-weight: 700; }
.fdshop-bundle__quick-copy iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; }
.fdshop-bundle__loader { display: grid; height: 100%; opacity: 0; transition: opacity .15s; place-content: center; place-items: center; }
.fdshop-bundle__loader.is-visible { opacity: 1; }
.fdshop-bundle__loader > span { width: 3rem; height: 3rem; border: .28rem solid #ded9d0; border-top-color: #e0a721; border-radius: 50%; animation: fdshop-bundle-spin .75s linear infinite; }
.fdshop-bundle__loader > div { display: flex; gap: .3rem; margin-top: 1rem; }
.fdshop-bundle__loader i { width: .35rem; height: .35rem; border-radius: 50%; background: #d09008; animation: fdshop-bundle-dot 1s ease-in-out infinite; }
.fdshop-bundle__loader i:nth-child(2) { animation-delay: .12s; }
.fdshop-bundle__loader i:nth-child(3) { animation-delay: .24s; }
.fdshop-bundle__loader p { margin: .6rem 0 0; color: #6e685f; }
@keyframes fdshop-bundle-spin { to { rotate: 360deg; } }
@keyframes fdshop-bundle-dot { 50% { opacity: .3; transform: translateY(-.2rem); } }
@keyframes fdshop-bundle-arrive { 0% { opacity: 0; border-color: #e0a721; box-shadow: 0 0 0 .45rem rgb(224 167 33 / 20%); transform: translateY(.9rem) scale(.92); } 70% { transform: translateY(-.08rem) scale(1.015); } }
@keyframes fdshop-bundle-summary { 50% { color: #9b5b00; transform: translateY(-.08rem); } }
@keyframes fdshop-bundle-pulse { 50% { box-shadow: 0 0 0 .8rem rgb(224 167 33 / 24%); transform: scale(1.4); } }
@keyframes fdshop-bundle-particle { 0% { opacity: 0; transform: rotate(var(--particle-angle)) translateX(0) scale(.4); } 18% { opacity: 1; } 100% { opacity: 0; transform: rotate(var(--particle-angle)) translateX(var(--particle-distance)) scale(1); } }

@keyframes fdshop-bundle-hat {
    from {
        opacity: 0;
        transform: translate(-1rem, 1.4rem) rotate(-135deg) scale(.68);
    }

    72% {
        opacity: 1;
        transform: translate(.15rem, -.2rem) rotate(-110deg) scale(1.08);
    }

    to {
        opacity: 1;
        transform: rotate(-90deg) scale(1);
    }
}

@keyframes fdshop-bundle-panel-pop { 0% { opacity: 0; transform: translate(-50%, -50%) scale(.88); } 65% { opacity: 1; transform: translate(-50%, -50%) scale(1.045); } 100% { opacity: 1; transform: translate(-50%, -50%) scale(1); } }
@keyframes fdshop-bundle-confetti { 0% { opacity: 0; transform: translate(0, 0) rotate(0) scale(.35); } 10% { opacity: 1; } 82% { opacity: 1; transform: translate(var(--burst-x), var(--burst-y)) rotate(var(--burst-rotate)) scale(1); } 100% { opacity: 0; transform: translate(var(--burst-x), calc(var(--burst-y) + 9rem)) rotate(calc(var(--burst-rotate) + 90deg)) scale(.82); } }
.fdshop-bundle__progress--mobile, .fdshop-bundle__mobile-bar, .fdshop-bundle__mobile-backdrop, .fdshop-bundle__mobile-toast, .fdshop-bundle__sheet-close, .fdshop-bundle__description-toggle { display: none; }
.fdshop-bundle__fly-clone { 
	position: fixed; 
	z-index: 10050; 
	object-fit: contain; 
	pointer-events: none; 
	will-change: transform, opacity; 
}

@media (max-width: 1050px) { .fdshop-bundle__header { grid-template-columns: minmax(0, 1fr) minmax(19rem, .8fr); gap: 1.25rem; } .fdshop-bundle__workspace { grid-template-columns: minmax(17rem, 40%) minmax(0, 60%); } .fdshop-bundle__chosen-top { grid-template-columns: minmax(6.5rem, .22fr) minmax(20rem, 1fr); gap: .75rem; } .fdshop-bundle__chosen-list { grid-template-columns: repeat(3, minmax(0, 1fr)); } .fdshop-bundle__summary-values { grid-template-columns: 1fr; gap: .25rem; } }
@media (max-width: 760px) { .fdshop-bundle-dialog { width: 100vw; height: 100dvh; max-height: none; border-radius: 0; } .fdshop-bundle { display: block; height: auto; min-height: 100%; overflow-y: auto; } .fdshop-bundle__header { grid-template-columns: 1fr; gap: .65rem; padding: 1rem 3.5rem 1rem 1rem; } .fdshop-bundle__promise { align-content: start; justify-items: start; padding: .3rem 0 0; text-align: left; } .fdshop-bundle__requirements { justify-content: flex-start; } .fdshop-bundle__workspace { display: block; } .fdshop-bundle__pool, .fdshop-bundle__chosen { min-height: auto; } .fdshop-bundle__pool { border-right: 0; border-bottom: 1px solid #ddd8ce; } .fdshop-bundle__pool-list { max-height: 20rem; } .fdshop-bundle__chosen-top { grid-template-columns: 1fr; gap: .45rem; } .fdshop-bundle__progress-heading { margin-bottom: .85rem; } .fdshop-bundle__progress-status { white-space: normal; } .fdshop-bundle__chosen-list { grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 30rem; } .fdshop-bundle__maximum { inset: 8.5rem 0 1.7rem; } .fdshop-bundle__summary { position: sticky; bottom: 0; grid-template-columns: 1fr; gap: .65rem; } .fdshop-bundle__summary-values { min-width: 0; } .fdshop-bundle__actions { justify-content: stretch; } .fdshop-bundle__actions .btn { flex: 1 1 auto; } .fdshop-bundle__quick { position: fixed; padding: .75rem; } .fdshop-bundle__quick-card [data-bundle-quick-body] { grid-template-columns: 1fr; } .fdshop-bundle__quick-image { max-height: 15rem; } }
@media (max-width: 440px) { .fdshop-bundle__pool-card { grid-template-columns: 3.5rem minmax(0, 1fr); } .fdshop-bundle__pool-card > img { width: 3.5rem; height: 3.5rem; } .fdshop-bundle__pool-lower { grid-template-columns: 1fr; } .fdshop-bundle__pool-actions { justify-self: stretch; } .fdshop-bundle__chosen-list { grid-template-columns: 1fr 1fr; } .fdshop-bundle__chosen-card > img { height: 6rem; } .fdshop-bundle__summary dl { display: grid; } }
@media (prefers-reduced-motion: reduce) { .fdshop-bundle *, .fdshop-bundle__loader * { scroll-behavior: auto !important; animation: none !important; transition-duration: .01ms !important; } .fdshop-bundle__celebration-effects, .fdshop-bundle__maximum-burst { display: none !important; } .fdshop-bundle__maximum-copy { opacity: 1; transform: translate(-50%, -50%) scale(1); } }

@media (max-width: 760px) {
    .fdshop-bundle-dialog__content, .fdshop-bundle-dialog__content > [data-fdshop-bundle-content] { height: 100dvh; max-height: 100dvh; overflow: hidden; }
    .fdshop-bundle { height: 100%; min-height: 0; padding-bottom: calc(11rem + env(safe-area-inset-bottom)); overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; touch-action: pan-y; -webkit-overflow-scrolling: touch; background: #f7f5f0; }
    .fdshop-bundle__header { position: relative; gap: .4rem; padding: .75rem 3.35rem .7rem .8rem; }
    .fdshop-bundle__header h2 { font-size: 1.35rem; }
    .fdshop-bundle__intro > .fdshop-bundle__description { margin-top: .2rem; font-size: .8rem; }
    .fdshop-bundle__description.is-collapsible:not(.is-expanded) { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
    .fdshop-bundle__description-toggle { display: inline; margin-top: .15rem; padding: 0; border: 0; background: transparent; color: #8a5000; font-size: .75rem; text-decoration: underline; }
    .fdshop-bundle__eyebrow { margin-bottom: .3rem; font-size: .75rem; }
    .fdshop-bundle__requirements { gap: .1rem .65rem; font-size: .68rem; }
    .fdshop-bundle__progress--mobile { display: block; width: 100%; margin: 0; padding: 0 .15rem; pointer-events: none; }
    .fdshop-bundle__progress--mobile .fdshop-bundle__progress-heading { margin-bottom: .75rem; text-align: left; }
    .fdshop-bundle__progress--mobile .fdshop-bundle__progress-heading strong { color: #fff; font-size: .72rem; }
    .fdshop-bundle__progress--mobile .fdshop-bundle__progress-marker { width: 3.5rem; color: #c9c4ba; }
    .fdshop-bundle__progress--mobile .fdshop-bundle__progress-marker b { font-size: .82rem; }
    .fdshop-bundle__progress--mobile .fdshop-bundle__progress-marker small { font-size: .62rem; }
    .fdshop-bundle__progress--mobile .fdshop-bundle__progress-marker.is-active { color: #f0b62a; }
    .fdshop-bundle__progress--mobile .fdshop-bundle__progress-marker i { border-color: #20211f; }
    .fdshop-bundle__progress--mobile .fdshop-bundle__progress-status { min-height: 2.2em; margin: .95rem 0 0; color: #f1eee8; font-size: .7rem; line-height: 1.25; text-align: left; white-space: normal; }
    .fdshop-bundle__progress--desktop { display: none; }
    .fdshop-bundle__workspace { display: block; }
    .fdshop-bundle__pool { min-height: auto; padding: .8rem; border: 0; }
    .fdshop-bundle__pool-list { max-height: none; overflow: visible; padding: 0; }
    .fdshop-bundle__pool-card { grid-template-columns: 4.5rem minmax(0, 1fr); min-height: 7.4rem; padding: .7rem; }
    .fdshop-bundle__pool-card > img { width: 4.5rem; height: 4.5rem; }
    .fdshop-bundle__pool-name { -webkit-line-clamp: 3; font-size: .95rem; }
    .fdshop-bundle__pool-lower { grid-template-columns: minmax(0, 1fr) minmax(7.5rem, auto); }
    .fdshop-bundle__pool-actions { gap: .5rem; }
    .fdshop-bundle__pool-actions [data-bundle-add] { min-height: 2.75rem; padding-inline: .8rem; }
    .fdshop-bundle__info-button { width: 2.75rem; height: 2.75rem; font-size: 1rem; }
    .fdshop-bundle__chosen { position: fixed; z-index: 32; right: 0; bottom: calc(8.9rem + env(safe-area-inset-bottom)); left: 0; display: flex; max-height: min(68dvh, 42rem); padding: 1rem .8rem .5rem; border-radius: 1rem 1rem 0 0; background: #fff; box-shadow: 0 -1rem 2.5rem rgb(0 0 0 / 24%); opacity: 0; transform: translateY(calc(100% + 10rem)); transition: transform .3s cubic-bezier(.2,.75,.25,1), opacity .2s; pointer-events: none; }
    .fdshop-bundle.is-sheet-open .fdshop-bundle__chosen { opacity: 1; transform: translateY(0); pointer-events: auto; }
    .fdshop-bundle__sheet-close { position: absolute; z-index: 3; top: .55rem; right: .7rem; display: grid; width: 2.75rem; height: 2.75rem; padding: 0; border: 0; border-radius: 50%; background: #f0ede7; font-size: 1.8rem; place-items: center; }
    .fdshop-bundle__chosen-top { display: block; padding: 0 3rem .55rem 0; }
    .fdshop-bundle__chosen-list { grid-template-columns: 1fr; max-height: none; overflow-y: auto; gap: .5rem; }
    .fdshop-bundle__chosen-card { display: grid; grid-template-columns: 4.25rem minmax(0, 1fr) auto; grid-template-rows: auto auto; gap: .25rem .65rem; align-items: center; padding: .55rem; text-align: left; }
    .fdshop-bundle__chosen-card > img { grid-row: 1 / 3; width: 4.25rem; height: 4.25rem; }
    .fdshop-bundle__chosen-card > strong { min-height: 0; margin: 0; font-size: .85rem; }
    .fdshop-bundle__controls { grid-column: 2; justify-content: start; }
    .fdshop-bundle__controls button, .fdshop-bundle__controls input { height: 2.55rem; }
    .fdshop-bundle__remove { grid-column: 3; grid-row: 1 / 3; min-height: 2.75rem; margin: 0; padding: .35rem; }
    .fdshop-bundle__empty { min-height: 8rem; }
    .fdshop-bundle__empty p, .fdshop-bundle__empty small { display: none; }
    .fdshop-bundle__chosen-footer { padding-top: .45rem; }
    .fdshop-bundle__summary { position: fixed; z-index: 33; right: 0; bottom: 0; left: 0; display: none; max-height: 9rem; padding: .6rem .8rem calc(.6rem + env(safe-area-inset-bottom)); overflow-y: auto; }
    .fdshop-bundle.is-sheet-open .fdshop-bundle__summary { display: grid; }
    .fdshop-bundle__summary-values { display: block; }
    .fdshop-bundle__summary-values > p { display: none; }
    .fdshop-bundle__summary dl { display: grid; grid-template-columns: 1fr 1fr; gap: .1rem .8rem; }
    .fdshop-bundle__summary .total { font-size: .95rem; }
    .fdshop-bundle__actions { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
    .fdshop-bundle__actions .btn { min-height: 2.75rem; }
    .fdshop-bundle__mobile-bar { position: fixed; z-index: 30; right: .65rem; bottom: calc(.55rem + env(safe-area-inset-bottom)); left: .65rem; display: block; min-height: 9.25rem; padding: .72rem .8rem .65rem; border: 1px solid #d2a440; border-radius: .85rem; background: #20211f; color: #fff; text-align: left; box-shadow: 0 .55rem 1.6rem rgb(0 0 0 / 34%); cursor: pointer; }
    .fdshop-bundle.is-sheet-open .fdshop-bundle__mobile-bar { display: none; }
    .fdshop-bundle__mobile-divider { display: block; width: calc(100% - 3rem); margin: .72rem auto .62rem; border-top: 1px solid rgb(224 167 33 / 62%); pointer-events: none; }
    .fdshop-bundle__mobile-main { display: grid; grid-template-columns: minmax(0, 1fr) auto 1.2rem; gap: .75rem; align-items: center; }
    .fdshop-bundle__mobile-main > span { display: grid; min-width: 0; }
    .fdshop-bundle__mobile-main > span:nth-child(2) { justify-items: end; }
    .fdshop-bundle__mobile-bar small { overflow: hidden; color: #ddd8ce; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
    .fdshop-bundle__mobile-bar strong { color: #fff; font-size: .96rem; }
    .fdshop-bundle__mobile-main > span:nth-child(2) strong { color: #f0b62a; }
    .fdshop-bundle__mobile-bar.is-pulsing { animation: fdshop-bundle-mobile-bar-pulse .68s ease-out; }
    .fdshop-bundle__mobile-bar.is-first-add { animation-name: fdshop-bundle-mobile-bar-learn; }
    .fdshop-bundle__mobile-backdrop { position: fixed; z-index: 31; inset: 0; display: block; width: 100%; border: 0; background: rgb(0 0 0 / 45%); }
    .fdshop-bundle__mobile-backdrop[hidden] { display: none; }
    .fdshop-bundle__mobile-toast { position: fixed; z-index: 40; top: max(1rem, env(safe-area-inset-top)); left: 50%; display: grid; width: min(22rem, calc(100vw - 2rem)); padding: .75rem 1rem; border: 1px solid #e0a721; border-radius: .75rem; background: rgb(31 32 29 / 96%); color: #fff; opacity: 0; text-align: center; transform: translate(-50%, -1rem) scale(.96); transition: opacity .2s, transform .25s; pointer-events: none; }
    .fdshop-bundle__mobile-toast[hidden] { display: none; }
    .fdshop-bundle__mobile-toast.is-visible { opacity: 1; transform: translate(-50%, 0) scale(1); }
    .fdshop-bundle__mobile-toast strong { color: #f0b62a; }
    .fdshop-bundle__mobile-toast span { font-size: .78rem; }
    .fdshop-bundle__mobile-toast.is-maximum { top: 32%; padding: 1.1rem; box-shadow: 0 0 2rem rgb(224 167 33 / 36%); }
    .fdshop-bundle__mobile-toast.is-maximum strong { font-size: 1.55rem; }
    .fdshop-bundle__mobile-toast.is-maximum i { margin-top: .35rem; color: #e0a721; font-style: normal; letter-spacing: .65rem; animation: fdshop-bundle-mobile-spark 1.2s ease-out both; }
    .fdshop-bundle__quick { position: fixed; overflow-y: auto; overscroll-behavior: contain; touch-action: pan-y; -webkit-overflow-scrolling: touch; padding: .35rem; background: #fff; place-items: stretch; }
    .fdshop-bundle__quick-card { width: 100%; min-height: 100%; padding: 1rem; border-radius: 0; box-shadow: none; }
    .fdshop-bundle__quick-card [data-bundle-quick-body] { display: block; padding-bottom: calc(11rem + env(safe-area-inset-bottom)); }
    .fdshop-bundle__quick-image { display: block; max-height: 34dvh; margin: 0 auto .75rem; }
    .fdshop-bundle__quick-copy [data-bundle-quick-add] { min-height: 3rem; }
}

@media (max-width: 440px) {
    .fdshop-bundle__pool-card { grid-template-columns: 4rem minmax(0, 1fr); }
    .fdshop-bundle__pool-card > img { width: 4rem; height: 4rem; }
    .fdshop-bundle__pool-lower { grid-template-columns: 1fr; }
    .fdshop-bundle__pool-actions { grid-template-columns: 1fr 2.75rem; }
}

@media (max-width: 340px) {
    .fdshop-bundle { padding-bottom: calc(11.5rem + env(safe-area-inset-bottom)); }
    .fdshop-bundle__mobile-bar { right: .35rem; left: .35rem; padding-inline: .65rem; }
    .fdshop-bundle__progress--mobile .fdshop-bundle__progress-marker { width: 2.8rem; }
    .fdshop-bundle__progress--mobile .fdshop-bundle__progress-marker b { font-size: .75rem; }
    .fdshop-bundle__progress--mobile .fdshop-bundle__progress-marker small { font-size: .56rem; }
    .fdshop-bundle__mobile-divider { width: calc(100% - 2.5rem); }
}

@keyframes fdshop-bundle-mobile-bar-pulse { 45% { border-color: #ffe39b; box-shadow: 0 0 0 .55rem rgb(224 167 33 / 42%), 0 0 2.25rem .35rem rgb(224 167 33 / 52%), 0 .55rem 1.6rem rgb(0 0 0 / 34%); transform: translateY(-.08rem) scale(1.035); } }
@keyframes fdshop-bundle-mobile-bar-learn { 40% { border-color: #fff0bd; box-shadow: 0 0 0 .8rem rgb(224 167 33 / 48%), 0 0 3rem .55rem rgb(224 167 33 / 58%), 0 .55rem 1.6rem rgb(0 0 0 / 34%); transform: translateY(-.24rem) scale(1.055); } }

.fdshop-bundle__mobile-confetti {
    position: fixed;
    z-index: 10040;
    inset: 0;
    overflow: visible;
    pointer-events: none;
}

.fdshop-bundle__mobile-confetti i {
    position: absolute;
    left: 50%;
	bottom: 15%;
    opacity: 0;
    will-change: transform, opacity;
    animation:
        fdshop-bundle-mobile-confetti
        2.35s
        cubic-bezier(.12,.68,.22,1)
        var(--mobile-delay)
        both;
}

.fdshop-bundle__mobile-confetti .is-confetti {
    width: .42rem;
    height: .9rem;
    border-radius: .08rem;
    background: #e0a721;
}

.fdshop-bundle__mobile-confetti .is-confetti:nth-child(4n) {
    background: #d97818;
}

.fdshop-bundle__mobile-confetti .is-confetti:nth-child(5n) {
    background: #f7f5ec;
}

.fdshop-bundle__mobile-confetti .is-confetti:nth-child(7n) {
    background: #666;
}

.fdshop-bundle__mobile-confetti .is-star {
    color: #e0a721;
    font-size: 1.3rem;
    line-height: 1;
    text-shadow: 0 0 .5rem rgb(224 167 33 / 60%);
}

.fdshop-bundle__mobile-confetti .is-streamer {
    width: .8rem;
    height: 3.6rem;
    border: 0;
    border-left: .18rem solid #e0a721;
    border-radius: 50%;
    transform-origin: center;
}

.fdshop-bundle__mobile-confetti .is-streamer:nth-child(3n) {
    border-left-color: #d97818;
}

@keyframes fdshop-bundle-mobile-confetti {
    0% {
        opacity: 0;
        transform:
            translate(0, 0)
            rotate(0deg)
            scale(.4);
    }

    10% {
        opacity: 1;
    }

    75% {
        opacity: 1;
        transform:
            translate(
                var(--mobile-x),
                var(--mobile-y)
            )
            rotate(var(--mobile-rotate))
            scale(1);
    }

    100% {
        opacity: 0;
        transform:
            translate(
                var(--mobile-x),
                calc(var(--mobile-y) + 8rem)
            )
            rotate(calc(var(--mobile-rotate) + 120deg))
            scale(.8);
    }
}

@keyframes fdshop-bundle-mobile-spark { from { opacity: 0; transform: translateY(.6rem) scale(.7); } 45% { opacity: 1; } to { opacity: 0; transform: translateY(-1.4rem) scale(1.2); } }

@media (prefers-reduced-motion: reduce) {
    .fdshop-bundle__fly-clone { display: none !important; }
    .fdshop-bundle__mobile-toast.is-maximum i { display: none; }
}
