/* 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; }

/* 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; }
