/* Componentes comerciales consolidados */
body.nmc-flexy-public :where(.btn, .nmc-btn, .nmc-cta, .nmc-button, .nmc-primary-cta) {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  padding: .78rem 1.1rem;
  border: 1px solid transparent;
  border-radius: 999px;
  background: var(--nmc-c-red);
  color: #fff;
  font-weight: 900;
  text-decoration: none;
  box-shadow: 0 18px 42px -30px rgba(227, 6, 19, .95);
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

body.nmc-flexy-public :where(.btn:hover, .nmc-btn:hover, .nmc-cta:hover, .nmc-button:hover, .nmc-primary-cta:hover) {
  color: #fff;
  background: var(--nmc-c-red-700);
  transform: translateY(-1px);
  text-decoration: none;
}

body.nmc-flexy-public :where(.btn-outline, .nmc-btn--ghost, .nmc-secondary-cta) {
  color: var(--nmc-c-ink);
  background: #fff;
  border-color: var(--nmc-c-line);
  box-shadow: none;
}

body.nmc-flexy-public :where(.card, .nmc-card, .center-card, .nmc-panel, .nmc-kpi-card) {
  border: 1px solid rgba(226, 232, 240, .92);
  border-radius: var(--nmc-c-radius);
  background: rgba(255, 255, 255, .94);
  box-shadow: var(--nmc-c-shadow);
}

body.nmc-flexy-public :where(.card, .nmc-card, .center-card) :where(.card-body, .nmc-card__body) {
  padding: clamp(18px, 2.4vw, 28px);
}

body.nmc-flexy-public :where(.badge, .nmc-badge, .pill, .nmc-pill) {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  min-height: 28px;
  padding: .3rem .72rem;
  border-radius: 999px;
  color: var(--nmc-c-red-700);
  background: var(--nmc-c-red-soft);
  font-size: .82rem;
  font-weight: 900;
}

body.nmc-flexy-public :where(.form-control, input[type="text"], input[type="email"], input[type="tel"], textarea, select) {
  border: 1px solid var(--nmc-c-line);
  border-radius: 16px;
  background: #fff;
  min-height: 46px;
  padding: .72rem .9rem;
}

body.nmc-flexy-public :where(.form-control:focus, input:focus, textarea:focus, select:focus) {
  outline: 3px solid rgba(227, 6, 19, .14);
  border-color: rgba(227, 6, 19, .46);
}

body.nmc-flexy-public :where(.nmc-trust-row, .trust-row, .nmc-benefits-row) {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

body.nmc-flexy-public :where(.nmc-trust-row > *, .trust-row > *, .nmc-benefits-row > *) {
  padding: .56rem .82rem;
  border: 1px solid rgba(226, 232, 240, .92);
  border-radius: 999px;
  background: #fff;
  color: #475569;
  font-weight: 800;
}
