.flavour-control.is-original {
  grid-column: 1 / -1;
  border: 1px solid #9fd0ad;
  background: #e4f5e8;
}

.flavour-control .original-auto {
  gap: 8px;
  padding-left: 10px;
  border-radius: 9px;
  background: #fff;
}

.flavour-control .original-auto small {
  font-weight: 900;
  white-space: nowrap;
}

.flavour-control .original-auto input {
  border: 0;
  background: transparent;
  color: var(--green);
  font-size: 15px;
}

.custom-quantity {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 12px;
  border: 1px solid #b9dfc3;
  background: linear-gradient(135deg,#eff9f1,#fff);
}

.custom-quantity h3,
.custom-quantity p { margin: 0; }
.custom-quantity p { margin-top: 3px; color: #617466; font-size: 12px; }
.custom-quantity > small {
  grid-column: 1 / -1;
  padding-top: 9px;
  border-top: 1px dashed #c9dfce;
  color: #0b5d35;
  font-weight: 900;
}

.custom-quantity-control {
  display: grid;
  grid-template-columns: 40px 38px auto 40px;
  align-items: center;
  gap: 5px;
  padding: 5px;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 5px 18px #0b5d3514;
}

.custom-quantity-control button {
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 10px;
  background: #0b5d35;
  color: #fff;
  font-size: 22px;
  font-weight: 900;
}

.custom-quantity-control button:disabled { opacity: .35; }
.custom-quantity-control strong { text-align: right; font-size: 20px; }
.custom-quantity-control span { color: #617466; font-size: 11px; }
.package-fee-note {
  margin: 0 0 14px;
  padding: 11px 13px;
  border: 1px solid #cde4d2;
  border-radius: 12px;
  background: #f3faf4;
  color: #45614d;
  font-size: 12px;
}
.package-fee-note strong { color: #0b5d35; }
.inline-policy-button,
.terms-link {
  border: 0;
  padding: 0;
  background: transparent;
  color: #0b5d35;
  font: inherit;
  font-weight: 900;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}
.inline-policy-button { display: block; margin-top: 5px; }
.terms-read-button { display: block; margin: -7px 0 13px 26px; font-size: 11px; }
.footer-policy-button {
  border: 0;
  padding: 0;
  background: transparent;
  color: #0b5d35;
  font-size: 11px;
  font-weight: 900;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}

.payment-breakdown {
  margin-top: 12px;
  padding: 15px;
  border: 1px solid #c7ddcc;
  border-radius: 15px;
  background: #fff;
}

.payment-breakdown h4 { margin: 0 0 9px; color: #0b5d35; }
.payment-breakdown .payment-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 15px;
  padding: 6px 0;
  color: #53675a;
}
.payment-breakdown .payment-row span { min-width: 0; }
.payment-breakdown .payment-row span small {
  display: block;
  max-width: 340px;
  margin-top: 2px;
  color: #738078;
  font-size: 9px;
  font-weight: 600;
  line-height: 1.35;
}
.payment-breakdown .payment-row b {
  flex: 0 0 auto;
  color: #173c27;
  text-align: right;
  white-space: nowrap;
}
.payment-breakdown .payment-grand-total {
  margin-top: 7px;
  padding-top: 12px;
  border-top: 1px solid #d9e7dc;
  color: #0b5d35;
  font-size: 17px;
  font-weight: 900;
}
.payment-breakdown > small { display: block; margin-top: 7px; color: #6b7d70; }
.payment-breakdown .promotion-summary-row {
  margin: 4px -6px;
  padding: 8px 6px;
  border-radius: 9px;
  background: #edf8f0;
  color: #0b5d35;
}
.promo-code-box {
  grid-column: 1 / -1;
  padding: 13px;
  border: 1px dashed #a9cdb2;
  border-radius: 13px;
  background: #f8fcf9;
}
.promo-code-box > label { display: block; margin-bottom: 6px; color: #254d33; font-size: 11px; font-weight: 900; }
.promo-code-box > div { display: grid; grid-template-columns: 1fr auto; gap: 7px; }
.promo-code-box input {
  min-width: 0;
  margin: 0;
  text-transform: uppercase;
}
.promo-code-box button {
  min-width: 92px;
  border: 0;
  border-radius: 10px;
  background: #0b5d35;
  color: #fff;
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
}
.promo-code-box button:disabled { opacity: .45; cursor: not-allowed; }
.promo-code-box p { margin: 7px 0 0; color: #687a6e; font-size: 10px; }
.promo-code-box p.is-valid { color: #0b6d3d; font-weight: 900; }
.promo-code-box p.is-error { color: #a0362b; font-weight: 800; }

.checkout-outlet-first {
  border: 2px solid #6aae7c;
  background: linear-gradient(135deg,#f0faf2,#fff);
}
.checkout-outlet-first > p {
  margin: 8px 0 0;
  color: #617466;
  font-size: 11px;
}
.checkout-section-label {
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 7px;
}
.checkout-section-label > span {
  width: 23px;
  height: 23px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #0b5d35;
  color: #fff;
  font-size: 11px;
  font-weight: 1000;
}
.checkout-section-label > small {
  color: #0b5d35;
  font-size: 9px;
  font-weight: 1000;
  letter-spacing: 1px;
}
.checkout-outlet-first .modal-outlet-summary {
  padding: 0;
  background: transparent;
}
.customer-fields-title { grid-column: 1 / -1; }
.customer-fields-title h3 { margin: 0; }

.delivery-price span {
  display: flex;
  flex-direction: column;
}
.delivery-price span small {
  margin-top: 2px;
  color: #66806e;
  font-size: 9px;
  font-weight: 600;
}
.terms span { line-height: 1.45; }
.order-terms-dialog {
  width: min(520px, calc(100% - 24px));
  max-height: min(82vh, 760px);
  overflow: hidden;
  padding: 0;
  border: 0;
  border-radius: 22px;
  background: #fff;
  color: #173c27;
  box-shadow: 0 30px 90px #06190e66;
}
.order-terms-dialog::backdrop {
  background: #071b11bd;
  backdrop-filter: blur(5px);
}
.order-terms-head {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 15px;
  padding: 18px 19px 14px;
  border-bottom: 1px solid #d9e7dc;
  background: #f2faf4;
}
.order-terms-head small {
  color: #0b5d35;
  font-size: 9px;
  font-weight: 1000;
  letter-spacing: 1.2px;
}
.order-terms-head h2 { margin: 3px 0 0; font-size: 22px; line-height: 1.1; }
.order-terms-close {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background: #fff;
  color: #0b5d35;
  font-size: 23px;
  cursor: pointer;
}
.order-terms-body {
  max-height: calc(min(82vh, 760px) - 140px);
  overflow-y: auto;
  padding: 8px 19px 14px;
}
.order-terms-body section { padding: 12px 0; border-bottom: 1px solid #e2ece4; }
.order-terms-body section:last-child { border-bottom: 0; }
.order-terms-body b { display: block; color: #0b5d35; font-size: 13px; }
.order-terms-body p { margin: 4px 0 0; color: #52665a; font-size: 11px; line-height: 1.55; }
.order-terms-actions {
  position: sticky;
  bottom: 0;
  padding: 12px 19px 17px;
  border-top: 1px solid #d9e7dc;
  background: #fff;
}
.order-terms-actions button {
  width: 100%;
  min-height: 46px;
  border: 0;
  border-radius: 13px;
  background: #0b5d35;
  color: #fff;
  font-weight: 900;
  cursor: pointer;
}

@media(max-width:520px) {
  .custom-quantity { grid-template-columns: 1fr; }
  .custom-quantity-control { width: 100%; grid-template-columns: 44px 1fr auto 44px; }
  .payment-breakdown .payment-row { align-items: flex-start; }
  .payment-breakdown .payment-row span small { max-width: 230px; }
}

/* V1.15.1 GPS fallback and manual pin */
.manual-pin-button{display:block;margin:8px auto 0;border:0;background:transparent;color:#276749;text-decoration:underline;font-size:.78rem;font-weight:700;padding:5px 8px;cursor:pointer}
.manual-pin-button[hidden]{display:none}
.gps-guide-dialog,.manual-pin-dialog{width:min(92vw,430px);border:0;border-radius:22px;padding:0;box-shadow:0 24px 70px rgba(0,0,0,.28)}
.gps-guide-dialog::backdrop,.manual-pin-dialog::backdrop{background:rgba(5,25,15,.65);backdrop-filter:blur(3px)}
.gps-guide-dialog form,.manual-pin-dialog form{position:relative;padding:25px 22px 20px;color:#173f2a;background:#fff}
.dialog-x{position:absolute;right:13px;top:11px;border:0;background:#edf7f0;border-radius:50%;width:34px;height:34px;font-size:22px;cursor:pointer}
.gps-guide-icon{font-size:34px}.gps-guide-dialog h3,.manual-pin-dialog h3{margin:7px 0 8px;font-size:1.25rem}.gps-guide-dialog p,.manual-pin-dialog p{line-height:1.5;color:#486054}.gps-guide-dialog ol{padding-left:20px;line-height:1.55;color:#486054}.gps-guide-actions{display:grid;gap:9px;margin-top:16px}.gps-guide-actions button,.open-map-link{border:0;border-radius:12px;padding:12px 14px;background:#176b3a;color:#fff;font-weight:800;text-align:center;text-decoration:none;cursor:pointer}.gps-guide-actions .secondary,.open-map-link{background:#e8f5ed;color:#176b3a}.gps-guide-actions .text-button{background:transparent;color:#587064;padding:7px}.manual-pin-dialog label{display:grid;gap:7px;margin-top:14px;font-weight:700}.manual-pin-dialog input{width:100%;box-sizing:border-box;border:1px solid #b9cfc1;border-radius:11px;padding:12px;font-size:16px}.manual-pin-error{display:block;min-height:18px;margin-top:6px;color:#b42318}.open-map-link{display:block;margin:12px 0}

/* ===== V1.15.4: PROMOTION DISPLAY ===== */
.promotion-top-banner{
  position:relative;
  z-index:45;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:12px;
  width:min(100%,980px);
  margin:10px auto 0;
  padding:12px 44px 12px 16px;
  border:1px solid rgba(18,111,61,.20);
  border-radius:18px;
  background:linear-gradient(135deg,#fff8d9 0%,#effbf2 100%);
  box-shadow:0 10px 28px rgba(20,77,44,.12);
  color:#173c28;
}
.promotion-top-copy{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.promotion-top-copy>small{
  display:inline-flex;align-items:center;min-height:26px;padding:4px 9px;border-radius:999px;
  background:#126f3d;color:#fff;font-weight:900;font-size:11px;letter-spacing:.08em
}
.promotion-top-copy>strong{font-size:16px;line-height:1.2}
.promotion-top-copy>span{font-size:13px;color:#4c6757}
.promotion-code,.promotion-popup-code{
  appearance:none;border:1px dashed rgba(18,111,61,.45);background:#fff;color:#126f3d;cursor:pointer;font:inherit
}
.promotion-code{padding:6px 9px;border-radius:10px;font-size:12px;font-weight:700}
.promotion-top-action{
  display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 14px;border-radius:12px;
  background:#126f3d;color:#fff;text-decoration:none;font-size:13px;font-weight:900;white-space:nowrap
}
.promotion-close,.promotion-popup-close{
  appearance:none;border:0;background:transparent;color:#315f43;cursor:pointer;font-size:28px;line-height:1
}
.promotion-close{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:34px;height:34px}
.promotion-popup[hidden]{display:none!important}
.promotion-popup{position:fixed;inset:0;z-index:10020;display:grid;place-items:center;padding:20px}
.promotion-popup-backdrop{position:absolute;inset:0;background:rgba(7,25,16,.64);backdrop-filter:blur(4px)}
.promotion-popup-card{
  position:relative;z-index:1;width:min(100%,420px);padding:28px 24px 22px;border-radius:26px;
  background:linear-gradient(160deg,#fff 0%,#f4fff7 100%);box-shadow:0 28px 80px rgba(0,0,0,.30);text-align:center;color:#173c28
}
.promotion-popup-card>small{
  display:inline-flex;padding:6px 10px;border-radius:999px;background:#e4f6e9;color:#126f3d;
  font-weight:900;font-size:11px;letter-spacing:.12em
}
.promotion-popup-card h2{margin:14px 0 8px;font-size:28px;line-height:1.08}
.promotion-popup-card p{margin:0 0 18px;color:#557062;line-height:1.55}
.promotion-popup-close{position:absolute;right:12px;top:10px;width:40px;height:40px;border-radius:50%;background:#edf7f0}
.promotion-popup-code{display:grid;width:100%;gap:3px;padding:14px;border-radius:16px;margin:0 0 14px}
.promotion-popup-code span{font-size:10px;letter-spacing:.14em;font-weight:900;color:#698174}
.promotion-popup-code b{font-size:24px;letter-spacing:.08em}
.promotion-popup-code em{font-size:11px;font-style:normal;color:#698174}
.promotion-popup-action{
  display:flex;align-items:center;justify-content:center;width:100%;min-height:50px;padding:12px 16px;border-radius:15px;
  background:#126f3d;color:#fff;text-decoration:none;font-weight:900
}
.promotion-popup-later{appearance:none;border:0;background:transparent;color:#587163;margin-top:12px;padding:8px 16px;font-weight:700;cursor:pointer}
body.promotion-popup-open{overflow:hidden}
@media(max-width:720px){
  .promotion-top-banner{width:calc(100% - 20px);grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:8px;padding:11px 40px 11px 13px;border-radius:15px}
  .promotion-top-copy{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 7px}
  .promotion-top-copy>small{grid-row:1/3;align-self:start}
  .promotion-top-copy>strong{font-size:14px}
  .promotion-top-copy>span{font-size:11px;white-space:normal}
  .promotion-code{grid-column:1/-1;width:max-content;max-width:100%}
  .promotion-top-action{min-height:38px;padding:7px 10px;font-size:12px}
  .promotion-popup{padding:14px}
  .promotion-popup-card{padding:26px 18px 20px;border-radius:22px}
  .promotion-popup-card h2{font-size:24px}
}
