/* Only modal interiors scroll; primary actions remain within the visible viewport. */
:root{--modal-viewport-height:100dvh;--modal-viewport-top:0px}
.order-dialog,.sku-dialog{max-height:calc(var(--modal-viewport-height) - 24px);overflow:hidden;box-sizing:border-box}
.order-dialog[open],.sku-dialog[open]{display:flex;flex-direction:column;position:fixed;top:var(--modal-viewport-top);bottom:auto;margin:12px auto}
.modal-head,.sku-modal-top,.modal-actions{flex:0 0 auto;min-width:0;background:inherit}
.modal-head{position:relative;padding-right:52px}
.modal-head h2,.sku-modal-top h2{margin:0 0 12px;overflow-wrap:anywhere}
.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;overflow-wrap:anywhere;scroll-padding-block:12px;padding-right:4px}
.sku-dialog form,.subscribe-dialog form{display:flex;flex-direction:column;min-height:0;overflow:hidden;gap:0;flex:1 1 auto}
.modal-actions{padding-top:12px;padding-bottom:env(safe-area-inset-bottom,0px);border-top:1px solid #ded1bc}
.modal-actions button{width:100%;min-height:44px}
.modal-actions p:empty{display:none}
.modal-actions p{margin:6px 0;max-height:3em;overflow-y:auto;font-size:13px;line-height:1.5}
.sku-dialog .sku-options{margin:0}.sku-dialog .modal-body{padding-bottom:16px}
.sku-dialog #sku-add{margin:0}.sku-dialog #close-options,.order-dialog .dialog-close{min-width:44px;min-height:44px}
.order-dialog .dialog-close{top:0;right:-12px}.order-dialog .order-options{flex-shrink:1;margin-bottom:0}
.subscribe-dialog .modal-body{display:grid;gap:18px;padding-bottom:18px}
.shop-layout #cart-shell{display:flex;flex-direction:column;overflow:hidden;max-height:calc(var(--modal-viewport-height) - 40px);background:#fffaf2}
#cart-shell .modal-head{padding-right:0}#cart-shell .modal-head h2{margin:0 0 12px}#cart-shell #close-bag{float:right;min-width:44px;min-height:44px}
#cart-shell .modal-body{padding-bottom:12px}#cart-shell #checkout{margin:0}
@media(max-width:800px){.shop-layout #cart-shell{display:none}.shop-layout #cart-shell.drawer-open{display:flex;top:calc(var(--modal-viewport-top) + 12px);bottom:auto;height:calc(var(--modal-viewport-height) - 24px);max-height:calc(var(--modal-viewport-height) - 24px);overflow:hidden}}
@media(max-height:500px){.order-dialog,.sku-dialog{padding:12px 16px}.modal-head h2,.sku-modal-top h2{font-size:22px;margin-bottom:6px}.modal-head .eyebrow{margin:0 0 4px}.modal-actions{padding-top:6px}.shop-layout #cart-shell{padding:12px}.sku-modal-top{margin-bottom:4px}}
/* Keyboard resizing may leave the layout viewport tall: compact by visual height too. */
.order-dialog,.sku-dialog{padding-block:clamp(8px,calc(var(--modal-viewport-height) * .035),24px)}
.modal-head,.sku-modal-top{max-height:max(44px,calc(var(--modal-viewport-height) * .28));overflow:hidden}
.modal-head h2,.sku-modal-top h2{max-height:calc(var(--modal-viewport-height) * .18);overflow:hidden}
.sku-modal-top #close-options{flex:0 0 auto}
.modal-head .eyebrow{margin-block:0 4px}
.modal-actions p{max-height:min(3em,calc(var(--modal-viewport-height) * .12))}
.order-dialog .dialog-close{right:0}
.modal-head button:focus-visible,.sku-modal-top button:focus-visible{outline:2px solid currentColor;outline-offset:-4px}

#cart-shell #customer-phone{width:100%}#cart-shell #phone-hint{font-size:12px;line-height:1.5;color:#76614e}

/* Explicit review for a separate bag; ordinary purchase controls are unchanged. */
#review-new-bag{margin:0 0 1rem;min-height:44px}
#new-bag-dialog .new-bag-items{margin:0;padding:0;list-style:none}
#new-bag-dialog .new-bag-items li{padding:.8rem 0;border-bottom:1px solid var(--border,#ddcbbb)}
#new-bag-dialog .new-bag-items p{margin:.25rem 0}
#new-bag-dialog .new-bag-acknowledge{display:flex;align-items:flex-start;gap:.7rem;margin:1rem 0;font-size:.95rem}
#new-bag-dialog .new-bag-acknowledge input{width:22px;min-width:22px;height:22px;margin:0;accent-color:#a63218}

/* Product option groups keep a single radio selection across all categories. */
.variant-group-heading{font:700 16px/1.4 Arial,sans-serif;margin:20px 0 8px;overflow-wrap:anywhere}.variant-group-heading:first-of-type{margin-top:8px}

.flavour-preference-note{display:block;font:400 13px/1.5 Arial,sans-serif;color:#76614e;margin-top:6px;overflow-wrap:anywhere}
