.bundle-page .cart-benefits { background: var(--cream-50); }
.bundle-page .campaign-botanical { bottom: 0; }
.bundle-builder { padding: 80px 0; scroll-margin-top: 90px; }
.bundle-builder h2 { font: var(--title-h2); margin-bottom: 16px; }
.bundle-intro-copy { line-height: 24px; color: var(--brown-600); margin-bottom: 32px; }
.bundle-builder-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
.bundle-selection { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px 16px; }
.bundle-product { background: var(--cream-50); padding: 16px 12px; border-radius: 12px; text-align: center; display: flex; flex-direction: column; align-items: center; min-height: 225px; }
.bundle-product img,.bundle-line > img { border-radius: 12px; object-fit: cover; }
.bundle-product h3 { font: 400 18px/25px var(--serif); margin: 16px 0 8px; }
.bundle-product p { color: var(--brown-600); margin-bottom: 8px; }
.bundle-product .button { margin-top: auto; width: 100%; min-height: 32px; padding: 4px 12px; font-size: 14px; }
.bundle-panel-slot { position: sticky; top: 100px; }
.bundle-cart { padding: 24px; background: var(--cream-50); border-radius: 12px; display: flex; flex-direction: column; min-height: 572px; }
.bundle-cart header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.bundle-cart h3 { font: var(--title-h5); }
.bundle-close { display: none; }
.bundle-empty { flex: 1; min-height: 360px; display: flex; justify-content: center; align-items: center; flex-direction: column; gap: 16px; text-align: center; }
.bundle-empty[hidden] { display: none; }
.bundle-empty p { font: var(--title-h6); }
.bundle-lines:empty { display: none; }
.bundle-lines { margin-top: 32px; display: grid; gap: 24px; margin-bottom: 32px; }
.bundle-line { display: grid; grid-template-columns: 85px 1fr auto; align-items: center; gap: 16px; }
.bundle-line h4 { font: var(--title-h6); margin-bottom: 4px; }
.bundle-line p { font-size: 12px; margin-bottom: 12px; }
.bundle-line strong { font-size: 14px; font-weight: 400; }
.bundle-quantity { display: flex; gap: 16px; align-items: center; border: 1px solid var(--brown-600); border-radius: 30px; align-self: end; margin-bottom: 4px; height: 32px; padding-inline: 8px; font-size: 14px; }
.bundle-quantity button { border: 1px solid currentColor; border-radius: 50%; width: 18px; height: 18px; line-height: 14px; color: var(--brown-600); background: transparent; padding: 0; cursor: pointer; }
.bundle-order { margin-top: auto; padding-top: 24px; }
.bundle-total { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; font: var(--title-h6); }
.bundle-total strong { font: 600 24px/32px var(--sans); }
.bundle-order > .button { width: 100%; }
.bundle-shipping { display: flex; align-items: center; justify-content: space-between; gap: 16px; border: 1px solid #e4b594; background: var(--cream-50); border-radius: 12px; padding: 10px 16px; margin-top: 16px; font-size: 14px; }
.bundle-shipping > div { display: flex; align-items: center; gap: 16px; }
.bundle-shipping img { flex-shrink: 0; }
.bundle-shipping-meter { flex: 1; max-width: 280px; }
.bundle-shipping progress { appearance: none; width: 100%; min-width: 50px; height: 6px; border: 0; border-radius: 8px; overflow: hidden; background: var(--cream-200); }
.bundle-shipping progress::-webkit-progress-bar { background: var(--cream-200); }
.bundle-shipping progress::-webkit-progress-value { background: var(--terracotta-600); border-radius: 8px; }
.bundle-shipping progress::-moz-progress-bar { background: var(--terracotta-600); }
.bundle-shipping.is-free { border-color: var(--sage-600); }
.bundle-shipping.is-free progress::-webkit-progress-value { background: var(--sage-600); }
.bundle-shipping.is-free progress::-moz-progress-bar { background: var(--sage-600); }
.bundle-mobile-bar { display: none; }
.bundle-dialog { padding: 0; border: 0; background: #fefdfb; }
.bundle-dialog::backdrop { background: rgb(46 40 35 / 45%); }
@media (min-width:761px) and (max-width:1100px) {
 .bundle-builder-layout { grid-template-columns: 1.2fr 1fr; }
 .bundle-selection { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .bundle-line { grid-template-columns: 60px 1fr; gap: 12px; }
 .bundle-line > img { width: 60px; height: auto; grid-row: span 2; }
 .bundle-quantity { grid-column: 2; justify-self: start; }
 .bundle-shipping { flex-direction: column; align-items: stretch; }
 .bundle-shipping-meter { max-width: none; }
}
@media (max-width:760px) {
 .bundle-builder { padding: 48px 0; }
 .bundle-builder h2 { font: var(--title-h4); }
 .bundle-intro-copy { font-size: 14px; line-height: 21px; margin-bottom: 24px; }
 .bundle-intro-copy br { display: none; }
 .bundle-builder-layout { display: block; }
 .bundle-selection { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
 .bundle-product { padding: 16px 12px; min-height: 235px; }
 .bundle-product h3 { font-size: 18px; }
 .bundle-panel-slot { display: none; }
 .bundle-dialog { width: 100%; max-width: 460px; max-height: 100dvh; height: 100dvh; margin: 0 0 0 auto; overflow: auto; }
 .bundle-dialog[open] { animation: bundle-enter .25s ease-out; }
 .bundle-panel { min-height: 100dvh; display: flex; flex-direction: column; padding: 24px 20px; position: relative; }
 .bundle-cart { padding: 0; background: transparent; border-radius: 0; flex: 1; min-height: 0; }
 .bundle-cart h3 { font: var(--title-h5); }
 .bundle-close { display: inline-flex; }
 .bundle-empty { min-height: 250px; }
 .bundle-lines { gap: 24px; margin-top: 40px; margin-bottom: 150px; }
 .bundle-line { grid-template-columns: 85px 1fr; gap: 0 16px; }
 .bundle-line > img { grid-row: span 2; }
 .bundle-line h4 { font-size: 18px; }
 .bundle-line p { margin-bottom: 8px; font-size: 12px; }
 .bundle-quantity { grid-column: 2; justify-self: end; margin-top: -27px; gap: 14px; font-size: 12px; }
 .bundle-order { padding-top: 24px; border-top: 1px solid var(--cream-200); }
 .bundle-total strong { font-size: 18px; }
 .bundle-shipping { position: absolute; bottom: 160px; left: 20px; right: 20px; flex-direction: column; align-items: stretch; font-size: 12px; }
 .bundle-shipping-meter { max-width: none; }
 .bundle-mobile-bar:not([hidden]) { position: fixed; z-index: 25; bottom: 0; left: 0; right: 0; padding: 16px 20px max(16px,env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--cream-200); display: grid; gap: 12px; box-shadow: 0 -6px 28px rgb(46 40 35 / 6%); }
 .bundle-mobile-bar > div { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-size: 14px; }
 .bundle-mobile-bar > div > button { display: inline-flex; align-items: center; gap: 4px; border: 0; background: transparent; color: var(--brown-800); font: inherit; cursor: pointer; }
 .bundle-mobile-bar .icon { width: 16px; height: 16px; }
 .bundle-mobile-bar > .button { width: 100%; }
}
@media (max-width:370px) {
 .bundle-product { padding-inline: 8px; }
 .bundle-product h3 { font-size: 16px; }
 .bundle-line { grid-template-columns: 65px 1fr; gap: 0 12px; }
 .bundle-line > img { width: 65px; height: auto; }
 .bundle-quantity { margin-top: 8px; justify-self: start; }
 .bundle-mobile-bar > div { font-size: 12px; }
}
@keyframes bundle-enter { from { opacity: .4; transform: translateX(40px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion:reduce) { .bundle-dialog[open] { animation: none; } }

.bundle-product img,.bundle-line > img { background: var(--cream-200); }
.bundle-order > .button:disabled,.bundle-mobile-bar > .button:disabled { background: #dfa482; color: var(--cream-50); opacity: 1; }
@media (min-width:1101px) { .bundle-product { padding-inline: 10px; } .bundle-product h3 { font-size: 18px; letter-spacing: -.45px; } }
