.order-extra-field {
  margin-top: 14px;
}

.order-required-mark {
  margin-left: 4px;
  color: var(--err);
  font-weight: 700;
}

.order-extra-textarea {
  display: block;
  width: 100%;
  min-height: 112px;
  padding-top: 12px;
  resize: vertical;
  line-height: 1.45;
}

[data-size="21x30"][hidden] {
  display: none !important;
}

/* The pause is fully transparent, so the button cannot freeze with a bright
   stripe over its label. */
@keyframes helpShimmerClean {
  0%, 5% { transform: translateX(-220%) skewX(-18deg); opacity: 0; }
  8% { opacity: 1; }
  28% { transform: translateX(360%) skewX(-18deg); opacity: 1; }
  32%, 100% { transform: translateX(360%) skewX(-18deg); opacity: 0; }
}

.help-btn.help-shimmer::after {
  left: -10%;
  width: 38%;
  transform: translateX(-220%) skewX(-18deg);
  opacity: 0;
  animation: helpShimmerClean var(--sh-every, 12s) cubic-bezier(.22,.61,.36,1) infinite !important;
  will-change: transform, opacity;
}

/* White monochrome brand mark inside both mobile “К карте” controls. */
.fab-tomap-circle::before {
  content: "";
  width: 29px;
  height: 29px;
  background: #fff;
  -webkit-mask: url("/brand/favicon-512.png") center / contain no-repeat;
  mask: url("/brand/favicon-512.png") center / contain no-repeat;
  filter: drop-shadow(0 1px 1px rgba(0,0,0,.18));
}

.fab-tomap-circle > svg { display: none !important; }

.address-field-wrap { position: relative; }
.address-suggestions {
  position: absolute;
  z-index: 120;
  top: calc(100% - 2px);
  left: 0;
  right: 0;
  display: none;
  overflow: hidden auto;
  max-height: 260px;
  border: 1px solid var(--border-2, rgba(20,30,60,.24));
  border-radius: 12px;
  background: var(--surface, #fff);
  box-shadow: 0 16px 40px rgba(8,16,40,.2);
}
.address-suggestions.is-open { display: block; }
.address-suggestion {
  display: block;
  width: 100%;
  padding: 11px 13px;
  border: 0;
  border-bottom: 1px solid var(--border, rgba(20,30,60,.13));
  background: transparent;
  color: var(--text);
  font: inherit;
  line-height: 1.35;
  text-align: left;
  cursor: pointer;
}
.address-suggestion:last-child { border-bottom: 0; }
.address-suggestion:hover,
.address-suggestion.is-active { background: var(--accent-soft, rgba(47,99,230,.12)); }
.address-suggestion small { display: block; margin-top: 3px; color: var(--muted); }
.delivery-quote {
  margin-top: 7px;
  min-height: 18px;
  color: var(--muted);
  font-size: .79rem;
  line-height: 1.4;
}
.delivery-quote.is-ready { color: var(--ok, #1f9d57); font-weight: 650; }
.delivery-quote.is-warn { color: #a66a12; }
.delivery-price-row .v { color: var(--accent); font-weight: 700; }

@media (max-width: 999px) {
  .address-suggestions {
    position: fixed;
    left: 14px;
    right: 14px;
    top: auto;
    bottom: calc(72px + env(safe-area-inset-bottom, 0px));
    max-height: 42vh;
  }
}
