.badge{border-radius:var(--radius-action,50px);letter-spacing:.01em;text-transform:none;white-space:nowrap;font-variant-numeric:tabular-nums;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;gap:6px;font-family:DM Sans,sans-serif;font-weight:700;line-height:1.2;display:inline-flex}.badge .icon{flex-shrink:0}.badge--sm{min-height:22px;padding:2px 9px;font-size:11.5px}.badge--md{min-height:28px;padding:4px 12px;font-size:12.5px}.badge--solid{background:var(--green);color:var(--cream)}.badge--soft{color:var(--green);background:#e3f2df;border-color:#c6e2c5}.badge--saving{color:#2e7d43;background:#e3f2df}.badge--accent{color:#3b2a00;background:#e5a823}.badge--outline{border-color:var(--line);color:var(--muted);background:#fff;font-weight:600}.badge--inverse{color:var(--cream);background:#ffffff29}.cart-drawer{border-radius:var(--radius-panel,20px) 0 0 var(--radius-panel,20px);background:var(--cream);width:min(460px,100%);max-width:none;height:100dvh;max-height:none;color:var(--green);border:0;margin:0;padding:0;position:fixed;inset:0 0 0 auto;overflow:hidden}.cart-drawer::backdrop{background:#0006}.cart-drawer[open]{animation:cart-in var(--dur-open) var(--ease-open)}.cart-drawer[open]::backdrop{animation:vf-fade var(--dur-hover) var(--ease-hover)}.cart-drawer.is-closing{animation:cart-out var(--dur-close) var(--ease-close) forwards}.cart-drawer.is-closing::backdrop{animation:vf-fade var(--dur-close) var(--ease-close) reverse forwards}@keyframes cart-in{0%{transform:translate(100%)}}@keyframes cart-out{to{transform:translate(100%)}}.cart-drawer-panel{flex-direction:column;height:100%;display:flex}.cart-drawer-head{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px 14px 24px;display:flex}.cart-drawer-title{outline:none;margin:0;font-size:28px;line-height:1.1}.cart-count{color:var(--muted);letter-spacing:0;vertical-align:3px;font-family:DM Sans,sans-serif;font-size:15px;font-weight:600}.cart-drawer-body{overscroll-behavior:contain;flex:1;min-height:0;padding:18px 24px 28px;overflow-y:auto}.cart-drawer-foot{padding:14px 24px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fff;flex-shrink:0;box-shadow:0 -14px 30px -26px #064c3799}.cart-drawer-foot[hidden]{display:none}.cart-undo{background:var(--mint);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;margin:0 0 12px;padding:4px 6px 4px 16px;font-size:13px;display:flex}.cart-undo[hidden]{display:none}.cart-undo b{font-weight:700}.cart-undo:not([hidden]){animation:vf-rise var(--dur-open) var(--ease-open)}.cart-lines{margin:0;padding:0;list-style:none}.cart-line{grid-template-columns:var(--cart-thumb,88px) minmax(0,1fr);border-bottom:1px solid var(--line);gap:16px;padding:18px 0;display:grid}.cart-line:first-child{padding-top:4px}.cart-line.is-new{animation:vf-rise var(--dur-open) var(--ease-open)}.cart-line-media{aspect-ratio:4/5;background:var(--product-surface);border-radius:14px;align-self:start;display:block;overflow:hidden}.cart-line-media img{object-fit:contain;width:100%;height:100%;padding:10% 14%;display:block}.cart-line-media.is-cover{background:#2b3a2f}.cart-line-media.is-cover img{object-fit:cover;padding:0}.cart-line-info{flex-direction:column;gap:6px;min-width:0;display:flex}.cart-line-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.cart-line-name{letter-spacing:-.015em;margin:0;font-family:Fraunces,Georgia,serif;font-size:18px;font-weight:600;line-height:1.2}.cart-line-price{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;flex-direction:column;align-items:flex-end;margin:0;line-height:1.25;display:flex}.cart-line-price s{color:var(--muted);font-size:12.5px}.cart-line-price s:empty{display:none}.cart-line-price strong{font-size:16px;font-weight:700}.cart-line-plan{color:var(--muted);align-items:center;gap:6px;margin:0;font-size:13px;line-height:1.35;display:flex}.cart-line-plan-icon{color:var(--green);flex-shrink:0;display:none}.cart-line.is-sub .cart-line-plan-icon{display:block}.cart-line.is-sub .cart-line-plan{color:var(--green);font-weight:600}.cart-line-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin-top:4px;display:flex}.cart-qty{border:1.5px solid var(--line);border-radius:var(--radius-action,50px);transition:border-color var(--dur-hover) var(--ease-hover);background:#fff;align-items:center;display:inline-flex}.cart-qty:hover{border-color:#9dbf9f}.btn.cart-qty-btn{border-radius:50%;width:44px;min-height:42px}.btn.cart-qty-btn:focus-visible{outline-offset:-2px}.cart-qty-value{text-align:center;font-variant-numeric:tabular-nums;min-width:24px;font-size:15px;font-weight:700}.cart-line-omnibus{color:var(--muted);margin:-2px 0 0;font-size:12px;line-height:1.35}.cart-line-omnibus[hidden]{display:none}.btn.cart-line-switch{white-space:normal;text-align:left;align-self:flex-start;gap:6px;min-height:40px;line-height:1.35}.btn.cart-line-switch[hidden]{display:none}.cart-intervals{border:0;min-width:0;margin:0;padding:0}.cart-intervals[hidden]{display:none}.cart-intervals-label{color:var(--muted);margin:0 0 6px;padding:0;font-size:12.5px}.cart-intervals-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;max-width:300px;display:grid}.cart-interval{border:1.5px solid var(--line);border-radius:var(--radius-action,50px);white-space:nowrap;cursor:pointer;min-height:40px;transition:border-color var(--dur-hover) var(--ease-hover),background-color var(--dur-hover) var(--ease-hover);background:#fff;place-items:center;padding:0 6px;font-size:13px;font-weight:600;display:grid;position:relative}.cart-interval input{opacity:0;pointer-events:none;position:absolute}.cart-interval:hover{border-color:#9dbf9f}.cart-interval:has(input:checked){border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green);background:#f1f8ec}.cart-interval:has(input:focus-visible){outline-offset:2px;outline:3px solid #6b9176}.cart-suggest{margin-top:28px}.cart-suggest[hidden],.cart-empty[hidden]{display:none}.cart-suggest-title{letter-spacing:-.02em;margin:0 0 12px;font-family:Fraunces,Georgia,serif;font-size:21px;font-weight:700;line-height:1.2}.cart-sug-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.cart-sug{border:1px solid var(--line);transition:border-color var(--dur-hover) var(--ease-hover);background:#fff;border-radius:16px;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:14px;padding:8px 10px 8px 8px;display:grid}.cart-sug:hover{border-color:#9dbf9f}.cart-sug-media{aspect-ratio:1;background:var(--product-surface);border-radius:10px;display:block;overflow:hidden}.cart-sug-media img{object-fit:contain;width:100%;height:100%;padding:8%;display:block}.cart-sug-media.is-cover{background:#2b3a2f}.cart-sug-media.is-cover img{object-fit:cover;padding:0}.cart-sug-info{flex-direction:column;gap:2px;min-width:0;display:flex}.cart-sug-name{font-family:Fraunces,Georgia,serif;font-size:16px;font-weight:600;line-height:1.25}.cart-sug-meta{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.cart-sug-meta b{color:var(--green);font-variant-numeric:tabular-nums;font-weight:700}.btn.cart-sug-add{--btn-h:44px}.cart-empty{text-align:center;flex-direction:column;align-items:center;padding:20px 0 8px;display:flex}.cart-empty-title{margin:0 0 8px;font-size:30px;line-height:1.1}.cart-empty-text{max-width:340px;color:var(--muted);margin:0 0 24px;font-size:15px;line-height:1.55}.cart-empty .cart-sug-list{text-align:left;width:100%}.btn.cart-empty-all{margin-top:20px}@media (width<=600px){.cart-drawer{border-radius:var(--radius-panel,20px) var(--radius-panel,20px) 0 0;width:100%}.cart-drawer[open]{animation-name:vf-rise}.cart-drawer.is-closing{animation-name:cart-out-down}.cart-drawer-head{padding:10px 12px 10px 5.5%}.cart-drawer-title{font-size:26px}.cart-drawer-body{padding:14px 5.5% 24px}.cart-drawer-foot{padding:12px 5.5% calc(8px + env(safe-area-inset-bottom))}.cart-line{--cart-thumb:76px;gap:14px;padding:16px 0}.cart-line-name{font-size:17px}.cart-empty-title{font-size:27px}}@keyframes cart-out-down{to{opacity:0;transform:translateY(16px)}}@media (prefers-reduced-motion:reduce){.cart-drawer[open],.cart-drawer[open]::backdrop,.cart-drawer.is-closing,.cart-drawer.is-closing::backdrop,.cart-line.is-new,.cart-undo:not([hidden]){animation:none}.cart-qty,.cart-interval,.cart-sug{transition:none}}
