.checkout-discount { margin: 18px 0; padding: 14px; border: 1px solid rgba(126, 169, 102, .35); border-radius: 14px; background: rgba(238, 247, 234, .55); }
.checkout-discount label { display: block; margin-bottom: 8px; font-weight: 800; }
.checkout-discount > div { display: flex; gap: 8px; }
.checkout-discount input { min-width: 0; flex: 1; padding: 11px 12px; border: 1px solid #cbd9c5; border-radius: 10px; font: inherit; }
.checkout-discount button { border: 0; border-radius: 10px; padding: 0 14px; background: var(--primary); color: var(--text-dark); font: inherit; font-weight: 800; cursor: pointer; }
.checkout-discount small { display: block; min-height: 1.3em; margin-top: 7px; color: #64725f; }
/* Cart additions: keyless Google Maps embed, styled selects, saved-address edit. */

.cart-item-cake-icon,
.cart-item-box-icon {
  width: 64px; height: 64px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: var(--primary-light, #eaf3e4); color: var(--primary-hover, #7ea966); font-size: 1.6rem; flex-shrink: 0;
  overflow: hidden;
}
.cart-item-box-icon img,
.cart-item-cake-icon img {
  width: 100%; height: 100%; object-fit: cover;
}
.cart-item-cake,
.cart-item-box { align-items: center; }

.cart-item-prep { color: #8B9A85; font-size: .82rem; display: flex; align-items: center; gap: 6px; margin: 2px 0; }

.map-embed { position: relative; overflow: hidden; border-radius: 18px; }
.map-embed-frame {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  filter: saturate(1.05);
}
/* Sits on top of the iframe so clicks become a lat/lng pick instead of panning. */
.map-embed-overlay {
  position: absolute;
  inset: 0;
  cursor: crosshair;
  background: transparent;
}
.map-embed-pin {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -100%);
  pointer-events: none;
  z-index: 3;
}
.map-embed-pin i {
  display: block;
  width: 22px;
  height: 22px;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
  background: #E04848;
  border: 3px solid #fff;
  box-shadow: 0 6px 14px rgba(0, 0, 0, .3);
}
.map-embed-pin[hidden] { display: none; }
.map-embed-hint {
  position: absolute;
  inset-inline: 12px;
  bottom: 12px;
  z-index: 3;
  pointer-events: none;
  background: rgba(255, 255, 255, .94);
  color: #3D4A38;
  font-size: .8rem;
  font-weight: 700;
  text-align: center;
  padding: 7px 12px;
  border-radius: 999px;
  box-shadow: 0 6px 16px rgba(42, 59, 36, .16);
}
.route-link { color: #4B7233; font-weight: 800; text-decoration: underline; }

.map-search {
  position: absolute;
  top: 10px;
  inset-inline: 10px;
  z-index: 500;
  display: flex;
  direction: rtl;
  background: #fff;
  border: 1px solid #d5e0d0;
  border-radius: 10px;
  box-shadow: 0 4px 14px rgba(35, 56, 31, .16);
  overflow: hidden;
}
.map-search input { min-width: 0; flex: 1; border: 0; padding: 10px 12px; background: transparent; font: inherit; outline: 0; }
.map-search button { width: 42px; border: 0; background: #37865b; color: #fff; cursor: pointer; }
.map-confirm-button { margin-top: 10px; border: 0; border-radius: 8px; padding: 10px 14px; background: #37865b; color: #fff; font: inherit; font-weight: 800; cursor: pointer; }
.map-confirm-button:disabled { background: #aeb9aa; cursor: not-allowed; }

.delivery-map-marker { background: transparent; border: 0; }
.delivery-map-marker span {
  display: block;
  width: 30px;
  height: 30px;
  border: 3px solid #fff;
  border-radius: 50% 50% 50% 0;
  box-shadow: 0 3px 10px rgba(0, 0, 0, .35);
  transform: rotate(-45deg);
}
.store-map-marker span { background: #37865b; }
.customer-map-marker span { background: #df3e3e; }

/* Province / city / region dropdowns */
.select-field .select-wrap { position: relative; display: block; }
.select-field .select-wrap::after {
  content: '';
  position: absolute;
  inset-inline-start: 14px;
  top: 50%;
  width: 9px;
  height: 9px;
  margin-top: -6px;
  border-inline-start: 2.2px solid #6A7A63;
  border-bottom: 2.2px solid #6A7A63;
  transform: rotate(-45deg);
  pointer-events: none;
  transition: transform .18s ease;
}
.select-field .select-wrap select {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  border: 1.8px solid #DCE3D4;
  border-radius: 14px;
  background: #fff;
  padding: 13px 16px;
  padding-inline-start: 38px;
  font-family: inherit;
  font-size: .95rem;
  font-weight: 600;
  color: #2A3B24;
  cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.select-field .select-wrap select:hover { border-color: #B9CDA9; }
.select-field .select-wrap select:focus {
  outline: none;
  border-color: #9BC582;
  box-shadow: 0 0 0 4px rgba(155, 197, 130, .22);
}
.select-field .select-wrap select option { padding: 10px; font-weight: 600; }

/* Saved address rows */
.saved-address-option { position: relative; display: flex; align-items: flex-start; gap: 10px; }
.edit-saved-address {
  margin-inline-start: auto;
  align-self: center;
  border: 1.5px solid #DCE3D4;
  background: #fff;
  border-radius: 10px;
  padding: 6px 12px;
  font-family: inherit;
  font-size: .8rem;
  font-weight: 700;
  color: #5C6B56;
  cursor: pointer;
  transition: border-color .15s ease, color .15s ease;
}
.edit-saved-address:hover { border-color: #9BC582; color: #4B7233; }
