/*!
 * NovaWebDesign — câmpul „Cod promoțional” (formularul de ofertă și comanda de mentenanță)
 * Folosește clasele site-ului (.form-label, .form-input, .btn-secondary) și adaugă doar ce lipsește.
 * Toate clasele proprii au prefixul npf-.
 */
.npf { margin: 0; }
/* locul din formularul de ofertă (sub rezumat) */
.contact-promo { margin: 18px 0 0; }
.npf__label { display: block; margin-bottom: 8px; }
.npf__row { display: flex; gap: 8px; align-items: stretch; }
.npf .npf__input {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 48px;
  font-family: 'Space Grotesk', var(--font-body, 'Inter'), sans-serif;
  font-size: 16px;               /* fără zoom automat pe iPhone */
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.npf .npf__input::placeholder { letter-spacing: 0.04em; font-weight: 500; text-transform: none; }
.npf .npf__apply {
  flex: 0 0 auto;
  min-height: 48px;
  padding: 10px 18px;
  border-radius: var(--radius-md, 12px);
  white-space: nowrap;
}
.npf .npf__apply[disabled] { opacity: 0.6; cursor: progress; }
.npf__msg { min-height: 0; margin: 8px 0 0; font-size: 0.86rem; line-height: 1.5; color: var(--text-secondary, #9CA3AF); }
.npf__msg:empty { margin: 0; }
.npf__msg.is-error { color: #FCA5A5; }
.npf__msg.is-warn { color: #FCD34D; }

.npf__summary {
  margin-top: 12px;
  padding: 14px 14px 12px;
  border-radius: 14px;
  border: 1px solid rgba(52, 211, 153, 0.32);
  background: linear-gradient(180deg, rgba(52, 211, 153, 0.07), rgba(34, 211, 238, 0.035));
}
.npf__title { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; font-weight: 600; font-size: 0.92rem; color: #D1FAE5; overflow-wrap: anywhere; }
.npf__check {
  flex: 0 0 auto;
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(52, 211, 153, 0.22);
  color: #6EE7B7;
  font-size: 0.8rem;
  font-weight: 700;
}
.npf__steps { list-style: none; margin: 0; padding: 0; counter-reset: npf; }
.npf__steps li {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 6px 0;
  font-size: 0.88rem;
  color: var(--text-secondary, #9CA3AF);
  border-bottom: 1px dashed rgba(255, 255, 255, 0.09);
}
.npf__steps li:first-child { color: var(--text-primary, #F5F5F7); }
.npf__step span:first-child::before { content: '→ '; color: rgba(167, 139, 250, 0.9); }
.npf__amt { white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--text-primary, #F5F5F7); }
.npf__total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  margin: 10px 0 8px;
  font-size: 0.95rem;
  font-weight: 600;
}
.npf__total strong {
  font-family: 'Space Grotesk', var(--font-body, 'Inter'), sans-serif;
  font-size: 1.25rem;
  white-space: nowrap;
  background: var(--accent-gradient, linear-gradient(135deg, #8B5CF6 0%, #22D3EE 100%));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.npf__note { margin: 4px 0 0; font-size: 0.8rem; line-height: 1.5; color: var(--text-muted, #8B93A5); }
.npf__remove {
  margin-top: 8px;
  min-height: 40px;
  padding: 6px 0;
  background: none;
  border: 0;
  color: var(--text-secondary, #9CA3AF);
  font-size: 0.84rem;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.npf__remove:hover { color: var(--text-primary, #F5F5F7); }

/* în rezumatul lateral al comenzii de mentenanță (mai îngust) */
.npf--maint { margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(255, 255, 255, 0.08); }
.npf--maint .npf__label { font-size: 0.85rem; }
.npf--maint .npf__apply { padding: 10px 14px; }

@media (max-width: 360px) {
  .npf__row { flex-wrap: wrap; }
  .npf .npf__apply { flex: 1 1 100%; }
}

/* formularul de ofertă: cu un cod aplicat, pașii de calcul înlocuiesc rândul estimativ „Cu 5% reducere” */
#summaryGroup.has-promo #contactCheckoutDiscount { display: none !important; }

/* comanda de mentenanță: în timpul plății codul rămâne afișat, dar nu se mai schimbă (sesiunea Stripe e deja creată cu el) */
.oc-summary.is-pay .npf__row, .oc-summary.is-pay .npf__remove, .oc-summary.is-pay .npf__label { display: none; }

/* formularul de ofertă: spațiu față de nota rezumatului (regulile .cf-field ale formularului pun marginea pe 0) */
#summaryGroup .contact-promo { margin-top: 22px; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, 0.08); }
