:root{--bundle-border-color:#e0e0e0;--bundle-border-selected:#2c6ecb;--bundle-bg-color:#fff;--bundle-bg-hover:#f9f9f9;--bundle-badge-bg:#f0f0f0;--bundle-badge-popular:#ff6b35;--bundle-text-primary:#333;--bundle-text-secondary:#666;--bundle-savings-color:#28a745;--bundle-focus-color:#2c6ecb;--bundle-spacing-xs:.25rem;--bundle-spacing-sm:.5rem;--bundle-spacing-md:1rem;--bundle-spacing-lg:1.5rem;--bundle-spacing-xl:2rem;--bundle-card-padding:1.5rem;--bundle-grid-gap:1.5rem;--bundle-border-radius:12px;--bundle-badge-radius:12px;--bundle-transition-fast:all .15s ease;--bundle-transition-base:all .2s ease;--bundle-transition-slow:all .3s ease;--bundle-transition-transform:transform .2s cubic-bezier(.4,0,.2,1);--bundle-transition-opacity:opacity .2s ease;--bundle-transition-border:border-color .25s ease;--bundle-transition-shadow:box-shadow .25s ease;--bundle-transition-scale:transform .2s cubic-bezier(.34,1.56,.64,1);--bundle-shadow-sm:0 1px 3px rgba(0,0,0,.08);--bundle-shadow-base:0 2px 8px rgba(0,0,0,.1);--bundle-shadow-md:0 4px 12px rgba(0,0,0,.15);--bundle-shadow-lg:0 8px 16px rgba(0,0,0,.2);--bundle-shadow-focus:0 0 0 3px rgba(44,110,203,.2)}.bundle-selector{width:100%;margin:0 auto;position:relative}.bundle-selector__sr-announcements{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.bundle-selector__error-message{background-color:#fff3cd;border:1px solid #ffc107;border-radius:8px;padding:var(--bundle-spacing-md) var(--bundle-spacing-lg);margin-bottom:var(--bundle-spacing-lg);color:#856404;font-size:.875rem;line-height:1.5;display:none;animation:error-fade-in .3s ease}@keyframes error-fade-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.bundle-selector__error-message::before{content:'⚠️ ';margin-right:.5rem}.bundle-option--disabled{cursor:not-allowed!important;opacity:.5!important;pointer-events:none!important}.bundle-option--disabled:hover{transform:none!important;border-color:var(--bundle-border-color)!important;box-shadow:none!important}.bundle-selector .page-width{max-width:1200px;margin:0 auto;padding-left:var(--bundle-spacing-lg);padding-right:var(--bundle-spacing-lg)}.bundle-selector__heading{font-size:2rem;font-weight:600;line-height:1.2;text-align:center;margin:0 0 var(--bundle-spacing-xl) 0;color:var(--bundle-text-primary);letter-spacing:-.02em}.bundle-selector__options{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--bundle-grid-gap);margin:0;padding:0;list-style:none;align-items:stretch}.bundle-option{position:relative;background-color:var(--bundle-bg-color);border:2px solid var(--bundle-border-color);border-radius:var(--bundle-border-radius);padding:var(--bundle-card-padding);cursor:pointer;display:flex;flex-direction:column;gap:var(--bundle-spacing-md);transition:border-color .25s ease,box-shadow .25s ease,transform .2s cubic-bezier(.4,0,.2,1),background-color .2s ease;will-change:transform}.bundle-option:hover{border-color:var(--bundle-border-selected);box-shadow:var(--bundle-shadow-md);transform:translateY(-2px) scale(1.02);background-color:var(--bundle-bg-hover)}.bundle-option:focus{outline:3px solid var(--bundle-focus-color);outline-offset:2px;box-shadow:var(--bundle-shadow-focus);z-index:1}.bundle-option:focus-visible{outline:3px solid var(--bundle-focus-color);outline-offset:2px;box-shadow:var(--bundle-shadow-focus);z-index:1}.bundle-option:focus:not(:focus-visible){outline:0;box-shadow:none}.bundle-option--selected{border-color:var(--bundle-border-selected);box-shadow:var(--bundle-shadow-md);background-color:var(--bundle-bg-hover);transform:scale(1.02);animation:bundle-select .3s cubic-bezier(.34,1.56,.64,1)}@keyframes bundle-select{0%{transform:scale(1)}50%{transform:scale(1.05)}100%{transform:scale(1.02)}}.bundle-option__header{display:flex;gap:var(--bundle-spacing-sm);flex-wrap:wrap;min-height:24px}.bundle-option__badge{display:inline-block;padding:var(--bundle-spacing-xs) .75rem;background-color:var(--bundle-badge-bg);color:var(--bundle-text-primary);font-size:.75rem;font-weight:600;border-radius:var(--bundle-badge-radius);text-transform:uppercase;letter-spacing:.5px;line-height:1.4;white-space:nowrap;transition:transform .15s ease}.bundle-option__badge--popular{background-color:var(--bundle-badge-popular);color:#fff;box-shadow:0 2px 4px rgba(255,107,53,.2)}.bundle-option:hover .bundle-option__badge{transform:translateY(-1px)}.bundle-option__content{display:flex;flex-direction:column;gap:var(--bundle-spacing-sm);flex-grow:1}.bundle-option__title{font-size:1.25rem;font-weight:600;color:var(--bundle-text-primary);margin:0;line-height:1.3;letter-spacing:-.01em;transition:color .15s ease}.bundle-option:hover .bundle-option__title{color:var(--bundle-border-selected)}.bundle-option__quantity{font-size:.875rem;color:var(--bundle-text-secondary);margin:0;line-height:1.5;font-weight:500}.bundle-option__pricing{display:flex;flex-direction:column;gap:var(--bundle-spacing-xs);margin-top:var(--bundle-spacing-sm);padding-top:var(--bundle-spacing-sm);border-top:1px solid rgba(0,0,0,.06)}.bundle-option__price{font-size:1.5rem;font-weight:700;color:var(--bundle-text-primary);line-height:1.2;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.bundle-option__per-unit{font-size:.875rem;color:var(--bundle-text-secondary);line-height:1.4;font-weight:500;font-variant-numeric:tabular-nums}.bundle-option__savings{font-size:.875rem;font-weight:600;color:var(--bundle-savings-color);line-height:1.4;margin-top:var(--bundle-spacing-xs);display:inline-flex;align-items:center;gap:.25rem}.bundle-option__savings::before{content:'✓';font-size:1rem;font-weight:700}.bundle-option__checkmark{position:absolute;top:var(--bundle-spacing-md);right:var(--bundle-spacing-md);width:24px;height:24px;background-color:var(--bundle-border-selected);border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(0) rotate(-180deg);transition:opacity .25s ease,transform .3s cubic-bezier(.34,1.56,.64,1);color:#fff;will-change:transform,opacity}.bundle-option--selected .bundle-option__checkmark{opacity:1;transform:scale(1) rotate(0)}@media (max-width:749px){.bundle-selector .page-width{padding-left:var(--bundle-spacing-md);padding-right:var(--bundle-spacing-md)}.bundle-selector__options{grid-template-columns:1fr;gap:var(--bundle-spacing-md)}.bundle-selector__heading{font-size:1.5rem;margin-bottom:var(--bundle-spacing-lg)}.bundle-option{padding:1.25rem;min-height:44px}.bundle-option__title{font-size:1.125rem}.bundle-option__price{font-size:1.25rem}.bundle-option__per-unit{font-size:.8125rem}.bundle-option__quantity{font-size:.8125rem}.bundle-option__savings{font-size:.8125rem}.bundle-option__badge{font-size:.6875rem;padding:.1875rem .625rem}.bundle-option__checkmark{width:20px;height:20px;top:var(--bundle-spacing-sm);right:var(--bundle-spacing-sm)}.bundle-option::before{content:'';position:absolute;top:-8px;left:-8px;right:-8px;bottom:-8px;z-index:-1}}@media (max-width:374px){.bundle-selector .page-width{padding-left:var(--bundle-spacing-sm);padding-right:var(--bundle-spacing-sm)}.bundle-selector__heading{font-size:1.375rem;margin-bottom:var(--bundle-spacing-md)}.bundle-option{padding:1rem}.bundle-option__title{font-size:1rem}.bundle-option__price{font-size:1.125rem}.bundle-option__per-unit,.bundle-option__quantity,.bundle-option__savings{font-size:.75rem}.bundle-option__badge{font-size:.625rem;padding:.125rem .5rem}}@media (min-width:750px) and (max-width:989px){.bundle-selector__options{grid-template-columns:repeat(2,1fr);gap:var(--bundle-spacing-md)}.bundle-selector__heading{font-size:1.75rem}}@media (min-width:990px){.bundle-selector__options{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}}@media (min-width:1400px){.bundle-selector .page-width{max-width:1400px}.bundle-selector__heading{font-size:2.25rem;margin-bottom:calc(var(--bundle-spacing-xl) * 1.25)}.bundle-selector__options{gap:calc(var(--bundle-grid-gap) * 1.25)}}@media (prefers-contrast:high){.bundle-option{border-width:3px}.bundle-option:focus{outline-width:3px}}@media (hover:none) and (pointer:coarse){.bundle-option:hover{transform:none}.bundle-option:active{transform:scale(.98);transition:transform .1s ease}.bundle-option{padding:1.5rem}.bundle-selector__options{gap:var(--bundle-spacing-lg)}}@media (max-width:749px) and (orientation:landscape){.bundle-selector__options{grid-template-columns:repeat(2,1fr)}.bundle-selector__heading{font-size:1.25rem;margin-bottom:var(--bundle-spacing-md)}.bundle-option{padding:1rem}}@media (prefers-reduced-motion:reduce){.bundle-option,.bundle-option__checkmark,.bundle-option__badge,.bundle-option__title{transition:none;animation:none}.bundle-option:hover{transform:none}.bundle-option--selected{animation:none}.bundle-option{will-change:auto}.bundle-option__checkmark{will-change:auto}}.bundle-selector--loading{pointer-events:none;opacity:.6;transition:opacity .3s ease}.bundle-option--loading{pointer-events:none;cursor:default;position:relative;overflow:hidden}.bundle-option--loading::after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);transform:translateX(-100%);animation:skeleton-loading 1.5s infinite;will-change:transform}@keyframes skeleton-loading{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}.bundle-option__price--skeleton,.bundle-option__per-unit--skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:4px;color:transparent;user-select:none}@keyframes skeleton-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}.bundle-selector__spinner{display:inline-block;width:20px;height:20px;border:2px solid rgba(44,110,203,.2);border-top-color:var(--bundle-border-selected);border-radius:50%;animation:spinner-rotate .6s linear infinite;margin-left:var(--bundle-spacing-sm);vertical-align:middle;will-change:transform}@keyframes spinner-rotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.bundle-option__price,.bundle-option__per-unit{transition:background-color .3s ease,color .3s ease}@media print{.bundle-option{border:1px solid #000;box-shadow:none}.bundle-option:hover{transform:none}.bundle-selector__spinner,.bundle-option--loading::after{display:none}}noscript~product-bundle-selector .bundle-selector__options{display:none}
