.kwan-commerce-dialog {
  width: min(1180px, 94vw);
  max-width: none;
  height: 100dvh;
  max-height: none;
  padding: 0;
  margin: 0 0 0 auto;
  overflow: hidden;
  color: var(--ink, #211b16);
  border: 0;
  background: var(--cloud, #f5f1e8);
  box-shadow: -30px 0 90px rgba(33, 27, 22, 0.2);
}

.kwan-commerce-dialog::backdrop { background: rgba(22, 18, 14, 0.64); backdrop-filter: blur(4px); }
.kwan-commerce-dialog[open] { animation: kwan-commerce-enter 460ms cubic-bezier(0.16, 1, 0.3, 1); }
.kwan-commerce-dialog-open { overflow: hidden; }
.kwan-commerce-dialog__frame { display: grid; height: 100%; grid-template-rows: 64px minmax(0, 1fr); }
.kwan-commerce-dialog__bar { display: flex; align-items: center; justify-content: space-between; padding: 0 24px; color: var(--white, #fffaf2); background: var(--brand, #6e4a06); }
.kwan-commerce-dialog__bar p { margin: 0; font-family: var(--mono, monospace); font-size: 0.62rem; font-weight: 700; letter-spacing: 0.1em; }
.kwan-commerce-dialog__bar button { display: grid; width: 40px; height: 40px; place-items: center; padding: 0; color: inherit; border: 1px solid rgba(255,255,255,0.45); border-radius: 50%; background: transparent; font-size: 1.6rem; line-height: 1; cursor: pointer; transition: color 180ms ease, background 180ms ease, transform 260ms ease; }
.kwan-commerce-dialog__bar button:hover { color: var(--brand, #6e4a06); background: var(--white, #fffaf2); transform: rotate(90deg); }
.kwan-commerce-dialog__body { min-height: 0; overflow-x: hidden; overflow-y: auto; outline: none; overscroll-behavior: contain; }

.kwan-commerce-loading, .kwan-commerce-error { display: grid; min-height: calc(100dvh - 64px); place-content: center; justify-items: center; gap: 18px; padding: 40px; text-align: center; }
.kwan-commerce-loading span { width: 44px; height: 44px; border: 2px solid rgba(33,27,22,0.18); border-top-color: var(--brand, #6e4a06); border-radius: 50%; animation: kwan-commerce-spin 760ms linear infinite; }
.kwan-commerce-loading p, .kwan-commerce-error p { max-width: 420px; margin: 0; font-weight: 700; }
.kwan-commerce-error b { display: grid; width: 50px; height: 50px; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-family: var(--mono, monospace); }

.kwan-commerce-detail--fixed { display: grid; min-height: calc(100dvh - 64px); grid-template-columns: minmax(360px, 0.9fr) minmax(440px, 1.1fr); }
.kwan-commerce-detail__media { position: sticky; top: 0; height: calc(100dvh - 64px); margin: 0; overflow: hidden; background: var(--ink, #211b16); }
.kwan-commerce-detail__media::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg, transparent 56%, rgba(21,17,13,0.54)); pointer-events: none; }
.kwan-commerce-detail__media img { width: 100%; height: 100%; object-fit: cover; }
.kwan-commerce-detail__media > span { position: absolute; right: 22px; bottom: 20px; left: 22px; z-index: 1; color: var(--white, #fffaf2); font-family: var(--mono, monospace); font-size: 0.6rem; font-weight: 700; letter-spacing: 0.1em; }
.kwan-commerce-detail__content { align-self: center; padding: clamp(48px, 6vw, 92px); }
.kwan-commerce-eyebrow { margin: 0 0 20px; color: var(--brand, #6e4a06); font-family: var(--mono, monospace); font-size: 0.62rem; font-weight: 750; letter-spacing: 0.09em; text-transform: uppercase; }
.kwan-commerce-detail__content > h2, .kwan-commerce-campaign__header h2, .kwan-commerce-builder-head h2 { max-width: 780px; margin: 0; font-size: clamp(2.7rem, 5vw, 5.8rem); font-weight: 900; letter-spacing: -0.065em; line-height: 0.88; }
.kwan-commerce-detail__price, .kwan-commerce-builder-head__price { margin-top: 24px; color: var(--brand, #6e4a06); font-family: var(--mono, monospace); font-size: 1.2rem; font-weight: 750; }
.kwan-commerce-detail__description { margin-top: clamp(36px, 4vw, 58px); padding-top: 28px; border-top: 1px solid rgba(33,27,22,0.25); }
.kwan-commerce-detail__description h3, .kwan-commerce-single-contents h2 { margin: 0 0 18px; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }
.kwan-commerce-detail__description p { margin: 0 0 14px; line-height: 1.7; }
.kwan-commerce-detail__description ul, .kwan-commerce-single-contents ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; padding: 0; margin: 0; list-style: none; border-top: 1px solid rgba(33,27,22,0.16); }
.kwan-commerce-detail__description li, .kwan-commerce-single-contents li { padding: 10px 0; border-bottom: 1px solid rgba(33,27,22,0.16); font-size: 0.8rem; line-height: 1.4; }
.kwan-commerce-detail__actions { display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; margin-top: 36px; }

.kwan-commerce-primary { display: inline-flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 36px; padding: 0 20px; color: var(--white, #fffaf2); border: 1px solid var(--ink, #211b16); background: var(--ink, #211b16); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; cursor: pointer; transition: color 200ms ease, background 200ms ease, opacity 200ms ease; }
.kwan-commerce-primary i { font-style: normal; font-size: 1.1rem; }
.kwan-commerce-primary:not(:disabled):hover { color: var(--ink, #211b16); background: transparent; }
.kwan-commerce-primary:disabled { cursor: not-allowed; opacity: 0.38; }
.kwan-commerce-primary.is-loading i { width: 16px; height: 16px; overflow: hidden; color: transparent; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: kwan-commerce-spin 700ms linear infinite; }

.woocommerce-order-pay #place_order.kwan-hosted-payment-loading {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	cursor: wait;
	opacity: 0.78;
}

.woocommerce-order-pay #place_order.kwan-hosted-payment-loading::after {
	width: 16px;
	height: 16px;
	content: '';
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: kwan-commerce-spin 700ms linear infinite;
}
.kwan-commerce-primary.is-added { color: var(--white, #fffaf2); border-color: var(--brand, #6e4a06); background: var(--brand, #6e4a06); }

.kwan-commerce-detail--open { min-height: calc(100dvh - 64px); padding: clamp(34px, 4vw, 64px); }
.kwan-commerce-builder-head { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 36px; }
.kwan-commerce-builder-head h2 { font-size: clamp(2.5rem, 4.4vw, 5rem); }
.kwan-commerce-builder-head__price { flex: none; margin: 0 0 5px; }
.kwan-commerce-builder__intro { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; padding: 16px 0; border-block: 1px solid rgba(33,27,22,0.28); }
.kwan-commerce-builder__intro p, .kwan-commerce-builder__intro span { margin: 0; }
.kwan-commerce-builder__intro p { font-weight: 800; }
.kwan-commerce-builder__intro span { color: rgba(33,27,22,0.68); font-size: 0.76rem; }
.kwan-commerce-builder__choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 28px; border-top: 1px solid rgba(33,27,22,0.22); border-left: 1px solid rgba(33,27,22,0.22); }
.kwan-commerce-choice { display: grid; min-height: 112px; grid-template-columns: 92px minmax(0, 1fr) auto; align-items: stretch; border-right: 1px solid rgba(33,27,22,0.22); border-bottom: 1px solid rgba(33,27,22,0.22); background: rgba(255,255,255,0.13); transition: background 180ms ease; }
.kwan-commerce-choice.is-selected { background: var(--brand-wash, #ebe2d5); }
.kwan-commerce-choice.is-unavailable { opacity: 0.45; }
.kwan-commerce-choice > img { width: 92px; height: 100%; min-height: 111px; object-fit: cover; }
.kwan-commerce-choice__number { display: grid; width: 92px; min-height: 111px; place-items: center; color: var(--brand-light, #c8ad75); background: var(--ink, #211b16); font-family: var(--mono, monospace); font-size: 1rem; }
.kwan-commerce-choice__name { display: grid; align-content: center; gap: 5px; min-width: 0; padding: 14px 16px; }
.kwan-commerce-choice__name b { font-size: 0.92rem; line-height: 1.25; }
.kwan-commerce-choice__name small { color: var(--brand, #6e4a06); font-family: var(--mono, monospace); font-size: 0.56rem; font-weight: 700; text-transform: uppercase; }
.kwan-commerce-choice__stepper { display: grid; width: 52px; align-content: stretch; border-left: 1px solid rgba(33,27,22,0.22); }
.kwan-commerce-choice__stepper button, .kwan-commerce-choice__stepper output { display: grid; min-height: 34px; place-items: center; padding: 0; border: 0; background: transparent; font-weight: 800; }
.kwan-commerce-choice__stepper button { cursor: pointer; transition: color 160ms ease, background 160ms ease; }
.kwan-commerce-choice__stepper button:not(:disabled):hover { color: var(--white, #fffaf2); background: var(--brand, #6e4a06); }
.kwan-commerce-choice__stepper button:disabled { cursor: not-allowed; opacity: 0.26; }
.kwan-commerce-choice__stepper output { font-family: var(--mono, monospace); font-size: 0.72rem; border-block: 1px solid rgba(33,27,22,0.16); }
.kwan-commerce-builder__footer { position: sticky; bottom: 0; z-index: 3; display: grid; grid-template-columns: minmax(140px, 1fr) minmax(260px, auto); align-items: center; gap: 18px; padding: 18px 0; margin-top: 30px; background: linear-gradient(180deg, rgba(245,241,232,0), var(--cloud, #f5f1e8) 24%); }
.kwan-commerce-builder__footer > div { display: flex; align-items: baseline; gap: 18px; }
.kwan-commerce-builder__footer > div span { font-size: 0.66rem; font-weight: 800; text-transform: uppercase; }
.kwan-commerce-builder__footer > div strong { color: var(--brand, #6e4a06); font-family: var(--mono, monospace); font-size: 1.2rem; }
.kwan-commerce-builder__footer > p { grid-column: 1 / -1; min-height: 1.2em; margin: -10px 0 0; color: #9e2b20; font-size: 0.72rem; font-weight: 700; }
.kwan-commerce-campaign { min-height: calc(100dvh - 64px); padding: clamp(40px, 5vw, 78px); }
.kwan-commerce-campaign__header { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(260px, 0.7fr); align-items: end; gap: 44px; margin-bottom: clamp(34px, 4vw, 58px); }
.kwan-commerce-campaign__header .kwan-commerce-eyebrow { grid-column: 1 / -1; margin-bottom: -20px; }
.kwan-commerce-campaign__header h2 { font-size: clamp(3.2rem, 6.4vw, 7.6rem); }
.kwan-commerce-campaign__header > p:last-child { max-width: 430px; margin: 0 0 8px; line-height: 1.7; }
.kwan-commerce-campaign__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid rgba(33,27,22,0.24); border-left: 1px solid rgba(33,27,22,0.24); }
.kwan-commerce-mini-product { display: grid; min-height: 150px; grid-template-columns: 150px minmax(0, 1fr) 62px; align-items: stretch; border-right: 1px solid rgba(33,27,22,0.24); border-bottom: 1px solid rgba(33,27,22,0.24); }
.kwan-commerce-mini-product img { width: 150px; height: 100%; min-height: 149px; object-fit: cover; }
.kwan-commerce-mini-product > div { display: grid; align-content: center; gap: 12px; min-width: 0; padding: 18px; }
.kwan-commerce-mini-product h3 { margin: 0; font-size: 1.03rem; line-height: 1.2; }
.kwan-commerce-mini-product span { color: var(--brand, #6e4a06); font-family: var(--mono, monospace); font-size: 0.72rem; font-weight: 700; }
.kwan-commerce-mini-product > button { display: grid; place-items: center; padding: 0; border: 0; border-left: 1px solid rgba(33,27,22,0.24); background: transparent; font-size: 1.4rem; cursor: pointer; transition: color 180ms ease, background 180ms ease; }
.kwan-commerce-mini-product > button:not(:disabled):hover { color: var(--white, #fffaf2); background: var(--brand, #6e4a06); }
.kwan-commerce-mini-product > button:disabled { opacity: 0.3; cursor: not-allowed; }

.kwan-commerce-fixed-list { border-top: 1px solid rgba(33,27,22,0.28); }
.kwan-commerce-fixed-choice { display: grid; width: 100%; min-height: 150px; grid-template-columns: 54px 150px minmax(0, 1fr) auto 32px; align-items: center; gap: 24px; padding: 0; border: 0; border-bottom: 1px solid rgba(33,27,22,0.28); background: transparent; text-align: left; cursor: pointer; transition: color 180ms ease, background 180ms ease; }
.kwan-commerce-fixed-choice:hover { color: var(--white, #fffaf2); background: var(--brand, #6e4a06); }
.kwan-commerce-fixed-choice > span { padding-left: 18px; font-family: var(--mono, monospace); font-size: 0.58rem; }
.kwan-commerce-fixed-choice img { width: 150px; height: 149px; object-fit: cover; }
.kwan-commerce-fixed-choice b { font-size: clamp(1.25rem, 2.4vw, 2.3rem); letter-spacing: -0.04em; line-height: 1; }
.kwan-commerce-fixed-choice strong { font-family: var(--mono, monospace); font-size: 0.82rem; }
.kwan-commerce-fixed-choice i { padding-right: 18px; font-style: normal; font-size: 1.2rem; }

.kwan-commerce-card-detail { display: inline-flex; align-items: center; gap: 8px; padding: 0 0 5px; margin: 0 0 10px; color: var(--brand, #6e4a06); border: 0; border-bottom: 1px solid currentColor; background: transparent; font-family: var(--mono, monospace); font-size: 0.54rem; font-weight: 750; letter-spacing: 0.06em; text-transform: uppercase; cursor: pointer; }
.kwan-commerce-card-detail i { font-style: normal; }
.kwan-product-facts { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: 5px; margin: 8px 0 0; }
.kwan-product-fact { display: inline-flex; min-height: 24px; align-items: center; color: rgba(33, 27, 22, 0.76); font-family: var(--mono, monospace); font-size: 0.54rem; font-weight: 760; letter-spacing: 0.055em; line-height: 1; white-space: nowrap; }
.kwan-product-fact--pack { padding: 0 3px 0 0; color: var(--brand, #6e4a06); border: 0; background: transparent; text-transform: none; }
.kwan-product-fact--indicator { --kwan-fact-icon: none; position: relative; width: 18px; height: 18px; min-height: 18px; flex: none; justify-content: center; padding: 0; border: 0; background: transparent; cursor: default; }
.kwan-product-fact--indicator::before { width: 17px; height: 17px; content: ""; background: currentColor; -webkit-mask: var(--kwan-fact-icon) center / contain no-repeat; mask: var(--kwan-fact-icon) center / contain no-repeat; }
.kwan-product-fact--dietary { color: #526b45; background: transparent; }
.kwan-product-fact--allergen { color: #a45e2a; background: transparent; }
.kwan-product-fact--neutral { color: var(--brand, #6e4a06); }
.kwan-product-fact--icon-vegetarian { --kwan-fact-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 21c.5-4.5 2.5-8 7-10'/%3E%3Cpath d='M9 18c6.218 0 10.5-3.288 11-12V4h-4.014C6.986 4 4 8 3.986 13c0 1 0 3 2 5h3L9 18'/%3E%3C/svg%3E"); }
.kwan-product-fact--icon-nuts,
.kwan-product-fact--icon-peanut { --kwan-fact-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 23c-.47 0-.93-.05-1.39-.15-3.51-.75-5.74-4.21-4.99-7.72.25-1.18.83-2.26 1.66-3.13.34-.36.34-.92 0-1.28C5.2 8.14 5.6 4.36 8.18 2.28s6.36-1.673 8.44.91c1.77 2.19 1.77 5.31 0 7.53-.29.41-.25.98.1 1.34 2.45 2.62 2.32 6.74-.31 9.19A6.46 6.46 0 0 1 12 23Zm0-20c-.91 0-1.8.31-2.5.89A3.96 3.96 0 0 0 8 7c0 .91.31 1.79.88 2.5.96 1.14.89 2.83-.15 3.91a4.5 4.5 0 1 0 6.57.15c-1.07-1.09-1.15-2.81-.18-4A4 4 0 0 0 12.88 3H12Zm0 3a1 1 0 1 1 2 0 1 1 0 0 1-2 0Zm2 13a1 1 0 1 1 0-2 1 1 0 0 1 0 2Zm-1-3a1 1 0 1 1 0-2 1 1 0 0 1 0 2Zm-2 2a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z'/%3E%3C/svg%3E"); }
.kwan-product-fact--icon-tree-nuts { --kwan-fact-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3c-2.8 0-4.7 1.4-5.4 3.8C4.4 7.6 3 9.6 3 12c0 2.3 1.3 4.3 3.4 5.2C7 19.5 9.1 21 12 21s5-1.5 5.6-3.8c2.1-.9 3.4-2.9 3.4-5.2 0-2.4-1.4-4.4-3.6-5.2C16.7 4.4 14.8 3 12 3Z'/%3E%3Cpath d='M12 3v18M8.5 7.5c2 .8 2.2 2.8 3.5 4.5m3.5-4.5c-2 .8-2.2 2.8-3.5 4.5m-3.5 4.5c2-.8 2.2-2.8 3.5-4.5m3.5 4.5c-2-.8-2.2-2.8-3.5-4.5'/%3E%3C/svg%3E"); }
.kwan-product-fact--icon-notice { --kwan-fact-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 9v4'/%3E%3Cpath d='M10.36 3.59 2.26 17.1A2 2 0 0 0 4 20h16a2 2 0 0 0 1.74-2.9L13.64 3.59a1.9 1.9 0 0 0-3.28 0Z'/%3E%3Cpath d='M12 17h.01'/%3E%3C/svg%3E"); }
.kwan-product-fact--icon-info { --kwan-fact-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5'/%3E%3Cpath d='M12 8h.01'/%3E%3C/svg%3E"); }
.kwan-product-facts--detail { margin-top: 14px; }
.kwan-commerce-mini-product .kwan-product-facts { gap: 4px; margin: -3px 0 0; }
.kwan-commerce-mini-product .kwan-product-fact { min-height: 22px; color: rgba(33, 27, 22, 0.76); font-size: 0.5rem; }
.kwan-commerce-mini-product .kwan-product-fact--pack { color: var(--brand, #6e4a06); }
.kwan-commerce-mini-product .kwan-product-fact--indicator { width: 17px; height: 17px; min-height: 17px; }
.kwan-commerce-mini-product .kwan-product-fact--indicator::before { width: 15px; height: 15px; }
.kwan-commerce-mini-product .kwan-product-fact--dietary { color: #355d32; }
.kwan-commerce-mini-product .kwan-product-fact--allergen { color: #7c390e; }
.kwan-product-facts--choice { margin-top: 2px; }
.kwan-product-facts--choice .kwan-product-fact { min-height: 20px; font-size: 0.48rem; }
.kwan-product-facts--choice .kwan-product-fact--indicator { width: 16px; height: 16px; min-height: 16px; }
.kwan-product-facts--choice .kwan-product-fact--indicator::before { width: 14px; height: 14px; }
.wc-block-components-product-metadata .kwan-product-facts--summary { flex-wrap: nowrap; gap: 4px; margin-top: 7px; }
.wc-block-components-product-metadata .kwan-product-facts--summary .kwan-product-fact { min-height: 18px; font-size: 0.5rem; }
.wc-block-components-product-metadata .kwan-product-facts--summary .kwan-product-fact--indicator { width: 17px; height: 17px; min-height: 17px; }
.wc-block-components-product-metadata .kwan-product-facts--summary .kwan-product-fact--indicator::before { width: 15px; height: 15px; }
.wc-block-components-product-details.kwan-product-details--facts-only { display: none !important; }
.kwan-content--orderable .orderable-product__content { align-items: flex-start; flex-direction: column; }
.kwan-product-facts--orderable { margin-top: 7px; }
.kwan-content--orderable .orderable-product .kwan-commerce-orderable-trigger { display: inline-flex; width: auto; min-width: 104px; min-height: 42px; align-items: center; justify-content: center; padding: 0 13px; border: 1px solid var(--ink, #211b16); border-radius: 0; background: transparent; font-size: 0.62rem; font-weight: 800; line-height: 1.1; text-indent: 0; text-transform: uppercase; }
.kwan-content--orderable .orderable-product .kwan-commerce-orderable-trigger::before,
.kwan-content--orderable .orderable-product .kwan-commerce-orderable-trigger::after { content: none !important; }
.kwan-content--orderable .orderable-product .kwan-commerce-orderable-trigger:hover,
.kwan-content--orderable .orderable-product .kwan-commerce-orderable-trigger:focus-visible { color: var(--white, #fffaf2); background: var(--brand, #6e4a06); }
.kwan-content--orderable .kwan-commerce-orderable-product--open .orderable-product__actions-button > .orderable-quantity-roller { display: none !important; }
.kwan-content--orderable .kwan-commerce-orderable-product--open .kwan-commerce-orderable-trigger { display: inline-flex !important; }

.kwan-combo-product .product .summary .price { color: var(--brand, #6e4a06); }
.kwan-commerce-single-contents { padding: 24px 0; margin: 24px 0; border-block: 1px solid rgba(33,27,22,0.22); }
.kwan-combo-product--open .summary > .kwan-commerce-builder { margin-top: 28px; }
.kwan-combo-product--open .kwan-commerce-builder__choices { grid-template-columns: 1fr; }
.kwan-combo-product--open .kwan-commerce-builder__footer { grid-template-columns: 1fr; }
.kwan-combo-product--open .kwan-commerce-builder__footer > p { grid-column: 1; }

html[lang="zh-Hant"] .kwan-commerce-detail h2,
html[lang="zh-Hant"] .kwan-commerce-campaign h2,
html[lang="zh-Hant"] .kwan-commerce-builder-head h2,
html[lang="zh-Hant"] .kwan-commerce-fixed-choice b,
html[lang="zh-Hant"] .kwan-commerce-mini-product h3,
html[lang="zh-Hant"] .kwan-commerce-choice__name b { word-break: keep-all; overflow-wrap: normal; text-wrap: balance; }
html[lang="zh-Hant"] .kwan-commerce-detail__content > h2,
html[lang="zh-Hant"] .kwan-commerce-campaign__header h2,
html[lang="zh-Hant"] .kwan-commerce-builder-head h2 { font-weight: 800; letter-spacing: -0.025em; line-height: 1; }

/* BOGO remains split into paid/free lines internally. Customer-facing product
   rows retain native pricing and formatting; only the totals explain savings. */
.kwan-commerce-bogo-control-data { display: none !important; }
.kwan-commerce-gift-quantity {
  display: inline-grid;
  min-width: 42px;
  min-height: 42px;
  place-items: center;
  color: var(--brand, #6e4a06);
  border: 1px solid currentColor;
  font-family: var(--mono, monospace);
  font-weight: 800;
}
.kwan-commerce-bogo-control.is-loading { opacity: 0.56; }
.kwan-commerce-bogo-control.is-loading .orderable-quantity-roller__button { cursor: wait; }
.kwan-commerce-cart-math {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  flex: none;
  padding: 14px 0 12px;
  border-top: 1px solid var(--line, rgba(33, 27, 22, 0.2));
  font-size: 0.76rem;
}
.kwan-commerce-cart-math p {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 18px;
  padding: 0;
  margin: 0 0 7px;
}
.kwan-commerce-cart-math p:last-child { margin-bottom: 0; }
.kwan-commerce-cart-math p > span { min-width: 0; }
.kwan-commerce-cart-math small {
  display: block;
  margin-top: 2px;
  color: rgba(33, 27, 22, 0.62);
  font-family: var(--mono, monospace);
  font-size: 0.56rem;
  font-weight: 650;
  letter-spacing: 0.02em;
}
.kwan-commerce-cart-math strong {
  flex: none;
  color: var(--ink, #211b16);
  font-family: var(--mono, monospace);
  font-size: 0.78rem;
}
.kwan-commerce-cart-math__saving,
.kwan-commerce-cart-math__saving strong { color: var(--brand, #6e4a06); }
.kwan-commerce-cart-math__saving strong > span { margin-right: 2px; }

/* Checkout prioritizes a real pickup window. Orderable's free all-day date
   control remains mounted for compatibility, but is replaced visually only
   after the Kwan schedule component has loaded successfully. */
html.kwan-pickup-schedule-ready .wp-block-orderable-checkout__service-date {
  display: none !important;
}

html.kwan-delivery-integration-ready .wp-block-orderable-checkout__service-date,
html.kwan-delivery-schedule-ready .wp-block-orderable-checkout__service-date {
	display: none !important;
}

body.woocommerce-checkout .kwan-checkout-action-summary-duplicate {
	display: none !important;
}

html.kwan-membership-updating .wp-block-woocommerce-checkout-payment-block,
html.kwan-membership-updating .wp-block-woocommerce-checkout-actions-block {
	opacity: 0.48;
	pointer-events: none;
}

html.kwan-fulfillment-incomplete .wp-block-woocommerce-checkout-payment-block,
html.kwan-fulfillment-incomplete .wp-block-woocommerce-checkout-actions-block,
html.kwan-contact-incomplete .wp-block-woocommerce-checkout-payment-block,
html.kwan-contact-incomplete .wp-block-woocommerce-checkout-actions-block {
	opacity: 0.48;
	pointer-events: none;
}

.kwan-payment-fulfillment-note {
	margin: 0 0 12px;
	padding: 12px 14px;
	border-left: 4px solid var(--brand, #6e4a06);
	color: var(--ink, #211b16);
	background: var(--sand, #eee4d5);
	font-size: 0.875rem;
	font-weight: 650;
	line-height: 1.45;
}

/* Order total next to payment; desktop already shows it in the sticky summary. */
.kwan-payment-total {
	display: none;
}

@media (max-width: 780px) {
	.kwan-payment-total {
		display: flex;
		align-items: baseline;
		justify-content: space-between;
		gap: 12px;
		margin: 0 0 12px;
		padding: 16px 0 0;
		border-top: 1px solid var(--line, rgba(33, 27, 22, 0.2));
		color: var(--ink, #211b16);
	}

	.kwan-payment-total span {
		color: var(--brand, #6e4a06);
		font-family: SFMono-Regular, Consolas, "Liberation Mono", monospace;
		font-size: 0.75rem;
		font-weight: 600;
		letter-spacing: 0.12em;
		text-transform: uppercase;
	}

	.kwan-payment-total strong {
		font-size: 1.625rem;
		font-weight: 750;
		font-variant-numeric: tabular-nums;
		letter-spacing: -0.01em;
	}

	/* Focused, quiet checkout on phones: compact title, no eyebrow, no app dock,
	   no marketing footer, and one consistent numbered rhythm for every step.
	   Styling only; Blocks-owned nodes are never moved. */
	body.woocommerce-checkout:not(.woocommerce-order-received) main.kwan-content {
		padding-top: 104px;
		padding-bottom: 48px;
	}

	body.woocommerce-checkout:not(.woocommerce-order-received) .kwan-entry__header {
		padding-bottom: 8px;
	}

	body.woocommerce-checkout:not(.woocommerce-order-received) .kwan-entry__header .section-code {
		display: none;
	}

	body.woocommerce-checkout:not(.woocommerce-order-received) .kwan-entry__header h1 {
		margin-top: 0;
		font-size: 2rem;
		line-height: 1.1;
	}

	body.woocommerce-checkout:not(.woocommerce-order-received) {
		padding-bottom: 0 !important;
	}

	body.woocommerce-checkout:not(.woocommerce-order-received) .mobile-dock,
	body.woocommerce-checkout:not(.woocommerce-order-received) .site-footer__top,
	body.woocommerce-checkout:not(.woocommerce-order-received) .footer-categories {
		display: none !important;
	}

	body.woocommerce-checkout .wc-block-checkout__form {
		counter-reset: kwan-step;
	}

	body.woocommerce-checkout .wc-block-checkout__form > .wc-block-components-checkout-step {
		margin: 0 !important;
		padding: 18px 0 20px !important;
		border-top: 1px solid var(--line, rgba(33, 27, 22, 0.2));
	}

	body.woocommerce-checkout .wc-block-checkout__form > .wc-block-components-checkout-step .wc-block-components-checkout-step__heading-container {
		margin: 0;
	}

	body.woocommerce-checkout .wc-block-checkout__form > .wc-block-components-checkout-step .wc-block-components-checkout-step__heading {
		margin: 0 0 12px;
	}

	body.woocommerce-checkout .wc-block-checkout__shipping-method .components-button-group {
		margin-bottom: 0;
	}

	body.woocommerce-checkout .wc-block-checkout__form > .wc-block-components-checkout-step .wc-block-components-checkout-step__title {
		color: var(--ink, #211b16);
		font-size: 1.125rem;
		font-weight: 650;
		line-height: 1.25;
		letter-spacing: -0.005em;
	}

	body.woocommerce-checkout .wc-block-checkout__form > .wc-block-components-checkout-step .wc-block-components-checkout-step__title::before {
		counter-increment: kwan-step;
		content: counter(kwan-step, decimal-leading-zero);
		display: inline-block;
		margin-right: 10px;
		vertical-align: 0.12em;
		color: var(--brand, #6e4a06);
		font-family: SFMono-Regular, Consolas, "Liberation Mono", monospace;
		font-size: 0.75rem;
		font-weight: 600;
		letter-spacing: 0.12em;
	}

	/* The total row already draws the divider above payment. */
	body.woocommerce-checkout .kwan-payment-preface + .wc-block-checkout__payment-method {
		padding-top: 4px !important;
		border-top: 0;
	}

}

.kwan-wallet-payment__status,
.kwan-wallet-payment__error {
	margin: 0 0 12px;
	font-size: 0.875rem;
	line-height: 1.45;
}

.kwan-wallet-payment__buttons {
	display: grid;
	gap: 8px;
	margin-bottom: 0;
}

.kwan-wallet-payment__buttons > div[hidden] {
	display: none;
}

.kwan-wallet-payment__status {
	color: rgba(33, 27, 22, 0.68);
}

.kwan-wallet-payment__error {
	color: #9f1d20;
	font-weight: 650;
}

.kwan-wallet-billing-hidden {
	display: none !important;
}

/* Keep the native Stripe controls, but give Wallet and Card the same clear
   framed hierarchy as the pickup and delivery choices above. */
#payment-method .wc-block-components-radio-control {
	display: grid;
	gap: 12px;
}

/* Wallet first visually; never reorder the Blocks-owned DOM nodes. */
#payment-method .kwan-wallet-option {
	order: -1;
}

#payment-method .kwan-wallet-option,
#payment-method .kwan-card-option {
	border: 1px solid rgba(33, 27, 22, 0.32) !important;
	background: rgba(255, 250, 242, 0.32) !important;
}

#payment-method .kwan-wallet-option > .wc-block-components-radio-control__option,
#payment-method .kwan-card-option > .wc-block-components-radio-control__option {
	min-height: 60px;
	padding: 18px 18px 18px 48px;
	color: var(--ink, #211b16);
	font-weight: 750;
	line-height: 1.25;
}

html.kwan-wallet-selected .kwan-wallet-option,
#payment-method .kwan-wallet-option.wc-block-components-radio-control-accordion-option--checked-option-highlighted,
#payment-method .kwan-card-option.wc-block-components-radio-control-accordion-option--checked-option-highlighted {
	padding: 0 !important;
	border: 1px solid var(--ink, #211b16) !important;
	border-top: 4px solid var(--brand, #6e4a06) !important;
	background: var(--brand-wash, #ebe2d5) !important;
	box-shadow: none !important;
}

#payment-method .kwan-wallet-option.wc-block-components-radio-control-accordion-option--checked-option-highlighted > .wc-block-components-radio-control__option,
#payment-method .kwan-card-option.wc-block-components-radio-control-accordion-option--checked-option-highlighted > .wc-block-components-radio-control__option {
	padding: 14px 18px 14px 48px !important;
	border: 0 !important;
	border-bottom: 1px solid rgba(33, 27, 22, 0.22) !important;
	background: transparent !important;
}

#payment-method .kwan-wallet-option.wc-block-components-radio-control-accordion-option--checked-option-highlighted > .wc-block-components-radio-control-accordion-content,
#payment-method .kwan-card-option.wc-block-components-radio-control-accordion-option--checked-option-highlighted > .wc-block-components-radio-control-accordion-content {
	padding: 16px 20px 20px !important;
	border: 0 !important;
	background: transparent !important;
}

@media (hover: hover) {
	#payment-method .kwan-wallet-option:not(.wc-block-components-radio-control-accordion-option--checked-option-highlighted):hover,
	#payment-method .kwan-card-option:not(.wc-block-components-radio-control-accordion-option--checked-option-highlighted):hover {
		border-color: var(--ink, #211b16) !important;
		background: rgba(110, 74, 6, 0.07) !important;
	}
}

@media (max-width: 520px) {
	#payment-method .kwan-wallet-option > .wc-block-components-radio-control__option,
	#payment-method .kwan-card-option > .wc-block-components-radio-control__option {
		min-height: 56px;
		padding-right: 14px;
		padding-left: 46px;
	}

	#payment-method .kwan-wallet-option.wc-block-components-radio-control-accordion-option--checked-option-highlighted > .wc-block-components-radio-control-accordion-content,
	#payment-method .kwan-card-option.wc-block-components-radio-control-accordion-option--checked-option-highlighted > .wc-block-components-radio-control-accordion-content {
		padding: 14px 16px 16px !important;
	}
}

.kwan-card-billing-address {
	margin: 18px 0;
	padding: 18px;
	border: 1px solid rgba(33, 27, 22, 0.22);
}


.kwan-card-billing-address__title {
	margin: 0 0 12px;
	font-size: 1.125rem;
	line-height: 1.3;
}

.kwan-card-billing-address__fields {
	margin-bottom: 12px;
}

html.kwan-wallet-selected .wc-block-checkout__use-address-for-billing,
html.kwan-wallet-selected .wp-block-woocommerce-checkout-actions-block {
	display: none !important;
}

/* Signed-in checkout contact: use the account email by default, while keeping
   the native Woo field available behind an explicit, order-scoped Edit action. */
body.kwan-account-contact-ready .kwan-account-contact .wc-block-components-address-form__email,
body.kwan-account-contact-ready .kwan-account-contact .wc-block-checkout__guest-checkout-notice,
body.kwan-account-contact-ready .kwan-account-contact .wc-block-checkout__create-account,
body.kwan-account-contact-ready .kwan-account-contact .wc-block-checkout__login-prompt {
	display: none !important;
}

body.kwan-account-contact-ready .kwan-account-contact.is-editing .wc-block-components-address-form__email {
	display: block !important;
}

.kwan-account-contact__summary {
	display: flex;
	min-height: 76px;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 14px 16px;
	border: 1px solid var(--line, rgba(33, 27, 22, 0.28));
	background: rgba(255, 255, 255, 0.18);
}

.kwan-account-contact__copy {
	display: grid;
	min-width: 0;
	gap: 5px;
}

.kwan-account-contact__copy small {
	color: var(--brand, #6e4a06);
	font-family: var(--mono, monospace);
	font-size: 0.58rem;
	font-weight: 750;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-transform: uppercase;
}

.kwan-account-contact__copy strong {
	overflow: hidden;
	font-size: 0.9rem;
	font-weight: 700;
	line-height: 1.3;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.kwan-account-contact__edit {
	flex: none;
	min-height: 42px;
	padding: 0 15px;
	color: var(--ink, #211b16);
	border: 1px solid currentColor;
	background: transparent;
	font-family: var(--mono, monospace);
	font-size: 0.62rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	cursor: pointer;
}

.kwan-account-contact__edit:hover,
.kwan-account-contact__edit:focus-visible {
	color: var(--white, #fffaf2);
	background: var(--ink, #211b16);
}

.kwan-account-contact.is-editing .kwan-account-contact__summary {
	margin-bottom: 12px;
}

.kwan-mobile-contact-slot:empty {
	display: none;
}

.kwan-membership-intent-status {
	margin: 8px 0 0;
	color: rgba(33, 27, 22, 0.7);
	font-size: 0.8125rem;
	font-weight: 650;
	line-height: 1.4;
}

.kwan-membership-intent-status:empty {
	display: none;
}

.kwan-membership-intent-status.is-updating,
.kwan-membership-intent-status.is-applied {
	color: var(--brand, #6e4a06);
}

.kwan-membership-intent-status.is-error {
	color: #75271f;
}

@media (max-width: 780px) {
	.kwan-mobile-contact-slot:not(:empty) {
		display: block;
		border-top: 1px solid var(--line, rgba(33, 27, 22, 0.2));
	}

	.kwan-mobile-summary-contact {
		margin: 0 !important;
		padding: 20px 0 18px !important;
	}

	.kwan-mobile-summary-contact .wc-block-components-checkout-step__heading {
		margin-bottom: 12px;
	}

	.kwan-mobile-summary-contact .wc-block-components-checkout-step__title {
		font-size: 1rem;
		line-height: 1.3;
	}

	.kwan-mobile-summary-contact .wc-block-checkout__login-prompt,
	.kwan-mobile-summary-contact .wc-block-checkout__guest-checkout-notice {
		display: none !important;
	}

	.kwan-mobile-summary-contact .wc-block-components-text-input input[type="email"] {
		min-height: 54px;
		font-size: 1rem;
	}

	.kwan-mobile-summary-contact .wc-block-checkout__create-account {
		margin-top: 12px;
	}

	/* Woo collapses the entire sidebar summary on mobile. Keep the member/contact
	   block persistent while the toggle continues to hide product, coupon and
	   totals detail. The total remains visible in Woo's summary title. */
	html.kwan-mobile-contact-ready .wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__content:not(.is-open) {
		display: block !important;
	}

	html.kwan-mobile-contact-ready .wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__content:not(.is-open) > * {
		display: none !important;
	}

	html.kwan-mobile-contact-ready .wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__content:not(.is-open) > .kwan-member-pricing-block {
		display: block !important;
	}

}

.kwan-guest-member-prompt {
	display: grid;
	gap: 5px;
	margin: 12px 0 14px;
	padding: 11px 14px;
	border-left: 3px solid var(--brand, #6e4a06);
	background: rgba(110, 74, 6, 0.07);
	color: var(--ink, #211b16);
}

.kwan-guest-member-prompt strong {
	color: var(--brand, #6e4a06);
	font-family: var(--mono, monospace);
	font-size: 0.58rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1.2;
}

.kwan-guest-member-prompt span {
	font-size: 0.7rem;
	line-height: 1.45;
}

.kwan-guest-member-prompt .kwan-guest-member-prompt__status {
	display: block;
	margin-top: 3px;
	padding-top: 7px;
	border-top: 1px solid rgba(110, 74, 6, 0.18);
	color: rgba(33, 27, 22, 0.7);
	font-size: 0.64rem;
	font-weight: 650;
}

.kwan-guest-member-prompt.is-updating .kwan-guest-member-prompt__status,
.kwan-guest-member-prompt.is-applied .kwan-guest-member-prompt__status {
	color: var(--brand, #6e4a06);
}

.kwan-guest-member-prompt.has-error {
	border-left-color: #8a2f24;
}

.kwan-guest-member-prompt.has-error .kwan-guest-member-prompt__status {
	color: #75271f;
}

@media (max-width: 520px) {
	.kwan-account-contact__summary {
		min-height: 68px;
		gap: 12px;
		padding: 12px;
	}

	.kwan-account-contact__copy strong { font-size: 0.8rem; }
	.kwan-account-contact__edit { min-height: 40px; padding-inline: 12px; }
}

.kwan-hosted-payment__label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
}

.kwan-hosted-payment__label > strong {
  min-width: 0;
  font: inherit;
}

.kwan-hosted-payment__label > span {
  flex: none;
  padding: 5px 8px 4px;
  color: var(--paper, #f6f1e7);
  background: var(--navy, #102e48);
  font-family: var(--mono, monospace);
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  line-height: 1;
}

.kwan-hosted-payment {
  display: grid;
  gap: 16px;
  color: var(--ink, #211b16);
}

.kwan-hosted-payment > p,
.kwan-hosted-payment__provider span {
  margin: 0;
  line-height: 1.55;
}

.kwan-hosted-payment__provider {
  display: grid;
  gap: 5px;
  padding: 14px 16px;
  border-left: 4px solid var(--brand, #6e4a06);
  background: var(--brand-wash, #ebe2d5);
}

.kwan-hosted-payment__provider strong {
  font-family: var(--mono, monospace);
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.kwan-hosted-payment__provider span {
  color: rgba(33, 27, 22, 0.7);
  font-size: 0.78rem;
}

.kwan-pickup-schedule {
  display: grid;
  gap: 18px;
  padding: clamp(20px, 3vw, 30px);
  margin: 22px 0 8px;
  color: var(--ink, #211b16);
  border: 1px solid var(--ink, #211b16);
  border-top: 5px solid var(--brand, #6e4a06);
  background: var(--brand-wash, #ebe2d5);
}

.kwan-pickup-schedule__eyebrow {
  margin: 0;
  color: var(--brand, #6e4a06);
  font-family: var(--mono, monospace);
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.kwan-pickup-schedule h3 {
  margin: -7px 0 2px;
  font-size: clamp(1.55rem, 3vw, 2.25rem);
  font-weight: 850;
  letter-spacing: -0.045em;
  line-height: 1;
}

.kwan-pickup-schedule__modes {
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
  border: 1px solid rgba(33, 27, 22, 0.4);
}

.kwan-pickup-schedule__modes button {
  min-height: 52px;
  padding: 10px 16px;
  color: var(--ink, #211b16);
  border: 0;
  border-right: 1px solid rgba(33, 27, 22, 0.4);
  border-radius: 0;
  background: rgba(255, 250, 242, 0.45);
  font: inherit;
  font-size: 0.76rem;
  font-weight: 800;
  text-align: left;
  cursor: pointer;
  transition: color 160ms ease, background 160ms ease;
}

.kwan-pickup-schedule__modes button:last-child { border-right: 0; }
.kwan-pickup-schedule__modes button.is-active { color: var(--white, #fffaf2); background: var(--brand, #6e4a06); }
.kwan-pickup-schedule__modes button:disabled { cursor: not-allowed; opacity: 0.38; }

.kwan-pickup-schedule__field {
  display: grid;
  gap: 8px;
  margin: 0;
}

.kwan-pickup-schedule__field > span {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.025em;
  text-transform: uppercase;
}

.kwan-pickup-schedule__field select {
  box-sizing: border-box;
  width: 100%;
  min-height: 56px;
  padding: 0 46px 0 16px;
  color: var(--ink, #211b16);
  border: 1px solid var(--ink, #211b16);
  border-radius: 0;
  background-color: var(--white, #fffaf2);
  font: inherit;
  font-size: 0.9rem;
  font-weight: 700;
}

.kwan-pickup-schedule__field select:focus {
  outline: 3px solid rgba(110, 74, 6, 0.22);
  outline-offset: 2px;
}

.kwan-pickup-schedule.has-error .kwan-pickup-schedule__field:last-of-type select {
  border-color: #9e2b20;
}

.kwan-pickup-schedule__notice,
.kwan-pickup-schedule__error,
.kwan-pickup-schedule__note,
.kwan-pickup-schedule--empty > p:last-child {
  margin: 0;
  line-height: 1.55;
}

.kwan-pickup-schedule__notice {
  padding: 11px 13px;
  color: var(--brand, #6e4a06);
  border-left: 3px solid currentColor;
  background: rgba(255, 250, 242, 0.5);
  font-size: 0.76rem;
  font-weight: 700;
}

.kwan-pickup-schedule__error { color: #9e2b20; font-size: 0.74rem; font-weight: 750; }
.kwan-pickup-schedule__note { color: rgba(33, 27, 22, 0.68); font-size: 0.7rem; }
.kwan-pickup-schedule--empty { background: rgba(158, 43, 32, 0.06); }

.kwan-preorder-price-note {
  display: flex;
  max-width: 100%;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 1px 6px;
  margin-top: 6px;
  color: var(--brand, #6e4a06);
  font-size: 0.68rem;
  font-weight: 750;
  letter-spacing: 0.02em;
  line-height: 1.35;
}

.kwan-preorder-price-note__status,
.kwan-preorder-price-note__date { white-space: nowrap; }

.kwan-delivery-schedule {
  display: grid;
  gap: 16px;
  padding: clamp(20px, 3vw, 30px);
  margin: 18px 0 8px;
  color: var(--ink, #211b16);
  border: 1px solid var(--ink, #211b16);
  border-top: 5px solid var(--brand, #6e4a06);
  background: var(--brand-wash, #ebe2d5);
}

.kwan-delivery-schedule__eyebrow {
  margin: 0;
  color: var(--brand, #6e4a06);
  font-family: var(--mono, monospace);
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.kwan-delivery-schedule h3 {
  margin: -6px 0 2px;
  font-size: clamp(1.45rem, 3vw, 2.1rem);
  font-weight: 850;
  letter-spacing: -0.04em;
  line-height: 1.05;
}

.kwan-delivery-schedule__field {
  display: grid;
  gap: 8px;
  margin: 0;
}

.kwan-delivery-schedule__field > span {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.025em;
  text-transform: uppercase;
}

.kwan-delivery-schedule__notice {
  padding: 11px 13px;
  margin: 0;
  color: var(--brand, #6e4a06);
  border-left: 3px solid currentColor;
  background: rgba(255, 250, 242, 0.5);
  font-size: 0.76rem;
  font-weight: 700;
  line-height: 1.55;
}

.kwan-delivery-schedule__field select,
.kwan-delivery-schedule__field input {
  box-sizing: border-box;
  width: 100%;
  min-height: 56px;
  padding: 0 46px 0 16px;
  color: var(--ink, #211b16);
  border: 1px solid var(--ink, #211b16);
  border-radius: 0;
  background-color: var(--white, #fffaf2);
  font: inherit;
  font-size: 0.9rem;
  font-weight: 700;
}

.kwan-delivery-schedule__field input {
  padding-right: 16px;
}

.kwan-delivery-schedule__field select:focus,
.kwan-delivery-schedule__field input:focus {
  outline: 3px solid rgba(110, 74, 6, 0.22);
  outline-offset: 2px;
}

.kwan-delivery-schedule [aria-invalid="true"] { border-color: #9e2b20; }
.kwan-delivery-schedule__error { margin: 0; color: #9e2b20; font-size: 0.74rem; font-weight: 750; }
.kwan-delivery-schedule__note { margin: 0; color: rgba(33, 27, 22, 0.72); font-size: 0.74rem; line-height: 1.55; }

.kwan-delivery-schedule--notice {
  border-top-width: 1px;
  background: rgba(235, 226, 213, 0.56);
}

.kwan-delivery-schedule--notice h3 {
  font-size: clamp(1.12rem, 2.2vw, 1.45rem);
}

.kwan-address-search {
  display: grid;
  gap: 8px;
  margin: 0 0 20px;
  padding: 16px;
  border: 1px solid rgba(33, 27, 22, 0.28);
  border-left: 4px solid var(--brand, #6e4a06);
  background: var(--brand-wash, #ebe2d5);
}

.kwan-address-search__label {
  display: grid;
  gap: 8px;
  color: var(--ink, #211b16);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.kwan-address-search__input {
  width: 100%;
  min-height: 56px;
  color-scheme: light;
}

.kwan-address-search__note {
  margin: 0;
  color: rgba(33, 27, 22, 0.68);
  font-size: 0.7rem;
  line-height: 1.5;
}

@media (max-width: 520px) {
  .kwan-commerce-cart-math { padding-block: 12px 10px; }
  .kwan-pickup-schedule { gap: 15px; padding: 18px 16px; }
  .kwan-pickup-schedule__modes { grid-template-columns: 0.68fr 1.32fr; }
  .kwan-pickup-schedule__modes button { min-height: 50px; padding-inline: 12px; font-size: 0.7rem; }
  .kwan-pickup-schedule__field select { min-height: 54px; font-size: 0.83rem; }
  .kwan-delivery-schedule { gap: 14px; padding: 18px 16px; }
  .kwan-delivery-schedule__field select,
  .kwan-delivery-schedule__field input { min-height: 54px; font-size: 0.83rem; }
}

@media (max-width: 900px) {
  .kwan-commerce-dialog { width: 100vw; }
  .kwan-commerce-detail--fixed { display: block; }
  .kwan-commerce-detail__media { position: relative; height: min(62svh, 560px); }
  .kwan-commerce-detail__content { padding: 42px 24px 72px; }
  .kwan-commerce-detail__content > h2 { font-size: clamp(2.5rem, 11vw, 4.5rem); }
  .kwan-commerce-single-contents ul { grid-template-columns: 1fr; }
  .kwan-commerce-detail__actions { grid-template-columns: 1fr; }
  .kwan-commerce-detail__actions > a { width: fit-content; }
  .kwan-commerce-detail--open, .kwan-commerce-campaign { padding: 34px 20px 76px; }
  .kwan-commerce-builder-head { align-items: start; flex-direction: column; }
  .kwan-commerce-builder-head h2 { font-size: clamp(2.5rem, 11vw, 4.8rem); }
  .kwan-commerce-builder__intro { align-items: start; flex-direction: column; gap: 6px; }
  .kwan-commerce-builder__choices { grid-template-columns: 1fr; }
  .kwan-commerce-builder__footer { grid-template-columns: 1fr; padding-bottom: calc(18px + env(safe-area-inset-bottom, 0px)); }
  .kwan-commerce-builder__footer > p { grid-column: 1; }
  .kwan-commerce-campaign__header { grid-template-columns: 1fr; gap: 22px; }
  .kwan-commerce-campaign__header .kwan-commerce-eyebrow { margin-bottom: 0; }
  .kwan-commerce-campaign__header h2 { font-size: clamp(3rem, 14vw, 5.4rem); }
  .kwan-commerce-campaign__grid { grid-template-columns: 1fr; }
  .kwan-commerce-fixed-choice { grid-template-columns: 34px 94px minmax(0, 1fr) auto; gap: 12px; min-height: 104px; }
  .kwan-commerce-fixed-choice img { width: 94px; height: 103px; }
  .kwan-commerce-fixed-choice strong { display: none; }
  .kwan-commerce-fixed-choice i { padding-right: 12px; }
}

@media (max-width: 600px) {
  .kwan-commerce-dialog__frame { grid-template-rows: 58px minmax(0, 1fr); }
  .kwan-commerce-dialog__bar { padding: 0 16px; }
  .kwan-commerce-detail__media { height: 46svh; }
  .kwan-commerce-choice { min-height: 98px; grid-template-columns: 76px minmax(0, 1fr) 48px; }
  .kwan-commerce-choice > img, .kwan-commerce-choice__number { width: 76px; min-height: 97px; }
  .kwan-commerce-choice__name { padding: 10px 12px; }
  .kwan-commerce-choice__name b { font-size: 0.8rem; }
  .kwan-commerce-mini-product { min-height: 112px; grid-template-columns: 104px minmax(0, 1fr) 52px; }
  .kwan-commerce-mini-product img { width: 104px; min-height: 111px; }
  .kwan-commerce-mini-product > div { padding: 13px; }
  .kwan-commerce-mini-product h3 { font-size: 0.86rem; }
  .kwan-content--orderable .kwan-commerce-orderable-product--fixed .orderable-product__content-wrap,
  .kwan-content--orderable .kwan-commerce-orderable-product--open .orderable-product__content-wrap { grid-template-columns: minmax(0, 1fr) 92px; }
  .kwan-content--orderable .orderable-product .kwan-commerce-orderable-trigger { min-width: 78px; min-height: 40px; padding: 0 7px; font-size: 0.56rem; white-space: normal; }
  .kwan-commerce-card-detail { margin-bottom: 7px; font-size: 0.49rem; }
  .kwan-product-facts--orderable { gap: 3px; margin-top: 5px; }
  .kwan-product-facts--orderable .kwan-product-fact { min-height: 18px; padding: 2px 5px; font-size: 0.46rem; }
  .kwan-product-facts--orderable .kwan-product-fact--indicator { padding: 0; }
}

/* Compact dual pricing is deliberately text-led so it remains legible inside
   Orderable's narrow price column and WooCommerce product grids. */
.kwan-member-price-pair {
  display: inline-flex;
  max-width: 100%;
  align-items: baseline;
  justify-content: flex-end;
  gap: 7px;
  color: var(--ink, #211b16);
  font-family: var(--mono, ui-monospace, monospace);
  font-size: 0.72rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  line-height: 1.15;
  white-space: nowrap;
}

.kwan-member-price-pair__member {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  color: var(--brand, #6e4a06);
}

.kwan-member-price-pair__member small {
  padding: 2px 4px;
  color: var(--white, #fffaf2);
  background: var(--brand, #6e4a06);
  font-size: 0.48rem;
  letter-spacing: 0.04em;
  line-height: 1;
  text-transform: uppercase;
}

.kwan-member-price-pair__public {
  color: rgba(33, 27, 22, 0.5);
  text-decoration: line-through;
  text-decoration-thickness: 1px;
  text-decoration-color: currentColor;
}

.kwan-member-price-pair.is-member .kwan-member-price-pair__public {
  font-size: 0.62rem;
}

.kwan-member-price-pair.is-member .kwan-member-price-pair__member {
  order: -1;
  font-size: 0.82rem;
}

/* Pre-order cards need a stable price region on wide menus and a full-width
   action row on phones. This only targets products carrying the server-owned
   preorder notice, leaving ordinary Orderable cards unchanged. */
@media (min-width: 901px) {
  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .orderable-product__actions {
    display: grid;
    min-width: 250px;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-content: center;
    align-items: start;
    justify-items: start;
    gap: 12px;
    padding: 14px 12px;
  }

  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .orderable-product__actions-price {
    width: 100%;
    min-width: 0;
    text-align: left;
  }

  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .kwan-member-price-pair {
    flex-wrap: wrap;
    justify-content: flex-start;
  }

  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .kwan-preorder-price-note {
    justify-content: flex-start;
  }

  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .orderable-product__actions-button {
    width: auto;
    justify-self: start;
  }
}

.kwan-member-cart-summary,
.kwan-member-summary {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
	border-top: 1px solid var(--line, rgba(33, 27, 22, 0.2));
  color: var(--ink, #211b16);
  font-size: 0.76rem;
}

.kwan-member-cart-summary { padding: 14px 0; }
.kwan-member-summary { padding: 16px 20px 18px; }

.kwan-member-cart-summary p,
.kwan-member-summary > p {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 18px;
  margin: 0 0 7px;
}

.kwan-member-cart-summary strong,
.kwan-member-summary strong {
  flex: none;
  font-family: var(--mono, ui-monospace, monospace);
}

.kwan-member-cart-summary__saving,
.kwan-member-summary__saving,
.kwan-member-summary__member-total,
.kwan-member-cart-summary__saving strong,
.kwan-member-summary__saving strong,
.kwan-member-summary__member-total strong {
  color: var(--brand, #6e4a06);
}

.kwan-member-cart-summary > a,
.kwan-member-summary__account {
  display: inline-flex;
  margin-top: 5px;
  color: var(--brand, #6e4a06);
  font-weight: 800;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.kwan-member-summary__eyebrow {
  display: block;
  margin-bottom: 9px;
  color: var(--brand, #6e4a06);
  font-family: var(--mono, ui-monospace, monospace);
  font-size: 0.56rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.kwan-member-summary > .kwan-member-summary__note {
  display: block;
  margin-top: 9px;
  color: rgba(33, 27, 22, 0.68);
  font-size: 0.68rem;
  line-height: 1.45;
}

.kwan-member-summary > .kwan-member-summary__note.is-confirmed,
.kwan-member-cart-summary__note {
	padding-left: 9px;
	border-left: 2px solid var(--brand, #6e4a06);
	color: rgba(33, 27, 22, 0.75);
	font-size: 0.66rem;
	line-height: 1.45;
}

.kwan-member-cart-summary > .kwan-member-cart-summary__note {
	display: block;
	margin: 9px 0 0;
}

.kwan-checkout-editor-trigger {
  display: flex;
  width: 100%;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  color: var(--ink, #211b16);
  border: 1px solid currentColor;
  border-radius: 0;
  background: transparent;
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.02em;
  cursor: pointer;
}

.kwan-checkout-editor-trigger:hover {
  color: var(--white, #fffaf2);
  background: var(--ink, #211b16);
}

html.kwan-checkout-editor-open { overflow: hidden; }

.kwan-checkout-editor {
  position: fixed;
  z-index: 100000;
  inset: 0;
  display: grid;
  justify-items: end;
  color: var(--ink, #211b16);
}

.kwan-checkout-editor__backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: rgba(22, 18, 14, 0.58);
  backdrop-filter: blur(3px);
  cursor: pointer;
}

.kwan-checkout-editor__panel {
  position: relative;
  display: grid;
  width: min(560px, 100vw);
  height: 100dvh;
  grid-template-rows: auto minmax(0, 1fr) auto auto;
  overflow: hidden;
  background: var(--cloud, #f5f1e8);
  box-shadow: -24px 0 70px rgba(33, 27, 22, 0.24);
}

.kwan-checkout-editor__panel:focus { outline: none; }
.kwan-checkout-editor__panel :focus-visible {
  outline: 3px solid var(--brand, #6e4a06);
  outline-offset: 3px;
}

.kwan-checkout-editor__panel > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 24px;
  border-bottom: 1px solid rgba(33, 27, 22, 0.24);
}

.kwan-checkout-editor__panel > header small {
  color: var(--brand, #6e4a06);
  font-family: var(--mono, ui-monospace, monospace);
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.kwan-checkout-editor__panel > header h2 {
  margin: 5px 0 0;
  font-size: clamp(1.7rem, 4vw, 2.7rem);
  line-height: 1;
}

.kwan-checkout-editor__panel > header > button {
  display: grid;
  width: 46px;
  height: 46px;
  flex: none;
  place-items: center;
  padding: 0;
  color: inherit;
  border: 1px solid currentColor;
  border-radius: 0;
  background: transparent;
  font-size: 1.35rem;
  text-transform: uppercase;
  cursor: pointer;
}

.kwan-checkout-editor__items {
  min-height: 0;
  padding: 0 24px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.kwan-checkout-editor__items article {
  display: grid;
  min-height: 118px;
  grid-template-columns: 84px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 18px 0;
  border-bottom: 1px solid rgba(33, 27, 22, 0.2);
  transition: opacity 160ms ease;
}

.kwan-checkout-editor__items article.is-loading { opacity: 0.5; }
.kwan-checkout-editor__items article > img,
.kwan-checkout-editor__placeholder { width: 84px; height: 84px; object-fit: cover; background: var(--brand-wash, #ebe2d5); }
.kwan-checkout-editor__product { min-width: 0; }
.kwan-checkout-editor__product h3 { margin: 0; font-size: 0.94rem; line-height: 1.25; }
.kwan-checkout-editor__meta { padding: 0; margin: 7px 0 0; color: rgba(33, 27, 22, 0.66); font-size: 0.64rem; list-style: none; }
.kwan-checkout-editor__meta li { display: grid; gap: 2px; margin-bottom: 4px; }
.kwan-checkout-editor__meta b { font-weight: 600; }

.kwan-checkout-editor__quantity {
  display: grid;
  grid-template-columns: 38px 34px 38px;
  align-items: stretch;
  border: 1px solid var(--ink, #211b16);
}

.kwan-checkout-editor__quantity button,
.kwan-checkout-editor__quantity output {
  display: grid;
  min-height: 40px;
  place-items: center;
  padding: 0;
  border: 0;
  background: transparent;
  font: inherit;
  font-weight: 850;
}

.kwan-checkout-editor__quantity button { cursor: pointer; }
.kwan-checkout-editor__quantity button:hover { color: var(--white, #fffaf2); background: var(--brand, #6e4a06); }
.kwan-checkout-editor__remove { grid-column: 3; justify-self: end; padding: 3px 0; color: var(--brand, #6e4a06); border: 0; background: transparent; font-size: 0.62rem; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.kwan-checkout-editor__error { margin: 0; padding: 12px 24px; color: #9e2b20; background: #f7e4df; font-size: 0.72rem; font-weight: 750; }
.kwan-checkout-editor__panel > footer { padding: 16px 24px calc(16px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid rgba(33, 27, 22, 0.24); }
.kwan-checkout-editor__panel > footer button { width: 100%; min-height: 52px; color: var(--white, #fffaf2); border: 1px solid var(--ink, #211b16); border-radius: 0; background: var(--ink, #211b16); font-size: 0.72rem; font-weight: 850; cursor: pointer; }

@media (max-width: 600px) {
  .kwan-member-price-pair { flex-direction: row; align-items: baseline; gap: 6px; font-size: 0.66rem; }
  .kwan-member-price-pair.is-member .kwan-member-price-pair__member { order: -1; }
  .kwan-checkout-editor { align-items: end; }
  .kwan-checkout-editor__panel { width: 100vw; height: min(86dvh, 760px); }
  .kwan-checkout-editor__panel > header { padding: 18px 16px; }
  .kwan-checkout-editor__items { padding: 0 16px; }
  .kwan-checkout-editor__items article { min-height: 108px; grid-template-columns: 70px minmax(0, 1fr) auto; gap: 11px; }
  .kwan-checkout-editor__items article > img,
  .kwan-checkout-editor__placeholder { width: 70px; height: 70px; }
  .kwan-checkout-editor__product h3 { font-size: 0.8rem; }
  .kwan-checkout-editor__quantity { grid-template-columns: 44px 34px 44px; }
  .kwan-checkout-editor__quantity button,
  .kwan-checkout-editor__quantity output { min-height: 44px; }
  .kwan-checkout-editor__remove { display: inline-flex; min-height: 44px; align-items: center; }
  .kwan-checkout-editor__panel > footer { padding-inline: 16px; }
}

@media (max-width: 900px) {
  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .orderable-product__content-wrap {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto;
  }

  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .orderable-product__content {
    padding-bottom: 10px;
  }

  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .orderable-product__actions {
    display: grid !important;
    width: 100%;
    min-height: 0;
    height: auto;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    align-items: start;
    justify-items: start;
    gap: 10px;
    padding: 10px 12px 12px;
    border-top: 1px solid rgba(33, 27, 22, 0.16);
    border-left: 0;
  }

  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .orderable-product__actions-price {
    width: 100%;
    align-self: center;
    text-align: left;
  }

  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .kwan-member-price-pair {
    flex-wrap: wrap;
    justify-content: flex-start;
  }

  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .kwan-preorder-price-note {
    justify-content: flex-start;
    margin-top: 5px;
  }

  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .orderable-product__actions-button {
    width: auto;
    justify-self: start;
  }
}

/* Phone preorder cards follow the standard menu row: media, information, then
   a dedicated price/action rail. The preorder note stays with product facts
   instead of forcing a full-width second panel below the card. */
@media (max-width: 600px) {
  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .orderable-product__content-wrap {
    grid-template-columns: minmax(0, 1fr) 104px !important;
    grid-template-rows: auto auto !important;
    align-items: stretch;
  }

  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .orderable-product__content {
    grid-column: 1;
    grid-row: 1;
    min-height: 92px;
    padding: 14px 10px 7px 14px;
  }

  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .orderable-product__actions,
  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .orderable-product__actions-price {
    display: contents !important;
  }

  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .kwan-member-price-pair {
    box-sizing: border-box;
    width: 100%;
    min-height: 92px;
    grid-column: 2;
    grid-row: 1;
    align-self: stretch;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 10px 6px;
    border-left: 1px solid var(--line, rgba(33, 27, 22, 0.2));
    font-size: 0.8125rem;
    text-align: center;
  }

  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .kwan-member-price-pair__member {
    flex-direction: column;
    align-items: center;
    gap: 4px;
  }

  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .kwan-preorder-price-note {
    box-sizing: border-box;
    min-width: 0;
    grid-column: 1;
    grid-row: 2;
    align-self: stretch;
    justify-content: flex-start;
    gap: 2px 5px;
    padding: 0 10px 14px 14px;
    margin: 0;
    line-height: 1.35;
  }

  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .kwan-preorder-price-note__status,
  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .kwan-preorder-price-note__date {
    white-space: normal;
  }

  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .orderable-product__actions-button {
    box-sizing: border-box;
    width: 100%;
    min-height: 64px;
    grid-column: 2;
    grid-row: 2;
    align-self: stretch;
    justify-self: stretch;
    padding: 8px;
    border-left: 1px solid var(--line, rgba(33, 27, 22, 0.2));
  }

  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .kwan-commerce-orderable-trigger {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 46px;
    height: auto;
    padding: 8px 6px !important;
    font-size: 0.8125rem !important;
    line-height: 1.12;
    text-align: center;
    white-space: normal;
  }
}

@media (max-width: 340px) {
  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .orderable-product__actions {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .orderable-product__actions-button,
  .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .kwan-commerce-orderable-trigger {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .kwan-commerce-dialog[open], .kwan-commerce-loading span, .kwan-commerce-primary.is-loading i { animation-duration: 1ms; }
}

@keyframes kwan-commerce-enter { from { opacity: 0; transform: translateX(7%); } }
@keyframes kwan-commerce-spin { to { transform: rotate(360deg); } }
.kwan-bogo-preview-notice {
  position: fixed;
  top: 48px;
  right: 18px;
  z-index: 100000;
  display: flex;
  width: min(430px, calc(100vw - 36px));
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 16px;
  color: #fffaf2;
  border: 1px solid #c8ad75;
  background: #211b16;
  box-shadow: 0 14px 40px rgba(33, 27, 22, 0.24);
}

.kwan-bogo-preview-notice div {
  display: grid;
  gap: 2px;
}

.kwan-bogo-preview-notice strong {
  color: #c8ad75;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
}

.kwan-bogo-preview-notice span {
  color: rgba(255, 250, 242, 0.72);
  font-size: 0.7rem;
}

.kwan-bogo-preview-notice a {
  flex: none;
  color: #fffaf2;
  font-size: 0.72rem;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (max-width: 782px) {
  .kwan-bogo-preview-notice {
    top: 58px;
    right: 10px;
    width: calc(100vw - 20px);
  }
}

/* Storefront legibility baseline for product facts, pricing and checkout controls. */
.kwan-commerce-dialog__bar p,
.kwan-commerce-detail__media > span,
.kwan-commerce-eyebrow,
.kwan-commerce-choice__name small,
.kwan-commerce-fixed-choice > span,
.kwan-commerce-cart-math small,
.kwan-account-contact__copy small,
.kwan-guest-member-prompt strong,
.kwan-hosted-payment__label > span,
.kwan-pickup-schedule__eyebrow,
.kwan-delivery-schedule__eyebrow,
.kwan-member-price-pair__member small,
.kwan-member-summary__eyebrow,
.kwan-checkout-editor__panel > header small {
  font-size: 0.75rem;
}

.kwan-commerce-detail__description h3,
.kwan-commerce-single-contents h2,
.kwan-commerce-primary,
.kwan-commerce-choice__stepper output,
.kwan-commerce-builder__footer > div span,
.kwan-commerce-builder__footer > p,
.kwan-commerce-mini-product span,
.kwan-commerce-card-detail,
.kwan-content--orderable .orderable-product .kwan-commerce-orderable-trigger,
.kwan-commerce-cart-math,
.kwan-commerce-cart-math strong,
.kwan-account-contact__edit,
.kwan-guest-member-prompt .kwan-guest-member-prompt__status,
.kwan-hosted-payment__provider strong,
.kwan-pickup-schedule__modes button,
.kwan-pickup-schedule__field > span,
.kwan-preorder-price-note,
.kwan-delivery-schedule__field > span,
.kwan-address-search__label,
.kwan-member-price-pair,
.kwan-member-price-pair.is-member .kwan-member-price-pair__public,
.kwan-member-cart-summary,
.kwan-member-summary,
.kwan-checkout-editor-trigger,
.kwan-checkout-editor__remove,
.kwan-checkout-editor__error,
.kwan-checkout-editor__panel > footer button,
.kwan-bogo-preview-notice strong,
.kwan-bogo-preview-notice a {
  font-size: 0.8125rem;
}

.kwan-commerce-builder__intro span,
.kwan-guest-member-prompt span,
.kwan-hosted-payment__provider span,
.kwan-pickup-schedule__notice,
.kwan-pickup-schedule__error,
.kwan-pickup-schedule__note,
.kwan-delivery-schedule__error,
.kwan-delivery-schedule__note,
.kwan-address-search__note,
.kwan-member-summary > .kwan-member-summary__note,
.kwan-member-summary > .kwan-member-summary__note.is-confirmed,
.kwan-member-cart-summary__note,
.kwan-checkout-editor__meta,
.kwan-bogo-preview-notice span {
  font-size: 0.875rem;
}

.kwan-product-fact,
.kwan-commerce-mini-product .kwan-product-fact,
.kwan-product-facts--choice .kwan-product-fact,
.wc-block-components-product-metadata .kwan-product-facts--summary .kwan-product-fact,
.kwan-product-facts--orderable .kwan-product-fact {
  font-size: 0.875rem;
}

/* Touch browsers and Orderable may disagree about hover capability. Keep the
   synthetic desktop hover class from persisting after a phone tap. */
@media (max-width: 820px) {
  .kwan-content--orderable .orderable-product__add-to-order.orderable-button--hover:not(.orderable-button--out-of-stock):not(.kwan-commerce-orderable-trigger),
  .kwan-content--orderable .orderable-product__add-to-order.orderable-button--hover:not(.orderable-button--out-of-stock):not(.kwan-commerce-orderable-trigger):hover,
  .kwan-content--orderable .orderable-product__add-to-order.orderable-button--hover:not(.orderable-button--out-of-stock):not(.kwan-commerce-orderable-trigger):focus {
    color: var(--ink, #211b16) !important;
    border-color: var(--ink, #211b16) !important;
    background: transparent !important;
  }
}

/* OPT Foody product preview and combo builder, retaining Kwan brand tokens. */
.kwan-commerce-dialog.opt-foody-product-preview {
  --foody-brand: var(--brand, #6e4a06);
  --foody-brand-strong: var(--brand-deep, #4d3304);
  --foody-bg: var(--cloud, #f5f1e8);
  --foody-surface: var(--white, #fffaf2);
  --foody-ink: var(--ink, #211b16);
  --foody-on-brand: var(--white, #fffaf2);
  --foody-muted: var(--ink-soft, #6f6257);
  --foody-line: var(--line, rgba(33, 27, 22, 0.18));
  --foody-wash: var(--brand-wash, #ebe2d5);
  --foody-shadow: rgba(33, 27, 22, 0.2);
  --foody-radius-card: 18px;
  --foody-radius-button: 12px;
  position: fixed;
  inset: 0;
  width: min(780px, calc(100% - 36px));
  max-width: 780px;
  height: max-content;
  max-height: min(86dvh, 760px);
  padding: 0;
  margin: auto;
  overflow-x: hidden;
  overflow-y: auto;
  color: var(--foody-ink);
  background: var(--foody-surface);
  border: 1px solid var(--foody-ink);
  border-radius: var(--foody-radius-card);
  box-shadow: 0 28px 90px color-mix(in srgb, var(--foody-shadow) 32%, transparent);
  overscroll-behavior: contain;
}

.kwan-commerce-dialog.opt-foody-product-preview::backdrop {
  background: color-mix(in srgb, var(--foody-ink) 72%, transparent);
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
}

.kwan-commerce-dialog.opt-foody-product-preview[open] { animation: kwan-foody-preview-in 260ms cubic-bezier(0.22, 1, 0.36, 1); }
@keyframes kwan-foody-preview-in { from { opacity: 0; transform: translateY(18px) scale(0.98); } }
.kwan-commerce-dialog-open { overflow: hidden; }
.kwan-commerce-dialog .opt-foody-product-preview__close {
  position: absolute;
  z-index: 2;
  top: 14px;
  right: 14px;
  display: grid;
  width: 44px;
  height: 44px;
  padding: 0;
  place-items: center;
  color: var(--foody-ink);
  font-size: 25px;
  line-height: 1;
  background: color-mix(in srgb, var(--foody-surface) 92%, transparent);
  border: 1px solid var(--foody-ink);
  border-radius: var(--foody-radius-button);
  cursor: pointer;
}

.kwan-commerce-dialog .opt-foody-product-preview__close:hover { color: var(--foody-on-brand); background: var(--foody-brand); border-color: var(--foody-brand); }
.kwan-commerce-dialog__body { min-height: 0; overflow: visible; outline: none; }
.kwan-commerce-dialog .opt-foody-product-preview__item {
  display: grid;
  min-height: 440px;
  padding: 0;
  grid-template-columns: minmax(280px, 0.92fr) minmax(0, 1.08fr);
}

.kwan-commerce-dialog .opt-foody-product-preview__media.kwan-commerce-detail__media {
  position: static;
  top: auto;
  height: auto;
  min-height: 440px;
  margin: 0;
  overflow: hidden;
  background: var(--foody-wash);
  border-right: 1px solid var(--foody-line);
}

.kwan-commerce-dialog .opt-foody-product-preview__media::after { content: none; }
.kwan-commerce-dialog .opt-foody-product-preview__media img { display: block; width: 100%; height: 100%; min-height: 440px; object-fit: cover; }
.kwan-commerce-dialog .opt-foody-product-preview__body.kwan-commerce-detail__content {
  display: flex;
  min-width: 0;
  align-self: stretch;
  justify-content: center;
  flex-direction: column;
  padding: 52px 42px 38px;
}

.kwan-commerce-dialog .opt-foody-product-preview__eyebrow { margin: 0 0 9px; color: var(--foody-brand); font-size: 9px; font-weight: 900; letter-spacing: 0.15em; }
.kwan-commerce-dialog .opt-foody-product-preview__body h2 {
  max-width: none;
  margin: 0;
  color: var(--foody-ink);
  font-family: var(--sans, sans-serif);
  font-size: clamp(30px, 4vw, 46px);
  font-weight: 900;
  letter-spacing: -0.05em;
  line-height: 0.98;
}

.kwan-commerce-dialog .opt-foody-product-preview__description.kwan-commerce-detail__description { margin-top: 20px; padding: 0; color: var(--foody-muted); border: 0; font-size: 14px; line-height: 1.6; }
.kwan-commerce-dialog .opt-foody-product-preview__description > :first-child { margin-top: 0; }
.kwan-commerce-dialog .opt-foody-product-preview__description > :last-child { margin-bottom: 0; }
.kwan-commerce-dialog .opt-foody-product__tags { margin-top: 22px; }
.kwan-commerce-dialog .opt-foody-product-preview__body footer { display: grid; gap: 24px; align-items: end; grid-template-columns: minmax(0, 1fr) auto; margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--foody-line); }
.opt-foody-product-preview__price { display: grid; gap: 5px; }
.opt-foody-product-preview__price span { color: var(--foody-muted); font-size: 9px; font-weight: 850; letter-spacing: 0.12em; text-transform: uppercase; }
.opt-foody-product-preview__price strong { color: var(--foody-brand-strong); font-size: 20px; font-weight: 900; }
.opt-foody-product-preview__action { display: flex; align-items: center; justify-content: flex-end; }
.opt-foody-product-preview__action--combo { display: block; grid-column: 1 / -1; }
.kwan-commerce-dialog .opt-foody-product-preview__action > .kwan-commerce-primary { width: auto; min-width: 116px; min-height: 42px; padding: 0 16px; color: var(--foody-on-brand); background: var(--foody-brand); border: 1px solid var(--foody-brand); border-radius: var(--foody-radius-button); font-size: 10px; font-weight: 850; }
.kwan-commerce-dialog .opt-foody-product-preview__action > .kwan-commerce-primary:hover:not(:disabled) { background: var(--foody-brand-strong); border-color: var(--foody-brand-strong); }

.kwan-commerce-dialog .opt-foody-combo-builder { display: grid; gap: 12px; }
.kwan-commerce-dialog .opt-foody-combo-builder > p { margin: 0; color: var(--foody-muted); font-size: 12px; font-weight: 750; }
.kwan-commerce-dialog .opt-foody-combo-builder__choices { display: block; margin: 0; overflow: hidden; border: 1px solid var(--foody-line); border-radius: var(--foody-radius-button); }
.kwan-commerce-dialog .opt-foody-combo-builder__choices > div {
  display: grid;
  min-height: 42px;
  grid-template-columns: minmax(0, 1fr) auto 30px auto;
  gap: 8px;
  align-items: center;
  padding: 6px 8px 6px 12px;
  border: 0;
  border-bottom: 1px solid var(--foody-line);
  background: transparent;
}

.kwan-commerce-dialog .opt-foody-combo-builder__choices > div:last-child { border-bottom: 0; }
.kwan-commerce-dialog .opt-foody-combo-builder__choices span { min-width: 0; font-size: 13px; font-weight: 750; }
.kwan-commerce-dialog .opt-foody-combo-builder__choices button,
.kwan-commerce-dialog .opt-foody-combo-builder [data-combo-add] { min-width: 30px; min-height: 30px; padding: 0 9px; color: var(--foody-brand-strong); font-weight: 850; background: var(--foody-bg); border: 1px solid var(--foody-line); border-radius: var(--foody-radius-button); }
.kwan-commerce-dialog .opt-foody-combo-builder [data-combo-add] { min-height: 42px; color: var(--foody-on-brand); background: var(--foody-brand); border-color: var(--foody-brand); }
.kwan-commerce-dialog .opt-foody-combo-builder [data-combo-add]:hover:not(:disabled) { background: var(--foody-brand-strong); border-color: var(--foody-brand-strong); }
.kwan-commerce-builder__message { min-height: 1.2em; margin: 0; color: #9e2b20; font-size: 12px; font-weight: 700; }
.kwan-commerce-builder--grouped .kwan-commerce-builder__choices { display: grid; grid-template-columns: 1fr; align-items: start; gap: 14px; border: 0; }
.kwan-commerce-choice-group { min-width: 0; padding: 0; margin: 0; }
.kwan-commerce-dialog .opt-foody-combo-builder__choices > .kwan-commerce-choice-group { display: block; min-height: 0; padding: 0; border: 0; }
.kwan-commerce-choice-group__label { margin: 0 0 6px; padding: 0; color: var(--foody-muted); font-size: 12px; font-weight: 750; line-height: 1.35; }
.kwan-commerce-choice-group__panel { overflow: hidden; border: 1px solid var(--foody-line); border-radius: var(--foody-radius-button); }
.kwan-commerce-choice-group__items { display: grid; grid-template-columns: 1fr; }
.kwan-commerce-builder--grouped .kwan-commerce-choice { display: block; min-height: 0; border: 0; border-bottom: 1px solid var(--foody-line); background: transparent; }
.kwan-commerce-choice-group__items .kwan-commerce-choice:last-child { border-bottom: 0; }
.kwan-commerce-choice--radio { position: relative; cursor: pointer; }
.kwan-commerce-choice--radio input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.kwan-commerce-choice--radio span { display: block; min-height: 42px; padding: 11px 14px 11px 34px; font-size: 13px; font-weight: 750; line-height: 1.35; }
.kwan-commerce-choice--radio span::before { position: absolute; top: 50%; left: 13px; width: 12px; height: 12px; border: 1px solid currentColor; border-radius: 50%; content: ""; transform: translateY(-50%); }
.kwan-commerce-choice--radio input:checked + span { color: var(--white, #fffaf2); background: var(--brand, #6e4a06); }
.kwan-commerce-choice--radio input:checked + span::before { border: 4px solid var(--white, #fffaf2); }
.kwan-commerce-choice--radio input:focus-visible + span { outline: 2px solid var(--brand, #6e4a06); outline-offset: -2px; }
.kwan-commerce-choice--radio.is-unavailable { cursor: not-allowed; opacity: 0.42; }

@media (max-width: 700px) {
  /* Keep grouped-combo English labels aligned with the existing steamed-dish
     builder list: one compact, readable mobile type scale. */
  body.opt-foody-ordering--lang-en .kwan-commerce-choice-group__label,
  body.opt-foody-ordering--lang-en .kwan-commerce-choice--radio span {
    font-size: 13px;
    line-height: 1.5;
  }

  .kwan-commerce-dialog.opt-foody-product-preview {
    inset: auto 0 0;
    width: 100%;
    max-width: none;
    max-height: 92dvh;
    margin: auto 0 0;
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: var(--foody-radius-card) var(--foody-radius-card) 0 0;
  }

  .kwan-commerce-dialog .opt-foody-product-preview__item { display: block; min-height: 0; }
  .kwan-commerce-dialog .opt-foody-product-preview__media.kwan-commerce-detail__media { position: relative; height: min(34dvh, 250px); min-height: 0; border-right: 0; border-bottom: 1px solid var(--foody-line); }
  .kwan-commerce-dialog .opt-foody-product-preview__media img { height: 100%; min-height: 0; }
  .kwan-commerce-dialog .opt-foody-product-preview__body.kwan-commerce-detail__content { padding: 23px 20px calc(24px + env(safe-area-inset-bottom, 0px)); }
  .kwan-commerce-dialog .opt-foody-product-preview__body h2 { padding-right: 40px; font-size: clamp(27px, 9vw, 36px); }
  .kwan-commerce-dialog .opt-foody-product-preview__description.kwan-commerce-detail__description { margin-top: 14px; font-size: 13px; line-height: 1.52; }
  .kwan-commerce-dialog .opt-foody-product-preview__body .opt-foody-product__tags { display: flex; margin-top: 16px; }
  .kwan-commerce-dialog .opt-foody-product-preview__body footer { gap: 16px; align-items: center; margin-top: 20px; padding-top: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .kwan-commerce-dialog.opt-foody-product-preview[open] { animation-duration: 1ms; }
}

@media (max-width: 700px) {
  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .orderable-product__actions {
    display: contents !important;
  }

  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .orderable-product__description,
  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .kwan-product-facts--orderable { display: none !important; }
  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .orderable-product__content { min-height: 0; padding: 14px 0 58px; }
  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .orderable-product__actions-price {
    display: block !important;
    width: auto !important;
    grid-column: 1;
    grid-row: 1;
    align-self: end;
    margin: 0 0 10px;
    overflow: hidden;
    text-align: left;
  }

  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .kwan-member-price-pair {
    width: auto;
    min-height: 0;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: baseline;
    justify-content: flex-start;
    gap: 6px;
    padding: 0;
    border: 0;
    font-size: 0.7rem;
    text-align: left;
  }

  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .kwan-member-price-pair__member { flex-direction: row; align-items: baseline; gap: 4px; }
  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .kwan-preorder-price-note {
    display: flex;
    min-width: 0;
    justify-content: flex-start;
    gap: 3px;
    padding: 0;
    margin: 4px 0 0;
    overflow: hidden;
    font-size: 0.58rem;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .kwan-preorder-price-note__status,
  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .kwan-preorder-price-note__date { white-space: nowrap; }
  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .orderable-product__actions-button {
    width: auto;
    min-height: 0;
    grid-column: 2;
    grid-row: 1;
    align-self: end;
    justify-self: end;
    padding: 0;
    margin: 0 6px 12px 0;
    border: 0;
  }

  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .kwan-commerce-orderable-trigger { width: auto !important; min-width: 92px !important; min-height: 44px; height: 44px; padding: 0 8px !important; font-size: 0.68rem !important; white-space: nowrap; }
}

/* OPT Foody shared storefront components. */

.kwan-content--orderable .orderable-main__group {
  margin-bottom: 0;
}

.kwan-content--orderable .orderable-main__group:has(.kwan-order-subcategory) > .kwan-order-category {
  display: none;
}

.kwan-content--orderable .kwan-order-category,
.kwan-content--orderable .kwan-order-subcategory {
  display: block;
  min-height: 0;
  margin: 0;
  padding: 28px 0 12px;
  border: 0;
}

.kwan-content--orderable .kwan-order-category__meta,
.kwan-content--orderable .kwan-order-subcategory > p {
  display: none;
}

.kwan-content--orderable .kwan-order-category h2,
.kwan-content--orderable .kwan-order-subcategory h3 {
  max-width: none;
  margin: 0 !important;
  color: var(--foody-ink, var(--ink, #211b16));
  font-family: var(--sans, sans-serif);
  font-size: 28px !important;
  font-weight: 720;
  letter-spacing: -0.045em;
  line-height: 1.1;
}

@media (min-width: 701px) {
  .kwan-content--orderable .orderable-products-list--list {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    margin: 0 0 28px;
  }

  .kwan-content--orderable .orderable-products-list--list .orderable-products-list__item {
    width: auto;
    min-width: 0;
    padding: 0;
    margin: 0;
  }

  .kwan-content--orderable .orderable-products-list--list .opt-foody-product {
    display: grid;
    width: 100%;
    height: 130px;
    min-height: 130px;
    grid-template-columns: 128px minmax(0, 1fr) 128px;
    align-items: stretch;
    overflow: hidden;
    background: var(--foody-surface, var(--white, #fffaf2));
    border: 1px solid var(--foody-line, rgba(33, 27, 22, 0.18));
    border-radius: 14px;
    box-shadow: 0 1px 2px rgba(33, 27, 22, 0.035);
  }

  .kwan-content--orderable .opt-foody-product__image.orderable-product__hero {
    width: 128px;
    height: 128px;
    min-height: 128px;
    overflow: hidden;
    background: var(--foody-wash, var(--brand-wash, #ebe2d5));
    border: 0;
    border-right: 1px solid var(--foody-line, rgba(33, 27, 22, 0.18));
    border-radius: 0;
  }

  .kwan-content--orderable .opt-foody-product__image .orderable-product__image {
    width: 100% !important;
    height: 100% !important;
    min-height: 128px;
    object-fit: cover;
    transition: transform 220ms ease;
  }

  .kwan-content--orderable .opt-foody-product__image:hover .orderable-product__image {
    transform: scale(1.035);
  }

  .kwan-content--orderable .opt-foody-product__content-wrap {
    display: contents !important;
  }

  .kwan-content--orderable .opt-foody-product__content {
    display: flex;
    min-width: 0;
    height: 128px;
    justify-content: center;
    flex-direction: column;
    padding: 14px 18px;
    overflow: hidden;
  }

  .kwan-content--orderable .opt-foody-product__title.orderable-product__title {
    display: -webkit-box;
    overflow: hidden;
    margin: 0 !important;
    color: var(--foody-ink, var(--ink, #211b16));
    font-family: var(--sans, sans-serif);
    font-size: 19px;
    font-weight: 700;
    letter-spacing: -0.025em;
    line-height: 1.2;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .kwan-content--orderable .opt-foody-product__content .orderable-product__description {
    display: -webkit-box;
    overflow: hidden;
    margin: 7px 0 0;
    color: var(--foody-muted, rgba(33, 27, 22, 0.7));
    font-size: 13px;
    line-height: 1.5;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .kwan-content--orderable .opt-foody-product__content .kwan-product-facts--orderable {
    gap: 5px;
    margin: 8px 0 0;
  }

  .kwan-content--orderable .opt-foody-product__content .kwan-product-fact {
    min-height: 0;
    padding: 3px 6px;
    color: var(--foody-ink, var(--ink, #211b16));
    background: var(--foody-wash, var(--brand-wash, #ebe2d5));
    font-size: 8px;
    font-weight: 850;
    letter-spacing: 0.05em;
    line-height: 1;
  }

  .kwan-content--orderable .opt-foody-product__content .kwan-product-fact--indicator {
    width: 18px;
    height: 18px;
    padding: 0;
    background: transparent;
  }

  .kwan-content--orderable .opt-foody-product__preorder {
    display: -webkit-box;
    overflow: hidden;
    margin: 8px 0 0;
    color: var(--foody-brand-strong, var(--brand-deep, #4d3304));
    font-size: 11px;
    font-weight: 750;
    line-height: 1.25;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .kwan-content--orderable .opt-foody-product__price .kwan-member-price-pair__member small {
    font-size: 7px;
  }

  .kwan-content--orderable .opt-foody-product-control .orderable-quantity-roller {
    width: 104px;
    max-width: 104px;
    margin: 0;
  }

  .kwan-content--orderable .opt-foody-product-control .orderable-quantity-roller__roller {
    min-height: 44px;
    border-color: var(--foody-line, rgba(33, 27, 22, 0.18));
    background: var(--foody-surface, var(--white, #fffaf2));
    box-shadow: 0 3px 9px rgba(33, 27, 22, 0.13);
  }

  .kwan-content--orderable .opt-foody-product-control .orderable-product__add-to-order:not(.kwan-commerce-orderable-trigger) {
    border-color: var(--foody-line, rgba(33, 27, 22, 0.18));
    background: var(--foody-surface, var(--white, #fffaf2));
    box-shadow: 0 3px 9px rgba(33, 27, 22, 0.13);
  }

  .kwan-content--orderable .opt-foody-product__action .kwan-commerce-orderable-trigger {
    min-width: 84px;
    min-height: 44px;
    padding: 0 12px;
    border-color: var(--foody-ink, var(--ink, #211b16));
    border-radius: 10px;
    box-shadow: none;
  }
}

@media (min-width: 1180px) {
  .kwan-content--orderable .orderable-products-list--list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* The final OPT polish uses softer type and controls than its base component. */
.kwan-commerce-dialog.opt-foody-product-preview {
  border-color: var(--foody-line);
  border-radius: 14px;
}

.kwan-commerce-dialog .opt-foody-product-preview__close {
  border-radius: 50%;
}

.kwan-commerce-dialog .opt-foody-product-preview__body h2 {
  font-size: 32px !important;
  font-weight: 650 !important;
  letter-spacing: -0.025em;
  line-height: 1.15 !important;
}

.kwan-commerce-dialog .opt-foody-product-preview__price strong,
.kwan-commerce-dialog .opt-foody-product-preview__price strong span {
  color: var(--foody-ink);
  font-size: 20px;
  font-weight: 650;
  letter-spacing: normal;
}

.kwan-commerce-dialog .kwan-preorder-price-note {
  display: flex;
  width: auto;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 0 4px;
  margin: 7px 0 0;
  color: var(--foody-muted, rgba(33, 27, 22, 0.68));
  font-size: 12px !important;
  font-weight: 600;
  line-height: 1.35 !important;
  text-align: left;
  text-transform: none;
}

.kwan-commerce-dialog .kwan-preorder-price-note__status,
.kwan-commerce-dialog .kwan-preorder-price-note__date {
  font: inherit !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
  text-transform: none !important;
  white-space: normal;
}

.kwan-commerce-dialog .kwan-preorder-price-note__status {
  color: var(--foody-brand-strong, var(--brand-deep, #4d3304));
  font-weight: 750;
}

.kwan-commerce-dialog .kwan-member-price-pair__member {
  order: -1;
}

/* Reuse OPT's bottom-anchored drawer while preserving Orderable fragments. */
.orderable-drawer.opt-foody-cart-drawer {
  --foody-cart-header-height: 88px;
  --foody-cart-footer-height: calc(82px + env(safe-area-inset-bottom, 0px));
  top: auto;
  right: 0;
  bottom: 0;
  display: block;
  width: min(520px, 100vw);
  max-width: 100vw;
  height: auto !important;
  max-height: min(82dvh, calc(100dvh - 64px - env(safe-area-inset-top, 0px)));
  padding: 0;
  overflow: hidden;
  color: var(--foody-ink, var(--ink, #211b16));
  background: var(--foody-surface, var(--white, #fffaf2));
  border: 1px solid var(--foody-line, rgba(33, 27, 22, 0.18));
  border-right: 0;
  border-bottom: 0;
  border-radius: 18px 0 0 18px;
  box-shadow: -12px 0 36px rgba(33, 27, 22, 0.14);
}

.orderable-drawer.opt-foody-cart-drawer .orderable-drawer__close {
  top: 20px;
  right: 12px;
  z-index: 4;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  color: var(--foody-ink, var(--ink, #211b16));
  background: color-mix(in srgb, var(--foody-ink, #211b16) 7%, var(--foody-surface, #fffaf2));
  border: 0;
  border-radius: 50%;
}

.orderable-drawer.opt-foody-cart-drawer .orderable-drawer__close::before,
.orderable-drawer.opt-foody-cart-drawer .orderable-drawer__close::after {
  content: '';
  position: absolute;
  top: 50% !important;
  left: 50% !important;
  right: auto !important;
  bottom: auto !important;
  width: 14px;
  height: 1.5px;
  border: 0;
  border-radius: 2px;
  background: currentColor;
  transform: translate(-50%, -50%) rotate(45deg);
}

.orderable-drawer.opt-foody-cart-drawer .orderable-drawer__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.orderable-drawer.opt-foody-cart-drawer .orderable-drawer__inner.orderable-drawer__cart {
  position: relative;
  display: grid !important;
  height: auto !important;
  min-height: 326px;
  max-height: inherit;
  grid-template-rows: var(--foody-cart-header-height) minmax(0, 1fr);
  padding: 0;
  overflow: hidden;
}

.orderable-drawer.opt-foody-cart-drawer .orderable-drawer__cart > h3 {
  display: flex;
  min-height: var(--foody-cart-header-height);
  flex-direction: column;
  justify-content: center;
  padding: 20px 72px 17px 24px;
  margin: 0;
  color: var(--foody-ink, var(--ink, #211b16));
  background: color-mix(in srgb, var(--foody-surface, #fffaf2) 88%, transparent);
  border: 0;
  border-bottom: 1px solid var(--foody-line, rgba(33, 27, 22, 0.18));
  font-family: var(--sans, sans-serif);
  font-size: 28px;
  font-weight: 650;
  letter-spacing: -0.045em;
  line-height: 1;
}

.orderable-drawer.opt-foody-cart-drawer .orderable-drawer__cart > h3::before {
  display: block;
  margin-bottom: 6px;
  color: var(--foody-brand, var(--brand, #6e4a06));
  content: attr(data-cart-eyebrow);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.14em;
  line-height: 1;
}

.orderable-drawer.opt-foody-cart-drawer :is(.orderable-mini-cart-wrapper, .kwan-native-cart-wrapper) {
  display: grid;
  height: auto !important;
  min-height: 238px;
  grid-template-rows: minmax(0, 1fr) var(--foody-cart-footer-height);
  overflow: hidden;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-drawer__scroll {
  min-height: 0;
  max-height: calc(82dvh - var(--foody-cart-header-height) - var(--foody-cart-footer-height) - 64px);
  padding: 0 24px;
  overflow-x: hidden;
  overflow-y: hidden;
  overscroll-behavior: contain;
  scrollbar-color: var(--foody-brand, var(--brand, #6e4a06)) transparent;
  scrollbar-width: thin;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-drawer__scroll .orderable-sb-container {
  height: 100% !important;
  min-height: 0 !important;
  max-height: 100% !important;
  overflow: hidden !important;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-drawer__scroll .orderable-sb-content {
  height: 100% !important;
  min-height: 0 !important;
  max-height: 100% !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-drawer__scroll .orderable-sb-content::-webkit-scrollbar {
  display: none;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-empty {
  display: grid;
  gap: 7px;
  padding: 38px 0 28px;
  margin: 0;
  color: var(--foody-muted, rgba(33, 27, 22, 0.7));
  border: 0;
  text-align: left;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-empty > span {
  position: relative;
  width: 22px;
  height: 18px;
  margin-bottom: 13px;
  color: var(--foody-brand, var(--brand, #6e4a06));
  border: 1.5px solid var(--foody-brand, var(--brand, #6e4a06));
  border-radius: 4px;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-empty > span::before {
  content: '';
  position: absolute;
  top: -7px;
  left: 5px;
  width: 9px;
  height: 7px;
  border: 1.5px solid currentColor;
  border-bottom: 0;
  border-radius: 6px 6px 0 0;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-empty > strong {
  color: var(--foody-ink, var(--ink, #211b16));
  font-size: 23px;
  font-weight: 650;
  letter-spacing: -0.03em;
  line-height: 1.15;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-empty > small {
  color: var(--foody-muted, rgba(33, 27, 22, 0.7));
  font-size: 12px;
  line-height: 1.45;
}

.orderable-drawer.opt-foody-cart-drawer .kwan-opt-cart-footer {
  display: grid;
  min-height: var(--foody-cart-footer-height);
  grid-template-columns: minmax(142px, auto) minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  padding: 7px 12px calc(7px + env(safe-area-inset-bottom, 0px));
  color: var(--foody-ink, var(--ink, #211b16));
  background: color-mix(in srgb, var(--foody-surface, #fffaf2) 92%, transparent);
  border-top: 1px solid var(--foody-line, rgba(33, 27, 22, 0.18));
  box-shadow: 0 -4px 16px rgba(33, 27, 22, 0.06);
}

.orderable-drawer.opt-foody-cart-drawer .kwan-opt-cart-footer .orderable-mini-cart__total {
  display: grid;
  gap: 1px;
  padding: 0;
  margin: 0;
  border: 0;
}

.orderable-drawer.opt-foody-cart-drawer .kwan-opt-cart-footer .orderable-mini-cart__total > strong {
  color: var(--foody-muted, rgba(33, 27, 22, 0.7));
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.1em;
  line-height: 1;
  text-transform: uppercase;
}

.orderable-drawer.opt-foody-cart-drawer .kwan-opt-cart-footer .orderable-mini-cart__total > .amount {
  color: var(--foody-ink, var(--ink, #211b16));
  font-size: 18px;
  font-weight: 650;
  letter-spacing: -0.025em;
  line-height: 1.1;
}

.orderable-drawer.opt-foody-cart-drawer .kwan-opt-cart-saving {
  display: block;
  color: var(--foody-brand, var(--brand, #6e4a06));
  font-size: 9px;
  font-weight: 800;
  line-height: 1.15;
  white-space: nowrap;
}

.orderable-drawer.opt-foody-cart-drawer .kwan-opt-cart-footer .orderable-mini-cart__buttons {
  display: block;
  padding: 0;
  margin: 0;
}

.orderable-drawer.opt-foody-cart-drawer .kwan-opt-cart-footer .button:not(.checkout) {
  display: none;
}

.orderable-drawer.opt-foody-cart-drawer .kwan-opt-cart-footer .checkout {
  display: flex;
  width: 100%;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 10px 16px;
  color: var(--foody-on-brand, var(--white, #fffaf2)) !important;
  background: var(--foody-brand, var(--brand, #6e4a06)) !important;
  border: 1px solid var(--foody-brand, var(--brand, #6e4a06)) !important;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: 0;
  text-decoration: none;
  text-transform: none !important;
}

.orderable-drawer.opt-foody-cart-drawer .kwan-opt-cart-count {
  font-size: 10px;
  font-weight: 900;
}

.orderable-drawer.opt-foody-cart-drawer .orderable-mini-cart {
  padding: 0;
  margin: 0;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-item {
  display: grid;
  min-height: 116px;
  grid-template-columns: 92px minmax(0, 1fr);
  align-items: stretch;
  gap: 14px;
  padding: 12px 0;
  border-bottom: 1px solid var(--foody-line, rgba(33, 27, 22, 0.18));
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-item__image {
  width: 92px;
  height: 92px;
  object-fit: cover;
  border-radius: 12px;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-item__main {
  position: relative;
  display: flex;
  min-width: 0;
  height: 92px;
  flex-direction: column;
  padding-right: 112px;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-item__name {
  display: -webkit-box;
  overflow: hidden;
  color: var(--foody-ink, var(--ink, #211b16));
  font-size: 17px;
  font-weight: 650;
  line-height: 1.25;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.orderable-drawer.opt-foody-cart-drawer .kwan-product-facts--drawer {
  margin-top: 5px;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-quantity {
  position: absolute;
  right: 0;
  bottom: -6px;
  width: 104px;
  max-width: 104px;
  margin: 0;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-quantity .orderable-quantity-roller__roller {
  width: 104px;
  min-height: 44px;
  border-color: var(--foody-line, rgba(33, 27, 22, 0.18));
  border-radius: 999px;
  background: var(--foody-surface, var(--white, #fffaf2));
  box-shadow: 0 3px 9px rgba(33, 27, 22, 0.13);
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-item__total {
  position: absolute;
  right: 0;
  bottom: 38px;
  color: var(--foody-brand-strong, var(--brand-deep, #4d3304));
  font-size: 16px;
  font-weight: 650;
  line-height: 1.1;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-item__total::before {
  content: none !important;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-item__remove {
  position: absolute;
  top: 0;
  right: 0;
  display: grid;
  width: 24px;
  min-width: 24px;
  height: 24px;
  min-height: 24px;
  padding: 0;
  place-items: center;
  color: var(--foody-muted, rgba(33, 27, 22, 0.7));
  background: transparent;
  border: 0;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-item__remove svg {
  width: 15px;
  height: 15px;
  fill: currentColor;
}

.orderable-drawer.opt-foody-cart-drawer .kwan-member-cart-summary {
  padding: 14px 0;
}

@media (max-width: 700px) {
  .kwan-content--orderable .kwan-order-category,
  .kwan-content--orderable .kwan-order-subcategory {
    padding: 18px 0 12px;
  }

  .kwan-content--orderable .kwan-order-category h2,
  .kwan-content--orderable .kwan-order-subcategory h3 {
    font-size: 23px !important;
    line-height: 1.1;
  }

  .kwan-commerce-dialog .opt-foody-product-preview__body h2 {
    font-size: 26px !important;
  }

  .orderable-drawer.opt-foody-cart-drawer {
    --foody-cart-header-height: 78px;
    width: 100vw;
    max-height: 86dvh;
    border-left: 0;
    border-radius: 18px 18px 0 0;
  }

  .orderable-drawer.opt-foody-cart-drawer .orderable-drawer__close {
    top: 17px;
  }

  .orderable-drawer.opt-foody-cart-drawer .orderable-drawer__cart > h3 {
    padding: 16px 72px 14px 20px;
    font-size: 26px;
  }

  .orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-drawer__scroll {
    max-height: calc(86dvh - var(--foody-cart-header-height) - var(--foody-cart-footer-height));
    padding-inline: 16px;
  }

  .orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-item {
    min-height: 106px;
    grid-template-columns: 82px minmax(0, 1fr);
  }

  .orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-item__image,
  .orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-item__main {
    width: 82px;
    height: 82px;
  }

  .orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-item__main {
    width: auto;
    padding-right: 0;
  }

  .orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-item__name {
    padding-right: 28px;
    font-size: 15px;
  }

  .orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-item__total {
    right: auto;
    bottom: 3px;
    left: 0;
    font-size: 15px;
  }

  .orderable-drawer.opt-foody-cart-drawer .opt-foody-quantity {
    right: 0;
    bottom: -1px;
    overflow: visible;
  }

  .orderable-drawer.opt-foody-cart-drawer .kwan-opt-cart-footer {
    grid-template-columns: minmax(80px, 1fr) minmax(156px, 1fr);
    gap: 12px;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
  }
}

/* Product prices read member-first, with the standard price demoted. */
.kwan-content--orderable .opt-foody-product__price .kwan-member-price-pair__member {
  order: -1;
  color: var(--foody-brand-strong, var(--brand-deep, #4d3304));
}

.kwan-content--orderable .opt-foody-product__price .kwan-member-price-pair__public {
  color: var(--foody-muted, rgba(33, 27, 22, 0.58));
  font-weight: 600;
}

.kwan-content--orderable .opt-foody-product__price--inline {
  display: none;
}

@media (min-width: 701px) {
  .kwan-content--orderable .opt-foody-product__price .kwan-member-price-pair {
    display: grid;
    justify-items: center;
    gap: 4px;
  }

  .kwan-content--orderable .opt-foody-product__price .kwan-member-price-pair__member {
    font-size: 14px;
    font-weight: 700;
  }

  .kwan-content--orderable .opt-foody-product__price .kwan-member-price-pair__public {
    font-size: 11px;
  }

  .kwan-content--orderable .opt-foody-product__price .woocommerce-Price-amount {
    line-height: 1.1 !important;
  }
}

@media (max-width: 700px) {
  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .orderable-product__actions-price {
    display: none !important;
    margin: 0;
  }

  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .opt-foody-product__action > .orderable-product__actions-price {
    display: none !important;
  }

  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .opt-foody-product__price--inline {
    display: block;
    width: auto;
    min-height: 0;
    align-self: flex-start;
    margin: 8px 0 0;
    color: var(--foody-brand-strong, var(--brand-deep, #4d3304));
    font-size: 16px;
    line-height: 1.1;
    text-align: left;
  }

  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .kwan-member-price-pair {
    display: flex;
    width: auto;
    min-height: 0;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    gap: 7px;
    padding: 0;
    border: 0;
    font-family: var(--sans, sans-serif);
    text-align: left;
  }

  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .kwan-member-price-pair__member {
    display: inline-flex;
    order: -1;
    align-items: center;
    gap: 5px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.1;
  }

  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .kwan-member-price-pair__member small {
    padding: 3px 5px;
    border-radius: 3px;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.06em;
  }

  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .kwan-member-price-pair__public {
    font-size: 12px;
    font-weight: 600;
  }

  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .opt-foody-product__preorder {
    position: static;
    display: block;
    width: auto;
    margin: 6px 0 0;
    overflow: hidden;
    color: var(--foody-muted, rgba(33, 27, 22, 0.68));
    font-size: 10px;
    font-weight: 600;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .opt-foody-product__preorder .kwan-preorder-price-note__status {
    color: var(--foody-brand-strong, var(--brand-deep, #4d3304));
    font-weight: 750;
  }

  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .orderable-product__add-to-order:not(.orderable-button--out-of-stock):not(.kwan-commerce-orderable-trigger) {
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
    color: var(--foody-ink, var(--ink, #211b16));
    background: radial-gradient(circle, color-mix(in srgb, var(--foody-ink, #211b16) 6%, var(--foody-surface, #fffaf2)) 0 15px, transparent 15.5px);
    border: 0;
    border-radius: 50%;
    box-shadow: none;
  }

  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .orderable-product__add-to-order:not(.orderable-button--out-of-stock):not(.kwan-commerce-orderable-trigger)::before,
  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .orderable-product__add-to-order:not(.orderable-button--out-of-stock):not(.kwan-commerce-orderable-trigger)::after {
    width: 11px;
    height: 1.5px;
  }

  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .orderable-product__add-to-order:not(.orderable-button--out-of-stock):not(.kwan-commerce-orderable-trigger):hover {
    color: var(--foody-on-brand, var(--white, #fffaf2));
    background: radial-gradient(circle, var(--foody-brand, var(--brand, #6e4a06)) 0 15px, transparent 15.5px);
  }

  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .kwan-commerce-orderable-trigger {
    width: auto !important;
    min-width: 88px !important;
    min-height: 34px;
    height: 34px;
    padding: 0 12px !important;
    color: var(--foody-brand-strong, var(--brand-deep, #4d3304));
    background: color-mix(in srgb, var(--foody-brand, #6e4a06) 10%, var(--foody-surface, #fffaf2));
    border: 0;
    border-radius: 999px;
    font-size: 11px !important;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1;
    text-transform: none;
    box-shadow: none;
  }

  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .kwan-commerce-orderable-trigger:hover {
    color: var(--foody-on-brand, var(--white, #fffaf2));
    background: var(--foody-brand, var(--brand, #6e4a06));
  }

  body.opt-foody-ordering--lang-en[data-mobile-menu] .kwan-content--orderable .orderable-product:has(.kwan-preorder-price-note) .kwan-commerce-orderable-trigger {
    width: auto !important;
    min-width: 88px !important;
    min-height: 34px !important;
    height: 34px !important;
  }
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-quantity {
  width: 96px;
  min-width: 96px;
  height: 40px;
  min-height: 40px;
  overflow: visible;
  border: 0;
  background: transparent;
  animation: none !important;
  transition: none !important;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-quantity .orderable-quantity-roller__roller {
  position: relative;
  isolation: isolate;
  display: grid !important;
  grid-template-columns: 36px 24px 36px;
  width: 96px !important;
  min-width: 96px;
  height: 40px;
  min-height: 40px;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none !important;
  animation: none !important;
  transition: none !important;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-quantity .orderable-quantity-roller__roller::before {
  content: "";
  position: absolute;
  top: 6px;
  right: 0;
  z-index: -1;
  width: 96px;
  height: 28px;
  border: 1px solid var(--foody-line, rgba(33, 27, 22, 0.18));
  border-radius: 999px;
  background: color-mix(in srgb, var(--foody-brand, #6e4a06) 10%, var(--foody-surface, var(--white, #fffaf2)));
  box-shadow: 0 3px 9px rgba(33, 27, 22, 0.13);
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-quantity .orderable-quantity-roller__button {
  position: relative;
  display: block;
  width: 36px;
  min-width: 36px;
  height: 40px;
  min-height: 40px;
  padding: 0;
  overflow: visible !important;
  color: var(--foody-ink, var(--ink, #211b16)) !important;
  font-size: 0 !important;
  text-indent: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  animation: none !important;
  transform: none !important;
  transition: none !important;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-quantity .orderable-quantity-roller__button svg {
  display: none !important;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-quantity .orderable-quantity-roller__button::before,
.orderable-drawer.opt-foody-cart-drawer .opt-foody-quantity .orderable-quantity-roller__button::after {
  content: none !important;
  display: none !important;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-quantity .orderable-quantity-roller__button--decrease {
  background: linear-gradient(var(--foody-ink, var(--ink, #211b16)), var(--foody-ink, var(--ink, #211b16))) center calc(50% - 1px) / 11px 1.5px no-repeat !important;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-quantity .orderable-quantity-roller__button--increase {
  font-size: 0 !important;
  background:
    linear-gradient(var(--foody-ink, var(--ink, #211b16)), var(--foody-ink, var(--ink, #211b16))) center calc(50% - 1px) / 11px 1.5px no-repeat,
    linear-gradient(var(--foody-ink, var(--ink, #211b16)), var(--foody-ink, var(--ink, #211b16))) center calc(50% - 1px) / 1.5px 11px no-repeat !important;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-item {
  height: auto !important;
  min-height: 116px;
  grid-template-rows: auto !important;
  grid-auto-rows: auto !important;
  column-gap: 14px;
  row-gap: 0 !important;
  padding: 12px 0 !important;
  background: transparent !important;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-item__image {
  grid-row: auto !important;
  align-self: center;
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-item__main {
  height: 92px !important;
  min-height: 92px !important;
  padding: 0 112px 0 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

@media (max-width: 700px) {
  .orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-item {
    min-height: 106px;
  }

  .orderable-drawer.opt-foody-cart-drawer .opt-foody-cart-item__main {
    height: 82px !important;
    min-height: 82px !important;
    padding: 0 !important;
  }
}

.orderable-drawer.opt-foody-cart-drawer .opt-foody-quantity .orderable-quantity-roller__quantity {
  display: grid;
  width: 24px;
  min-width: 24px;
  height: 40px;
  padding: 0;
  place-items: center;
  color: var(--foody-ink, var(--ink, #211b16));
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  transform: translateY(-1px);
  animation: none !important;
  transition: none !important;
}

/* Pointer and touch focus stay visually neutral; keyboard focus is deliberate. */
.kwan-commerce-dialog :where(a, button, [role="button"]):focus:not(:focus-visible) {
  outline: 0 !important;
  box-shadow: none !important;
}

.kwan-commerce-dialog :where(a, button, [role="button"]):focus-visible {
  outline: 2px solid color-mix(in srgb, var(--foody-brand, var(--brand, #6e4a06)) 72%, transparent) !important;
  outline-offset: 2px;
}

.kwan-commerce-dialog .opt-foody-product-preview__close:focus-visible {
  outline-offset: -4px;
}

.kwan-commerce-dialog__body:focus {
  outline: 0 !important;
  box-shadow: none !important;
}

/* ==========================================================================
   Checkout · ordering-page design language
   Same tokens as the native ordering page (ordering.css): soft 12–18px radii,
   pale hairlines, cream surfaces, pill controls, round close buttons and a
   brown 16px primary action. Styling only; Blocks-owned nodes are never moved.
   ========================================================================== */
body.woocommerce-checkout {
	--kc-surface: var(--white, #fffaf2);
	--kc-line: rgba(33, 27, 22, 0.12);
	--kc-line-strong: rgba(33, 27, 22, 0.2);
	--kc-wash: color-mix(in srgb, var(--brand, #6e4a06) 7%, var(--kc-surface));
	--kc-track: rgba(33, 27, 22, 0.07);
	--kc-radius: 14px;
	--kc-radius-lg: 18px;
	--kc-shadow: 0 1px 2px rgba(33, 27, 22, 0.06), 0 10px 28px rgba(33, 27, 22, 0.06);
	--kc-control-shadow: 0 3px 9px rgba(33, 27, 22, 0.13);
	--kc-focus: 0 0 0 3px color-mix(in srgb, var(--brand, #6e4a06) 18%, transparent);
}

/* Inputs and selects */
body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-text-input textarea,
body.woocommerce-checkout .wc-blocks-components-select .wc-blocks-components-select__select,
body.woocommerce-checkout .wc-block-components-combobox .components-combobox-control__input,
body.woocommerce-checkout .wc-block-components-textarea,
body.woocommerce-checkout .kwan-pickup-schedule__field select,
body.woocommerce-checkout .kwan-delivery-schedule__field select,
body.woocommerce-checkout .kwan-address-search__input {
	border: 1px solid var(--kc-line-strong) !important;
	border-radius: 12px !important;
	background-color: var(--kc-surface) !important;
	box-shadow: none !important;
	transition: border-color 160ms ease, box-shadow 160ms ease;
}

body.woocommerce-checkout .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-block-components-text-input textarea:focus,
body.woocommerce-checkout .wc-blocks-components-select .wc-blocks-components-select__select:focus,
body.woocommerce-checkout .wc-block-components-combobox .components-combobox-control__input:focus,
body.woocommerce-checkout .wc-block-components-textarea:focus,
body.woocommerce-checkout .kwan-pickup-schedule__field select:focus,
body.woocommerce-checkout .kwan-delivery-schedule__field select:focus,
body.woocommerce-checkout .kwan-address-search__input:focus {
	border-color: var(--brand, #6e4a06) !important;
	box-shadow: var(--kc-focus) !important;
	outline: 0 !important;
}

body.woocommerce-checkout .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] {
	border: 1px solid var(--kc-line-strong);
	border-radius: 6px;
	background: var(--kc-surface);
}

body.woocommerce-checkout .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked {
	border-color: var(--brand, #6e4a06);
	background: var(--brand, #6e4a06);
}

body.woocommerce-checkout .wc-block-components-checkbox .wc-block-components-checkbox__mark {
	fill: var(--kc-surface);
}

/* Radios: brand dot instead of black */
body.woocommerce-checkout .wc-block-components-radio-control__input {
	border-color: var(--kc-line-strong) !important;
	background: var(--kc-surface) !important;
}

body.woocommerce-checkout .wc-block-components-radio-control__input:checked {
	border-color: var(--brand, #6e4a06) !important;
}

body.woocommerce-checkout .wc-block-components-radio-control__input:checked::before {
	background: var(--brand, #6e4a06) !important;
}

/* Ship / Pickup: segmented pill like the ordering filters */
body.woocommerce-checkout .wc-block-checkout__shipping-method .components-button-group {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 4px;
	padding: 4px;
	border-radius: 999px;
	background: var(--kc-track);
}

body.woocommerce-checkout .wc-block-checkout__shipping-method-option {
	min-height: 48px;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: transparent !important;
	box-shadow: none !important;
	color: color-mix(in srgb, var(--ink, #211b16) 70%, transparent) !important;
	font-weight: 650;
}

body.woocommerce-checkout .wc-block-checkout__shipping-method-option--selected {
	background: var(--kc-surface) !important;
	box-shadow: var(--kc-control-shadow) !important;
	color: var(--ink, #211b16) !important;
}

/* Pickup location and other single radio rows: soft cards */
body.woocommerce-checkout .wc-block-checkout__pickup-options .wc-block-components-radio-control__option,
body.woocommerce-checkout .wc-block-checkout__shipping-option .wc-block-components-radio-control__option {
	border: 1px solid var(--kc-line) !important;
	border-radius: var(--kc-radius) !important;
	background: var(--kc-surface) !important;
	box-shadow: var(--kc-shadow) !important;
}

body.woocommerce-checkout .wc-block-checkout__pickup-options .wc-block-components-radio-control__option--checked-option-highlighted,
body.woocommerce-checkout .wc-block-checkout__shipping-option .wc-block-components-radio-control__option--checked-option-highlighted {
	border-color: var(--brand, #6e4a06) !important;
	box-shadow: inset 0 0 0 0.5px var(--brand, #6e4a06), var(--kc-shadow) !important;
}

body.woocommerce-checkout .wc-block-components-radio-control--highlight-checked::after,
body.woocommerce-checkout .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option::after {
	display: none !important;
}

/* Pickup and delivery schedule panels */
body.woocommerce-checkout .kwan-pickup-schedule,
body.woocommerce-checkout .kwan-delivery-schedule {
	gap: 14px;
	padding: 20px 18px;
	border: 1px solid var(--kc-line) !important;
	border-radius: var(--kc-radius-lg);
	background: var(--kc-surface);
	box-shadow: var(--kc-shadow);
}

body.woocommerce-checkout .kwan-pickup-schedule h3,
body.woocommerce-checkout .kwan-delivery-schedule h3 {
	margin: -4px 0 0;
	font-size: 1.25rem;
	font-weight: 750;
	letter-spacing: -0.02em;
	line-height: 1.2;
}

body.woocommerce-checkout .kwan-pickup-schedule__modes,
body.woocommerce-checkout .kwan-delivery-schedule__modes {
	gap: 4px;
	padding: 4px;
	border: 0;
	border-radius: 999px;
	background: var(--kc-track);
}

body.woocommerce-checkout .kwan-pickup-schedule__modes button,
body.woocommerce-checkout .kwan-delivery-schedule__modes button {
	min-height: 44px;
	padding: 8px 14px;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: color-mix(in srgb, var(--ink, #211b16) 70%, transparent);
	font-weight: 700;
	text-align: center;
}

body.woocommerce-checkout .kwan-pickup-schedule__modes button.is-active,
body.woocommerce-checkout .kwan-delivery-schedule__modes button.is-active {
	background: var(--kc-surface);
	box-shadow: var(--kc-control-shadow);
	color: var(--ink, #211b16);
}

/* Payment choices */
body.woocommerce-checkout #payment-method .kwan-wallet-option,
body.woocommerce-checkout #payment-method .kwan-card-option {
	overflow: hidden;
	border: 1px solid var(--kc-line) !important;
	border-radius: var(--kc-radius) !important;
	background: var(--kc-surface) !important;
	box-shadow: var(--kc-shadow) !important;
}

html.kwan-wallet-selected body.woocommerce-checkout #payment-method .kwan-wallet-option,
body.woocommerce-checkout #payment-method .kwan-wallet-option.wc-block-components-radio-control-accordion-option--checked-option-highlighted,
body.woocommerce-checkout #payment-method .kwan-card-option.wc-block-components-radio-control-accordion-option--checked-option-highlighted {
	border: 1px solid var(--brand, #6e4a06) !important;
	background: var(--kc-surface) !important;
	box-shadow: inset 0 0 0 0.5px var(--brand, #6e4a06), var(--kc-shadow) !important;
}

body.woocommerce-checkout #payment-method .kwan-wallet-option.wc-block-components-radio-control-accordion-option--checked-option-highlighted > .wc-block-components-radio-control__option,
body.woocommerce-checkout #payment-method .kwan-card-option.wc-block-components-radio-control-accordion-option--checked-option-highlighted > .wc-block-components-radio-control__option {
	border-bottom: 1px solid var(--kc-line) !important;
}

body.woocommerce-checkout .kwan-card-billing-address {
	border: 1px solid var(--kc-line);
	border-radius: var(--kc-radius);
	background: var(--kc-wash);
}

/* Notes and summaries */
body.woocommerce-checkout .kwan-payment-fulfillment-note {
	padding: 14px 16px;
	border: 1px solid color-mix(in srgb, var(--brand, #6e4a06) 22%, transparent);
	border-left-width: 1px;
	border-radius: var(--kc-radius);
	background: var(--kc-wash);
	font-weight: 600;
}

/* Secondary and primary actions */
body.woocommerce-checkout .kwan-checkout-editor-trigger {
	min-height: 48px;
	border: 1px solid var(--kc-line-strong);
	border-radius: 999px;
	background: var(--kc-surface);
	box-shadow: var(--kc-shadow);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0;
}

@media (max-width: 780px) {
	body.woocommerce-checkout .kwan-checkout-editor-trigger {
		min-height: 44px;
		margin-top: 10px;
	}

	body.woocommerce-checkout .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block {
		padding-bottom: 6px !important;
	}

	body.woocommerce-checkout .wc-block-components-sidebar.wc-block-checkout__sidebar {
		margin-bottom: 14px !important;
	}

	/* An empty paragraph saved inside the shipping step adds a stray 16px gap. */
	body.woocommerce-checkout .wc-block-checkout__form .wp-block-paragraph:empty {
		display: none;
	}

	body.woocommerce-checkout .kwan-pickup-schedule,
	body.woocommerce-checkout .kwan-delivery-schedule {
		gap: 12px;
		margin: 14px 0 0;
		padding: 16px;
	}

	body.woocommerce-checkout .wc-block-checkout__actions {
		margin-bottom: 8px !important;
	}
}

body.woocommerce-checkout .kwan-checkout-editor-trigger:hover {
	color: var(--ink, #211b16);
	background: var(--kc-wash);
}

body.woocommerce-checkout .wc-block-checkout__actions .wc-block-components-button.wc-block-components-checkout-place-order-button {
	min-height: 56px;
	border: 1px solid var(--brand, #6e4a06) !important;
	border-radius: 16px !important;
	background: var(--brand, #6e4a06) !important;
	box-shadow: 0 8px 22px rgba(33, 27, 22, 0.18) !important;
	color: var(--kc-surface) !important;
	font-size: 1rem;
	font-weight: 750;
	letter-spacing: 0;
	text-transform: none !important;
}

body.woocommerce-checkout .wc-block-checkout__actions .wc-block-components-button.wc-block-components-checkout-place-order-button:hover {
	background: var(--brand-deep, #4d3304) !important;
	border-color: var(--brand-deep, #4d3304) !important;
}

/* Edit-order sheet: same shape as the menu item sheet */
.kwan-checkout-editor__backdrop {
	background: rgba(22, 18, 14, 0.42);
	backdrop-filter: blur(6px);
}

.kwan-checkout-editor__panel {
	background: var(--white, #fffaf2);
	border-radius: 18px 0 0 18px;
	box-shadow: 0 28px 90px rgba(33, 27, 22, 0.16);
}

.kwan-checkout-editor__panel > header {
	border-bottom: 1px solid rgba(33, 27, 22, 0.12);
}

.kwan-checkout-editor__panel > header h2 {
	font-size: clamp(1.5rem, 4vw, 2rem);
	letter-spacing: -0.02em;
}

.kwan-checkout-editor__panel > header > button {
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 50%;
	background: color-mix(in srgb, var(--ink, #211b16) 7%, var(--white, #fffaf2));
	position: relative;
	font-size: 0;
}

/* Same hairline cross as the menu sheet's close button. */
.kwan-checkout-editor__panel > header > button::before,
.kwan-checkout-editor__panel > header > button::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 14px;
	height: 1.5px;
	border-radius: 2px;
	background: currentColor;
	transform: translate(-50%, -50%) rotate(45deg);
}

.kwan-checkout-editor__panel > header > button::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}

.kwan-checkout-editor__items article {
	border-bottom-color: rgba(33, 27, 22, 0.12);
}

.kwan-checkout-editor__items article > img,
.kwan-checkout-editor__placeholder {
	border-radius: 14px;
}

.kwan-checkout-editor__quantity {
	grid-template-columns: 36px 30px 36px;
	align-self: center;
	overflow: hidden;
	border: 1px solid rgba(33, 27, 22, 0.18);
	border-radius: 999px;
	background: color-mix(in srgb, var(--brand, #6e4a06) 10%, var(--white, #fffaf2));
	box-shadow: 0 3px 9px rgba(33, 27, 22, 0.13);
}

.kwan-checkout-editor__quantity button,
.kwan-checkout-editor__quantity output {
	min-height: 36px;
	color: var(--brand-deep, #4d3304);
	font-weight: 750;
}

.kwan-checkout-editor__quantity button:hover {
	color: var(--brand-deep, #4d3304);
	background: color-mix(in srgb, var(--brand, #6e4a06) 16%, var(--white, #fffaf2));
}

.kwan-checkout-editor__remove {
	text-decoration: none;
	font-weight: 700;
}

.kwan-checkout-editor__panel > footer {
	border-top: 1px solid rgba(33, 27, 22, 0.12);
}

.kwan-checkout-editor__panel > footer button {
	border: 1px solid var(--brand, #6e4a06);
	border-radius: 16px;
	background: var(--brand, #6e4a06);
	box-shadow: 0 8px 22px rgba(33, 27, 22, 0.18);
	font-size: 0.9375rem;
	font-weight: 750;
}

@media (max-width: 600px) {
	.kwan-checkout-editor__panel {
		height: min(84dvh, 720px);
		border-radius: 18px 18px 0 0;
	}

	.kwan-checkout-editor__quantity {
		grid-template-columns: 40px 30px 40px;
	}

	.kwan-checkout-editor__quantity button,
	.kwan-checkout-editor__quantity output {
		min-height: 40px;
	}
}

@media (min-width: 781px) {
	body.woocommerce-checkout .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block {
		padding: 4px 20px 12px;
		border: 1px solid var(--kc-line);
		border-radius: var(--kc-radius-lg);
		background: var(--kc-surface);
		box-shadow: var(--kc-shadow);
	}
}
